void Pdb::MemMenu(ArrayCtrl& array, Bar& bar, const String& exp) { if(bar.IsScanKeys()) return; CParser p(exp); try { Val v = Exp(p); bool sep = true; if(v.ref > 0) { if(sep) bar.Separator(); sep = false; bar.Add("Memory at " + exp, THISBACK1(MemoryGoto, exp)); } else if(v.rvalue) { if(sep) bar.Separator(); sep = false; bar.Add("Memory at 0x" + FormatIntHex((dword)GetInt(v)), THISBACK1(MemoryGoto, "&" + exp)); } if(!v.rvalue) { if(sep) bar.Separator(); sep = false; bar.Add("Memory at &&" + exp, THISBACK1(MemoryGoto, "&" + exp)); } } catch(CParser::Error e) { } }
void FormEdit::ViewBar(Bar& bar) { bar.Add(t_("Switch to as-is view..."), FormViewImg::ViewModeAsIs(), THISBACK1(SetViewMode, VIEW_MODE_AS_IS)) .Check(_ViewMode == VIEW_MODE_AS_IS).Enable(_View.IsLayout()) .Tip(t_("Switch to as-is view...")); bar.Add(t_("Switch to detailed view..."), FormViewImg::ViewModeInfo(), THISBACK1(SetViewMode, VIEW_MODE_INFO)) .Check(_ViewMode == VIEW_MODE_INFO).Enable(_View.IsLayout()) .Tip(t_("Switch to detailed view...")); bar.Add(t_("Switch to solid view..."), FormViewImg::ViewModeWireframe(), THISBACK1(SetViewMode, VIEW_MODE_WIREFRAME)) .Check(_ViewMode == VIEW_MODE_WIREFRAME).Enable(_View.IsLayout()) .Tip(t_("Switch to solid view...")); bar.Add(t_("Bind to grid..."), FormViewImg::GridBinding(), THISBACK2(ToggleFlag, "Grid.Binding", false)) .Check(GetFlag("Grid.Binding", false)).Enable(_View.IsLayout()) .Tip(t_("Bind to grid...")); bar.Add(t_("Coloring of the objects..."), FormEditImg::Coloring(), THISBACK(ToggleColoring)) .Check(GetFlag("View.Coloring", true)).Enable(_View.IsLayout()) .Tip(t_("Coloring of the objects...")); bar.Separator(); bar.Add(t_("Use system font..."), FormEditImg::FontZoom(), THISBACK(StdFontZoom)).Check(IsStandardZoom()) .Enable(_View.IsLayout()) .Tip(t_("Use system font...")); bar.Add(t_("Use larger font..."), FormEditImg::FontZoomStd(), THISBACK(SmallFontZoom)).Check(IsSmallZoom()) .Enable(_View.IsLayout()) .Tip(t_("Use larger font...")); bar.Add(t_("Use largest font..."), FormEditImg::FontZoomLarge(), THISBACK(LargeFontZoom)).Check(IsLargeZoom()) .Enable(_View.IsLayout()) .Tip(t_("Use largest font...")); }
void DockBase::GroupMenu(Bar& bar) { TreeCtrl& tree = grouptab.grouptree; int id = tree.GetCursor(); if(id < 0) return; id = tree.GetParent(id); activegroup = (String) tree.GetValue(tree.GetCursor()); if(id >= 0) { if(id == 0 && tree.GetChildCount(id)) { bar.Add(Format(t_("Dock Group '%s'"), activegroup), THISBACK1(GroupDockMenu, 0)); bar.Add(Format(t_("AutoHide Group '%s'"), activegroup), THISBACK1(GroupDockMenu, 1)); bar.Add(Format(t_("Float Group '%s'"), activegroup), THISBACK3(GroupMenuAction, activegroup, 2, -1)); bar.Separator(); bar.Add(tree.GetChildCount(tree.GetCursor()) > 1, Format(t_("Tabify Group '%s' and..."), activegroup), THISBACK1(GroupTabifyMenu, 3)); bar.Separator(); bar.Add(activegroup != t_("Default"), Format(t_("Delete Group '%s'"), activegroup), THISBACK1(DeleteWidgetGroup, activegroup)); bar.Separator(); bar.Add(Format(t_("Close Group '%s'"), activegroup), DockCtrlImages::CClose(), THISBACK3(GroupMenuAction, activegroup, -1, -1)); } if(id > 0) { Vector<int> sel = tree.GetSel(); for(int i = 0; i < sel.GetCount(); i++) id = tree.Get(sel[i]); CtrlRecord* record = GetCtrlRecordFromId(id); ASSERT(record); record->ctrl->Menu(); } } else bar.Add(t_("Add New Group..."), THISBACK(OnAddNewGroup)); }
void LayoutDesigner::SpringsBar(Bar& bar) { bool m = !itemi.IsEmpty(); int im = GetItemPosMask(); bar.Add(m, "Left", TB_SPRINGLEFT(), THISBACK1(ItemPos, MAKELONG(POS_LEFT, POS_NONE))) .Check(im & MAKELONG(1 << POS_LEFT, 0)); bar.Add(m, "Right", TB_SPRINGRIGHT(), THISBACK1(ItemPos, MAKELONG(POS_RIGHT, POS_NONE))) .Check(im & MAKELONG(1 << POS_RIGHT, 0)); bar.Add(m, "Horz size", TB_SPRINGHSIZE(), THISBACK1(ItemPos, MAKELONG(POS_SIZE, POS_NONE))) .Check(im & MAKELONG(1 << POS_SIZE, 0)); bar.Add(m, "Horz center", TB_SPRINGHCENTER(), THISBACK1(ItemPos, MAKELONG(POS_CENTER, POS_NONE))) .Check(im & MAKELONG(1 << POS_CENTER, 0)); bar.Separator(); bar.Add(m, "Top", TB_SPRINGTOP(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_TOP))) .Check(im & MAKELONG(0, 1 << POS_TOP)); bar.Add(m, "Bottom", TB_SPRINGBOTTOM(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_BOTTOM))) .Check(im & MAKELONG(0, 1 << POS_BOTTOM)); bar.Add(m, "Vert size", TB_SPRINGVSIZE(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_SIZE))) .Check(im & MAKELONG(0, 1 << POS_SIZE)); bar.Add(m, "Vert center", TB_SPRINGVCENTER(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_CENTER))) .Check(im & MAKELONG(0, 1 << POS_CENTER)); bar.Separator(); bar.Add(m, "Auto springs", TB_SPRINGAUTO(), THISBACK1(ItemPos, MAKELONG(POS_AUTO, POS_AUTO))) .Key(K_CTRL_R); bar.Add(m, "Topleft springs", TB_SPRINGTOPLEFT(), THISBACK1(ItemPos, MAKELONG(POS_LEFT, POS_TOP))) .Key(im == MAKELONG(1 << POS_LEFT, 1 << POS_TOP)); }
void Ide::Diff() { if(IsNull(editfile)) return; FileDiff diffdlg(AnySourceFs()); diffdlg.diff.WhenLeftLine = THISBACK1(GotoDiffLeft, &diffdlg); diffdlg.diff.WhenRightLine = THISBACK1(GotoDiffRight, &diffdlg); diffdlg.Execute(editfile); }
void MainWorkSpace::trayMenu(Bar& CurrentBar){ if(isHidden) CurrentBar.Add(t_("Show application"), THISBACK(launch)); else CurrentBar.Add(t_("Hide application"), THISBACK(hide)); CurrentBar.Add(t_("Minimize"), THISBACK1(Minimize, true)); CurrentBar.Add(t_("Maximize"), THISBACK1(Maximize, true)); //CurrentBar.Add(t_("Restore"), THISBACK(Restore)); CurrentBar.Add(AsString(t_("About")) + "...", THISBACK(About)); CurrentBar.Add(t_("Exit"), THISBACK(Exit)); }
void Ide::FindStdDir() { String n = GetFileFolder(editfile); MenuBar menu; if(!IsNull(n)) menu.Add(n, THISBACK1(FindSetStdDir, n)); Vector<String> d = GetUppDirs(); for(int i = 0; i < d.GetCount(); i++) menu.Add(d[i], THISBACK1(FindSetStdDir, d[i])); menu.Execute(&ff.folder, ff.folder.GetPushScreenRect().BottomLeft()); }
VegaTab1::VegaTab1() { // set the widths of each coloumn // arr.ColumnWidths("25 3 5 12 8 8 2 3 3 3 3"); CtrlLayout(*this, ""); SizePos(); //id, label, width arr.AddColumn("ID", "ID", 3).HeaderTab().WhenAction = THISBACK1(SortRecord, 0); //0 arr.AddColumn("Name", "Name", 21).HeaderTab().WhenAction = THISBACK1(SortRecord, 1); //1 arr.AddColumn("Country", "Fed", 3); //2 arr.AddColumn("Birthday", "Birthday", 6); //3 arr.AddColumn("Gender", "G", 3); //4 arr.AddColumn("Title", "Title", 4); //5 arr.AddColumn("IDFIDE", "ID FIDE", 6); //6 arr.AddColumn("RatFIDE", "Rtg FIDE", 5).HeaderTab().WhenAction = THISBACK1(SortRecord, 7); //7 arr.AddColumn("IDNat", "ID Nat", 6); //8 arr.AddColumn("RatNat", "Rtg Nat", 5).HeaderTab().WhenAction = THISBACK1(SortRecord, 9); //9 arr.AddColumn("K", "K", 3); //10 arr.AddColumn("Status", "Status", 5).Ctrls(Avail3); //11 // arr.AddColumn("Status", "Status", 5).Ctrls(Avail3).HeaderTab().WhenAction = THISBACK1(SortRecord, 12); //11 // arr.AddColumn("Avail", "Avail?", 4).Ctrls(Avail3).Ctrls(Callback1<One<Ctrl>&> factory); // arr.AddColumn("Extra","Extra",6).Ctrls(Extra2); arr.NoHorzGrid(); arr.SetLineCy(VegaImg::imgYes().GetSize().cy+2); //option image adjustment... //arr.WhenLeftClick = THISBACK(PromptCell); arr.WhenLeftClick = THISBACK(FillFieldsFromRow); // color even rows arr.EvenRowColor(); //drop list widget editTitle.Add("1", "WGM"); editTitle.Add("2", "CM"); editTitle.Add("3", "AA"); // btnAdd <<= THISBACK(AddPlayer); //maybe it's better to have all callbacks from main menu?... btnModify <<= THISBACK(ModifyPlayer); btnClear <<= THISBACK(MaskDefaultValue); tsex.SetImage(VegaImg::female, VegaImg::male); // false state, true state tsex <<= 1; //set to 'male' // tsex <<= THISBACK(Tsex); editName.SetFilter(FilterCommaSpace).MaxChars(25); //added filter editIDFIDE.MaxChars(8); //set limit editIDNat.MaxChars(8); //set limit editRatFIDE.MaxChars(4); //set limit editRatNat.MaxChars(4); //set limit kcoeff.MaxChars(2); //set limit //fill with default value MaskDefaultValue(); }
OutMode::OutMode(Ide& ide) : ide(ide) { CtrlLayoutOKCancel(*this, "Output mode"); config <<= THISBACK(ConfigChange); method <<= THISBACK(Preset); cmd_options <<= THISBACK(CmdOptions); SyncLock(); DirSel(export_dir, dsb); export_all <<= THISBACK1(Export, 1); export_used <<= THISBACK1(Export, 0); export_makefile <<= THISBACK1(Export, 2); reset_blitz <<= callback(ResetBlitz); }
CodeBrowser::CodeBrowser() { scope.AddKey(); scope.AddColumn("Scope"); scope.WhenSel = THISBACK(LoadScope); scope.NoHeader().NoGrid(); search_scope <<= THISBACK(Load); search_scope.SetFilter(SearchItemFilter); search_scope.NullText("Search type or header "); item.AddKey(); item.AddColumn("Item").SetDisplay(display).Margin(2); item.NoHeader(); item.SetLineCy(BrowserFont().Info().GetHeight() + 3); search.NullText("Find "); search.SetFilter(SearchItemFilter); search <<= THISBACK(Search); // search.AddFrame(clear); // clear.SetImage(BrowserImg::Clear()); // clear.NoWantFocus(); // clear <<= THISBACK(ClearSearch); range = 0; static const char *tip[] = { "Nest", "Package", "File" }; for(int i = 0; i < 3; i++) rangebutton[i].SetImage(BrowserImg::Get(BrowserImg::I_range_nest + i)).Tip(tip[i]).NoWantFocus() <<= THISBACK1(SetRange, i + 1); SetRange(0); sort.Tip("Order by names"); sort.SetImage(BrowserImg::Sort()).NoWantFocus(); sort <<= THISBACK(LoadScope); }
void WorkspaceWork::InsertSpecialMenu(Bar& menu) { bool isaux = IsAux(); menu.Add("Insert any file(s)", THISBACK1(AddFile, ANY_FILE)) .Key(K_SHIFT|K_CTRL_I) .Help("Insert files from anywhere on disk (discouraged in portable packages)"); menu.Add(isaux && GetOutputDir().GetCount(), "Insert output directory file(s)", THISBACK1(AddFile, OUTPUT_FILE)) .Help("Open file selector in output / intermediate directory for current package"); #ifdef PLATFORM_POSIX menu.Add(isaux && GetConfigDir().GetCount(), "Insert config directory file(s)", THISBACK1(AddFile, CONFIG_FILE)) .Help("Open file selector in output / intermediate directory for current package"); #endif menu.Add(isaux, "Insert Local directory file(s)", THISBACK1(AddFile, LOCAL_FILE)) .Help("Open file selector in Local directory for current package"); menu.Add("Insert home directory file(s)", THISBACK1(AddFile, HOME_FILE)) .Help("Open file selector in current user's HOME directory"); }
ProtectClientDemo::ProtectClientDemo() { CtrlLayout(*this, "Protect client demo"); // setup client url and key client .SetURL("localhost/scgi/testing") // .SetURL("localhost/scgi") // .SetURL("timberstruct.it/scgi/testing") .SetCommunicationKey(ScanHexString("aabbccddeeff00112233445566778899")) ; // gets eventually previously stored activation key from client activationKey <<= client.GetActivationKey(); registerButton <<= THISBACK1(onAction, PROTECT_REGISTER); connectButton <<= THISBACK1(onAction, PROTECT_CONNECT); refreshButton <<= THISBACK1(onAction, PROTECT_REFRESH); disconnectButton <<= THISBACK1(onAction, PROTECT_DISCONNECT); getKeyButton <<= THISBACK1(onAction, PROTECT_GETLICENSEKEY); getInfoButton <<= THISBACK1(onAction, PROTECT_GETLICENSEINFO); setInfoButton <<= THISBACK1(onAction, PROTECT_UPDATEUSERDATA); quitButton <<= Breaker(); emailEdit <<= "*****@*****.**"; }
// barTree context menu void XMLBarEditor::treeContextCb(Bar &b) { // if no toolbar selected in, no menu if(!bar) return; int i = barTree.GetCursor(); if(i < 0) return; if(i > 0) { b.Add(t_("Insert new item before current"), THISBACK1(treeContextAddCb, 1)); b.Add(t_("Insert new item after current"), THISBACK1(treeContextAddCb, 2)); b.Separator(); b.Add(t_("Insert new separator before current item"), THISBACK1(treeContextAddCb, 5)); b.Add(t_("Insert new separator after current item"), THISBACK1(treeContextAddCb, 6)); } if(barTree.GetChildCount(i)) { b.Separator(); b.Add(t_("Insert new child item at top"), THISBACK1(treeContextAddCb, 3)); b.Add(t_("Append new child item at bottom"), THISBACK1(treeContextAddCb, 4)); } else { b.Separator(); b.Add(t_("Insert new child item"), THISBACK1(treeContextAddCb, 4)); } if(i > 0) { b.Separator(); b.Add(t_("Remove item"), THISBACK(treeContextRemoveCb)); } }
void RasterCtrlTestWindow::Menu_View( Bar& bar ) { bar.Add( "Page width", THISBACK1( Menu_View_cb, -1 ) ); bar.Add( "Full page", THISBACK1( Menu_View_cb, -2 ) ); bar.Add( "Zoom 10%", THISBACK1( Menu_View_cb, 10 ) ); bar.Add( "Zoom 20%", THISBACK1( Menu_View_cb, 20 ) ); bar.Add( "Zoom 50%", THISBACK1( Menu_View_cb, 50 ) ); bar.Add( "Zoom 100%", THISBACK1( Menu_View_cb, 100 ) ); bar.Add( "Zoom 150%", THISBACK1( Menu_View_cb, 150 ) ); bar.Add( "Toggle thumbnails" , THISBACK1( Menu_View_cb, -3 ) ); } // END RasterCtrlTestWindow::ViewMenu()
void Gdb_MI2::DebugBar(Bar& bar) { bar.Add("Stop debugging", DbgImg::StopDebug(), THISBACK(Stop)).Key(K_SHIFT_F5); bar.Separator(); #ifdef PLATFORM_POSIX bar.Add(!stopped, "Asynchronous break", THISBACK(AsyncBrk)); #endif bool b = !IdeIsDebugLock(); bar.Add(b, "Step into", DbgImg::StepInto(), THISBACK1(Step, disas.HasFocus() ? "exec-step-instruction" : "exec-step")).Key(K_F11); bar.Add(b, "Step over", DbgImg::StepOver(), THISBACK1(Step, disas.HasFocus() ? "exec-next-instruction" : "exec-next")).Key(K_F10); bar.Add(b, "Step out", DbgImg::StepOut(), THISBACK1(Step, "exec-finish")).Key(K_SHIFT_F11); bar.Add(b, "Run to", DbgImg::RunTo(), THISBACK(doRunTo)).Key(K_CTRL_F10); bar.Add(b, "Run", DbgImg::Run(), THISBACK(Run)).Key(K_F5); bar.MenuSeparator(); bar.Add(b, "Quick watch", THISBACK(QuickWatch)).Key(K_CTRL_Q); bar.MenuSeparator(); bar.Add(b, "Copy backtrace", THISBACK(CopyStack)); bar.Add(b, "Copy dissassembly", THISBACK(CopyDisas)); }
void GoogleTranslatorDemo::MenuSetLanguageFrom(Bar& currentBar, bool& need_translate) { String lang_from = outputwindow.fromlanguagectrl.GetKey(outputwindow.fromlanguagectrl.GetIndex()); String cur_lang_key; for(int i = 0; i < languageslist.GetCount(); ++i) { cur_lang_key = languageslist.GetKey(i); VectorMap<String, String> cur_parameter; cur_parameter.Add("LanguageFrom", cur_lang_key); cur_parameter.Add("NeedTranslate", need_translate ? "TRUE" : "FALSE"); if(cur_lang_key == lang_from) currentBar.Add(languageslist[i], GoogleTranslatorDemoImg::CurrentLang(), THISBACK1(MenuSetLanguageTo, cur_parameter)); else if (cur_lang_key == languagefrom) currentBar.Add(languageslist[i], GoogleTranslatorDemoImg::CurrentTranslatedLang(), THISBACK1(MenuSetLanguageTo, cur_parameter)); else currentBar.Add(languageslist[i], THISBACK1(MenuSetLanguageTo, cur_parameter)); } }
void MapEditor::OnChangeLevel() { int row = LevelList.GetCurrentRow(); if (row < 0) return; _map.GetLevels()[row].WhenCalculate = THISBACK1(OnLevelMapCalc, row); _map.GetLevels()[row].WhenMapList = THISBACK(OnLevelMapList); _map.GetLevels()[row].OpenProperties(); UpdateLevelList(); }
DlgCompareDir::DlgCompareDir() { CtrlLayout(*this, "Compare directories"); Sizeable().Zoomable(); refresh <<= THISBACK(CmdRefresh); splitter.Vert(tree, editor); editor << lineedit.SizePos() << qtf.SizePos(); qtf.Background(White()); qtf.SetFrame(InsetFrame()); path_a.AddFrame(browse_a); browse_a.SetImage(CtrlImg::right_arrow()); browse_a <<= THISBACK1(DoBrowse, &path_a); path_b.AddFrame(browse_b); browse_b.SetImage(CtrlImg::right_arrow()); browse_b <<= THISBACK1(DoBrowse, &path_b); file_mask <<= "*.cpp *.h *.hpp *.c *.C *.cxx *.cc *.lay *.iml *.upp *.sch *.dph"; tree.WhenCursor = THISBACK(DoTreeCursor); lineedit.SetReadOnly(); lineedit.SetFont(Courier(14)); }
void SqlObjectTree::ToolLocal(Bar& bar) { if(schema.IsCursor()) { const Item& item = ValueTo<Item>(~schema); switch(item.type) { case OBJ_TABLE_COLUMNS: { bar.Add(t_("Export"), THISBACK1(TableExport, item.schema + "." + item.object)); } } } }
PropertiesWindow::PropertiesWindow() { Sizeable().MaximizeBox(); _Item = NULL; _Index = -1; Add(_Headers.HSizePosZ().TopPos(0, _Headers.GD_ROW_HEIGHT)); _Headers.SetFrame(NullFrame()); _Headers.Editing().OneClickEdit(); _Headers.AddColumn(t_("Property")).SetDisplay(_TypeDisplay); _Headers.AddColumn(t_("Value")).SetDisplay(_TypeDisplay).Edit(_DropList); _Headers.Sorting(false); _Headers.HideRow(0); _Headers.FullColResizing(false); _DropList.Add("Button"); _DropList.Add("Label"); _DropList.Add("EditField"); _DropList.Add("EditInt"); _DropList.Add("DropDate"); _DropList.Add("TabCtrl"); _DropList.Add("GridCtrl"); _DropList.Add("ProgressBar"); _DropList.Add("Form"); _DropList.WhenAction = THISBACK1(OnEndEdit, 1); Add(_Options.HSizePosZ().VSizePos(_Headers.GD_ROW_HEIGHT, 0)); _Options.SetFrame(NullFrame()); _Options.Editing().OneClickEdit(); _Options.AddColumn(t_("Property")); _Options.AddColumn(t_("Value")).SetDisplay(_Display); _Options.SetInfo(t_("No properties")); _Options.HideRow(0); _Options.SetInfoOffset(_Options.GD_HDR_HEIGHT); _Options.FullColResizing(false); _Options.WhenChangeRow = THISBACK(OnStartEdit); _Options.WhenUpdateCell = THISBACK1(OnEndEdit, 0); }
void LegendTab::Init(ScatterCtrl& scatter) { CtrlLayout(*this); SizePos(); pscatter = &scatter; showLegend <<= scatter.GetShowLegend(); showLegend <<= THISBACK(Change); legendPosition <<= (scatter.GetLegendAnchor() == ScatterDraw::LEGEND_TOP ? 0 : 1); legendPosition <<= THISBACK(Change); legendAnchorRT = true; switch(scatter.GetLegendAnchor()) { case ScatterDraw::LEGEND_ANCHOR_LEFT_TOP: legendAnchorLT = true; break; case ScatterDraw::LEGEND_ANCHOR_RIGHT_TOP: legendAnchorRT = true; break; case ScatterDraw::LEGEND_ANCHOR_LEFT_BOTTOM: legendAnchorLB = true; break; case ScatterDraw::LEGEND_ANCHOR_RIGHT_BOTTOM: legendAnchorRB = true; break; } legendAnchorLT <<= THISBACK1(ChangeAnchor, &legendAnchorLT); legendAnchorRT <<= THISBACK1(ChangeAnchor, &legendAnchorRT); legendAnchorLB <<= THISBACK1(ChangeAnchor, &legendAnchorLB); legendAnchorRB <<= THISBACK1(ChangeAnchor, &legendAnchorRB); fillColor <<= scatter.GetLegendFillColor(); fillColor <<= THISBACK(Change); borderColor <<= scatter.GetLegendBorderColor(); borderColor <<= THISBACK(Change); Point p = scatter.GetLegendPos(); tableHoriz <<= p.x; tableHoriz <<= THISBACK(Change); tableVert <<= p.y; tableVert <<= THISBACK(Change); numCols <<= scatter.GetLegendNumCols(); numCols <<= THISBACK(Change); rowSpacing <<= scatter.GetLegendRowSpacing(); rowSpacing <<= THISBACK(Change); Change(); }
void DockWindow::ContainerDragMove(DockCont &dc) { HighlightCtrl &hl = GetHighlightCtrl(); Point p = GetMousePos(); if (hl.GetParent()) { if (!hl.bounds.Contains(p)) StopHighlight(IsAnimatedHighlight()); return KillTimeCallback(TIMEID_ANIMATE_DELAY); } animdelay ? KillSetTimeCallback(animdelay, THISBACK1(StartHighlight, &dc), TIMEID_ANIMATE_DELAY) : StartHighlight(&dc); }
void DockCont::DockContMenu::ContainerMenu(Bar &bar, DockCont *c, bool withgroups) { DockableCtrl *dc = &c->GetCurrent(); cont = c; // TODO: Need correct group filtering withgroups = false; // If grouping, find all groups DockMenu::WindowMenu(bar, dc); if (withgroups && dock->IsGrouping()) { Vector<String> groups; cont->GetGroups(groups); if (groups.GetCount()) { bar.Separator(); Sort(groups); for (int i = 0; i < groups.GetCount(); i++) bar.Add(groups[i], THISBACK1(GroupWindowsMenu, groups[i])); bar.Add(t_("All"), THISBACK1(GroupWindowsMenu, String(Null))); } } }
void Ide::DoDirDiff() { Index<String> dir; Vector<String> d = GetUppDirs(); for(int i = 0; i < d.GetCount(); i++) dir.FindAdd(d[i]); FindFile ff(ConfigFile("*.bm")); while(ff) { VectorMap<String, String> var; LoadVarFile(ff.GetPath(), var); Vector<String> p = Split(var.Get("UPP", String()), ';'); for(int i = 0; i < p.GetCount(); i++) dir.FindAdd(p[i]); ff.Next(); } String n = GetFileFolder(editfile); if(n.GetCount()) dir.FindAdd(n); SortIndex(dir); static DirDiffDlg dlg; dlg.diff.WhenLeftLine = THISBACK1(GotoDirDiffLeft, &dlg); dlg.diff.WhenRightLine = THISBACK1(GotoDirDiffRight, &dlg); for(int i = 0; i < dir.GetCount(); i++) { dlg.Dir1AddList(dir[i]); dlg.Dir2AddList(dir[i]); } if(d.GetCount()) dlg.Dir1(d[0]); if(!dlg.IsOpen()) { dlg.SetFont(veditorfont); dlg.Maximize(); dlg.Title("Compare directories"); dlg.OpenMain(); } else dlg.SetFocus(); }
void WorkspaceWork::RemovePackageMenu(Bar& bar) { if(bar.IsScanKeys() || bar.IsScanHelp() || !bar.IsMenuBar()) return; String active = UnixPath(GetActivePackage()); int usecnt = 0; for(int i = 0; i < package.GetCount(); i++) { String pn = UnixPath(package[i].name); Package prj; String pp = PackagePath(pn); prj.Load(pp); for(int i = 0; i < prj.uses.GetCount(); i++) if(UnixPath(prj.uses[i].text) == active) { usecnt++; bar.Add("Remove from '" + pn + '\'', THISBACK1(RemovePackage, pn)) .Help(NFormat("Remove package '%s' from uses section in '%s'", active, pp)); } } if(usecnt > 1) { bar.MenuSeparator(); bar.Add("Remove all uses", THISBACK1(RemovePackage, String(Null))) .Help(NFormat("Remove package '%s' from all uses in active project and its submodules", active)); } }
void MapEditor::OnAddLevel() { int row = LevelList.GetRowCount(); Level level; level.SetName(NFormat(t_("Level #%d"), _map.GetLevels().GetCount() + 1)); level.WhenMapList = THISBACK(OnLevelMapList); level.WhenCalculate = THISBACK1(OnLevelMapCalc, row); if (level.OpenProperties() != IDOK) return; _map.GetLevels().Add(level); UpdateLevelList(); }
void SelectPackageDlg::ToolBase(Bar& bar) { bar.Add("New assembly..", THISBACK(OnBaseAdd)) .Key(K_INSERT); bar.Add(base.IsCursor(), "Edit assembly..", THISBACK(OnBaseEdit)) .Key(K_CTRL_ENTER); bar.Add(base.IsCursor(), "Remove assembly", THISBACK(OnBaseRemove)) .Key(K_CTRL_DELETE); Vector<String> d = GetSvnDirs(); if(d.GetCount()) { bar.Separator(); for(int i = 0; i < d.GetCount(); i++) bar.Add("Synchronize " + d[i], IdeImg::svn_dir(), THISBACK1(SyncSvnDir, d[i])); bar.Add("Synchronize everything..", IdeImg::svn(), THISBACK(SyncSvnDirs)); } }
void MainDlg::OnLanguage(Bar& bar ) { const int* languages = GetAllLanguages(); // We have a tremendous amount of redundancy here... we'll use this as a filter. // Note that sometimes, the number changes, but it still comes up as 'English'. // This is perhaps because we don't have any translations for the other languages. VectorMap< String, int > oldLangs; for (int i = 0; languages[i] != 0; i++ ) { String langName = ::GetNativeLangName( languages[ i ] ); if ( oldLangs.Find( langName ) < 0 ) { bar.Add( langName , THISBACK1( OnChangeLanguage, languages[i] ) ); oldLangs.Add( langName, languages[i] ); } } }
void AutoHideBar::HideAnimate(Ctrl *c) { ASSERT(ctrl); // If the popup has a child popup active then reset timer and keep the popup visible Vector<Ctrl *> wins = Ctrl::GetTopCtrls(); for(int i = 0; i < wins.GetCount(); i++) { if (wins[i]->IsPopUp() && wins[i]->GetOwner() == &popup) { KillSetTimeCallback(autohide_timeout, THISBACK1(HideAnimate, ctrl), TIMEID_HIDE_TIMEOUT); return; } } DockTabBar::KillCursor(); #ifdef PLATFORM_WIN32 Rect r = popup.GetRect(); AdjustSize(r, -r.GetSize()); Animate(popup, r, GUIEFFECT_SLIDE); #endif popup.Close(); ctrl->Remove(); ctrl = NULL; }
void FormView::CreateObjectMenu(Bar& bar, int id) { int selCount = GetSelected().GetCount(); if (selCount > 1) bar.Add(t_("Align selected"), THISBACK(AlignObjectMenu)); if (selCount != GetObjectCount()) bar.Add(t_("Invert selection"), THISBACK(InvertSelection)); if ((selCount != GetObjectCount()) || selCount > 1) bar.Separator(); if (selCount == 1) { bar.Add(t_("Outline"), THISBACK1(ToggleOutlineDraw, id)).Check(IsOutlineDraw(id)); bar.Separator(); } if (selCount <= 1) { bar.Add(t_("Top"), THISBACK1(MoveToTopObject, id)); bar.Add(t_("Up"), THISBACK1(MoveUpObject, id)); bar.Add(t_("Down"), THISBACK1(MoveDownObject, id)); bar.Add(t_("Bottom"), THISBACK1(MoveToBottomObject, id)); bar.Separator(); } bar.Add(t_("Delete"), THISBACK(RemoveSelection)); if (selCount >= 1) { bar.Separator(); bar.Add(t_("Properties"), THISBACK1(OpenObjectProperties, GetSelected())); } }