VisGenDlg::VisGenDlg(LayoutData& layout, const Vector<int>& cursor) : layout(layout) { type <<= 0; CtrlLayoutOKCancel(*this, "Code generator"); type <<= THISBACK(Type); // needs to be before Refresh to maintain the proper order of action toupper1 << [=] { tolower1 <<= false; initcaps1 <<= false; }; tolower1 << [=] { toupper1 <<= false; initcaps1 <<= false; }; initcaps1 << [=] { toupper1 <<= false; tolower1 <<= false; }; toupper2 << [=] { tolower2 <<= false; initcaps2 <<= false; }; tolower2 << [=] { toupper2 <<= false; initcaps2 <<= false; }; initcaps2 << [=] { toupper2 <<= false; tolower2 <<= false; }; for(Ctrl *q = GetFirstChild(); q; q = q->GetNext()) if(dynamic_cast<Option *>(q)) *q << [=] { Refresh(); }; name << [=] { Refresh(); }; Refresh(); view.Highlight("cpp"); view.HideBar(); view.SetFont(CourierZ(12)); if(cursor.GetCount()) sel <<= cursor; else for(int i = 0; i < layout.item.GetCount(); i++) sel.Add(i); }
VisualTest::VisualTest() { CtrlLayoutOKCancel(*this, "Window title"); list.HeaderObject().Absolute(); for(int i = 0; i < 5; i++) list.AddColumn(AsString(i), 100).HeaderTab().WhenAction = callback(Test); for(int i = 0; i < 100; i++) { list.Add(i); droplist.Add(i); } tabs.Add().Text("A"); tabs.Add().Text("B"); // tabs.Add().Text("BVB"); // tabs.Add().Text("Baas"); // tabs.Add().Text("Basdasd"); // tabs.Add().Text("Basdasdasd"); // tabs.Add().Text("Basdasdasdasdasd"); Sizeable().Zoomable(); disabled.Disable(); pi.Set(44, 0); slider.Range(100); slider <<= THISBACK(PI); bo.SetImage(CtrlImg::cut()); exit.Exit(); bo.Disable(); SetTimeCallback(-50, THISBACK(PI)); dc.AddList("Test"); }
Tpp() { CtrlLayoutOKCancel(*this, "Insert topic group"); group.AddKey(); group.AddColumn("Group"); group.WhenSel = THISBACK(Sync); name.SetFilter(CharFilterAlpha); }
void LayoutDesigner::SetupGrid() { CtrlLayoutOKCancel(grid, "Grid settings"); grid.x.MinMax(1, 32); grid.y.MinMax(1, 32); grid.Backup(); grid.Execute(); }
void RichEdit::SetStyle() { if(!IsSelection()) { NextUndo(); WithSetStyleLayout<TopWindow> d; CtrlLayoutOKCancel(d, t_("Set style")); d.newstyle <<= d.Breaker(IDYES); d.style.AddKey(); d.style.AddColumn(); d.style.NoHeader().NoGrid(); for(int i = 0; i < text.GetStyleCount(); i++) d.style.Add(text.GetStyleId(i), text.GetStyle(i).name); d.style.Sort(1, CompareStyle); int q = d.style.Find(RichStyle::GetDefaultId()); if(q >= 0) d.style.SetDisplay(q, 0, Single<DisplayDefault>()); d.style.FindSetCursor(formatinfo.styleid); RichStyle cs; cs.format = formatinfo; cs.format.sscript = 0; cs.format.link.Clear(); cs.format.indexentry.Clear(); cs.format.language = LNG_ENGLISH; cs.format.label.Clear(); Uuid id; switch(d.Run()) { case IDCANCEL: return; case IDOK: if(d.style.IsCursor()) { id = d.style.GetKey(); const RichStyle& st = text.GetStyle(id); cs.name = st.name; cs.next = st.next; SaveStyleUndo(id); break; } return; case IDYES: String newname; if(EditText(newname, Format(t_("New style no. %d"), text.GetStyleCount()), "Name", CharFilterAscii128)) { cs.name = newname; id = Uuid::Create(); cs.next = id; SaveStylesUndo(); break; } return; } text.SetStyle(id, cs); ReadStyles(); formatinfo.styleid = id; SaveFormat(GetCursor(), 0); text.ReStyle(GetCursor(), id); Finish(); } }
ImportDlg::ImportDlg() { CtrlLayoutOKCancel(*this, "Import directory tree into package"); folder.AddFrame(dir); dir <<= THISBACK(SetFolder); dir.SetImage(CtrlImg::smallright()).NoWantFocus(); files <<= "*.cpp *.h *.hpp *.c *.C *.cxx *.cc"; }
EditFieldApp::EditFieldApp() { CtrlLayoutOKCancel(*this, "Test"); // set <<= THISBACK(Set); // ef1.NullText("(default)"); // ef2.AutoSize(); ef1 <<= "Something to copy"; }
DlgAlias::DlgAlias() { CtrlLayoutOKCancel(*this, "Object alias map"); list.AutoHideSb(); list.AddColumn("Source object").Edit(obj_source); list.AddColumn("Alias object").Edit(obj_dest); list.Inserting().Removing().NoAskRemove(); }
NavDlg::NavDlg() { CtrlLayoutOKCancel(*this, "Navigator"); dlgmode = true; search.WhenEnter.Clear(); Sizeable().Zoomable(); Icon(IdeImg::Navigator()); }
void IdeIconDes::FileProperties() { WithFilePropertiesLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "File properties"); dlg.format <<= format; if(dlg.Run() == IDOK) format = ~dlg.format; }
void MainConfigDlg::FlagDlg() { WithConfLayout<TopWindow> cfg; CtrlLayoutOKCancel(cfg, "Configuration flags"); cfg.Sizeable().MaximizeBox(); Vector<String> flg = SplitFlags0(String(fe)); Vector<String> accepts = wspc.GetAllAccepts(0); Sort(accepts, GetLanguageInfo()); enum { CC_SET, CC_NAME, CC_PACKAGES, CC_COUNT }; cfg.accepts.AddColumn("Set").Ctrls(sSetOption).HeaderTab().Fixed(40); cfg.accepts.AddColumn("Flag", 1); cfg.accepts.AddColumn("Packages", 2); cfg.accepts.SetCount(accepts.GetCount()); for(int i = 0; i < accepts.GetCount(); i++) { String acc = accepts[i]; Vector<String> pkg; for(int p = 0; p < wspc.GetCount(); p++) if(FindIndex(wspc.package[p].accepts, acc) >= 0) pkg.Add(wspc[p]); Sort(pkg, GetLanguageInfo()); cfg.accepts.Set(i, CC_NAME, accepts[i]); cfg.accepts.Set(i, CC_PACKAGES, Join(pkg, ",")); } cfg.other.SetFilter(FlagFilterM); cfg.dll <<= cfg.gui <<= cfg.mt <<= cfg.sse2 <<= 0; String other; for(int i = 0; i < flg.GetCount(); i++) { String f = flg[i]; if(!SetSw(f, cfg.dll, "DLL") && !SetSw(f, cfg.gui, "GUI") && !SetSw(f, cfg.mt, "MT") && !SetSw(f, cfg.sse2, "SSE2")) { int x = (*f == '.' ? cfg.accepts.Find(f.Mid(1), CC_NAME) : -1); if(x >= 0) cfg.accepts.Set(x, CC_SET, true); else { if(!other.IsEmpty()) other << ' '; other << f; } } } cfg.other <<= other; if(cfg.Run() == IDOK) { String flags; flags << GetSw(cfg.dll, "DLL") << GetSw(cfg.gui, "GUI") << GetSw(cfg.mt, "MT") << GetSw(cfg.sse2, "SSE2"); for(int i = 0; i < cfg.accepts.GetCount(); i++) if(cfg.accepts.Get(i, CC_SET)) flags << '.' << cfg.accepts.Get(i, CC_NAME) << ' '; flags << cfg.other.GetText().ToString(); fe = Join(SplitFlags0(flags), " ").ToWString(); } }
void Ide::RunArgs() { WithRunLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "Run options"); SelectDirButton dir_browse("Run in folder"); dir_browse.Attach(dlg.dir); dlg.dir = rundir.ToWString(); dlg.arg <<= runarg; { StringStream ss(recent_runarg); dlg.arg.SerializeList(ss); } SaveFileButton stdout_browse("Save STDOUT as"); stdout_browse.Type("Text files (*.txt)", "*.txt").AllFilesType(); stdout_browse.Attach(dlg.stdout_file); { StringStream ss(recent_stdout_file); dlg.stdout_file.SerializeList(ss); dlg.stdout_file <<= stdout_file; } dlg.runmode <<= runmode; dlg.external = runexternal; dlg.runmode <<= dlg.Breaker(222); for(;;) { int rm = ~dlg.runmode; dlg.stdout_file.Enable(rm == RUN_FILE || rm == RUN_FILE_CONSOLE); switch(dlg.Run()) { case IDOK: rundir = dlg.dir; runarg = ~dlg.arg; runmode = ~dlg.runmode; runexternal = dlg.external; stdout_file = ~dlg.stdout_file; dlg.arg.AddHistory(); { StringStream ss; dlg.arg.SerializeList(ss); recent_runarg = ss; } { StringStream ss; dlg.stdout_file.SerializeList(ss); recent_stdout_file = ss; } return; case IDCANCEL: return; } } }
DlgCalc::DlgCalc() { calc_context = NULL; CtrlLayoutOKCancel(*this, DlgCalcHelpTitle()); HelpTopic("DlgCalc"); result.SetReadOnly(); result.SetConvert(CFormatConvert()); store <<= THISBACK(CmdStore); }
NewPackageFileWindow::NewPackageFileWindow() { CtrlLayoutOKCancel(*this, "New package file"); type.SetLineCy(max(Zy(16), Draw::GetStdFontCy())); type.SetDropLines(20); Type("cpp", "C++ source file"); Type("h", "C++ header file"); type.AddSeparator(); Type("lay", "Layout file (dialog templates)"); Type("iml", "Image file (icons)"); Type("icpp", "Initialization C++ source file"); Type("usc", "Escape script file (scripting TheIDE)"); Type("witz", "Skylark template file (web framework files)"); Type("qtf", "U++ rich text file"); type.AddSeparator(); Type("json", "JSON file"); Type("xml", "XML file"); Type("html", "HTML file"); Type("css", "CSS file"); type.AddSeparator(); Type("sch", "SQL schema file"); Type("ddl", "SQL DDL script file"); Type("sql", "SQL script file"); type.AddSeparator(); Type("java", "Java"); Type("js", "JavaScript"); Type("py", "Python"); type.AddSeparator(); Type("", "Other"); name << [=] { String ext = GetFileExt(~~name); if(ext.GetCount()) { ext = ext.Mid(1); type <<= type.HasKey(ext) ? ext : Null; } Sync(); }; name <<= ".cpp"; type <<= "cpp"; type << [=] { String ext = ~type; if(ext.GetCount()) { String h = ~name; name <<= ForceExt(h, "." + ext); int q = GetFileTitle(h).GetCount(); name.SetSelection(q, q); } Sync(); }; Sync(); }
BaseSetupDlg::BaseSetupDlg() : browse_out("Output & intermediate files") { CtrlLayoutOKCancel(*this, "Assembly setup"); browse_upp.SetImage(CtrlImg::right_arrow()); browse_upp <<= THISBACK(OnBrowseUpp); upp.AddFrame(browse_upp); upp <<= THISBACK(OnUpp); browse_out.Attach(output); }
MainConfigDlg::MainConfigDlg(const Workspace& wspc_) : wspc(wspc_) { CtrlLayoutOKCancel(*this, "Main package configuration(s)"); fe.AddFrame(cb); fe.SetFilter(FlagFilterM); cb.SetImage(CtrlImg::smallright()).NoWantFocus(); cb <<= THISBACK(FlagDlg); list.AddColumn("Flags", 3).Edit(fe); list.AddColumn("Optional name", 2).Edit(ce); list.Appending().Removing(); }
SelectAndroidDeviceDlg::SelectAndroidDeviceDlg(AndroidSDK* sdk) : sdk(sdk) { CtrlLayoutOKCancel(*this, "Android device selection"); devicesArray.AddColumn("Serial Number"); devicesArray.AddColumn("State"); refresh <<= THISBACK(OnRefresh); LoadDevices(); }
TopicLinkDlg::TopicLinkDlg() { CtrlLayoutOKCancel(*this, "Hyperlink"); package.WhenKillCursor = package.WhenEnterItem = THISBACK(Package); group.WhenKillCursor = group.WhenEnterItem = THISBACK(Group); topic.WhenKillCursor = topic.WhenEnterItem = THISBACK(Topic); label.WhenKillCursor = label.WhenEnterItem = THISBACK(Label); const Workspace& wspc = GetIdeWorkspace(); for(int i = 0; i < wspc.GetCount(); i++) package.Add(wspc[i]); insert <<= Breaker(IDYES); }
void RichEdit::CellProperties() { if(!(tablesel || cursorp.table && !IsSelection())) return; WithCellPropertiesLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, t_("Cell properties")); int tab; Rect a; if(tablesel) { tab = tablesel; a = cells; } else { tab = cursorp.table; a = Rect(cursorp.cell, Size(0, 0)); } RichCell::Format fmt = text.GetCellFormat(tab, a); CtrlRetriever r; r (dlg.leftb.SetUnit(unit), fmt.border.left) (dlg.rightb.SetUnit(unit), fmt.border.right) (dlg.topb.SetUnit(unit), fmt.border.top) (dlg.bottomb.SetUnit(unit), fmt.border.bottom) (dlg.leftm.SetUnit(unit), fmt.margin.left) (dlg.rightm.SetUnit(unit), fmt.margin.right) (dlg.topm.SetUnit(unit), fmt.margin.top) (dlg.bottomm.SetUnit(unit), fmt.margin.bottom) (dlg.align, fmt.align) (dlg.minheight.SetUnit(unit), fmt.minheight) (dlg.color, fmt.color) (dlg.border, fmt.bordercolor) (dlg.keep, fmt.keep) (dlg.round, fmt.round) ; dlg.align.Set(0, ALIGN_TOP); dlg.align.Set(1, ALIGN_CENTER); dlg.align.Set(2, ALIGN_BOTTOM); dlg.color.WithVoid().VoidText(t_("(no change)")); dlg.border.WithVoid().VoidText(t_("(no change)")); if(tablesel) { dlg.keep.ThreeState(); dlg.keep <<= Null; dlg.round.ThreeState(); dlg.round <<= Null; } if(dlg.Run() != IDOK) return; r.Retrieve(); NextUndo(); SaveTable(tab); text.SetCellFormat(tab, a, fmt, !tablesel || !IsNull(dlg.keep), !tablesel || !IsNull(dlg.round)); Finish(); }
SelectPackageDlg::SelectPackageDlg(const char *title, bool selectvars_, bool main) : selectvars(selectvars_) { CtrlLayoutOKCancel(*this, title); Sizeable().Zoomable(); Icon(IdeImg::MainPackage(), IdeImg::PackageLarge()); base.AutoHideSb(); base.NoGrid(); base.AddColumn("Assembly"); base.WhenCursor = THISBACK(OnBase); base.WhenBar = THISBACK(ToolBase); base.WhenLeftDouble = THISBACK(OnBaseEdit); ok.WhenAction = clist.WhenLeftDouble = alist.WhenLeftDouble = THISBACK(OnOK); cancel.WhenAction = WhenClose = THISBACK(OnCancel); clist.Columns(4); clist.WhenEnterItem = clist.WhenKillCursor = THISBACK(ListCursor); alist.AddColumn("Package").Add(3); alist.AddColumn("Nest"); alist.AddColumn("Description"); alist.AddIndex(); alist.ColumnWidths("108 79 317"); alist.WhenCursor = THISBACK(ListCursor); alist.EvenRowColor(); alist.SetLineCy(max(Zy(16), Draw::GetStdFontCy())); list.Add(clist.SizePos()); list.Add(alist.SizePos()); splitter.Horz(base, list); splitter.SetPos(2000); splitter.Zoom(selectvars ? -1 : 1); newu <<= THISBACK(OnNew); filter <<= THISBACK(OnFilter); filter.Add(MAIN|FIRST, "Main packages of first nest"); filter.Add(MAIN, "All main packages"); filter.Add(FIRST, "All packages of first nest"); filter.Add(0, "All packages"); filter <<= main ? MAIN|FIRST : 0; progress.Hide(); brief <<= THISBACK(SyncBrief); search.NullText("Search (Ctrl+K)", StdFont().Italic(), SColorDisabled()); search <<= THISBACK(SyncList); search.SetFilter(CharFilterDefaultToUpperAscii); SyncBrief(); description.NullText("Package description (Alt+Enter)", StdFont().Italic(), SColorDisabled()); description <<= THISBACK(ChangeDescription); ActiveFocus(brief ? (Ctrl&)clist : (Ctrl&)alist); clist.BackPaintHint(); alist.BackPaintHint(); base.BackPaintHint(); loadi = 0; loading = false; clist.WhenBar = alist.WhenBar = THISBACK(PackageMenu); }
void LayoutDesigner::RenameLayout() { if(layouti < 0) return; WithLayoutLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "Rename Layout"); dlg.ActiveFocus(dlg.layout); dlg.layout.SetFilter(FilterCid); dlg.layout = layout[layouti].name; if(dlg.Run() == IDOK) { layout[layouti].name = dlg.layout; SetupLayoutList(); SetLayout(layouti); } }
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); }
void LayoutDesigner::NewLayout() { WithLayoutLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "New Layout"); dlg.layout.SetFilter(FilterCid); dlg.ActiveFocus(dlg.layout); if(dlg.Run() == IDOK) { int i = layout.GetCount(); Form& l = layout.Add(); l.name = dlg.layout; l.size = Size(400, 200); SetupLayoutList(); SetLayout(i); } }
TemplateDlg::TemplateDlg() { CtrlLayoutOKCancel(*this, "Create new package"); Sizeable().Zoomable(); description <<= THISBACK(Preview); delay <<= THISBACK(Preview); delay.SetDelay(300); templist.AddColumn("Template"); templist.WhenEnterRow = THISBACK(EnterTemplate); ok.Disable(); package <<= THISBACK(EnableCreate); package.SetFilter(FilterPackageName); Icon(IdeImg::CreatePackage()); }
DlgSqlExport::DlgSqlExport() { CtrlLayoutOKCancel(*this, ""); columns.AddColumn(t_("Column name")); columns.AddColumn(t_("Type")); columns.AddColumn(t_("Width")); HeaderCtrl::Column& hc = exp.AddColumn(columns, "").Margin(0).HeaderTab(); hc.SetMargin(0).Fixed(18).SetAlign(ALIGN_CENTER).SetImage(CtrlImg::smallcheck()); hc.WhenAction = THISBACK(Toggle); format <<= FMT_TEXT; delimiters <<= DELIM_SEMICOLON; quote <<= true; format <<= THISBACK(SyncUI); }
void DlgCalc::CmdStore() { WithCalcStoreLayout<TopWindow> stdlg; CtrlLayoutOKCancel(stdlg, NFormat("Store %vt", result_val)); stdlg.var.SetFilter(CharFilterCalcIdent); stdlg.list.AddColumn("Variable"); stdlg.list.AddColumn("Value"); const CalcSymbols& tos = calc_context->stack.Top(); Vector<int> order = GetSortOrder(tos.var_index); for(int i = 0; i < order.GetCount(); i++) { int o = order[i]; stdlg.list.Add(tos.var_index[o], tos.var_value[o]); } if(stdlg.Run() == IDOK) calc_context->Set(~stdlg.var, result_val, true); }
void Ide::ConstructFindInFiles() { ff.find.AddButton().SetMonoImage(CtrlImg::smallright()).Tip("Wildcard") <<= THISBACK(FindWildcard); static const char *defs = "*.cpp *.h *.hpp *.c *.m *.C *.M *.cxx *.cc *.mm *.MM *.icpp *.sch *.lay *.rc"; ff.files <<= String(defs); ff.files.AddList((String)defs); ff.files.AddList((String)"*.txt"); ff.files.AddList((String)"*.*"); ff.folder.AddButton().SetMonoImage(CtrlImg::smalldown()).Tip("Related folders") <<= THISBACK(FindStdDir); ff.folder.AddButton().SetMonoImage(CtrlImg::smallright()).Tip("Select folder") <<= THISBACK(FindFolder); editor.PutI(ff.find); editor.PutI(ff.replace); CtrlLayoutOKCancel(ff, "Find In Files"); ff.ignorecase <<= THISBACK(SyncFindInFiles); ff.samecase <<= true; SyncFindInFiles(); }
void SelectPackageDlg::RenamePackage() { String n = GetCurrentName(); if(IsNull(n)) return; WithRenamePackageLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "Rename package"); dlg.name.SetFilter(FilterPackageName); dlg.name <<= n; dlg.name.SelectAll(); again: if(dlg.Execute() != IDOK) return; if(!RenamePackageFs(PackagePath(GetCurrentName()), ~dlg.name)) goto again; Load(); }
void RichEdit::SplitCell() { if(IsSelection() || !cursorp.table) return; WithSplitCellLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, t_("Split cell")); dlg.cx.MinMax(1, 20).NotNull(); dlg.cx <<= 1; dlg.cy.MinMax(1, 20).NotNull(); dlg.cy <<= 1; if(dlg.Execute() != IDOK) return; NextUndo(); SaveTable(cursorp.table); text.SplitCell(cursorp.table, cursorp.cell, Size(~dlg.cx, ~dlg.cy)); Finish(); }
void WorkspaceWork::RenamePackage() { if(IsAux() || !package.IsCursor()) return; WithRenamePackageLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "Rename package"); dlg.name.SetFilter(FilterPackageName); dlg.name <<= package.Get(package.GetCursor()).name; dlg.name.SelectAll(); again: if(dlg.Execute() != IDOK) return; String pn = ~dlg.name; if(!RenamePackageFs(GetActivePackage(), pn)) goto again; PackageOp(GetActivePackage(), Null, pn); }