X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..64fa6f167ebb404e5441eddcee5bbd0808466d7a:/wxPython/wx/lib/stattext.py diff --git a/wxPython/wx/lib/stattext.py b/wxPython/wx/lib/stattext.py index ddf2642525..ac50f76e73 100644 --- a/wxPython/wx/lib/stattext.py +++ b/wxPython/wx/lib/stattext.py @@ -11,9 +11,11 @@ # Copyright: (c) 2002 by Total Control Software # Licence: wxWindows license #---------------------------------------------------------------------- - -""" -""" +# 12/12/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o 2.5 compatability update. +# o Untested. +# import wx @@ -30,30 +32,12 @@ class GenStaticText(wx.PyControl): wx.DefaultValidator, name) wx.PyControl.SetLabel(self, label) # don't check wx.ST_NO_AUTORESIZE yet - self.SetPosition(pos) - font = parent.GetFont() - if not font.Ok(): - font = wx.SystemSettings.GetSystemFont(wx.SYS_DEFAULT_GUI_FONT) - wx.PyControl.SetFont(self, font) # same here - - self.defBackClr = parent.GetBackgroundColour() - if not self.defBackClr.Ok(): - self.defBackClr = wx.SystemSettings.GetSystemColour(wx.SYS_COLOUR_3DFACE) - self.SetBackgroundColour(self.defBackClr) + self.defBackClr = self.GetBackgroundColour() + self.InheritAttributes() + self.SetBestFittingSize(size) - clr = parent.GetForegroundColour() - if not clr.Ok(): - clr = wx.SystemSettings_GetSystemColour(wx.SYS_COLOUR_BTNTEXT) - self.SetForegroundColour(clr) - - rw, rh = size - bw, bh = self.GetBestSize() - if rw == -1: rw = bw - if rh == -1: rh = bh - self.SetSize(wx.Size(rw, rh)) - - wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground) - wx.EVT_PAINT(self, self.OnPaint) + self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) + self.Bind(wx.EVT_PAINT, self.OnPaint) def SetLabel(self, label): @@ -64,7 +48,9 @@ class GenStaticText(wx.PyControl): wx.PyControl.SetLabel(self, label) style = self.GetWindowStyleFlag() if not style & wx.ST_NO_AUTORESIZE: - self.SetSize(self.GetBestSize()) + best = self.GetBestSize() + self.SetSize(best) + self.SetMinSize(best) self.Refresh() @@ -76,13 +62,17 @@ class GenStaticText(wx.PyControl): wx.PyControl.SetFont(self, font) style = self.GetWindowStyleFlag() if not style & wx.ST_NO_AUTORESIZE: - self.SetSize(self.GetBestSize()) + best = self.GetBestSize() + self.SetSize(best) + self.SetMinSize(best) self.Refresh() def DoGetBestSize(self): - """Overridden base class virtual. Determines the best size of the - button based on the label size.""" + """ + Overridden base class virtual. Determines the best size of + the button based on the label size. + """ label = self.GetLabel() maxWidth = totalHeight = 0 for line in label.split('\n'): @@ -100,6 +90,22 @@ class GenStaticText(wx.PyControl): return False + def GetDefaultAttributes(self): + """ + Overridden base class virtual. By default we should use + the same font/colour attributes as the native StaticText. + """ + return wx.StaticText.GetClassDefaultAttributes() + + + def ShouldInheritColours(self): + """ + Overridden base class virtual. If the parent has non-default + colours then we want this control to inherit them. + """ + return True + + def OnPaint(self, event): dc = wx.BufferedPaintDC(self) #dc = wx.PaintDC(self) @@ -111,7 +117,7 @@ class GenStaticText(wx.PyControl): backBrush = wx.Brush(clr, wx.SOLID) if wx.Platform == "__WXMAC__" and clr == self.defBackClr: # if colour is still the default then use the striped background on Mac - backBrush.SetMacTheme(1) # 1 == kThemeBrushDialogBackgroundActive + backBrush.MacSetTheme(1) # 1 == kThemeBrushDialogBackgroundActive dc.SetBackground(backBrush) dc.SetTextForeground(self.GetForegroundColour()) @@ -129,7 +135,7 @@ class GenStaticText(wx.PyControl): x = width - w if style & wx.ALIGN_CENTER: x = (width - w)/2 - dc.DrawText(line, (x, y)) + dc.DrawText(line, x, y) y += h