summaryrefslogtreecommitdiff
path: root/eeschema/menubar.cpp
diff options
context:
space:
mode:
authorsaurabhb172020-02-26 16:00:53 +0530
committerGitHub2020-02-26 16:00:53 +0530
commit886d9cb772e81d2e5262284bc3082664f084337f (patch)
tree6acee185a4dc19113fcbf0f9a3d6941085dedaf7 /eeschema/menubar.cpp
parent0db48f6533517ecebfd9f0693f89deca28408b76 (diff)
parentaa35045840b78d3f48212db45da59a2e5c69b223 (diff)
downloadKiCad-eSim-886d9cb772e81d2e5262284bc3082664f084337f.tar.gz
KiCad-eSim-886d9cb772e81d2e5262284bc3082664f084337f.tar.bz2
KiCad-eSim-886d9cb772e81d2e5262284bc3082664f084337f.zip
Merge pull request #1 from saurabhb17/develop
Added main functions
Diffstat (limited to 'eeschema/menubar.cpp')
-rw-r--r--eeschema/menubar.cpp521
1 files changed, 521 insertions, 0 deletions
diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp
new file mode 100644
index 0000000..0baaa1e
--- /dev/null
+++ b/eeschema/menubar.cpp
@@ -0,0 +1,521 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2014 Jean-Pierre Charras, jp.charras at wanadoo.fr
+ * Copyright (C) 2009-2014 Wayne Stambaugh <stambaughw@verizon.net>
+ * Copyright (C) 1992-2014 KiCad Developers, see AUTHORS.txt for contributors.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, you may find one here:
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * or you may search the http://www.gnu.org website for the version 2 license,
+ * or you may write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/**
+ * @file eeschema/menubar.cpp
+ * @brief (Re)Create the main menubar for the schematic frame
+ */
+
+#include <fctsys.h>
+#include <kiface_i.h>
+#include <pgm_base.h>
+#include <schframe.h>
+
+#include <general.h>
+#include <eeschema_id.h>
+#include <hotkeys.h>
+#include <menus_helpers.h>
+
+#include <help_common_strings.h>
+
+
+void SCH_EDIT_FRAME::ReCreateMenuBar()
+{
+ // Create and try to get the current menubar
+ wxString text;
+ wxMenuBar* menuBar = GetMenuBar();
+
+ if( !menuBar )
+ menuBar = new wxMenuBar();
+
+ // Delete all existing menus so they can be rebuilt.
+ // This allows language changes of the menu text on the fly.
+ menuBar->Freeze();
+
+ while( menuBar->GetMenuCount() )
+ delete menuBar->Remove( 0 );
+
+ // Recreate all menus:
+
+ // Menu File:
+ wxMenu* fileMenu = new wxMenu;
+
+ if( Kiface().IsSingle() ) // not when under a project mgr
+ {
+ AddMenuItem( fileMenu,
+ ID_NEW_PROJECT,
+ _( "&New Schematic Project" ),
+ _( "Clear current schematic hierarchy and start a new schematic root sheet" ),
+ KiBitmap( new_sch_xpm ) );
+
+ text = AddHotkeyName( _( "&Open Schematic Project" ), g_Schematic_Hokeys_Descr, HK_LOAD_SCH );
+ AddMenuItem( fileMenu,
+ ID_LOAD_PROJECT, text,
+ _( "Open an existing schematic hierarchy" ),
+ KiBitmap( open_document_xpm ) );
+ }
+
+ // @todo: static probably not OK in multiple open projects.
+ // Open Recent submenu
+ static wxMenu* openRecentMenu;
+
+ // Add this menu to list menu managed by m_fileHistory
+ // (the file history will be updated when adding/removing files in history
+ if( openRecentMenu )
+ Kiface().GetFileHistory().RemoveMenu( openRecentMenu );
+
+ openRecentMenu = new wxMenu();
+
+ Kiface().GetFileHistory().UseMenu( openRecentMenu );
+ Kiface().GetFileHistory().AddFilesToMenu( openRecentMenu );
+
+ if( Kiface().IsSingle() ) // not when under a project mgr
+ {
+ AddMenuItem( fileMenu, openRecentMenu,
+ wxID_ANY, _( "Open &Recent" ),
+ _( "Open a recent opened schematic project" ),
+ KiBitmap( open_project_xpm ) );
+ }
+
+ AddMenuItem( fileMenu,
+ ID_APPEND_PROJECT, _( "App&end Schematic Sheet" ),
+ _( "Append schematic sheet to current project" ),
+ KiBitmap( open_document_xpm ) );
+
+ fileMenu->AppendSeparator();
+
+ text = AddHotkeyName( _( "&Save Schematic Project" ),
+ g_Schematic_Hokeys_Descr, HK_SAVE_SCH );
+ AddMenuItem( fileMenu,
+ ID_SAVE_PROJECT, text,
+ _( "Save all sheets in schematic project" ),
+ KiBitmap( save_project_xpm ) );
+
+ AddMenuItem( fileMenu,
+ ID_UPDATE_ONE_SHEET,
+ _( "Save &Current Sheet Only" ),
+ _( "Save only current schematic sheet" ),
+ KiBitmap( save_xpm ) );
+
+ if( Kiface().IsSingle() ) // not when under a project mgr
+ {
+ AddMenuItem( fileMenu,
+ ID_SAVE_ONE_SHEET_UNDER_NEW_NAME,
+ _( "Save C&urrent Sheet As" ),
+ _( "Save current schematic sheet as..." ),
+ KiBitmap( save_as_xpm ) );
+ }
+
+ fileMenu->AppendSeparator();
+
+ AddMenuItem( fileMenu,
+ ID_SHEET_SET,
+ _( "Pa&ge Settings" ),
+ _( "Setting for sheet size and frame references" ),
+ KiBitmap( sheetset_xpm ) );
+
+ AddMenuItem( fileMenu,
+ wxID_PRINT,
+ _( "Pri&nt" ),
+ _( "Print schematic sheet" ),
+ KiBitmap( print_button_xpm ) );
+
+ // Plot submenu
+ wxMenu* choice_plot_fmt = new wxMenu;
+ AddMenuItem( choice_plot_fmt, ID_GEN_PLOT_SCHEMATIC,
+ _( "&Plot" ),
+ _( "Plot schematic sheet in PostScript, PDF, SVG, DXF or HPGL format" ),
+ KiBitmap( plot_xpm ) );
+
+ // Plot to Clipboard
+ AddMenuItem( choice_plot_fmt, ID_GEN_COPY_SHEET_TO_CLIPBOARD,
+ _( "Plot to C&lipboard" ),
+ _( "Export drawings to clipboard" ),
+ KiBitmap( copy_button_xpm ) );
+
+ // Plot
+ AddMenuItem( fileMenu, choice_plot_fmt,
+ ID_GEN_PLOT, _( "&Plot" ),
+ _( "Plot schematic sheet in HPGL, PostScript or SVG format" ),
+ KiBitmap( plot_xpm ) );
+
+ // Separator
+ fileMenu->AppendSeparator();
+
+ // Quit
+ AddMenuItem( fileMenu,
+ wxID_EXIT,
+ _( "&Close" ),
+ _( "Close Eeschema" ),
+ KiBitmap( exit_xpm ) );
+
+ // Menu Edit:
+ wxMenu* editMenu = new wxMenu;
+
+ // Undo
+ text = AddHotkeyName( _( "&Undo" ), g_Schematic_Hokeys_Descr, HK_UNDO );
+
+ AddMenuItem( editMenu, wxID_UNDO, text, HELP_UNDO, KiBitmap( undo_xpm ) );
+
+ // Redo
+ text = AddHotkeyName( _( "&Redo" ), g_Schematic_Hokeys_Descr, HK_REDO );
+
+ AddMenuItem( editMenu, wxID_REDO, text, HELP_REDO, KiBitmap( redo_xpm ) );
+
+ // Delete
+ editMenu->AppendSeparator();
+ AddMenuItem( editMenu, ID_SCHEMATIC_DELETE_ITEM_BUTT,
+ _( "&Delete" ), HELP_DELETE_ITEMS,
+ KiBitmap( delete_xpm ) );
+
+ // Find
+ editMenu->AppendSeparator();
+ text = AddHotkeyName( _( "&Find" ), g_Schematic_Hokeys_Descr, HK_FIND_ITEM );
+ AddMenuItem( editMenu, ID_FIND_ITEMS, text, HELP_FIND, KiBitmap( find_xpm ) );
+
+ // Find/Replace
+ text = AddHotkeyName( _( "Find and Re&place" ), g_Schematic_Hokeys_Descr,
+ HK_FIND_REPLACE );
+ AddMenuItem( editMenu, wxID_REPLACE, text, HELP_REPLACE,
+ KiBitmap( find_replace_xpm ) );
+
+ // Import footprint association from the CvPcb cmp file:
+ editMenu->AppendSeparator();
+ AddMenuItem( editMenu, ID_BACKANNO_ITEMS,
+ _( "Import Footprint Selection" ),
+ HELP_IMPORT_FOOTPRINTS,
+ KiBitmap( import_footprint_names_xpm ) );
+
+ // Menu View:
+ wxMenu* viewMenu = new wxMenu;
+
+ /**
+ * Important Note for ZOOM IN and ZOOM OUT commands from menubar:
+ * we cannot add hotkey shortcut here, because the hotkey HK_ZOOM_IN and HK_ZOOM_OUT
+ * events(default = WXK_F1 and WXK_F2) are *NOT* equivalent to this menu command:
+ * zoom in and out from hotkeys are equivalent to the pop up menu zoom
+ * From here, zooming is made around the screen center
+ * From hotkeys, zooming is made around the mouse cursor position
+ * (obviously not possible from the toolbar or menubar command)
+ *
+ * in others words HK_ZOOM_IN and HK_ZOOM_OUT *are NOT* accelerators
+ * for Zoom in and Zoom out sub menus
+ * SO WE ADD THE NAME OF THE CORRESPONDING HOTKEY AS A COMMENT, NOT AS A SHORTCUT
+ * using in AddHotkeyName call the option "false" (not a shortcut)
+ */
+
+ text = AddHotkeyName( _( "Zoom &In" ), g_Schematic_Hokeys_Descr,
+ HK_ZOOM_IN, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( viewMenu, ID_ZOOM_IN, text, HELP_ZOOM_IN, KiBitmap( zoom_in_xpm ) );
+
+ text = AddHotkeyName( _( "Zoom &Out" ), g_Schematic_Hokeys_Descr,
+ HK_ZOOM_OUT, IS_ACCELERATOR ); // add accelerator, not a shortcut
+ AddMenuItem( viewMenu, ID_ZOOM_OUT, text, HELP_ZOOM_OUT, KiBitmap( zoom_out_xpm ) );
+
+ text = AddHotkeyName( _( "&Fit on Screen" ), g_Schematic_Hokeys_Descr, HK_ZOOM_AUTO );
+
+ AddMenuItem( viewMenu, ID_ZOOM_PAGE, text, HELP_ZOOM_FIT, KiBitmap( zoom_fit_in_page_xpm ) );
+
+ text = AddHotkeyName( _( "&Redraw" ), g_Schematic_Hokeys_Descr, HK_ZOOM_REDRAW );
+
+ AddMenuItem( viewMenu, ID_ZOOM_REDRAW, text, HELP_ZOOM_REDRAW, KiBitmap( zoom_redraw_xpm ) );
+
+ viewMenu->AppendSeparator();
+
+ AddMenuItem( viewMenu,
+ ID_HIERARCHY,
+ _( "Show &Hierarchical Navigator" ),
+ _( "Navigate hierarchical sheets" ),
+ KiBitmap( hierarchy_nav_xpm ) );
+
+ text = AddHotkeyName( _( "&Leave Sheet" ), g_Schematic_Hokeys_Descr, HK_LEAVE_SHEET );
+
+ AddMenuItem( viewMenu,
+ ID_POPUP_SCH_LEAVE_SHEET,
+ text,
+ _( "Leave Sheet" ),
+ KiBitmap( leave_sheet_xpm ) );
+
+ // Menu place:
+ wxMenu* placeMenu = new wxMenu;
+
+ text = AddHotkeyName( _( "&Component" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_NEW_COMPONENT, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_SCH_PLACE_COMPONENT, text,
+ HELP_PLACE_COMPONENTS,
+ KiBitmap( add_component_xpm ) );
+
+ text = AddHotkeyName( _( "&Power Port" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_NEW_POWER, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_PLACE_POWER_BUTT, text,
+ HELP_PLACE_POWERPORT,
+ KiBitmap( add_power_xpm ) );
+
+ text = AddHotkeyName( _( "&Wire" ), g_Schematic_Hokeys_Descr,
+ HK_BEGIN_WIRE, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_WIRE_BUTT, text,
+ HELP_PLACE_WIRE,
+ KiBitmap( add_line_xpm ) );
+
+ text = AddHotkeyName( _( "&Bus" ), g_Schematic_Hokeys_Descr,
+ HK_BEGIN_BUS, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_BUS_BUTT, text,
+ HELP_PLACE_BUS,
+ KiBitmap( add_bus_xpm ) );
+
+ text = AddHotkeyName( _( "Wire to Bus &Entry" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_WIRE_ENTRY, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_WIRETOBUS_ENTRY_BUTT, text,
+ HELP_PLACE_WIRE2BUS_ENTRY,
+ KiBitmap( add_line2bus_xpm ) );
+
+ text = AddHotkeyName( _( "Bus &to Bus Entry" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_BUS_ENTRY, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_BUSTOBUS_ENTRY_BUTT, text,
+ HELP_PLACE_BUS2BUS_ENTRY,
+ KiBitmap( add_bus2bus_xpm ) );
+
+ text = AddHotkeyName( _( "&No Connect Flag" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_NOCONN_FLAG, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_NOCONN_BUTT, text, HELP_PLACE_NC_FLAG, KiBitmap( noconn_xpm ) );
+
+ text = AddHotkeyName( _( "&Junction" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_JUNCTION, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_JUNCTION_BUTT, text,
+ HELP_PLACE_JUNCTION,
+ KiBitmap( add_junction_xpm ) );
+
+ text = AddHotkeyName( _( "&Label" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_LABEL, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_LABEL_BUTT, text,
+ HELP_PLACE_NETLABEL,
+ KiBitmap( add_line_label_xpm ) );
+
+ text = AddHotkeyName( _( "Gl&obal Label" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_GLABEL, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_GLABEL_BUTT, text,
+ HELP_PLACE_GLOBALLABEL,
+ KiBitmap( add_glabel_xpm ) );
+
+ placeMenu->AppendSeparator();
+
+ text = AddHotkeyName( _( "&Hierarchical Label" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_HLABEL, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_HIERLABEL_BUTT,
+ text, HELP_PLACE_HIER_LABEL,
+ KiBitmap( add_hierarchical_label_xpm ) );
+
+
+ text = AddHotkeyName( _( "Hierarchical &Sheet" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_HIER_SHEET, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_SHEET_SYMBOL_BUTT, text,
+ HELP_PLACE_SHEET,
+ KiBitmap( add_hierarchical_subsheet_xpm ) );
+
+ AddMenuItem( placeMenu,
+ ID_IMPORT_HLABEL_BUTT,
+ _( "I&mport Hierarchical Label" ),
+ HELP_IMPORT_SHEETPIN,
+ KiBitmap( import_hierarchical_label_xpm ) );
+
+ AddMenuItem( placeMenu,
+ ID_SHEET_PIN_BUTT,
+ _( "Hierarchical Pi&n to Sheet" ),
+ HELP_PLACE_SHEETPIN,
+ KiBitmap( add_hierar_pin_xpm ) );
+
+ placeMenu->AppendSeparator();
+
+ text = AddHotkeyName( _( "Graphic Pol&yline" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_GRAPHIC_POLYLINE, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_LINE_COMMENT_BUTT, text,
+ HELP_PLACE_GRAPHICLINES,
+ KiBitmap( add_dashed_line_xpm ) );
+
+ text = AddHotkeyName( _( "&Graphic Text" ), g_Schematic_Hokeys_Descr,
+ HK_ADD_GRAPHIC_TEXT, IS_ACCELERATOR ); // add an accelerator, not a shortcut
+ AddMenuItem( placeMenu, ID_TEXT_COMMENT_BUTT, text,
+ HELP_PLACE_GRAPHICTEXTS,
+ KiBitmap( add_text_xpm ) );
+
+ // Graphic image
+ AddMenuItem( placeMenu, ID_ADD_IMAGE_BUTT, _( "&Image" ),
+ HELP_PLACE_GRAPHICIMAGES,
+ KiBitmap( image_xpm ) );
+
+ // Menu Preferences:
+ wxMenu* preferencesMenu = new wxMenu;
+
+ // Library
+ AddMenuItem( preferencesMenu,
+ ID_CONFIG_REQ,
+ _( "Component &Libraries" ),
+ _( "Configure component libraries and paths" ),
+ KiBitmap( library_xpm ) );
+
+ // Colors
+ AddMenuItem( preferencesMenu,
+ ID_COLORS_SETUP,
+ _( "Set &Colors Scheme" ),
+ _( "Set color preferences" ),
+ KiBitmap( palette_xpm ) );
+
+ // Options (Preferences on WXMAC)
+
+#ifdef __WXMAC__
+ preferencesMenu->Append( wxID_PREFERENCES );
+#else
+ AddMenuItem( preferencesMenu,
+ wxID_PREFERENCES,
+ _( "Schematic Editor &Options" ),
+ _( "Set Eeschema preferences" ),
+ KiBitmap( preference_xpm ) );
+#endif // __WXMAC__
+
+
+ // Language submenu
+ Pgm().AddMenuLanguageList( preferencesMenu );
+
+ // Hotkey submenu
+ AddHotkeyConfigMenu( preferencesMenu );
+
+ // Separator
+ preferencesMenu->AppendSeparator();
+
+ AddMenuItem( preferencesMenu,
+ ID_CONFIG_SAVE,
+ _( "&Save Preferences" ),
+ _( "Save application preferences" ),
+ KiBitmap( save_setup_xpm ) );
+
+ AddMenuItem( preferencesMenu,
+ ID_CONFIG_READ,
+ _( "Load Prefe&rences" ),
+ _( "Load application preferences" ),
+ KiBitmap( read_setup_xpm ) );
+
+ // Menu Tools:
+ wxMenu* toolsMenu = new wxMenu;
+
+ AddMenuItem( toolsMenu,
+ ID_RUN_LIBRARY,
+ _( "Library &Editor" ), HELP_RUN_LIB_EDITOR,
+ KiBitmap( libedit_xpm ) );
+
+ AddMenuItem( toolsMenu,
+ ID_TO_LIBVIEW,
+ _( "Library &Browser" ), HELP_RUN_LIB_VIEWER,
+ KiBitmap( library_browse_xpm ) );
+
+ AddMenuItem( toolsMenu,
+ ID_RESCUE_CACHED,
+ _( "&Rescue Old Components" ),
+ _( "Find old components in the project and rename/rescue them" ),
+ KiBitmap( copycomponent_xpm ) );
+
+ toolsMenu->AppendSeparator();
+
+ AddMenuItem( toolsMenu,
+ ID_GET_ANNOTATE,
+ _( "&Annotate Schematic" ), HELP_ANNOTATE,
+ KiBitmap( annotate_xpm ) );
+
+ // ERC
+ AddMenuItem( toolsMenu,
+ ID_GET_ERC,
+ _( "Electrical Rules &Checker" ),
+ _( "Perform electrical rules check" ),
+ KiBitmap( erc_xpm ) );
+
+ AddMenuItem( toolsMenu,
+ ID_GET_NETLIST,
+ _( "Generate &Netlist File" ),
+ _( "Generate the component netlist file" ),
+ KiBitmap( netlist_xpm ) );
+
+ AddMenuItem( toolsMenu,
+ ID_GET_TOOLS,
+ _( "Generate Bill of &Materials" ),
+ HELP_GENERATE_BOM,
+ KiBitmap( bom_xpm ) );
+
+ toolsMenu->AppendSeparator();
+
+ // Run CvPcb
+ AddMenuItem( toolsMenu,
+ ID_RUN_CVPCB,
+ _( "A&ssign Component Footprint" ),
+ _( "Run CvPcb" ),
+ KiBitmap( cvpcb_xpm ) );
+
+ // Run Pcbnew
+ AddMenuItem( toolsMenu,
+ ID_RUN_PCB,
+ _( "&Layout Printed Circuit Board" ),
+ _( "Run Pcbnew" ),
+ KiBitmap( pcbnew_xpm ) );
+
+ // Help Menu:
+ wxMenu* helpMenu = new wxMenu;
+
+ // Version info
+ AddHelpVersionInfoMenuEntry( helpMenu );
+
+ AddMenuItem( helpMenu,
+ wxID_HELP,
+ _( "Eeschema &Manual" ),
+ _( "Open Eeschema Manual" ),
+ KiBitmap( online_help_xpm ) );
+
+ AddMenuItem( helpMenu,
+ wxID_INDEX,
+ _( "&Getting Started in KiCad" ),
+ _( "Open \"Getting Started in KiCad\" guide for beginners" ),
+ KiBitmap( help_xpm ) );
+
+ helpMenu->AppendSeparator();
+ AddMenuItem( helpMenu,
+ wxID_ABOUT,
+ _( "&About KiCad" ),
+ _( "About KiCad" ),
+ KiBitmap( info_xpm ) );
+
+ // Create the menubar and append all submenus
+ menuBar->Append( fileMenu, _( "&File" ) );
+ menuBar->Append( editMenu, _( "&Edit" ) );
+ menuBar->Append( viewMenu, _( "&View" ) );
+ menuBar->Append( placeMenu, _( "&Place" ) );
+ menuBar->Append( preferencesMenu, _( "P&references" ) );
+ menuBar->Append( toolsMenu, _( "&Tools" ) );
+ menuBar->Append( helpMenu, _( "&Help" ) );
+
+ menuBar->Thaw();
+
+ // Associate the menu bar with the frame, if no previous menubar
+ if( GetMenuBar() == NULL )
+ SetMenuBar( menuBar );
+ else
+ menuBar->Refresh();
+}