本文整理汇总了C++中Bar::IsMenuBar方法的典型用法代码示例。如果您正苦于以下问题:C++ Bar::IsMenuBar方法的具体用法?C++ Bar::IsMenuBar怎么用?C++ Bar::IsMenuBar使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bar
的用法示例。
在下文中一共展示了Bar::IsMenuBar方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FileBar
void UWord::FileBar(Bar& bar)
{
bar.Add("New", CtrlImg::new_doc(), THISBACK(New))
.Key(K_CTRL_N)
.Help("Open new window");
bar.Add("Open..", CtrlImg::open(), THISBACK(Open))
.Key(K_CTRL_O)
.Help("Open existing document");
bar.Add(editor.IsModified(), "Save", CtrlImg::save(), THISBACK(Save))
.Key(K_CTRL_S)
.Help("Save current document");
bar.Add("SaveAs", CtrlImg::save_as(), THISBACK(SaveAs))
.Help("Save current document with a new name");
bar.ToolGap();
bar.MenuSeparator();
bar.Add("Print..", CtrlImg::print(), THISBACK(Print))
.Key(K_CTRL_P)
.Help("Print document");
bar.Add("Export to PDF..", UWordImg::pdf(), THISBACK(Pdf))
.Help("Export document to PDF file");
if(bar.IsMenuBar()) {
if(lrufile().GetCount())
lrufile()(bar, THISBACK(OpenFile));
bar.Separator();
bar.Add("Exit", THISBACK(Destroy));
}
}
示例2: Setup
void Ide::Setup(Bar& menu)
{
menu.Add("Be verbose", THISBACK(ToggleVerboseBuild))
.Check(console.verbosebuild)
.Help("Log detailed description of build and debug");
menu.Add("Environment..", THISBACK(SetupFormat))
.Help("Fonts, tabs, indentation, status bar");
menu.Add("Abbreviations..", THISBACK(Abbreviations))
.Help("Edit abbreviation keywords and code");
menu.Add("Keyboard shortcuts..", THISBACK(DoEditKeys))
.Help("Edit key bindings");
menu.Add("Build methods..", THISBACK(SetupBuildMethods))
.Help("Setup build methods");
#ifdef PLATFORM_WIN32
menu.Add("Automatic setup..", THISBACK(AutoSetup))
.Help("Automatic setup of build methods..");
#endif
#ifdef PLATFORM_POSIX
menu.Add("Source managment..", THISBACK(AutoSetup))
.Help("Source code updater settings..");
#endif
if(menu.IsMenuBar())
SetupMobilePlatforms(menu);
#ifdef PLATFORM_POSIX
if(UpdaterCfg().method%2==0) { //local copy or svn
menu.Separator();
if(UpdaterCfg().available)
menu.Add("Install updates..", IdeImg::install_updates(), THISBACK(CheckUpdatesManual))
.Help("Install newer version of source codes..");
else
menu.Add("Check for updates..", IdeImg::check_updates(), THISBACK(CheckUpdatesManual))
.Help("Check for availability of newer source codes..");
}
#endif
}
示例3: MacroMenu
void Ide::MacroMenu(Bar& menu)
{
const Array<IdeMacro>& mlist = UscMacros();
if(!mlist.IsEmpty() && menu.IsMenuBar()) {
VectorMap< String, Vector<int> > submenu_map;
for(int i = 0; i < mlist.GetCount(); i++) {
const IdeMacro& m = mlist[i];
if(!IsNull(m.menu)) {
if(IsNull(m.submenu))
submenu_map.GetAdd(Null).Add(i);
else
submenu_map.GetAdd(m.menu).Add(i);
}
}
if(!submenu_map.IsEmpty()) {
Vector<int> order = GetSortOrder(submenu_map.GetKeys());
for(int o = 0; o < order.GetCount(); o++) {
String m = submenu_map.GetKey(order[o]);
Vector<int>& mx = submenu_map[order[o]];
ValueArray va;
for(int i = 0; i < mx.GetCount(); i++)
va.Add(mx[i]);
if(!IsNull(m))
menu.Add(m, THISBACK1(EditMacroMenu, va));
else
EditMacroMenu(menu, va);
}
}
}
}
示例4: DebugMenu
void Ide::DebugMenu(Bar& menu)
{
bool b = idestate == EDITING && !IdeIsDebugLock();
if(debugger) {
debugger->DebugBar(menu);
menu.MenuSeparator();
}
else {
if(console.IsRunning())
menu.Add("Stop !", THISBACK(StopDebug))
.Help("Stop controlled process");
if(menu.IsMenuBar())
menu.Add(AK_RUNOPTIONS, THISBACK(RunArgs))
.Help("Current directory, command line, stdout redirection");
menu.Add(b, AK_EXECUTE, IdeImg::execute(), THISBACK(BuildAndExecute))
.Help("Build and execute the application");
menu.Add(b, AK_DEBUG, IdeImg::debug_run(), THISBACK1(BuildAndDebug, false))
.Help("Build application & run debugger");
if(menu.IsMenuBar()) {
menu.Add(b, AK_DEBUGTO, THISBACK1(BuildAndDebug, true))
.Help("Build application & run to cursor in debugger");
menu.Add(b, AK_DEBUGEXT, THISBACK(BuildAndExtDebug))
.Help("Build application & run external debugger (see Base setup, default \"msdev.exe\")");
menu.Add(b, AK_DEBUGFILEEXT, THISBACK(BuildAndExtDebugFile))
.Help("Build application & run external debugger, trying to start with current file");
#ifdef PLATFORM_POSIX
if(IsValgrind())
menu.Add(b, AK_VALGRIND, THISBACK(Valgrind))
.Help("Build application & run in valgring");
#endif
menu.Separator();
}
}
if(menu.IsMenuBar()) {
menu.Add(!editfile.IsEmpty() /*&& !debuglock*/, AK_BREAKPOINT, THISBACK(DebugToggleBreak))
.Help("Set / clear breakpoint on current line");
menu.Add(!editfile.IsEmpty(), AK_CONDBREAKPOINT, THISBACK(ConditionalBreak))
.Help("Edit conditional breakpoint");
menu.Add(!editfile.IsEmpty() /*&& !debuglock*/, AK_CLEARBREAKPOINTS, THISBACK(DebugClearBreakpoints))
.Help("Clear all breakpoints");
menu.Separator();
menu.Add(target.GetCount() && FileExists(GetLogPath()), AK_OPENLOG, THISBACK(OpenLog));
}
}
示例5: BrowseMenu
void Ide::BrowseMenu(Bar& menu)
{
if(!IsEditorMode()) {
if(menu.IsMenuBar()) {
menu.AddMenu(AK_NAVIGATOR, IdeImg::Navigator(), THISBACK(ToggleNavigator))
.Check(editor.IsNavigator());
menu.Add(AK_GOTO, THISBACK(SearchCode));
menu.Add(AK_GOTOGLOBAL, THISBACK(NavigatorDlg));
menu.Add(!designer, AK_JUMPS, THISBACK(ContextGoto));
menu.Add(!designer, AK_SWAPS, THISBACK(SwapS));
menu.Add(!designer, AK_ASSIST, callback(&editor, &AssistEditor::Assist));
menu.Add(!designer, AK_DCOPY, callback(&editor, &AssistEditor::DCopy));
menu.Add(!designer, AK_VIRTUALS, callback(&editor, &AssistEditor::Virtuals));
menu.Add(!designer, AK_THISBACKS, callback(&editor, &AssistEditor::Thisbacks));
menu.Add(!designer, AK_COMPLETE, callback(&editor, &AssistEditor::Complete));
menu.Add(!designer, AK_ABBR, callback(&editor, &AssistEditor::Abbr));
menu.Add(!designer, "Insert", THISBACK(InsertMenu));
menu.MenuSeparator();
}
menu.Add("Go back", IdeImg::AssistGoBack(), THISBACK1(History, -1))
.Key(K_ALT_LEFT)
.Enable(GetHistory(-1) >= 0);
menu.Add("Go forward", IdeImg::AssistGoForward(), THISBACK1(History, 1))
.Key(K_ALT_RIGHT)
.Enable(GetHistory(1) >= 0);
if(menu.IsMenuBar()) {
menu.MenuSeparator();
menu.Add("Check source files for changes", THISBACK(CheckCodeBase));
menu.Add("Reparse source files", THISBACK(RescanCode));
menu.MenuSeparator();
}
}
if(menu.IsMenuBar()) {
menu.AddMenu(AK_CALC, IdeImg::calc(), THISBACK1(ToggleBottom, BCALC))
.Check(IsBottomShown() && btabs.GetCursor() == BCALC);
menu.AddMenu(AK_QTF, IdeCommonImg::Qtf(), THISBACK(Qtf));
menu.AddMenu(!designer, AK_XML, IdeCommonImg::xml(), THISBACK(Xml));
menu.AddMenu(!designer, AK_JSON, IdeCommonImg::json(), THISBACK(Json));
menu.AddMenu(AK_DIRDIFF, DiffImg::DirDiff(), THISBACK(DoDirDiff));
}
}
示例6: Project
void Ide::Project(Bar& menu)
{
if(menu.IsToolBar() && !debugger && !IsEditorMode())
{
mainconfiglist.Enable(idestate == EDITING);
buildmode.Enable(idestate == EDITING);
menu.Add(mainconfiglist, HorzLayoutZoom(180));
menu.Gap(4);
menu.Add(buildmode, HorzLayoutZoom(180));
menu.Separator();
}
if(!IsEditorMode()) {
WorkspaceWork::PackageMenu(menu);
menu.MenuSeparator();
menu.Add(AK_ORGANIZER, IdeImg::package_organizer(), THISBACK(EditWorkspace))
.Help("Package dependencies, compiler & linker options, output path override");
menu.Add(AK_CUSTOM, THISBACK(CustomSteps))
.Help("Building intermediate files using custom commands / applications");
if(menu.IsMenuBar())
menu.Add(AK_MAINCONFIG, IdeImg::main_package(), THISBACK(MainConfig))
.Help("Configuring compiler, operating system, output application parameters, custom flags");
menu.Separator();
menu.Add(AK_SYNCT, IdeImg::Language(), THISBACK1(SyncT, 0))
.Help("Synchronize all language translation files of current workspace");
menu.AddMenu(AK_TRIMPORT, IdeImg::Language(), THISBACK1(SyncT, 1))
.Help("Import runtime translation file");
menu.AddMenu(AK_TREXPORT, IdeImg::Language(), THISBACK1(SyncT, 2))
.Help("Export runtime translation file");
if(OldLang())
menu.Add("Convert s_ -> t_", THISBACK(ConvertST));
}
FilePropertiesMenu(menu);
if(!IsEditorMode()) {
if(svn_dirs) {
if(menu.IsMenuBar())
menu.Add("SVN", THISBACK(ProjectSvn));
else
menu.Add("SVN Synchronize everything..", IdeImg::svn(), THISBACK(SyncSvn));
}
}
}
示例7: BuildMenu
void Ide::BuildMenu(Bar& menu)
{
bool b = !IdeIsDebugLock();
menu.Add(AK_OUTPUTMODE, THISBACK(SetupOutputMode))
.Help("Setup how to build the target");
if(idestate == BUILDING)
menu.Add(b, "Stop build", IdeImg::build_stop(), THISBACK(StopBuild))
.Key(AK_BUILD)
.Help("Stop building");
else
menu.Add(b, "Build", IdeImg::build_make(), THISBACK(DoBuild))
.Key(AK_BUILD)
.Help("Perform minimal application rebuild");
b = b && idestate == EDITING;
menu.Add(b, AK_CLEAN, THISBACK(Clean))
.Help("Remove all intermediate files");
menu.Add(b, AK_REBUILDALL, IdeImg::build_rebuild_all(), THISBACK(RebuildAll))
.Help("Remove all intermediate files & build");
menu.Add(b, AK_CLEANUPPOUT, THISBACK(CleanUppOut))
.Help("Remove all files and subdirectories in the output & intermediate directory (see Base setup)");
// menu.MenuSeparator();
// menu.Add(b, AK_CREATEMAKEFILE, THISBACK(CreateMakefile))
// .Help("Create makefile enabling IDE-independent project building");
menu.MenuSeparator();
if(menu.IsMenuBar())
BuildPackageMenu(menu);
BuildFileMenu(menu);
menu.MenuSeparator();
menu.Add("Stop on errors", THISBACK(ToggleStopOnErrors))
.Check(stoponerrors)
.Help("Stop build after package when the package has errors");
menu.MenuSeparator();
bool ff = btabs.GetCursor() == BFINDINFILES;
String hh = ff ? "position" : "error line";
bool ffb = ff ? ffound.GetCount() : error.GetCount();
menu.Add(ffb, AK_FINDNEXTERROR, THISBACK(FindNextError))
.Help("Find next " + hh + "according to console pane");
menu.Add(ffb, AK_FINDPREVERROR, THISBACK(FindPrevError))
.Help("Find previous " + hh + "according to console pane");
#if defined(PLATFORM_WIN32) || defined(PLATFORM_POSIX)
menu.MenuSeparator();
menu.Add(!IsNull(target), AK_OPENOUTDIR, THISBACK(OpenOutputFolder));
#endif
}
示例8: operator
void LRUList::operator()(Bar& bar, Callback1<const String&> WhenSelect)
{
if(bar.IsMenuBar() && !lru.IsEmpty()) {
bar.Separator();
char n = '1';
for(int i = 0; i < lru.GetCount(); i++) {
bar.Add(String("&") + n + ' ' + GetFileName(lru[i]),
THISBACK2(Select, lru[i], WhenSelect));
n = n == '9' ? 'A' : n + 1;
}
}
}
示例9: PackageMenu
void WorkspaceWork::PackageMenu(Bar& menu)
{
if(!menu.IsScanKeys()) {
bool cando = !IsAux() && package.IsCursor();
String act = UnixPath(GetActivePackage());
menu.Add(cando, ~NFormat("Add package to '%s'", act), IdeImg::package_add(), THISBACK(AddNormalUses));
RemovePackageMenu(menu);
if(menu.IsMenuBar()) {
menu.Add(cando, "Rename package..", THISBACK(RenamePackage));
menu.Add(cando, "Delete package", THISBACK(DeletePackage));
menu.Separator();
menu.Add(cando, "Optimize for speed", THISBACK(TogglePackageSpeed))
.Check(actual.optimize_speed);
menu.Separator();
BuildPackageMenu(menu);
menu.Add("Open Package Directory",THISBACK(OpenPackageFolder));
}
}
}
示例10: RemovePackageMenu
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));
}
}
示例11: File
void Ide::File(Bar& menu)
{
menu.Add(AK_SETMAIN, THISBACK(NewMainPackage))
.Help("Select global configuration (var), select / add main project package");
menu.AddMenu(AK_EDITFILE, CtrlImg::open(), THISBACK(EditAnyFile))
.Help("Select any file in file selector and open it in editor");
menu.AddMenu(!IsNull(GetOpposite()), AK_OPPOSITE, IdeImg::opposite(), THISBACK(GoOpposite))
.Help("Switch between source and header file");
menu.AddMenu(AK_SAVEFILE, CtrlImg::save(), THISBACK(DoSaveFile))
.Help("Save current file");
if(!designer)
menu.AddMenu(CanToggleReadOnly(), AK_READONLY, IdeImg::read_only(), THISBACK(ToggleReadOnly))
.Check(editor.IsReadOnly())
.Help("Set / clear read-only flag for current file");
menu.AddMenu(!designer, AK_PRINT, CtrlImg::print(), THISBACK(Print));
// menu.Add("Export project", THISBACK(ExportProject))
// .Help("Copy all project files into given directory");
if(menu.IsMenuBar())
{
menu.Separator();
menu.Add(AK_CLOSETAB, THISBACK(ClearTab))
.Help("Close the current file tab");
menu.Add(AK_CLOSETABS, THISBACK(ClearTabs))
.Help("Close all file tabs");
if(!designer) {
menu.Add("Bookmarks", THISBACK(FileBookmark))
.Help("Set one of available bookmarks (1..9, 0) on current file");
menu.MenuSeparator();
}
menu.Add("Show/hide bottom pane", THISBACK(SwapBottom))
.Check(IsBottomShown())
.Key(K_ESCAPE)
.Help("Show / hide bottom pane (with console, calc and browser tabs)");
}
menu.Add(AK_PACKAGESFILES, THISBACK(SwapPackagesFiles))
.Check(wesplit.GetZoom() != 1);
menu.MenuSeparator();
bool split = editorsplit.GetZoom() < 0;
menu.Add(AK_SPLIT, THISBACK1(KeySplit, false))
.Check(split && editorsplit.IsVert());
menu.Add(AK_VSPLIT, THISBACK1(KeySplit, true))
.Check(split && editorsplit.IsHorz());
menu.Add(split, AK_SWAP, THISBACK(SwapEditors));
menu.MenuSeparator();
menu.Add(AK_OPENFILEDIR, THISBACK(OpenFileFolder));
menu.MenuSeparator();
menu.Add(AK_STATISTICS, THISBACK(Statistics))
.Help("Display various statistics");
menu.Add("Elapsed times..", THISBACK(Times));
menu.Add(AK_EXIT, THISBACK(Exit));
}
示例12: Edit
void Ide::Edit(Bar& menu)
{
if(editfile.GetCount() && editashex.Find(editfile) < 0)
menu.Add(AK_EDITASHEX, THISBACK(EditAsHex));
if(designer) {
if(FileExists(designer->GetFileName())) {
menu.Add(AK_EDITASTEXT, THISBACK(EditAsText))
.Help("Edit as text file (do not use a designer)");
menu.MenuSeparator();
}
if(menu.IsMenuBar())
designer->EditMenu(menu);
}
else {
bool selection = editor.IsAnySelection();
if(GetFileExt(editfile) == ".t") {
if(editastext.Find(editfile) >= 0)
menu.Add(AK_DESIGNER, THISBACK(EditUsingDesigner))
.Help("Edit converted strings");
else
menu.Add(AK_EDITASTEXT, THISBACK(EditAsText))
.Help("Edit raw strings");
menu.MenuSeparator();
}
else
if(editastext.Find(editfile) >= 0 && IsDesignerFile(editfile)) {
menu.Add(AK_DESIGNER, THISBACK(EditUsingDesigner))
.Help("Edit using the designer (not as text)");
menu.MenuSeparator();
}
Bar::Item& (Bar::*add)(const char *s, const Image& m, Callback cb) = &Bar::Add;
if(toolbar_in_row) add = &MenuBar::AddMenu;
(menu.*add)("Undo", CtrlImg::undo(), callback(&editor, &LineEdit::Undo))
.Key(K_CTRL_Z)
.Enable(editor.IsUndo())
.Help("Undo changes to text");
(menu.*add)("Redo", CtrlImg::redo(), callback(&editor, &LineEdit::Redo))
.Key(K_SHIFT|K_CTRL_Z)
.Enable(editor.IsRedo())
.Help("Redo undone changes");
if(!toolbar_in_row || menu.IsMenuBar())
menu.Separator();
(menu.*add)("Cut", CtrlImg::cut(), callback(&editor, &LineEdit::Cut))
.Key(K_CTRL_X)
.Enable(selection)
.Help("Cut selection and place it on the system clipboard");
(menu.*add)("Copy", CtrlImg::copy(), callback(&editor, &LineEdit::Copy))
.Key(K_CTRL_C)
.Enable(selection)
.Help("Copy current selection on the system clipboard");
(menu.*add)("Paste", CtrlImg::paste(), THISBACK(EditPaste))
.Key(K_CTRL_V)
.Help("Insert text from clipboard at cursor location");
if(!toolbar_in_row || menu.IsMenuBar())
menu.Separator();
(menu.*add)("Select all", CtrlImg::select_all(), callback(&editor, &LineEdit::SelectAll))
.Key(K_CTRL_A);
}
menu.MenuSeparator();
if(menu.IsMenuBar())
menu.Add("Find and Replace", THISBACK(SearchMenu));
if(!designer && menu.IsMenuBar())
InsertAdvanced(menu);
if(editor.GetLineCount() && editor.GetUtf8Line(0) == "$uvs: PENDING CONFLICT") {
menu.MenuSeparator();
menu.Add("Resolve pending uvs conflict", THISBACK(ResolveUvsConflict))
.Help("Merge $uvs: pending conflicts generated by UVS series of versioning software");
}
}