From 5cd7ab8dd8af0c17ce9dad88830a8d7aefd4f73b Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sun, 28 Mar 2004 17:02:16 +0000 Subject: [PATCH] demo tweaks git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/demo/Mask.py | 1 + wxPython/demo/Timer.py | 2 +- wxPython/demo/XmlResourceHandler.py | 62 ++++++++++++++++++---------- wxPython/demo/XmlResourceSubclass.py | 21 +++++++--- 4 files changed, 58 insertions(+), 28 deletions(-) diff --git a/wxPython/demo/Mask.py b/wxPython/demo/Mask.py index 3820c323b8..149019ca72 100644 --- a/wxPython/demo/Mask.py +++ b/wxPython/demo/Mask.py @@ -58,6 +58,7 @@ class TestMaskWindow(wx.ScrolledWindow): def OnPaint (self, e): + self.SetBackgroundColour(wx.Colour(0,128,0)) dc = wx.PaintDC(self) self.PrepareDC(dc) dc.SetTextForeground(wx.WHITE) diff --git a/wxPython/demo/Timer.py b/wxPython/demo/Timer.py index af5e77e43d..22b7192a2c 100644 --- a/wxPython/demo/Timer.py +++ b/wxPython/demo/Timer.py @@ -229,7 +229,7 @@ class NotifyTimer(wx.Timer): self.log = log def Notify(self): - log.write("got NotifyTimer event\n") + self.log.write("got NotifyTimer event\n") diff --git a/wxPython/demo/XmlResourceHandler.py b/wxPython/demo/XmlResourceHandler.py index 1f415e35a6..1fe3f3f7ad 100644 --- a/wxPython/demo/XmlResourceHandler.py +++ b/wxPython/demo/XmlResourceHandler.py @@ -9,7 +9,7 @@ resourceText = r''' - + 200,100 @@ -21,35 +21,53 @@ resourceText = r''' #---------------------------------------------------------------------- -class MyBluePanel(wx.Panel): +class MyCustomPanel(wx.Panel): def __init__(self, parent, id, pos, size, style, name): wx.Panel.__init__(self, parent, id, pos, size, style, name) # This is the little bit of customization that we do for this - # silly example. It could just as easily have been done in - # the resource. - self.SetBackgroundColour("BLUE") - self.SetForegroundColour("WHITE") + # silly example. + self.Bind(wx.EVT_SIZE, self.OnSize) + t = wx.StaticText(self, -1, "MyCustomPanel") + f = t.GetFont() + f.SetWeight(wx.BOLD) + f.SetPointSize(f.GetPointSize()+2) + t.SetFont(f) + self.t = t + + def OnSize(self, evt): + sz = self.GetSize() + w, h = self.t.GetTextExtent(self.t.GetLabel()) + self.t.SetPosition(((sz.width-w)/2, (sz.height-h)/2)) # To do it the more complex way, (see below) we need to write the # class a little differently... This could obviously be done with a # single class, but I wanted to make separate ones to make clear what # the different requirements are. -class PreMyBluePanel(wx.Panel): +class PreMyCustomPanel(wx.Panel): def __init__(self): p = wx.PrePanel() self.PostCreate(p) def Create(self, parent, id, pos, size, style, name): wx.Panel.Create(self, parent, id, pos, size, style, name) - self.SetBackgroundColour("BLUE") - self.SetForegroundColour("WHITE") - + self.Bind(wx.EVT_SIZE, self.OnSize) + t = wx.StaticText(self, -1, "MyCustomPanel") + f = t.GetFont() + f.SetWeight(wx.BOLD) + f.SetPointSize(f.GetPointSize()+2) + t.SetFont(f) + self.t = t + + def OnSize(self, evt): + sz = self.GetSize() + w, h = self.t.GetTextExtent(self.t.GetLabel()) + self.t.SetPosition(((sz.width-w)/2, (sz.height-h)/2)) #---------------------------------------------------------------------- -class MyBluePanelXmlHandler(xrc.XmlResourceHandler): +class MyCustomPanelXmlHandler(xrc.XmlResourceHandler): def __init__(self): xrc.XmlResourceHandler.__init__(self) # Specify the styles recognized by objects of this type @@ -61,7 +79,7 @@ class MyBluePanelXmlHandler(xrc.XmlResourceHandler): # This method and the next one are required for XmlResourceHandlers def CanHandle(self, node): - return self.IsOfClass(node, "MyBluePanel") + return self.IsOfClass(node, "MyCustomPanel") def DoCreateResource(self): # NOTE: wxWindows can be created in either a single-phase or @@ -86,20 +104,20 @@ class MyBluePanelXmlHandler(xrc.XmlResourceHandler): assert self.GetInstance() is None # Now create the object - panel = MyBluePanel(self.GetParentAsWindow(), - self.GetID(), - self.GetPosition(), - self.GetSize(), - self.GetStyle("style", wx.TAB_TRAVERSAL), - self.GetName() - ) + panel = MyCustomPanel(self.GetParentAsWindow(), + self.GetID(), + self.GetPosition(), + self.GetSize(), + self.GetStyle("style", wx.TAB_TRAVERSAL), + self.GetName() + ) else: # When using the more complex (but more flexible) method # the instance may already have been created, check for it panel = self.GetInstance() if panel is None: # if not, then create the instance (but not the window) - panel = PreMyBluePanel() + panel = PreMyCustomPanel() # Now call the panel's Create method to actually create the window panel.Create(self.GetParentAsWindow(), @@ -139,11 +157,11 @@ class TestPanel(wx.Panel): # Load the resource res = xrc.EmptyXmlResource() - res.InsertHandler(MyBluePanelXmlHandler()) + res.InsertHandler(MyCustomPanelXmlHandler()) res.LoadFromString(resourceText) # Now create a panel from the resource data - panel = res.LoadObject(self, "MyPanel", "MyBluePanel") + panel = res.LoadObject(self, "MyPanel", "MyCustomPanel") # and do the layout sizer = wx.BoxSizer(wx.VERTICAL) diff --git a/wxPython/demo/XmlResourceSubclass.py b/wxPython/demo/XmlResourceSubclass.py index 412aa9da7c..2fcb737bb4 100644 --- a/wxPython/demo/XmlResourceSubclass.py +++ b/wxPython/demo/XmlResourceSubclass.py @@ -11,7 +11,7 @@ resourceText = r''' subclass is specified as "moduleName.ClassName" Try changing the classname to one that does not exist and see what happens --> - + 200,100 #---------------------------------------------------------------------- -class MyBluePanel(wx.Panel): +class MyCustomPanel(wx.Panel): def __init__(self): p = wx.PrePanel() # the Create step is done by XRC. self.PostCreate(p) self.Bind(wx.EVT_WINDOW_CREATE, self.OnCreate) + self.Bind(wx.EVT_SIZE, self.OnSize) + def OnCreate(self, evt): # This is the little bit of customization that we do for this # silly example. It could just as easily have been done in # the resource. We do it in the EVT_WINDOW_CREATE handler # because the window doesn't really exist yet in the __init__. - self.SetBackgroundColour("BLUE") - self.SetForegroundColour("WHITE") - + t = wx.StaticText(self, -1, "MyCustomPanel") + f = t.GetFont() + f.SetWeight(wx.BOLD) + f.SetPointSize(f.GetPointSize()+2) + t.SetFont(f) + self.t = t + + def OnSize(self, evt): + sz = self.GetSize() + w, h = self.t.GetTextExtent(self.t.GetLabel()) + self.t.SetPosition(((sz.width-w)/2, (sz.height-h)/2)) + #---------------------------------------------------------------------- -- 2.47.2