--- nfo/projects/netfraggle/bin/fraggleViewport.py 2004/08/25 13:53:48 1.1.1.1 +++ nfo/projects/netfraggle/bin/fraggleViewport.py 2004/08/25 22:53:41 1.7 @@ -1,36 +1,55 @@ -#Boa:MDIParent:wxMDIParentFrame1 +4#Boa:MDIParent:fraggleViewport +import os from wxPython.wx import * import fraggleDialogPrefs +import fraggleCtlPreferences +from fraggleDialogs import * def create(parent): - return wxMDIParentFrame1(parent) + return fraggleMainWin(parent) -[wxID_WXMDIPARENTFRAME1] = map(lambda _init_ctrls: wxNewId(), range(1)) +[wxID_FRAGGLEVIEWPORT] = map(lambda _init_ctrls: wxNewId(), range(1)) -[wxID_WXMDIPARENTFRAME1MENU1FPREFS, wxID_WXMDIPARENTFRAME1MENU1ITEMS1, +[wxID_FRAGGLEVIEWPORTMENU1FPREFS, wxID_FRAGGLEVIEWPORTMENU1ITEMS1, ] = map(lambda _init_coll_menu1_Items: wxNewId(), range(2)) -class wxMDIParentFrame1(wxMDIParentFrame): +[wxID_FRAGGLEVIEWPORTMENU2CONT, wxID_FRAGGLEVIEWPORTMENU2ABOUT, +] = map(lambda _init_coll_menu2_Items: wxNewId(), range(2)) + +class fraggleViewport(wxMDIParentFrame): def _init_coll_menu1_Items(self, parent): # generated method, don't edit - + parent.Append(helpString='Configure Netfraggle', - id=wxID_WXMDIPARENTFRAME1MENU1FPREFS, item='Preferences', + id=wxID_FRAGGLEVIEWPORTMENU1FPREFS, item='Preferences', kind=wxITEM_NORMAL) parent.Append(helpString='Exit Netfraggle', - id=wxID_WXMDIPARENTFRAME1MENU1ITEMS1, item='Exit', + id=wxID_FRAGGLEVIEWPORTMENU1ITEMS1, item='Exit', kind=wxITEM_NORMAL) - EVT_MENU(self, wxID_WXMDIPARENTFRAME1MENU1FPREFS, - self.OnMenu1items0Menu) - EVT_MENU(self, wxID_WXMDIPARENTFRAME1MENU1ITEMS1, - self.OnMenu1items1Menu) + + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU1FPREFS, self.OnMenu1items0Menu) + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU1ITEMS1, self.OnMenu1items1Menu) + + def _init_coll_menu2_Items(self, parent): + # generated method, don't edit + + parent.Append(helpString='Documentation', + id=wxID_FRAGGLEVIEWPORTMENU2CONT, item='Contents', + kind=wxITEM_NORMAL) + parent.Append(helpString='About Netfraggle', + id=wxID_FRAGGLEVIEWPORTMENU2ABOUT, item='About', + kind=wxITEM_NORMAL) + + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU2CONT, self.OnMenu2items0Menu) + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU2ABOUT, self.OnMenu2items1Menu) def _init_coll_menuBar1_Menus(self, parent): # generated method, don't edit parent.Append(menu=self.menu1, title='File') + parent.Append(menu=self.menu2, title='Help') def _init_utils(self): # generated method, don't edit @@ -40,30 +59,105 @@ self.menu1 = wxMenu(title='') self._init_coll_menu1_Items(self.menu1) + self.menu2 = wxMenu(title='') + self._init_coll_menu2_Items(self.menu2) + self._init_coll_menuBar1_Menus(self.menuBar1) def _init_ctrls(self, prnt): # generated method, don't edit - wxMDIParentFrame.__init__(self, id=wxID_WXMDIPARENTFRAME1, name='', - parent=prnt, pos=wxPoint(277, 313), size=wxSize(683, 330), + wxMDIParentFrame.__init__(self, id=wxID_FRAGGLEVIEWPORT, + name='fraggleViewport', parent=prnt, pos=wxPoint(277, 313), + size=wxSize(683, 307), style=wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, title='wxMDIParentFrame1') self._init_utils() - self.SetClientSize(wxSize(683, 307)) + self.SetClientSize(wxSize(683, 284)) self.SetMenuBar(self.menuBar1) + def __init_preferences__(self): + self.preferencesCtl = fraggleCtlPreferences.create(self) + self.dialogPrefs = fraggleDialogPrefs.create(self) + self.dialogPrefs.loadConfig() + self.dialogPrefs.updateConfig() + def __init__(self, parent): self._init_ctrls(parent) + self.__init_preferences__() - - def OnMenu1items0Menu(self, event): - self.dialogPrefs = fraggleDialogPrefs.wxDialog1(self) + def showPrefs(self, event): + """Show preferences screen""" try: self.dialogPrefs.ShowModal() finally: self.dialogPrefs.Destroy() - event.Skip() + #event.Skip() + + def showHelp(self): + """Show help""" + try: + import webbrowser + webbrowser.open("file://"+os.path.join(PEARSLOCATION, "docs/index.html"), 1) + except: + dlg = wxScrolledMessageDialog(parent=self, + caption="Help", + msg="""PEARS - alternative help (see the docs directory in your Pears folder for more elaborate information) + + Pears is a relatively simple three-pane news feed aggregator (RSS/RDF reader). + + The left pane contains the list of feeds. You can add feeds using the Feeds menu. Right-click on a feed to update, single-click to view cached contents. + + The right pane contains a list of the topics available in the feed. Single-click to open the contents of a topic in the viewer window at the bottom. Right-click to toggle read/unread status. + + Everything is cached in Python structures stored as plain text in your Home directory (in a subdirectory called '.pears'). Use the About screen to see exactly where that is on your system. + """) + dlg.ShowModal() + dlg.Destroy() + + def showAbout(self): + """Show about screen""" + dlg = AboutDialog(parent=self, id=-1, title="About Pears") + dlg.ShowModal() + dlg.Destroy() + + def doExit(self): + """Shut down the program""" + self.Close(True) + self.Destroy() + + def OnMenu1items0Menu(self, event): + self.showPrefs(event) + #event.Skip() def OnMenu1items1Menu(self, event): - self.Destroy() - event.Skip() + self.doExit() + + def OnMenu2items0Menu(self, event): + self.showHelp() + + def OnMenu2items1Menu(self, event): + self.showAbout() + +class fraggleMainWin(fraggleViewport): + def _init_coll_menu1_Items(self, parent): + + if os.name == 'posix': + super(fraggleMainWin, self)._init_coll_menu1_Items(parent) + elif os.name == 'nt': + parent.Append(wxID_FRAGGLEVIEWPORTMENU1FPREFS, 'Configure Netfraggle', "", wxITEM_NORMAL) + parent.Append(wxID_FRAGGLEVIEWPORTMENU1ITEMS1, 'Exit Netfraggle', "", wxITEM_NORMAL) + + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU1FPREFS, self.OnMenu1items0Menu) + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU1ITEMS1, self.OnMenu1items1Menu) + + def _init_coll_menu2_Items(self, parent): + + if os.name == 'posix': + super(fraggleMainWin, self)._init_coll_menu2_Items(parent) + elif os.name == 'nt': + parent.Append(wxID_FRAGGLEVIEWPORTMENU2CONT, 'Contents', "", wxITEM_NORMAL) + parent.Append(wxID_FRAGGLEVIEWPORTMENU2ABOUT, 'About', "", wxITEM_NORMAL) + + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU2CONT, self.OnMenu2items0Menu) + EVT_MENU(self, wxID_FRAGGLEVIEWPORTMENU2ABOUT, self.OnMenu2items1Menu) +