import wx from Hercules import hercules_version from Hercules.gui.notebook import * from Hercules.gui.calculators import * class HerculesMainFrame(wx.Frame): """Main frame class""" def __init__(self): # Create main frame wx.Frame.__init__(self, None, title="Hercules") # Set minimum frame size # self.SetMinSize((410,410)) # Init a status bar self.init_statusbar() self.init_menubar() self.init_notebook() def init_statusbar(self): """Creates a status bar for main frame""" # Create a status bar self.CreateStatusBar() # Set text for status bar self.SetStatusText(_("Welcome to Hercules!")) def init_menubar(self): """Creates a menu bar for main frame""" # Create menu 'File' file_menu = wx.Menu() # Insert 'Quit' item into menu 'File' file_menu.Append(wx.ID_EXIT, _("&Quit\tCtrl-Q"), _("Quits the program")) # Create menu 'Calculators' calc_menu = wx.Menu() # Insert items into menu 'Calculators' menu_item = calc_menu.Append(wx.ID_ANY, _("Ideal Body Measurement"), _("Ideal Body Measurement Calculator")) # bind event to menu item self.Bind(wx.EVT_MENU, self.on_calc_ideal_body, menu_item) # Create menu 'Help' help_menu = wx.Menu() # Insert 'About...' item into menu 'Help' help_menu.Append(wx.ID_ABOUT, _("&About..."), _("About Hercules")) # Bind events to menu items self.Bind(wx.EVT_MENU, self.on_quit, id=wx.ID_EXIT) self.Bind(wx.EVT_MENU, self.on_about, id=wx.ID_ABOUT) # Create menu bar menu_bar = wx.MenuBar() # Append 'File' menu to menu bar menu_bar.Append(file_menu, _("&File")) # Append 'Calculators' menu to menu bar menu_bar.Append(calc_menu, _("&Calculators")) # Append 'Help' menu to menu bar menu_bar.Append(help_menu, _("&Help")) # Set menu bar for main frame self.SetMenuBar(menu_bar) def init_notebook(self): """Create notebook with tabs""" # Create HerculesNotebook class widget self.notebook = HerculesNotebook(self) def on_about(self, event): """About dialog box""" dlg = wx.MessageDialog(self, "Hercules " + hercules_version + _("\n\nCopyright (c) Basil Shubin\n" "Email: \n" "Homepage: http://sourceforge.net/project/hercules"), _("About Hercules"), wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() def on_quit(self, event): """Quits the program""" self.Close() def on_calc_ideal_body(self, event): """Calculate your ideal body measurement""" ideal_body_calc = IdealBody(self) ret_val = ideal_body_calc.ShowModal() if ret_val == wx.ID_OK: ideal_body_calc.Destroy()