X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/wx/lib/stattext.py diff --git a/wxPython/wx/lib/stattext.py b/wxPython/wx/lib/stattext.py deleted file mode 100644 index f69d9b6160..0000000000 --- a/wxPython/wx/lib/stattext.py +++ /dev/null @@ -1,170 +0,0 @@ -#---------------------------------------------------------------------- -# Name: wx.lib.stattext -# Purpose: A generic wxGenStaticText class. Using this should -# eliminate some of the platform differences in wxStaticText, -# such as background colours and mouse sensitivity. -# -# Author: Robin Dunn -# -# Created: 8-July-2002 -# RCS-ID: $Id$ -# 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 - -BUFFERED = 0 # In unbuffered mode we can let the theme shine through, - # is there a way to do this when buffering? - -#---------------------------------------------------------------------- - -class GenStaticText(wx.PyControl): - labelDelta = 1 - - def __init__(self, parent, ID, label, - pos = wx.DefaultPosition, size = wx.DefaultSize, - style = 0, - name = "genstattext"): - wx.PyControl.__init__(self, parent, ID, pos, size, style|wx.NO_BORDER, - wx.DefaultValidator, name) - - wx.PyControl.SetLabel(self, label) # don't check wx.ST_NO_AUTORESIZE yet - self.InheritAttributes() - self.SetInitialSize(size) - - self.Bind(wx.EVT_PAINT, self.OnPaint) - if BUFFERED: - self.defBackClr = self.GetBackgroundColour() - self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) - else: - self.SetBackgroundStyle(wx.BG_STYLE_SYSTEM) - - - - def SetLabel(self, label): - """ - Sets the static text label and updates the control's size to exactly - fit the label unless the control has wx.ST_NO_AUTORESIZE flag. - """ - wx.PyControl.SetLabel(self, label) - style = self.GetWindowStyleFlag() - self.InvalidateBestSize() - if not style & wx.ST_NO_AUTORESIZE: - self.SetSize(self.GetBestSize()) - self.Refresh() - - - def SetFont(self, font): - """ - Sets the static text font and updates the control's size to exactly - fit the label unless the control has wx.ST_NO_AUTORESIZE flag. - """ - wx.PyControl.SetFont(self, font) - style = self.GetWindowStyleFlag() - self.InvalidateBestSize() - if not style & wx.ST_NO_AUTORESIZE: - self.SetSize(self.GetBestSize()) - self.Refresh() - - - def DoGetBestSize(self): - """ - Overridden base class virtual. Determines the best size of - the control based on the label size and the current font. - """ - label = self.GetLabel() - font = self.GetFont() - if not font: - font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) - dc = wx.ClientDC(self) - dc.SetFont(font) - - maxWidth = totalHeight = 0 - for line in label.split('\n'): - if line == '': - w, h = dc.GetTextExtent('W') # empty lines have height too - else: - w, h = dc.GetTextExtent(line) - totalHeight += h - maxWidth = max(maxWidth, w) - best = wx.Size(maxWidth, totalHeight) - self.CacheBestSize(best) - return best - - - def AcceptsFocus(self): - """Overridden base class virtual.""" - 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): - if BUFFERED: - dc = wx.BufferedPaintDC(self) - else: - dc = wx.PaintDC(self) - width, height = self.GetClientSize() - if not width or not height: - return - - if BUFFERED: - clr = self.GetBackgroundColour() - 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.MacSetTheme(1) # 1 == kThemeBrushDialogBackgroundActive - dc.SetBackground(backBrush) - dc.Clear() - - if self.IsEnabled(): - dc.SetTextForeground(self.GetForegroundColour()) - else: - dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRAYTEXT)) - - dc.SetFont(self.GetFont()) - label = self.GetLabel() - style = self.GetWindowStyleFlag() - x = y = 0 - for line in label.split('\n'): - if line == '': - w, h = self.GetTextExtent('W') # empty lines have height too - else: - w, h = self.GetTextExtent(line) - if style & wx.ALIGN_RIGHT: - x = width - w - if style & wx.ALIGN_CENTER: - x = (width - w)/2 - dc.DrawText(line, x, y) - y += h - - - def OnEraseBackground(self, event): - pass - - - - -#---------------------------------------------------------------------- - -