X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0b26bc2be127ef9b872d24fd749c0e318d084ba..b843b628c9f936d6a87ca1e9b91e88a4604270c4:/wxPython/demo/Main.py?ds=sidebyside diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index d679dc2cb6..ab5e8d6612 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -47,9 +47,8 @@ import images _treeList = [ # new stuff ('Recent Additions/Updates', [ - 'StockButtons', - 'Ticker', - 'Choicebook', + 'StandardPaths', + 'MediaCtrl', ]), # managed windows == things with a (optional) caption you can close @@ -98,6 +97,7 @@ _treeList = [ 'ListBox', 'ListCtrl', 'ListCtrl_virtual', + 'ListCtrl_edit', 'Listbook', 'Menu', 'Notebook', @@ -152,6 +152,7 @@ _treeList = [ 'FloatCanvas', 'HtmlWindow', 'IntCtrl', + 'MediaCtrl', 'MVCTree', 'MaskedEditControls', 'MaskedNumCtrl', @@ -226,6 +227,7 @@ _treeList = [ 'PrintFramework', 'ShapedWindow', 'Sound', + 'StandardPaths', 'Unicode', ]), @@ -252,9 +254,10 @@ class MyLog(wx.PyLog): self.logTime = logTime def DoLogString(self, message, timeStamp): - if self.logTime: - message = time.strftime("%X", time.localtime(timeStamp)) + \ - ": " + message + #print message, timeStamp + #if self.logTime: + # message = time.strftime("%X", time.localtime(timeStamp)) + \ + # ": " + message if self.tc: self.tc.AppendText(message + '\n') @@ -263,6 +266,60 @@ class MyTP(wx.PyTipProvider): def GetTip(self): return "This is my tip" +#--------------------------------------------------------------------------- +# A class to be used to simply display a message in the demo pane +# rather than running the sample itself. + +class MessagePanel(wx.Panel): + def __init__(self, parent, message, caption='', flags=0): + wx.Panel.__init__(self, parent) + + # Make widgets + if flags: + artid = None + if flags & wx.ICON_EXCLAMATION: + artid = wx.ART_WARNING + elif flags & wx.ICON_ERROR: + artid = wx.ART_ERROR + elif flags & wx.ICON_QUESTION: + artid = wx.ART_QUESTION + elif flags & wx.ICON_INFORMATION: + artid = wx.ART_INFORMATION + + if artid is not None: + bmp = wx.ArtProvider.GetBitmap(artid, wx.ART_MESSAGE_BOX, (32,32)) + icon = wx.StaticBitmap(self, -1, bmp) + else: + icon = (32,32) # make a spacer instead + + if caption: + caption = wx.StaticText(self, -1, caption) + caption.SetFont(wx.Font(28, wx.SWISS, wx.NORMAL, wx.BOLD)) + + message = wx.StaticText(self, -1, message) + + # add to sizers for layout + tbox = wx.BoxSizer(wx.VERTICAL) + if caption: + tbox.Add(caption) + tbox.Add((10,10)) + tbox.Add(message) + + hbox = wx.BoxSizer(wx.HORIZONTAL) + hbox.Add((10,10), 1) + hbox.Add(icon) + hbox.Add((10,10)) + hbox.Add(tbox) + hbox.Add((10,10), 1) + + box = wx.BoxSizer(wx.VERTICAL) + box.Add((10,10), 1) + box.Add(hbox, 0, wx.EXPAND) + box.Add((10,10), 2) + + self.SetSizer(box) + self.Fit() + #--------------------------------------------------------------------------- # A class to be used to display source code in the demo. Try using the @@ -398,8 +455,7 @@ try: # The rest remains unchanged. # Line numbers in margin - self.StyleSetSpec(wx.stc.STC_STYLE_LINENUMBER,'fore:#000000,back:#99A9C2') - + self.StyleSetSpec(wx.stc.STC_STYLE_LINENUMBER,'fore:#000000,back:#99A9C2') # Highlighted brace self.StyleSetSpec(wx.stc.STC_STYLE_BRACELIGHT,'fore:#00009D,back:#FFFF00') # Unmatched brace @@ -460,13 +516,13 @@ except ImportError: def GetText(self): return self.GetValue() - def GetPositionFromLine(line): + def GetPositionFromLine(self, line): return self.XYToPosition(0,line) def GotoLine(self, line): - pos = self.editor.GetPositionFromLine(line) - self.editor.SetInsertionPoint(pos) - self.editor.ShowPosition(pos) + pos = self.GetPositionFromLine(line) + self.SetInsertionPoint(pos) + self.ShowPosition(pos) def SelectLine(self, line): start = self.GetPositionFromLine(line) @@ -960,8 +1016,9 @@ class DemoTaskBarIcon(wx.TaskBarIcon): self.frame = frame # Set the image - icon = self.MakeIcon(images.getMondrianImage()) + icon = self.MakeIcon(images.getWXPdemoImage()) self.SetIcon(icon, "wxPython Demo") + self.imgidx = 1 # bind some events self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnTaskBarActivate) @@ -993,10 +1050,10 @@ class DemoTaskBarIcon(wx.TaskBarIcon): icon size... """ if "wxMSW" in wx.PlatformInfo: - img.Scale(16, 16) + img = img.Scale(16, 16) elif "wxGTK" in wx.PlatformInfo: - img.Scale(20, 20) - # wxMac can be any size upto 128.128.... + img = img.Scale(22, 22) + # wxMac can be any size upto 128x128, so leave the source img alone.... icon = wx.IconFromBitmap(img.ConvertToBitmap() ) return icon @@ -1014,8 +1071,17 @@ class DemoTaskBarIcon(wx.TaskBarIcon): def OnTaskBarChange(self, evt): - icon = self.MakeIcon(images.getBlom10MaskedImage()) - self.SetIcon(icon, "This is a new icon") + names = [ "WXPdemo", "WXP", "Mondrian", "Test2m", + "Blom08m", "Blom10m", "Blom15m" ] + name = names[self.imgidx] + + getFunc = getattr(images, "get%sImage" % name) + self.imgidx += 1 + if self.imgidx >= len(names): + self.imgidx = 0 + + icon = self.MakeIcon(getFunc()) + self.SetIcon(icon, "This is a new icon: " + name) def OnTaskBarRemove(self, evt): @@ -1030,6 +1096,8 @@ class wxPythonDemo(wx.Frame): wx.Frame.__init__(self, parent, -1, title, size = (950, 720), style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE) + self.SetMinSize((640,480)) + self.loaded = False self.cwd = os.getcwd() self.curOverview = "" @@ -1038,7 +1106,7 @@ class wxPythonDemo(wx.Frame): self.shell = None self.firstTime = True - icon = images.getMondrianIcon() + icon = images.getWXPdemoIcon() self.SetIcon(icon) self.tbicon = DemoTaskBarIcon(self) @@ -1077,7 +1145,7 @@ class wxPythonDemo(wx.Frame): item = menu.Append(-1, 'E&xit\tAlt-X', 'Get the heck outta here!') self.Bind(wx.EVT_MENU, self.OnFileExit, item) - wx.App_SetMacExitMenuItemId(item.GetId()) + wx.App.SetMacExitMenuItemId(item.GetId()) self.mainmenu.Append(menu, '&File') # Make a Demo menu @@ -1117,7 +1185,7 @@ class wxPythonDemo(wx.Frame): 'An interactive interpreter window with the demo app and frame objects in the namesapce') menu.AppendSeparator() helpItem = menu.Append(-1, '&About\tCtrl-H', 'wxPython RULES!!!') - wx.App_SetMacAboutMenuItemId(helpItem.GetId()) + wx.App.SetMacAboutMenuItemId(helpItem.GetId()) self.Bind(wx.EVT_MENU, self.OnOpenShellWindow, shellItem) self.Bind(wx.EVT_MENU, self.OnHelpAbout, helpItem) @@ -1203,12 +1271,15 @@ class wxPythonDemo(wx.Frame): #wx.Log_SetTraceMask(wx.TraceMessages) + self.Bind(wx.EVT_ACTIVATE, self.OnActivate) + wx.GetApp().Bind(wx.EVT_ACTIVATE_APP, self.OnAppActivate) + # add the windows to the splitter and split it. splitter2.SplitHorizontally(self.nb, self.log, -160) splitter.SplitVertically(self.tree, splitter2, 200) - splitter.SetMinimumPaneSize(20) - splitter2.SetMinimumPaneSize(20) + splitter.SetMinimumPaneSize(120) + splitter2.SetMinimumPaneSize(60) # Make the splitter on the right expand the top window when resized def SplitterOnSize(evt): @@ -1320,9 +1391,8 @@ class wxPythonDemo(wx.Frame): self.ShutdownDemoModule() overviewText = "" - # o If the demo returns a window it is placed in a tab. - # o Otherwise, a placeholder tab is created, informing the user that the - # demo runs outside the main window, and allowing it to be reloaded. + # o The RunTest() for all samples must now return a window that can + # be palced in a tab in the main notebook. # o If an error occurs (or has occured before) an error tab is created. if module is not None: @@ -1560,7 +1630,7 @@ class wxPythonDemo(wx.Frame): #--------------------------------------------- def OnIconfiy(self, evt): - wx.LogMessage("OnIconfiy: %d" % evt.Iconized()) + wx.LogMessage("OnIconfiy: %s" % evt.Iconized()) evt.Skip() #--------------------------------------------- @@ -1568,8 +1638,15 @@ class wxPythonDemo(wx.Frame): wx.LogMessage("OnMaximize") evt.Skip() + #--------------------------------------------- + def OnActivate(self, evt): + wx.LogMessage("OnActivate: %s" % evt.GetActive()) + evt.Skip() - + #--------------------------------------------- + def OnAppActivate(self, evt): + wx.LogMessage("OnAppActivate: %s" % evt.GetActive()) + evt.Skip() #--------------------------------------------------------------------------- #---------------------------------------------------------------------------