+ # setup the layout
+ fgs = wx.FlexGridSizer(2, 2, 5, 5)
+ fgs.AddGrowableCol(1)
+
+ fgs.Add(wx.StaticText(self, -1, "Size:"),
+ 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
+ fgs.Add(self._size, 0, wx.EXPAND)
+
+ fgs.Add(wx.StaticText(self, -1, "MinSize:"),
+ 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
+ fgs.Add(self._minsize, 0, wx.EXPAND)
+
+ fgs.Add(wx.StaticText(self, -1, "BestSize:"),
+ 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
+ fgs.Add(self._bestsize, 0, wx.EXPAND)
+
+ fgs.Add(wx.StaticText(self, -1, "AdjustedBestSize:"),
+ 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
+ fgs.Add(self._adjbstsize, 0, wx.EXPAND)
+
+ sbs = wx.StaticBoxSizer(sb, wx.VERTICAL)
+ sbs.Add(fgs, 0, wx.EXPAND|wx.ALL, 4)
+
+ self.SetSizer(sbs)
+
+
+ def Update(self, win):
+ self._size.SetValue( str(win.GetSize()) )
+ self._minsize.SetValue( str(win.GetMinSize()) )
+ self._bestsize.SetValue( str(win.GetBestSize()) )
+ self._adjbstsize.SetValue( str(win.GetAdjustedBestSize()) )
+
+
+ def Clear(self):
+ self._size.SetValue("")
+ self._minsize.SetValue("")
+ self._bestsize.SetValue("")
+ self._adjbstsize.SetValue("")
+
+
+
+class ColourInfoPanel(wx.Panel):
+ """
+ A component of the InfoPane that shows fg and bg colour attributes.
+ """
+ def __init__(self, parent, label):
+ wx.Panel.__init__(self, parent)
+
+ # create subwidgets
+ sb = wx.StaticBox(self, -1, label)
+ self._fgtxt = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY)
+ self._fgclr = wx.Panel(self, style=wx.SIMPLE_BORDER)
+ self._fgclr.SetSizeHints((20,20))
+ self._bgtxt = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY)
+ self._bgclr = wx.Panel(self, style=wx.SIMPLE_BORDER)
+ self._bgclr.SetSizeHints((20,20))
+
+ # setup the layout
+ fgs = wx.FlexGridSizer(2, 3, 5, 5)
+ fgs.AddGrowableCol(1)
+
+ fgs.Add(wx.StaticText(self, -1, "FG colour:"),
+ 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
+ fgs.Add(self._fgtxt, 0, wx.EXPAND)
+ fgs.Add(self._fgclr)
+
+ fgs.Add(wx.StaticText(self, -1, "BG colour:"),
+ 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
+ fgs.Add(self._bgtxt, 0, wx.EXPAND)
+ fgs.Add(self._bgclr)
+
+ sbs = wx.StaticBoxSizer(sb, wx.VERTICAL)
+ sbs.Add(fgs, 0, wx.EXPAND|wx.ALL, 4)
+
+ self.SetSizer(sbs)
+
+
+ def Update(self, win):
+ def clr2hex(c, cp):
+ cp.SetBackgroundColour(c)
+ cp.Refresh()
+ return "#%02X%02X%02X" % c.Get()
+
+ self._fgtxt.SetValue( clr2hex(win.GetForegroundColour(), self._fgclr) )
+ self._bgtxt.SetValue( clr2hex(win.GetBackgroundColour(), self._bgclr) )
+
+## f = win.GetFont()
+## print f.GetNativeFontInfo().ToString()
+
+
+ def Clear(self):
+ self._fgtxt.SetValue("")
+ self._bgtxt.SetValue("")
+ self._fgclr.SetBackgroundColour(self.GetBackgroundColour())
+ self._bgclr.SetBackgroundColour(self.GetBackgroundColour())
+ self._fgclr.Refresh()
+ self._bgclr.Refresh()
+
+
+