示例#1
0
    public void Init()
    {
        //_StartProfileOptimization();

        Title = App.AppNameLong;         //don't append document name etc

        if (App.Settings.wndpos.main == null)
        {
            Width  = 1000;
            Height = 700;
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            //and will EnsureInScreen
        }
        WndSavedRect.Restore(this, App.Settings.wndpos.main, o => App.Settings.wndpos.main = o);

        Panels.LoadAndCreateToolbars();

        App.Commands = new KMenuCommands(typeof(Menus), Panels.Menu);

        App.Commands[nameof(Menus.File.New)].SubmenuOpened       = (o, _) => FilesModel.FillMenuNew(o as MenuItem);
        App.Commands[nameof(Menus.File.Workspace)].SubmenuOpened = (o, _) => FilesModel.FillMenuRecentWorkspaces(o as MenuItem);

        var atb = new ToolBar[7] {
            Panels.THelp, Panels.TTools, Panels.TFile, Panels.TRun, Panels.TEdit, Panels.TCustom1, Panels.TCustom2
        };

        App.Commands.InitToolbarsAndCustomize(folders.ThisAppBS + @"Default\Commands.xml", AppSettings.DirBS + "Commands.xml", atb);

        var bRun = App.Commands[nameof(Menus.Run.Run_script)].FindButtonInToolbar(Panels.TRun);

        if (bRun != null)
        {
            bRun.Width = 50; bRun.Margin = new(10, 0, 10, 0);
        }                                                                               //make Run button bigger //SHOULDDO: bad if vertical toolbar

        var bNew = App.Commands[nameof(Menus.File.New)].FindMenuButtonInToolbar(Panels.TFile);

        if (bNew != null)
        {
            bNew.MouseDoubleClick += (_, e) => { e.Handled = true; Menus.File.New.New_script(); }
        }
        ;

        Panels.CreatePanels();

        App.Commands.BindKeysTarget(this, "");

        Panels.PanelManager.Container = g => { this.Content = g; };


        //timer.after(100, _ => DOptions.ZShow());
        //timer.after(100, _ => App.Model.Properties());
        //timer.after(100, _ => Menus.File.Workspace.New_workspace());
        //timer.after(100, _ => DIcons.ZShow());
        //timer.after(600, _ => Au.Tools.Dwnd.Dialog(wnd.find(null, "Shell_TrayWnd")));
        //timer.after(600, _ => Au.Tools.Dwnd.Dialog(wnd.findOrRun(null, "Notepad", run: () => run.it(folders.System + "notepad.exe"))));
        //timer.after(500, _ => Au.Tools.Delm.Dialog(new POINT(806, 1580)));
        //timer.after(500, _ => Au.Tools.Delm.Dialog());
        //timer.after(400, _ => Au.Tools.Duiimage.Dialog());
        //timer2.every(200, _ => { GC.Collect(); });

#if DEBUG
        App.Timer1s += () => {
            var e = Keyboard.FocusedElement as FrameworkElement;
            Debug_.PrintIf(e != null && !e.IsVisible, "focused invisible");
            //print.it(e, FocusManager.GetFocusedElement(App.Wmain));
        };
#endif
    }
示例#2
0
文件: tb acc.cs 项目: qmgindi/Au
        VarInt IAccessible.get_accRole(VarInt varChild)
        {
            Debug_.PrintIf(Api.GetCurrentThreadId() != _w.ThreadId, "thread");
            var r = !_B(varChild, out var b)
                                ? ERole.TOOLBAR
                                : b.ItemType switch {
                TBItemType.Separator => ERole.SEPARATOR,
                TBItemType.Group => ERole.GROUPING,
                TBItemType.Menu => ERole.BUTTONMENU,
                _ => ERole.BUTTON
            };

            return((int)r - 1);
        }

        VarInt IAccessible.get_accState(VarInt varChild)
        {
            EState r = 0;

            if (!_w.IsEnabled())
            {
                r |= EState.DISABLED;
            }
            if (!_B(varChild, out var b))
            {
                if (!_w.IsVisible)
                {
                    r |= EState.INVISIBLE;
                }
            }
            else
            {
                if (b.IsSeparatorOrGroup_)
                {
                    r |= EState.DISABLED;
                }
                if (b.IsMenu_)
                {
                    r |= EState.HASPOPUP;
                }
                //SHOULDDO: if offscreen, r |= EState.INVISIBLE | EState.OFFSCREEN;
                //no: EState.HOTTRACKED;
            }
            return((int)r - 1);
        }

        string IAccessible.get_accHelp(VarInt varChild) => _B(varChild, out var b) ? _GetFullTooltip(b) : null;

        int IAccessible.get_accHelpTopic(out string pszHelpFile, VarInt varChild) => throw new NotImplementedException();

        string IAccessible.get_accKeyboardShortcut(VarInt varChild) => null;

        object IAccessible.get_accFocus() => null;

        object IAccessible.get_accSelection() => null;

        string IAccessible.get_accDefaultAction(VarInt varChild)
        => !_B(varChild, out var b) || b.IsSeparatorOrGroup_ ? null : b.IsMenu_ ? "Open" : "Execute";

        void IAccessible.accSelect(ESelect flagsSelect, VarInt varChild) => throw new NotImplementedException();

        void IAccessible.accLocation(out int pxLeft, out int pyTop, out int pcxWidth, out int pcyHeight, VarInt varChild)
        {
            if (!_B(varChild, out var b))
            {
                _StdAO.accLocation(out pxLeft, out pyTop, out pcxWidth, out pcyHeight, varChild);
            }
            else
            {
                var r = b.rect; _w.MapClientToScreen(ref r);
                pxLeft = r.left; pyTop = r.top; pcxWidth = r.Width; pcyHeight = r.Height;
            }
        }

        object IAccessible.accNavigate(NAVDIR navDir, VarInt varStart)
        {
            int i = varStart;
            var a = _a;

            if (navDir == NAVDIR.FIRSTCHILD || navDir == NAVDIR.LASTCHILD)
            {
                if (i == -1)
                {
                    return(navDir == NAVDIR.FIRSTCHILD ? 1 : a.Count);
                }
            }
            else
            {
                if (i == -1)
                {
                    return(_StdAO.accNavigate(navDir, varStart));
                }
                switch (navDir)
                {
                case NAVDIR.PREVIOUS:
                    if (i > 0)
                    {
                        return(i);
                    }
                    break;

                case NAVDIR.NEXT:
                    if (++i < a.Count)
                    {
                        return(i + 1);
                    }
                    break;
                }
            }
            return(null);
        }

        VarInt IAccessible.accHitTest(int xLeft, int yTop)
        {
            POINT p = new(xLeft, yTop); _w.MapScreenToClient(ref p);

            if (!_w.ClientRect.Contains(p))
            {
                return(_StdAO.accHitTest(xLeft, yTop));
            }
            return(_HitTest(p));
        }

        void IAccessible.accDoDefaultAction(VarInt varChild)
        {
            if (!_B(varChild, out var b) || b.IsSeparatorOrGroup_)
            {
                return;
            }
            _w.Post(Api.WM_USER + 50, (int)varChild);
        }

        void IAccessible.put_accName(VarInt varChild, string szName)
        {
        }

        void IAccessible.put_accValue(VarInt varChild, string szValue)
        {
        }

        bool _B(VarInt varChild, out ToolbarItem b)
        {
            int i = varChild;

            if (i == -1)
            {
                b = null; return(false);
            }
            b = _a[i]; return(true);
        }
    }