X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/samples/wxPIA_book/Chapter-06/example5.py diff --git a/wxPython/samples/wxPIA_book/Chapter-06/example5.py b/wxPython/samples/wxPIA_book/Chapter-06/example5.py deleted file mode 100644 index cbe02138fa..0000000000 --- a/wxPython/samples/wxPIA_book/Chapter-06/example5.py +++ /dev/null @@ -1,132 +0,0 @@ -import wx -from example1 import SketchWindow - - -class SketchFrame(wx.Frame): - def __init__(self, parent): - wx.Frame.__init__(self, parent, -1, "Sketch Frame", - size=(800,600)) - self.sketch = SketchWindow(self, -1) - self.sketch.Bind(wx.EVT_MOTION, self.OnSketchMotion) - self.initStatusBar() - self.createMenuBar() - self.createToolBar() - - def initStatusBar(self): - self.statusbar = self.CreateStatusBar() - self.statusbar.SetFieldsCount(3) - self.statusbar.SetStatusWidths([-1, -2, -3]) - - def OnSketchMotion(self, event): - self.statusbar.SetStatusText("Pos: %s" % - str(event.GetPositionTuple()), 0) - self.statusbar.SetStatusText("Current Pts: %s" % - len(self.sketch.curLine), 1) - self.statusbar.SetStatusText("Line Count: %s" % - len(self.sketch.lines), 2) - event.Skip() - - def menuData(self): - return [("&File", ( - ("&New", "New Sketch file", self.OnNew), - ("&Open", "Open sketch file", self.OnOpen), - ("&Save", "Save sketch file", self.OnSave), - ("", "", ""), - ("&Color", ( - ("&Black", "", self.OnColor, wx.ITEM_RADIO), - ("&Red", "", self.OnColor, wx.ITEM_RADIO), - ("&Green", "", self.OnColor, wx.ITEM_RADIO), - ("&Blue", "", self.OnColor, wx.ITEM_RADIO))), - ("", "", ""), - ("&Quit", "Quit", self.OnCloseWindow)))] - - def createMenuBar(self): - menuBar = wx.MenuBar() - for eachMenuData in self.menuData(): - menuLabel = eachMenuData[0] - menuItems = eachMenuData[1] - menuBar.Append(self.createMenu(menuItems), menuLabel) - self.SetMenuBar(menuBar) - - def createMenu(self, menuData): - menu = wx.Menu() - for eachItem in menuData: - if len(eachItem) == 2: - label = eachItem[0] - subMenu = self.createMenu(eachItem[1]) - menu.AppendMenu(wx.NewId(), label, subMenu) - else: - self.createMenuItem(menu, *eachItem) - return menu - - def createMenuItem(self, menu, label, status, handler, kind=wx.ITEM_NORMAL): - if not label: - menu.AppendSeparator() - return - menuItem = menu.Append(-1, label, status, kind) - self.Bind(wx.EVT_MENU, handler, menuItem) - - def createToolBar(self): - toolbar = self.CreateToolBar() - for each in self.toolbarData(): - self.createSimpleTool(toolbar, *each) - toolbar.AddSeparator() - for each in self.toolbarColorData(): - self.createColorTool(toolbar, each) - toolbar.Realize() - - def createSimpleTool(self, toolbar, label, filename, help, handler): - if not label: - toolbar.AddSeparator() - return - bmp = wx.Image(filename, wx.BITMAP_TYPE_BMP).ConvertToBitmap() - tool = toolbar.AddSimpleTool(-1, bmp, label, help) - self.Bind(wx.EVT_MENU, handler, tool) - - def toolbarData(self): - return (("New", "new.bmp", "Create new sketch", self.OnNew), - ("", "", "", ""), - ("Open", "open.bmp", "Open existing sketch", self.OnOpen), - ("Save", "save.bmp", "Save existing sketch", self.OnSave)) - - def createColorTool(self, toolbar, color): - bmp = self.MakeBitmap(color) - tool = toolbar.AddRadioTool(-1, bmp, shortHelp=color) - self.Bind(wx.EVT_MENU, self.OnColor, tool) - - def MakeBitmap(self, color): - bmp = wx.EmptyBitmap(16, 15) - dc = wx.MemoryDC() - dc.SelectObject(bmp) - dc.SetBackground(wx.Brush(color)) - dc.Clear() - dc.SelectObject(wx.NullBitmap) - return bmp - - def toolbarColorData(self): - return ("Black", "Red", "Green", "Blue") - - def OnNew(self, event): pass - def OnOpen(self, event): pass - def OnSave(self, event): pass - - def OnColor(self, event): - menubar = self.GetMenuBar() - itemId = event.GetId() - item = menubar.FindItemById(itemId) - if not item: - toolbar = self.GetToolBar() - item = toolbar.FindById(itemId) - color = item.GetShortHelp() - else: - color = item.GetLabel() - self.sketch.SetColor(color) - - def OnCloseWindow(self, event): - self.Destroy() - -if __name__ == '__main__': - app = wx.PySimpleApp() - frame = SketchFrame(None) - frame.Show(True) - app.MainLoop()