]> git.saurik.com Git - wxWidgets.git/commitdiff
demo tweaks
authorRobin Dunn <robin@alldunn.com>
Sun, 28 Mar 2004 17:02:16 +0000 (17:02 +0000)
committerRobin Dunn <robin@alldunn.com>
Sun, 28 Mar 2004 17:02:16 +0000 (17:02 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/demo/Mask.py
wxPython/demo/Timer.py
wxPython/demo/XmlResourceHandler.py
wxPython/demo/XmlResourceSubclass.py

index 3820c323b8c6c48488231243992f77ca1e8d36a0..149019ca72887c7a6a94a5fef9847e569f53472e 100644 (file)
@@ -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)
index af5e77e43d9e3f5f5f5b6317ddc0dcd4ca0979ae..22b7192a2cf45d1feac697c6735a1ff214396cf4 100644 (file)
@@ -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")
 
 
 
index 1f415e35a6e2171f69bcba9ada5a8fdc87ed27d7..1fe3f3f7ad20c7c7c1bffd6466b39af74defbc21 100644 (file)
@@ -9,7 +9,7 @@ resourceText = r'''<?xml version="1.0"?>
 
 <!-- Notice that the class is NOT a standard wx class -->
 
-<object class="MyBluePanel" name="MyPanel">
+<object class="MyCustomPanel" name="MyPanel">
     <size>200,100</size>
     <object class="wxStaticText" name="label1">
         <label>This blue panel is a class derived from wx.Panel,\nand is loaded by a custom XmlResourceHandler.</label>
@@ -21,35 +21,53 @@ resourceText = r'''<?xml version="1.0"?>
 
 #----------------------------------------------------------------------
 
-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)
index 412aa9da7c5e5f8fba662d955ed4beef3222da6d..2fcb737bb410759a0589156193009815b102a197 100644 (file)
@@ -11,7 +11,7 @@ resourceText = r'''<?xml version="1.0"?>
      subclass is specified as "moduleName.ClassName"  Try changing
      the classname to one that does not exist and see what happens -->
 
-<object class="wxPanel" subclass="XmlResourceSubclass.MyBluePanel" name="MyPanel">
+<object class="wxPanel" subclass="XmlResourceSubclass.MyCustomPanel" name="MyPanel">
     <size>200,100</size>
     <object class="wxStaticText" name="label1">
         <label>This blue panel is a class derived from wx.Panel
@@ -24,21 +24,32 @@ and is loaded by a using a subclass attribute of the object tag.</label>
 
 #----------------------------------------------------------------------
 
-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))
+    
 #----------------------------------------------------------------------