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 }
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); } }