]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/EventManager.py
fixed child windows scrolling to use wxSIZE_ALLOW_MINUS_ONE
[wxWidgets.git] / wxPython / demo / EventManager.py
index a846958e4bb2bd69842c90fe2f2a42794bedb20d..7f794289c29e404067f3f372fa8844f8dbfab536 100644 (file)
@@ -8,16 +8,6 @@
 # Copyright:   (c) 2002 by Robb Shecter (robb@acm.org)
 # Licence:     wxWindows license
 #---------------------------------------------------------------------------
 # Copyright:   (c) 2002 by Robb Shecter (robb@acm.org)
 # Licence:     wxWindows license
 #---------------------------------------------------------------------------
-#
-# 11/22/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o Updated for wx namespace
-# 
-# 11/25/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o What happened to wx.Color()?
-# 
-
 
 import  wx
 import  wx.lib.evtmgr   as  em
 
 import  wx
 import  wx.lib.evtmgr   as  em
@@ -74,7 +64,6 @@ class TestPanel(wx.Panel):
             sizer.Add(Tile(buttonPanel, log, factor,      target), 0, wx.ALIGN_CENTER)
             sizer.Add((0,0),1)
 
             sizer.Add(Tile(buttonPanel, log, factor,      target), 0, wx.ALIGN_CENTER)
             sizer.Add((0,0),1)
 
-        buttonPanel.SetAutoLayout(1)
         buttonPanel.SetSizer(sizer)
         sizer.Fit(buttonPanel)
 
         buttonPanel.SetSizer(sizer)
         sizer.Fit(buttonPanel)
 
@@ -83,16 +72,15 @@ class TestPanel(wx.Panel):
         sizer.Add(message0,    0, wx.ALIGN_CENTER | wx.ALL, 6)
         sizer.Add(title2,      0, wx.ALIGN_CENTER | wx.LEFT | wx.TOP    | wx.RIGHT, 16)
         sizer.Add(message1,    0, wx.ALIGN_CENTER | wx.ALL, 6)
         sizer.Add(message0,    0, wx.ALIGN_CENTER | wx.ALL, 6)
         sizer.Add(title2,      0, wx.ALIGN_CENTER | wx.LEFT | wx.TOP    | wx.RIGHT, 16)
         sizer.Add(message1,    0, wx.ALIGN_CENTER | wx.ALL, 6)
-        sizer.Add(buttonPanel, 0, wx.EXPAND       | wx.LEFT | wx.BOTTOM | wx.RIGHT, 16)
+        sizer.Add(buttonPanel, 0, wx.EXPAND       | wx.ALL, 16)
         sizer.Add(title3,      0, wx.ALIGN_CENTER | wx.LEFT | wx.RIGHT, 16)
         sizer.Add(message2,    0, wx.ALIGN_CENTER | wx.ALL, 6)
         sizer.Add(targetPanel, 2, wx.EXPAND       | wx.LEFT | wx.BOTTOM | wx.RIGHT, 16)
         sizer.Add(title3,      0, wx.ALIGN_CENTER | wx.LEFT | wx.RIGHT, 16)
         sizer.Add(message2,    0, wx.ALIGN_CENTER | wx.ALL, 6)
         sizer.Add(targetPanel, 2, wx.EXPAND       | wx.LEFT | wx.BOTTOM | wx.RIGHT, 16)
-        self.SetAutoLayout(1)
         self.SetSizer(sizer)
 
 
 
         self.SetSizer(sizer)
 
 
 
-class Tile(wx.Panel):
+class Tile(wx.Window):
     """
     This outer class is responsible for changing
     its border color in response to certain mouse
     """
     This outer class is responsible for changing
     its border color in response to certain mouse
@@ -103,14 +91,14 @@ class Tile(wx.Panel):
     hover  = wx.Colour(210,220,210)
 
     def __init__(self, parent, log, factor=1, thingToWatch=None, bgColor=None, active=1, size=(38,38), borderWidth=3):
     hover  = wx.Colour(210,220,210)
 
     def __init__(self, parent, log, factor=1, thingToWatch=None, bgColor=None, active=1, size=(38,38), borderWidth=3):
-        wx.Panel.__init__(self, parent, -1, size=size, style=wx.CLIP_CHILDREN)
+        wx.Window.__init__(self, parent, -1, size=size, style=wx.CLIP_CHILDREN)
         self.tile = InnerTile(self, log, factor, thingToWatch, bgColor)
         self.log  = log
         sizer = wx.BoxSizer(wx.HORIZONTAL)
         sizer.Add(self.tile, 1, wx.EXPAND | wx.ALL, borderWidth)
         self.tile = InnerTile(self, log, factor, thingToWatch, bgColor)
         self.log  = log
         sizer = wx.BoxSizer(wx.HORIZONTAL)
         sizer.Add(self.tile, 1, wx.EXPAND | wx.ALL, borderWidth)
-        self.SetAutoLayout(1)
         self.SetSizer(sizer)
         self.Layout()
         self.SetSizer(sizer)
         self.Layout()
+        em.eventManager.Register(self.doLayout, wx.EVT_SIZE, self)
         self.SetBackgroundColour(Tile.normal)
         if active:
             # Register myself for mouse events over self.tile in order to
         self.SetBackgroundColour(Tile.normal)
         if active:
             # Register myself for mouse events over self.tile in order to
@@ -121,6 +109,10 @@ class Tile(wx.Panel):
             em.eventManager.Register(self.setHover,  wx.EVT_LEFT_UP,      self.tile)
 
 
             em.eventManager.Register(self.setHover,  wx.EVT_LEFT_UP,      self.tile)
 
 
+    def doLayout(self, event):
+        self.Layout()
+        
+
     def setHover(self, event):
         self.SetBackgroundColour(Tile.hover)
         self.Refresh()
     def setHover(self, event):
         self.SetBackgroundColour(Tile.hover)
         self.Refresh()
@@ -137,7 +129,7 @@ class Tile(wx.Panel):
 
 
 
 
 
 
-class InnerTile(wx.Panel):
+class InnerTile(wx.Window):
     IDLE_COLOR  = wx.Colour( 80, 10, 10)
     START_COLOR = wx.Colour(200, 70, 50)
     FINAL_COLOR = wx.Colour( 20, 80,240)
     IDLE_COLOR  = wx.Colour( 80, 10, 10)
     START_COLOR = wx.Colour(200, 70, 50)
     FINAL_COLOR = wx.Colour( 20, 80,240)
@@ -151,7 +143,8 @@ class InnerTile(wx.Panel):
     events over the 'thingToWatch'.
     """
     def __init__(self, parent, log, factor, thingToWatch=None, bgColor=None):
     events over the 'thingToWatch'.
     """
     def __init__(self, parent, log, factor, thingToWatch=None, bgColor=None):
-        wx.Panel.__init__(self, parent, -1)
+        wx.Window.__init__(self, parent, -1)
+        self.SetMinSize((20,20))
         self.log=log
         if bgColor:
             self.SetBackgroundColour(bgColor)
         self.log=log
         if bgColor:
             self.SetBackgroundColour(bgColor)
@@ -293,5 +286,5 @@ by Robb Shecter (robb@acm.org)
 if __name__ == '__main__':
     import sys,os
     import run
 if __name__ == '__main__':
     import sys,os
     import run
-    run.main(['', os.path.basename(sys.argv[0])])
+    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])