X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/caef1a4da61f682659a1a17a68374574ba26afc9..3a9becbd5439254a77e7dbc0278d80117a397264:/wxPython/src/msw/_gdi.py diff --git a/wxPython/src/msw/_gdi.py b/wxPython/src/msw/_gdi.py index d16853e71c..7ea5398228 100644 --- a/wxPython/src/msw/_gdi.py +++ b/wxPython/src/msw/_gdi.py @@ -3,11 +3,53 @@ import _gdi_ +def _swig_setattr_nondynamic(self,class_type,name,value,static=1): + if (name == "this"): + if isinstance(value, class_type): + self.__dict__[name] = value.this + if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown + del value.thisown + return + method = class_type.__swig_setmethods__.get(name,None) + if method: return method(self,value) + if (not static) or hasattr(self,name) or (name == "thisown"): + self.__dict__[name] = value + else: + raise AttributeError("You cannot add attributes to %s" % self) + +def _swig_setattr(self,class_type,name,value): + return _swig_setattr_nondynamic(self,class_type,name,value,0) + +def _swig_getattr(self,class_type,name): + method = class_type.__swig_getmethods__.get(name,None) + if method: return method(self) + raise AttributeError,name + +import types +try: + _object = types.ObjectType + _newclass = 1 +except AttributeError: + class _object : pass + _newclass = 0 +del types + + +def _swig_setattr_nondynamic_method(set): + def set_attr(self,name,value): + if hasattr(self,name) or (name in ("this", "thisown")): + set(self,name,value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + return set_attr + + import _core wx = _core #--------------------------------------------------------------------------- class GDIObject(_core.Object): + """Proxy of C++ GDIObject class""" def __repr__(self): return "<%s.%s; proxy of C++ wxGDIObject instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -227,6 +269,7 @@ NamedColor = NamedColour ColorRGB = ColourRGB class Palette(GDIObject): + """Proxy of C++ Palette class""" def __repr__(self): return "<%s.%s; proxy of C++ wxPalette instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -246,9 +289,13 @@ class Palette(GDIObject): return _gdi_.Palette_GetPixel(*args, **kwargs) def GetRGB(*args, **kwargs): - """GetRGB(int pixel) -> (R,G,B)""" + """GetRGB(self, int pixel) -> (R,G,B)""" return _gdi_.Palette_GetRGB(*args, **kwargs) + def GetColoursCount(*args, **kwargs): + """GetColoursCount(self) -> int""" + return _gdi_.Palette_GetColoursCount(*args, **kwargs) + def Ok(*args, **kwargs): """Ok(self) -> bool""" return _gdi_.Palette_Ok(*args, **kwargs) @@ -265,6 +312,7 @@ _gdi_.Palette_swigregister(PalettePtr) #--------------------------------------------------------------------------- class Pen(GDIObject): + """Proxy of C++ Pen class""" def __repr__(self): return "<%s.%s; proxy of C++ wxPen instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -324,7 +372,7 @@ class Pen(GDIObject): return _gdi_.Pen_SetWidth(*args, **kwargs) def SetDashes(*args, **kwargs): - """SetDashes(self, int dashes, wxDash dashes_array)""" + """SetDashes(self, int dashes)""" return _gdi_.Pen_SetDashes(*args, **kwargs) def GetDashes(*args, **kwargs): @@ -447,6 +495,14 @@ class Brush(GDIObject): """ return _gdi_.Brush_GetStipple(*args, **kwargs) + def IsHatch(*args, **kwargs): + """ + IsHatch(self) -> bool + + Is the current style a hatch type? + """ + return _gdi_.Brush_IsHatch(*args, **kwargs) + def Ok(*args, **kwargs): """ Ok(self) -> bool @@ -464,6 +520,16 @@ class BrushPtr(Brush): self.__class__ = Brush _gdi_.Brush_swigregister(BrushPtr) +def BrushFromBitmap(*args, **kwargs): + """ + BrushFromBitmap(Bitmap stippleBitmap) -> Brush + + Constructs a stippled brush using a bitmap. + """ + val = _gdi_.new_BrushFromBitmap(*args, **kwargs) + val.thisown = 1 + return val + class Bitmap(GDIObject): """ The wx.Bitmap class encapsulates the concept of a platform-dependent @@ -491,10 +557,6 @@ class Bitmap(GDIObject): if self.thisown: destroy(self) except: pass - def SetPalette(*args, **kwargs): - """SetPalette(self, Palette palette)""" - return _gdi_.Bitmap_SetPalette(*args, **kwargs) - def GetHandle(*args, **kwargs): """GetHandle(self) -> long""" return _gdi_.Bitmap_GetHandle(*args, **kwargs) @@ -609,6 +671,14 @@ class Bitmap(GDIObject): """ return _gdi_.Bitmap_LoadFile(*args, **kwargs) + def GetPalette(*args, **kwargs): + """GetPalette(self) -> Palette""" + return _gdi_.Bitmap_GetPalette(*args, **kwargs) + + def SetPalette(*args, **kwargs): + """SetPalette(self, Palette palette)""" + return _gdi_.Bitmap_SetPalette(*args, **kwargs) + def CopyFromIcon(*args, **kwargs): """CopyFromIcon(self, Icon icon) -> bool""" return _gdi_.Bitmap_CopyFromIcon(*args, **kwargs) @@ -773,6 +843,7 @@ _gdi_.Mask_swigregister(MaskPtr) MaskColour = wx._deprecated(Mask, "wx.MaskColour is deprecated, use `wx.Mask` instead.") class Icon(GDIObject): + """Proxy of C++ Icon class""" def __repr__(self): return "<%s.%s; proxy of C++ wxIcon instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -869,6 +940,7 @@ def IconFromXPMData(*args, **kwargs): return val class IconLocation(object): + """Proxy of C++ IconLocation class""" def __repr__(self): return "<%s.%s; proxy of C++ wxIconLocation instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -913,6 +985,7 @@ class IconLocationPtr(IconLocation): _gdi_.IconLocation_swigregister(IconLocationPtr) class IconBundle(object): + """Proxy of C++ IconBundle class""" def __repr__(self): return "<%s.%s; proxy of C++ wxIconBundle instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -978,11 +1051,8 @@ class Cursor(GDIObject): __init__(self, String cursorName, long type, int hotSpotX=0, int hotSpotY=0) -> Cursor Construct a Cursor from a file. Specify the type of file using - wx.BITAMP_TYPE* constants, and specify the hotspot if not using a cur + wx.BITAMP_TYPE* constants, and specify the hotspot if not using a .cur file. - - This constructor is not available on wxGTK, use ``wx.StockCursor``, - ``wx.CursorFromImage``, or ``wx.CursorFromBits`` instead. """ newobj = _gdi_.new_Cursor(*args, **kwargs) self.this = newobj.this @@ -1056,7 +1126,7 @@ def StockCursor(*args, **kwargs): StockCursor(int id) -> Cursor Create a cursor using one of the stock cursors. Note that not all - cursors are available on all platforms. + stock cursors are available on all platforms. """ val = _gdi_.new_StockCursor(*args, **kwargs) val.thisown = 1 @@ -1066,10 +1136,8 @@ def CursorFromImage(*args, **kwargs): """ CursorFromImage(Image image) -> Cursor - Constructs a cursor from a wxImage. The cursor is monochrome, colors - with the RGB elements all greater than 127 will be foreground, colors - less than this background. The mask (if any) will be used as - transparent. + Constructs a cursor from a `wx.Image`. The mask (if any) will be used + for setting the transparent portions of the cursor. """ val = _gdi_.new_CursorFromImage(*args, **kwargs) val.thisown = 1 @@ -1081,6 +1149,7 @@ OutRegion = _gdi_.OutRegion PartRegion = _gdi_.PartRegion InRegion = _gdi_.InRegion class Region(GDIObject): + """Proxy of C++ Region class""" def __repr__(self): return "<%s.%s; proxy of C++ wxRegion instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -1180,9 +1249,13 @@ class Region(GDIObject): return _gdi_.Region_ConvertToBitmap(*args, **kwargs) def UnionBitmap(*args, **kwargs): - """UnionBitmap(self, Bitmap bmp, Colour transColour=NullColour, int tolerance=0) -> bool""" + """UnionBitmap(self, Bitmap bmp) -> bool""" return _gdi_.Region_UnionBitmap(*args, **kwargs) + def UnionBitmapColour(*args, **kwargs): + """UnionBitmapColour(self, Bitmap bmp, Colour transColour, int tolerance=0) -> bool""" + return _gdi_.Region_UnionBitmapColour(*args, **kwargs) + class RegionPtr(Region): def __init__(self, this): @@ -1192,18 +1265,25 @@ class RegionPtr(Region): _gdi_.Region_swigregister(RegionPtr) def RegionFromBitmap(*args, **kwargs): - """RegionFromBitmap(Bitmap bmp, Colour transColour=NullColour, int tolerance=0) -> Region""" + """RegionFromBitmap(Bitmap bmp) -> Region""" val = _gdi_.new_RegionFromBitmap(*args, **kwargs) val.thisown = 1 return val +def RegionFromBitmapColour(*args, **kwargs): + """RegionFromBitmapColour(Bitmap bmp, Colour transColour, int tolerance=0) -> Region""" + val = _gdi_.new_RegionFromBitmapColour(*args, **kwargs) + val.thisown = 1 + return val + def RegionFromPoints(*args, **kwargs): - """RegionFromPoints(int points, Point points_array, int fillStyle=WINDING_RULE) -> Region""" + """RegionFromPoints(int points, int fillStyle=WINDING_RULE) -> Region""" val = _gdi_.new_RegionFromPoints(*args, **kwargs) val.thisown = 1 return val class RegionIterator(_core.Object): + """Proxy of C++ RegionIterator class""" def __repr__(self): return "<%s.%s; proxy of C++ wxRegionIterator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -1399,6 +1479,7 @@ FONTENCODING_SHIFT_JIS = _gdi_.FONTENCODING_SHIFT_JIS #--------------------------------------------------------------------------- class NativeFontInfo(object): + """Proxy of C++ NativeFontInfo class""" def __repr__(self): return "<%s.%s; proxy of C++ wxNativeFontInfo instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -1425,6 +1506,10 @@ class NativeFontInfo(object): """GetPointSize(self) -> int""" return _gdi_.NativeFontInfo_GetPointSize(*args, **kwargs) + def GetPixelSize(*args, **kwargs): + """GetPixelSize(self) -> Size""" + return _gdi_.NativeFontInfo_GetPixelSize(*args, **kwargs) + def GetStyle(*args, **kwargs): """GetStyle(self) -> int""" return _gdi_.NativeFontInfo_GetStyle(*args, **kwargs) @@ -1453,6 +1538,10 @@ class NativeFontInfo(object): """SetPointSize(self, int pointsize)""" return _gdi_.NativeFontInfo_SetPointSize(*args, **kwargs) + def SetPixelSize(*args, **kwargs): + """SetPixelSize(self, Size pixelSize)""" + return _gdi_.NativeFontInfo_SetPixelSize(*args, **kwargs) + def SetStyle(*args, **kwargs): """SetStyle(self, int style)""" return _gdi_.NativeFontInfo_SetStyle(*args, **kwargs) @@ -1506,6 +1595,7 @@ class NativeFontInfoPtr(NativeFontInfo): _gdi_.NativeFontInfo_swigregister(NativeFontInfoPtr) class NativeEncodingInfo(object): + """Proxy of C++ NativeEncodingInfo class""" def __repr__(self): return "<%s.%s; proxy of C++ wxNativeEncodingInfo instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) facename = property(_gdi_.NativeEncodingInfo_facename_get, _gdi_.NativeEncodingInfo_facename_set) @@ -1549,6 +1639,7 @@ def TestFontEncoding(*args, **kwargs): #--------------------------------------------------------------------------- class FontMapper(object): + """Proxy of C++ FontMapper class""" def __repr__(self): return "<%s.%s; proxy of C++ wxFontMapper instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -1674,6 +1765,13 @@ def FontMapper_GetDefaultConfigPath(*args, **kwargs): #--------------------------------------------------------------------------- class Font(GDIObject): + """ + A font is an object which determines the appearance of text. Fonts are + used for drawing text to a device context, and setting the appearance + of a window's text. + + You can retrieve the current system font settings with `wx.SystemSettings`. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxFont instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -1681,6 +1779,35 @@ class Font(GDIObject): __init__(self, int pointSize, int family, int style, int weight, bool underline=False, String face=EmptyString, int encoding=FONTENCODING_DEFAULT) -> Font + + Creates a font object with the specified attributes. + + :param pointSize: The size of the font in points. + + :param family: Font family. A generic way of referring to fonts + without specifying actual facename. It can be One of + the ``wx.FONTFAMILY_xxx`` constants. + + :param style: One of the ``wx.FONTSTYLE_xxx`` constants. + + :param weight: Font weight, sometimes also referred to as font + boldness. One of the ``wx.FONTWEIGHT_xxx`` constants. + + :param underline: The value can be ``True`` or ``False`` and + indicates whether the font will include an underline. This + may not be supported on all platforms. + + :param face: An optional string specifying the actual typeface to + be used. If it is an empty string, a default typeface will be + chosen based on the family. + + :param encoding: An encoding which may be one of the + ``wx.FONTENCODING_xxx`` constants. If the specified encoding isn't + available, no font is created. + + :see: `wx.FFont`, `wx.FontFromPixelSize`, `wx.FFontFromPixelSize`, + `wx.FontFromNativeInfoString`, `wx.FontFromNativeInfo` + """ if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName'] newobj = _gdi_.new_Font(*args, **kwargs) @@ -1694,7 +1821,11 @@ class Font(GDIObject): except: pass def Ok(*args, **kwargs): - """Ok(self) -> bool""" + """ + Ok(self) -> bool + + Returns ``True`` if this font was successfully created. + """ return _gdi_.Font_Ok(*args, **kwargs) def __nonzero__(self): return self.Ok() @@ -1707,99 +1838,234 @@ class Font(GDIObject): return _gdi_.Font___ne__(*args, **kwargs) def GetPointSize(*args, **kwargs): - """GetPointSize(self) -> int""" + """ + GetPointSize(self) -> int + + Gets the point size. + """ return _gdi_.Font_GetPointSize(*args, **kwargs) + def GetPixelSize(*args, **kwargs): + """ + GetPixelSize(self) -> Size + + Returns the size in pixels if the font was constructed with a pixel + size. + """ + return _gdi_.Font_GetPixelSize(*args, **kwargs) + + def IsUsingSizeInPixels(*args, **kwargs): + """ + IsUsingSizeInPixels(self) -> bool + + Returns ``True`` if the font is using a pixelSize. + """ + return _gdi_.Font_IsUsingSizeInPixels(*args, **kwargs) + def GetFamily(*args, **kwargs): - """GetFamily(self) -> int""" + """ + GetFamily(self) -> int + + Gets the font family. + """ return _gdi_.Font_GetFamily(*args, **kwargs) def GetStyle(*args, **kwargs): - """GetStyle(self) -> int""" + """ + GetStyle(self) -> int + + Gets the font style. + """ return _gdi_.Font_GetStyle(*args, **kwargs) def GetWeight(*args, **kwargs): - """GetWeight(self) -> int""" + """ + GetWeight(self) -> int + + Gets the font weight. + """ return _gdi_.Font_GetWeight(*args, **kwargs) def GetUnderlined(*args, **kwargs): - """GetUnderlined(self) -> bool""" + """ + GetUnderlined(self) -> bool + + Returns ``True`` if the font is underlined, ``False`` otherwise. + """ return _gdi_.Font_GetUnderlined(*args, **kwargs) def GetFaceName(*args, **kwargs): - """GetFaceName(self) -> String""" + """ + GetFaceName(self) -> String + + Returns the typeface name associated with the font, or the empty + string if there is no typeface information. + """ return _gdi_.Font_GetFaceName(*args, **kwargs) def GetEncoding(*args, **kwargs): - """GetEncoding(self) -> int""" + """ + GetEncoding(self) -> int + + Get the font's encoding. + """ return _gdi_.Font_GetEncoding(*args, **kwargs) def GetNativeFontInfo(*args, **kwargs): - """GetNativeFontInfo(self) -> NativeFontInfo""" + """ + GetNativeFontInfo(self) -> NativeFontInfo + + Constructs a `wx.NativeFontInfo` object from this font. + """ return _gdi_.Font_GetNativeFontInfo(*args, **kwargs) def IsFixedWidth(*args, **kwargs): - """IsFixedWidth(self) -> bool""" + """ + IsFixedWidth(self) -> bool + + Returns true if the font is a fixed width (or monospaced) font, false + if it is a proportional one or font is invalid. + """ return _gdi_.Font_IsFixedWidth(*args, **kwargs) def GetNativeFontInfoDesc(*args, **kwargs): - """GetNativeFontInfoDesc(self) -> String""" + """ + GetNativeFontInfoDesc(self) -> String + + Returns the platform-dependent string completely describing this font + or an empty string if the font isn't valid. + """ return _gdi_.Font_GetNativeFontInfoDesc(*args, **kwargs) def GetNativeFontInfoUserDesc(*args, **kwargs): - """GetNativeFontInfoUserDesc(self) -> String""" + """ + GetNativeFontInfoUserDesc(self) -> String + + Returns a human readable version of `GetNativeFontInfoDesc`. + """ return _gdi_.Font_GetNativeFontInfoUserDesc(*args, **kwargs) def SetPointSize(*args, **kwargs): - """SetPointSize(self, int pointSize)""" + """ + SetPointSize(self, int pointSize) + + Sets the point size. + """ return _gdi_.Font_SetPointSize(*args, **kwargs) + def SetPixelSize(*args, **kwargs): + """ + SetPixelSize(self, Size pixelSize) + + Sets the size in pixels rather than points. If there is platform API + support for this then it is used, otherwise a font with the closest + size is found using a binary search. + """ + return _gdi_.Font_SetPixelSize(*args, **kwargs) + def SetFamily(*args, **kwargs): - """SetFamily(self, int family)""" + """ + SetFamily(self, int family) + + Sets the font family. + """ return _gdi_.Font_SetFamily(*args, **kwargs) def SetStyle(*args, **kwargs): - """SetStyle(self, int style)""" + """ + SetStyle(self, int style) + + Sets the font style. + """ return _gdi_.Font_SetStyle(*args, **kwargs) def SetWeight(*args, **kwargs): - """SetWeight(self, int weight)""" + """ + SetWeight(self, int weight) + + Sets the font weight. + """ return _gdi_.Font_SetWeight(*args, **kwargs) def SetFaceName(*args, **kwargs): - """SetFaceName(self, String faceName)""" + """ + SetFaceName(self, String faceName) + + Sets the facename for the font. The facename, which should be a valid + font installed on the end-user's system. + + To avoid portability problems, don't rely on a specific face, but + specify the font family instead or as well. A suitable font will be + found on the end-user's system. If both the family and the facename + are specified, wxWidgets will first search for the specific face, and + then for a font belonging to the same family. + """ return _gdi_.Font_SetFaceName(*args, **kwargs) def SetUnderlined(*args, **kwargs): - """SetUnderlined(self, bool underlined)""" + """ + SetUnderlined(self, bool underlined) + + Sets underlining. + """ return _gdi_.Font_SetUnderlined(*args, **kwargs) def SetEncoding(*args, **kwargs): - """SetEncoding(self, int encoding)""" + """ + SetEncoding(self, int encoding) + + Set the font encoding. + """ return _gdi_.Font_SetEncoding(*args, **kwargs) def SetNativeFontInfo(*args, **kwargs): - """SetNativeFontInfo(self, NativeFontInfo info)""" + """ + SetNativeFontInfo(self, NativeFontInfo info) + + Set the font's attributes from a `wx.NativeFontInfo` object. + """ return _gdi_.Font_SetNativeFontInfo(*args, **kwargs) def SetNativeFontInfoFromString(*args, **kwargs): - """SetNativeFontInfoFromString(self, String info)""" + """ + SetNativeFontInfoFromString(self, String info) + + Set the font's attributes from string representation of a + `wx.NativeFontInfo` object. + """ return _gdi_.Font_SetNativeFontInfoFromString(*args, **kwargs) def SetNativeFontInfoUserDesc(*args, **kwargs): - """SetNativeFontInfoUserDesc(self, String info)""" + """ + SetNativeFontInfoUserDesc(self, String info) + + Set the font's attributes from a string formerly returned from + `GetNativeFontInfoDesc`. + """ return _gdi_.Font_SetNativeFontInfoUserDesc(*args, **kwargs) def GetFamilyString(*args, **kwargs): - """GetFamilyString(self) -> String""" + """ + GetFamilyString(self) -> String + + Returns a string representation of the font family. + """ return _gdi_.Font_GetFamilyString(*args, **kwargs) def GetStyleString(*args, **kwargs): - """GetStyleString(self) -> String""" + """ + GetStyleString(self) -> String + + Returns a string representation of the font style. + """ return _gdi_.Font_GetStyleString(*args, **kwargs) def GetWeightString(*args, **kwargs): - """GetWeightString(self) -> String""" + """ + GetWeightString(self) -> String + + Return a string representation of the font weight. + """ return _gdi_.Font_GetWeightString(*args, **kwargs) def SetNoAntiAliasing(*args, **kwargs): @@ -1811,12 +2077,21 @@ class Font(GDIObject): return _gdi_.Font_GetNoAntiAliasing(*args, **kwargs) def GetDefaultEncoding(*args, **kwargs): - """GetDefaultEncoding() -> int""" + """ + GetDefaultEncoding() -> int + + Returns the encoding used for all fonts created with an encoding of + ``wx.FONTENCODING_DEFAULT``. + """ return _gdi_.Font_GetDefaultEncoding(*args, **kwargs) GetDefaultEncoding = staticmethod(GetDefaultEncoding) def SetDefaultEncoding(*args, **kwargs): - """SetDefaultEncoding(int encoding)""" + """ + SetDefaultEncoding(int encoding) + + Sets the default font encoding. + """ return _gdi_.Font_SetDefaultEncoding(*args, **kwargs) SetDefaultEncoding = staticmethod(SetDefaultEncoding) @@ -1829,40 +2104,111 @@ class FontPtr(Font): _gdi_.Font_swigregister(FontPtr) def FontFromNativeInfo(*args, **kwargs): - """FontFromNativeInfo(NativeFontInfo info) -> Font""" + """ + FontFromNativeInfo(NativeFontInfo info) -> Font + + Construct a `wx.Font` from a `wx.NativeFontInfo` object. + """ if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName'] val = _gdi_.new_FontFromNativeInfo(*args, **kwargs) val.thisown = 1 return val def FontFromNativeInfoString(*args, **kwargs): - """FontFromNativeInfoString(String info) -> Font""" + """ + FontFromNativeInfoString(String info) -> Font + + Construct a `wx.Font` from the string representation of a + `wx.NativeFontInfo` object. + """ if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName'] val = _gdi_.new_FontFromNativeInfoString(*args, **kwargs) val.thisown = 1 return val -def Font2(*args, **kwargs): +def FFont(*args, **kwargs): """ - Font2(int pointSize, int family, int flags=FONTFLAG_DEFAULT, + FFont(int pointSize, int family, int flags=FONTFLAG_DEFAULT, String face=EmptyString, int encoding=FONTENCODING_DEFAULT) -> Font + + A bit of a simpler way to create a `wx.Font` using flags instead of + individual attribute settings. The value of flags can be a + combination of the following: + + ============================ == + wx.FONTFLAG_DEFAULT + wx.FONTFLAG_ITALIC + wx.FONTFLAG_SLANT + wx.FONTFLAG_LIGHT + wx.FONTFLAG_BOLD + wx.FONTFLAG_ANTIALIASED + wx.FONTFLAG_NOT_ANTIALIASED + wx.FONTFLAG_UNDERLINED + wx.FONTFLAG_STRIKETHROUGH + ============================ == + + :see: `wx.Font.__init__` """ if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName'] - val = _gdi_.new_Font2(*args, **kwargs) + val = _gdi_.new_FFont(*args, **kwargs) + val.thisown = 1 + return val + +def FontFromPixelSize(*args, **kwargs): + """ + FontFromPixelSize(Size pixelSize, int family, int style, int weight, + bool underlined=False, String face=wxEmptyString, + int encoding=FONTENCODING_DEFAULT) -> Font + + Creates a font using a size in pixels rather than points. If there is + platform API support for this then it is used, otherwise a font with + the closest size is found using a binary search. + + :see: `wx.Font.__init__` + """ + if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName'] + val = _gdi_.new_FontFromPixelSize(*args, **kwargs) + val.thisown = 1 + return val + +def FFontFromPixelSize(*args, **kwargs): + """ + FFontFromPixelSize(Size pixelSize, int family, int flags=FONTFLAG_DEFAULT, + String face=wxEmptyString, int encoding=FONTENCODING_DEFAULT) -> Font + + Creates a font using a size in pixels rather than points. If there is + platform API support for this then it is used, otherwise a font with + the closest size is found using a binary search. + + :see: `wx.Font.__init__`, `wx.FFont` + """ + if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName'] + val = _gdi_.new_FFontFromPixelSize(*args, **kwargs) val.thisown = 1 return val def Font_GetDefaultEncoding(*args, **kwargs): - """Font_GetDefaultEncoding() -> int""" + """ + Font_GetDefaultEncoding() -> int + + Returns the encoding used for all fonts created with an encoding of + ``wx.FONTENCODING_DEFAULT``. + """ return _gdi_.Font_GetDefaultEncoding(*args, **kwargs) def Font_SetDefaultEncoding(*args, **kwargs): - """Font_SetDefaultEncoding(int encoding)""" + """ + Font_SetDefaultEncoding(int encoding) + + Sets the default font encoding. + """ return _gdi_.Font_SetDefaultEncoding(*args, **kwargs) +Font2 = wx._deprecated(FFont, "Use `wx.FFont` instead.") #--------------------------------------------------------------------------- class FontEnumerator(object): + """Proxy of C++ FontEnumerator class""" def __repr__(self): return "<%s.%s; proxy of C++ wxPyFontEnumerator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -2141,6 +2487,7 @@ LANGUAGE_ZHUANG = _gdi_.LANGUAGE_ZHUANG LANGUAGE_ZULU = _gdi_.LANGUAGE_ZULU LANGUAGE_USER_DEFINED = _gdi_.LANGUAGE_USER_DEFINED class LanguageInfo(object): + """Proxy of C++ LanguageInfo class""" def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxLanguageInfo instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -2164,6 +2511,7 @@ LOCALE_DECIMAL_POINT = _gdi_.LOCALE_DECIMAL_POINT LOCALE_LOAD_DEFAULT = _gdi_.LOCALE_LOAD_DEFAULT LOCALE_CONV_ENCODING = _gdi_.LOCALE_CONV_ENCODING class Locale(object): + """Proxy of C++ Locale class""" def __repr__(self): return "<%s.%s; proxy of C++ wxLocale instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -2328,6 +2676,7 @@ PLATFORM_WINDOWS = _gdi_.PLATFORM_WINDOWS PLATFORM_OS2 = _gdi_.PLATFORM_OS2 PLATFORM_MAC = _gdi_.PLATFORM_MAC class EncodingConverter(_core.Object): + """Proxy of C++ EncodingConverter class""" def __repr__(self): return "<%s.%s; proxy of C++ wxEncodingConverter instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -2394,21 +2743,12 @@ def EncodingConverter_CanConvert(*args, **kwargs): return _gdi_.EncodingConverter_CanConvert(*args, **kwargs) #---------------------------------------------------------------------------- -# wxGTK sets the locale when initialized. Doing this at the Python -# level should set it up to match what GTK is doing at the C level. -if wx.Platform == "__WXGTK__": - try: - import locale - locale.setlocale(locale.LC_ALL, "") - except: - pass - -# On MSW add the directory where the wxWindows catalogs were installed +# On MSW add the directory where the wxWidgets catalogs were installed # to the default catalog path. if wx.Platform == "__WXMSW__": import os - localedir = os.path.join(os.path.split(__file__)[0], "locale") - Locale_AddCatalogLookupPathPrefix(localedir) + _localedir = os.path.join(os.path.split(__file__)[0], "locale") + Locale.AddCatalogLookupPathPrefix(_localedir) del os #---------------------------------------------------------------------------- @@ -2416,6 +2756,21 @@ if wx.Platform == "__WXMSW__": #--------------------------------------------------------------------------- class DC(_core.Object): + """ + A wx.DC is a device context onto which graphics and text can be + drawn. It is intended to represent a number of output devices in a + generic way, so a window can have a device context associated with it, + and a printer also has a device context. In this way, the same piece + of code may write to a number of different devices, if the device + context is used as a parameter. + + Derived types of wxDC have documentation for specific features only, + so refer to this section for most device context information. + + The wx.DC class is abstract and can not be instantiated, you must use + one of the derived classes instead. Which one will depend on the + situation in which it is used. + """ def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -2426,23 +2781,75 @@ class DC(_core.Object): except: pass def BeginDrawing(*args, **kwargs): - """BeginDrawing(self)""" + """ + BeginDrawing(self) + + Allows for optimization of drawing code on platforms that need it. On + other platforms this is just an empty function and is harmless. To + take advantage of this postential optimization simply enclose each + group of calls to the drawing primitives within calls to + `BeginDrawing` and `EndDrawing`. + """ return _gdi_.DC_BeginDrawing(*args, **kwargs) def EndDrawing(*args, **kwargs): - """EndDrawing(self)""" + """ + EndDrawing(self) + + Ends the group of drawing primitives started with `BeginDrawing`, and + invokes whatever optimization is available for this DC type on the + current platform. + """ return _gdi_.DC_EndDrawing(*args, **kwargs) def FloodFill(*args, **kwargs): - """FloodFill(self, int x, int y, Colour col, int style=FLOOD_SURFACE) -> bool""" + """ + FloodFill(self, int x, int y, Colour col, int style=FLOOD_SURFACE) -> bool + + Flood fills the device context starting from the given point, using + the current brush colour, and using a style: + + - **wxFLOOD_SURFACE**: the flooding occurs until a colour other than + the given colour is encountered. + + - **wxFLOOD_BORDER**: the area to be flooded is bounded by the given + colour. + + Returns False if the operation failed. + + Note: The present implementation for non-Windows platforms may fail to + find colour borders if the pixels do not match the colour + exactly. However the function will still return true. + """ return _gdi_.DC_FloodFill(*args, **kwargs) def FloodFillPoint(*args, **kwargs): - """FloodFillPoint(self, Point pt, Colour col, int style=FLOOD_SURFACE) -> bool""" + """ + FloodFillPoint(self, Point pt, Colour col, int style=FLOOD_SURFACE) -> bool + + Flood fills the device context starting from the given point, using + the current brush colour, and using a style: + + - **wxFLOOD_SURFACE**: the flooding occurs until a colour other than + the given colour is encountered. + + - **wxFLOOD_BORDER**: the area to be flooded is bounded by the given + colour. + + Returns False if the operation failed. + + Note: The present implementation for non-Windows platforms may fail to + find colour borders if the pixels do not match the colour + exactly. However the function will still return true. + """ return _gdi_.DC_FloodFillPoint(*args, **kwargs) def GetPixel(*args, **kwargs): - """GetPixel(self, int x, int y) -> Colour""" + """ + GetPixel(self, int x, int y) -> Colour + + Gets the colour at the specified location on the DC. + """ return _gdi_.DC_GetPixel(*args, **kwargs) def GetPixelPoint(*args, **kwargs): @@ -2450,127 +2857,368 @@ class DC(_core.Object): return _gdi_.DC_GetPixelPoint(*args, **kwargs) def DrawLine(*args, **kwargs): - """DrawLine(self, int x1, int y1, int x2, int y2)""" + """ + DrawLine(self, int x1, int y1, int x2, int y2) + + Draws a line from the first point to the second. The current pen is + used for drawing the line. Note that the second point is *not* part of + the line and is not drawn by this function (this is consistent with + the behaviour of many other toolkits). + """ return _gdi_.DC_DrawLine(*args, **kwargs) def DrawLinePoint(*args, **kwargs): - """DrawLinePoint(self, Point pt1, Point pt2)""" + """ + DrawLinePoint(self, Point pt1, Point pt2) + + Draws a line from the first point to the second. The current pen is + used for drawing the line. Note that the second point is *not* part of + the line and is not drawn by this function (this is consistent with + the behaviour of many other toolkits). + """ return _gdi_.DC_DrawLinePoint(*args, **kwargs) def CrossHair(*args, **kwargs): - """CrossHair(self, int x, int y)""" + """ + CrossHair(self, int x, int y) + + Displays a cross hair using the current pen. This is a vertical and + horizontal line the height and width of the window, centred on the + given point. + """ return _gdi_.DC_CrossHair(*args, **kwargs) def CrossHairPoint(*args, **kwargs): - """CrossHairPoint(self, Point pt)""" + """ + CrossHairPoint(self, Point pt) + + Displays a cross hair using the current pen. This is a vertical and + horizontal line the height and width of the window, centred on the + given point. + """ return _gdi_.DC_CrossHairPoint(*args, **kwargs) def DrawArc(*args, **kwargs): - """DrawArc(self, int x1, int y1, int x2, int y2, int xc, int yc)""" + """ + DrawArc(self, int x1, int y1, int x2, int y2, int xc, int yc) + + Draws an arc of a circle, centred on the *center* point (xc, yc), from + the first point to the second. The current pen is used for the outline + and the current brush for filling the shape. + + The arc is drawn in an anticlockwise direction from the start point to + the end point. + """ return _gdi_.DC_DrawArc(*args, **kwargs) def DrawArcPoint(*args, **kwargs): - """DrawArcPoint(self, Point pt1, Point pt2, Point centre)""" + """ + DrawArcPoint(self, Point pt1, Point pt2, Point center) + + Draws an arc of a circle, centred on the *center* point (xc, yc), from + the first point to the second. The current pen is used for the outline + and the current brush for filling the shape. + + The arc is drawn in an anticlockwise direction from the start point to + the end point. + """ return _gdi_.DC_DrawArcPoint(*args, **kwargs) def DrawCheckMark(*args, **kwargs): - """DrawCheckMark(self, int x, int y, int width, int height)""" + """ + DrawCheckMark(self, int x, int y, int width, int height) + + Draws a check mark inside the given rectangle. + """ return _gdi_.DC_DrawCheckMark(*args, **kwargs) def DrawCheckMarkRect(*args, **kwargs): - """DrawCheckMarkRect(self, Rect rect)""" + """ + DrawCheckMarkRect(self, Rect rect) + + Draws a check mark inside the given rectangle. + """ return _gdi_.DC_DrawCheckMarkRect(*args, **kwargs) def DrawEllipticArc(*args, **kwargs): - """DrawEllipticArc(self, int x, int y, int w, int h, double sa, double ea)""" + """ + DrawEllipticArc(self, int x, int y, int w, int h, double start, double end) + + Draws an arc of an ellipse, with the given rectangle defining the + bounds of the ellipse. The current pen is used for drawing the arc and + the current brush is used for drawing the pie. + + The *start* and *end* parameters specify the start and end of the arc + relative to the three-o'clock position from the center of the + rectangle. Angles are specified in degrees (360 is a complete + circle). Positive values mean counter-clockwise motion. If start is + equal to end, a complete ellipse will be drawn. + """ return _gdi_.DC_DrawEllipticArc(*args, **kwargs) def DrawEllipticArcPointSize(*args, **kwargs): - """DrawEllipticArcPointSize(self, Point pt, Size sz, double sa, double ea)""" + """ + DrawEllipticArcPointSize(self, Point pt, Size sz, double start, double end) + + Draws an arc of an ellipse, with the given rectangle defining the + bounds of the ellipse. The current pen is used for drawing the arc and + the current brush is used for drawing the pie. + + The *start* and *end* parameters specify the start and end of the arc + relative to the three-o'clock position from the center of the + rectangle. Angles are specified in degrees (360 is a complete + circle). Positive values mean counter-clockwise motion. If start is + equal to end, a complete ellipse will be drawn. + """ return _gdi_.DC_DrawEllipticArcPointSize(*args, **kwargs) def DrawPoint(*args, **kwargs): - """DrawPoint(self, int x, int y)""" + """ + DrawPoint(self, int x, int y) + + Draws a point using the current pen. + """ return _gdi_.DC_DrawPoint(*args, **kwargs) def DrawPointPoint(*args, **kwargs): - """DrawPointPoint(self, Point pt)""" + """ + DrawPointPoint(self, Point pt) + + Draws a point using the current pen. + """ return _gdi_.DC_DrawPointPoint(*args, **kwargs) def DrawRectangle(*args, **kwargs): - """DrawRectangle(self, int x, int y, int width, int height)""" + """ + DrawRectangle(self, int x, int y, int width, int height) + + Draws a rectangle with the given top left corner, and with the given + size. The current pen is used for the outline and the current brush + for filling the shape. + """ return _gdi_.DC_DrawRectangle(*args, **kwargs) def DrawRectangleRect(*args, **kwargs): - """DrawRectangleRect(self, Rect rect)""" + """ + DrawRectangleRect(self, Rect rect) + + Draws a rectangle with the given top left corner, and with the given + size. The current pen is used for the outline and the current brush + for filling the shape. + """ return _gdi_.DC_DrawRectangleRect(*args, **kwargs) def DrawRectanglePointSize(*args, **kwargs): - """DrawRectanglePointSize(self, Point pt, Size sz)""" - return _gdi_.DC_DrawRectanglePointSize(*args, **kwargs) + """ + DrawRectanglePointSize(self, Point pt, Size sz) + + Draws a rectangle with the given top left corner, and with the given + size. The current pen is used for the outline and the current brush + for filling the shape. + """ + return _gdi_.DC_DrawRectanglePointSize(*args, **kwargs) def DrawRoundedRectangle(*args, **kwargs): - """DrawRoundedRectangle(self, int x, int y, int width, int height, double radius)""" + """ + DrawRoundedRectangle(self, int x, int y, int width, int height, double radius) + + Draws a rectangle with the given top left corner, and with the given + size. The corners are quarter-circles using the given radius. The + current pen is used for the outline and the current brush for filling + the shape. + + If radius is positive, the value is assumed to be the radius of the + rounded corner. If radius is negative, the absolute value is assumed + to be the proportion of the smallest dimension of the rectangle. This + means that the corner can be a sensible size relative to the size of + the rectangle, and also avoids the strange effects X produces when the + corners are too big for the rectangle. + """ return _gdi_.DC_DrawRoundedRectangle(*args, **kwargs) def DrawRoundedRectangleRect(*args, **kwargs): - """DrawRoundedRectangleRect(self, Rect r, double radius)""" + """ + DrawRoundedRectangleRect(self, Rect r, double radius) + + Draws a rectangle with the given top left corner, and with the given + size. The corners are quarter-circles using the given radius. The + current pen is used for the outline and the current brush for filling + the shape. + + If radius is positive, the value is assumed to be the radius of the + rounded corner. If radius is negative, the absolute value is assumed + to be the proportion of the smallest dimension of the rectangle. This + means that the corner can be a sensible size relative to the size of + the rectangle, and also avoids the strange effects X produces when the + corners are too big for the rectangle. + """ return _gdi_.DC_DrawRoundedRectangleRect(*args, **kwargs) def DrawRoundedRectanglePointSize(*args, **kwargs): - """DrawRoundedRectanglePointSize(self, Point pt, Size sz, double radius)""" + """ + DrawRoundedRectanglePointSize(self, Point pt, Size sz, double radius) + + Draws a rectangle with the given top left corner, and with the given + size. The corners are quarter-circles using the given radius. The + current pen is used for the outline and the current brush for filling + the shape. + + If radius is positive, the value is assumed to be the radius of the + rounded corner. If radius is negative, the absolute value is assumed + to be the proportion of the smallest dimension of the rectangle. This + means that the corner can be a sensible size relative to the size of + the rectangle, and also avoids the strange effects X produces when the + corners are too big for the rectangle. + """ return _gdi_.DC_DrawRoundedRectanglePointSize(*args, **kwargs) def DrawCircle(*args, **kwargs): - """DrawCircle(self, int x, int y, int radius)""" + """ + DrawCircle(self, int x, int y, int radius) + + Draws a circle with the given center point and radius. The current + pen is used for the outline and the current brush for filling the + shape. + """ return _gdi_.DC_DrawCircle(*args, **kwargs) def DrawCirclePoint(*args, **kwargs): - """DrawCirclePoint(self, Point pt, int radius)""" + """ + DrawCirclePoint(self, Point pt, int radius) + + Draws a circle with the given center point and radius. The current + pen is used for the outline and the current brush for filling the + shape. + """ return _gdi_.DC_DrawCirclePoint(*args, **kwargs) def DrawEllipse(*args, **kwargs): - """DrawEllipse(self, int x, int y, int width, int height)""" + """ + DrawEllipse(self, int x, int y, int width, int height) + + Draws an ellipse contained in the specified rectangle. The current pen + is used for the outline and the current brush for filling the shape. + """ return _gdi_.DC_DrawEllipse(*args, **kwargs) def DrawEllipseRect(*args, **kwargs): - """DrawEllipseRect(self, Rect rect)""" + """ + DrawEllipseRect(self, Rect rect) + + Draws an ellipse contained in the specified rectangle. The current pen + is used for the outline and the current brush for filling the shape. + """ return _gdi_.DC_DrawEllipseRect(*args, **kwargs) def DrawEllipsePointSize(*args, **kwargs): - """DrawEllipsePointSize(self, Point pt, Size sz)""" + """ + DrawEllipsePointSize(self, Point pt, Size sz) + + Draws an ellipse contained in the specified rectangle. The current pen + is used for the outline and the current brush for filling the shape. + """ return _gdi_.DC_DrawEllipsePointSize(*args, **kwargs) def DrawIcon(*args, **kwargs): - """DrawIcon(self, Icon icon, int x, int y)""" + """ + DrawIcon(self, Icon icon, int x, int y) + + Draw an icon on the display (does nothing if the device context is + PostScript). This can be the simplest way of drawing bitmaps on a + window. + """ return _gdi_.DC_DrawIcon(*args, **kwargs) def DrawIconPoint(*args, **kwargs): - """DrawIconPoint(self, Icon icon, Point pt)""" + """ + DrawIconPoint(self, Icon icon, Point pt) + + Draw an icon on the display (does nothing if the device context is + PostScript). This can be the simplest way of drawing bitmaps on a + window. + """ return _gdi_.DC_DrawIconPoint(*args, **kwargs) def DrawBitmap(*args, **kwargs): - """DrawBitmap(self, Bitmap bmp, int x, int y, bool useMask=False)""" + """ + DrawBitmap(self, Bitmap bmp, int x, int y, bool useMask=False) + + Draw a bitmap on the device context at the specified point. If + *transparent* is true and the bitmap has a transparency mask, (or + alpha channel on the platforms that support it) then the bitmap will + be drawn transparently. + """ return _gdi_.DC_DrawBitmap(*args, **kwargs) def DrawBitmapPoint(*args, **kwargs): - """DrawBitmapPoint(self, Bitmap bmp, Point pt, bool useMask=False)""" + """ + DrawBitmapPoint(self, Bitmap bmp, Point pt, bool useMask=False) + + Draw a bitmap on the device context at the specified point. If + *transparent* is true and the bitmap has a transparency mask, (or + alpha channel on the platforms that support it) then the bitmap will + be drawn transparently. + """ return _gdi_.DC_DrawBitmapPoint(*args, **kwargs) def DrawText(*args, **kwargs): - """DrawText(self, String text, int x, int y)""" + """ + DrawText(self, String text, int x, int y) + + Draws a text string at the specified point, using the current text + font, and the current text foreground and background colours. + + The coordinates refer to the top-left corner of the rectangle bounding + the string. See `GetTextExtent` for how to get the dimensions of a + text string, which can be used to position the text more precisely. + + **NOTE**: under wxGTK the current logical function is used by this + function but it is ignored by wxMSW. Thus, you should avoid using + logical functions with this function in portable programs. + """ return _gdi_.DC_DrawText(*args, **kwargs) def DrawTextPoint(*args, **kwargs): - """DrawTextPoint(self, String text, Point pt)""" + """ + DrawTextPoint(self, String text, Point pt) + + Draws a text string at the specified point, using the current text + font, and the current text foreground and background colours. + + The coordinates refer to the top-left corner of the rectangle bounding + the string. See `GetTextExtent` for how to get the dimensions of a + text string, which can be used to position the text more precisely. + + **NOTE**: under wxGTK the current logical function is used by this + function but it is ignored by wxMSW. Thus, you should avoid using + logical functions with this function in portable programs. + """ return _gdi_.DC_DrawTextPoint(*args, **kwargs) def DrawRotatedText(*args, **kwargs): - """DrawRotatedText(self, String text, int x, int y, double angle)""" + """ + DrawRotatedText(self, String text, int x, int y, double angle) + + Draws the text rotated by *angle* degrees, if supported by the platform. + + **NOTE**: Under Win9x only TrueType fonts can be drawn by this + function. In particular, a font different from ``wx.NORMAL_FONT`` + should be used as the it is not normally a TrueType + font. ``wx.SWISS_FONT`` is an example of a font which is. + """ return _gdi_.DC_DrawRotatedText(*args, **kwargs) def DrawRotatedTextPoint(*args, **kwargs): - """DrawRotatedTextPoint(self, String text, Point pt, double angle)""" + """ + DrawRotatedTextPoint(self, String text, Point pt, double angle) + + Draws the text rotated by *angle* degrees, if supported by the platform. + + **NOTE**: Under Win9x only TrueType fonts can be drawn by this + function. In particular, a font different from ``wx.NORMAL_FONT`` + should be used as the it is not normally a TrueType + font. ``wx.SWISS_FONT`` is an example of a font which is. + """ return _gdi_.DC_DrawRotatedTextPoint(*args, **kwargs) def Blit(*args, **kwargs): @@ -2578,6 +3226,11 @@ class DC(_core.Object): Blit(self, int xdest, int ydest, int width, int height, DC source, int xsrc, int ysrc, int rop=COPY, bool useMask=False, int xsrcMask=-1, int ysrcMask=-1) -> bool + + Copy from a source DC to this DC. Parameters specify the destination + coordinates, size of area to copy, source DC, source coordinates, + logical function, whether to use a bitmap mask, and mask source + position. """ return _gdi_.DC_Blit(*args, **kwargs) @@ -2585,33 +3238,105 @@ class DC(_core.Object): """ BlitPointSize(self, Point destPt, Size sz, DC source, Point srcPt, int rop=COPY, bool useMask=False, Point srcPtMask=DefaultPosition) -> bool + + Copy from a source DC to this DC. Parameters specify the destination + coordinates, size of area to copy, source DC, source coordinates, + logical function, whether to use a bitmap mask, and mask source + position. """ return _gdi_.DC_BlitPointSize(*args, **kwargs) def SetClippingRegion(*args, **kwargs): - """SetClippingRegion(self, int x, int y, int width, int height)""" + """ + SetClippingRegion(self, int x, int y, int width, int height) + + Sets the clipping region for this device context to the intersection + of the given region described by the parameters of this method and the + previously set clipping region. You should call `DestroyClippingRegion` + if you want to set the clipping region exactly to the region + specified. + + The clipping region is an area to which drawing is + restricted. Possible uses for the clipping region are for clipping + text or for speeding up window redraws when only a known area of the + screen is damaged. + """ return _gdi_.DC_SetClippingRegion(*args, **kwargs) def SetClippingRegionPointSize(*args, **kwargs): - """SetClippingRegionPointSize(self, Point pt, Size sz)""" + """ + SetClippingRegionPointSize(self, Point pt, Size sz) + + Sets the clipping region for this device context to the intersection + of the given region described by the parameters of this method and the + previously set clipping region. You should call `DestroyClippingRegion` + if you want to set the clipping region exactly to the region + specified. + + The clipping region is an area to which drawing is + restricted. Possible uses for the clipping region are for clipping + text or for speeding up window redraws when only a known area of the + screen is damaged. + """ return _gdi_.DC_SetClippingRegionPointSize(*args, **kwargs) def SetClippingRegionAsRegion(*args, **kwargs): - """SetClippingRegionAsRegion(self, Region region)""" + """ + SetClippingRegionAsRegion(self, Region region) + + Sets the clipping region for this device context to the intersection + of the given region described by the parameters of this method and the + previously set clipping region. You should call `DestroyClippingRegion` + if you want to set the clipping region exactly to the region + specified. + + The clipping region is an area to which drawing is + restricted. Possible uses for the clipping region are for clipping + text or for speeding up window redraws when only a known area of the + screen is damaged. + """ return _gdi_.DC_SetClippingRegionAsRegion(*args, **kwargs) def SetClippingRect(*args, **kwargs): - """SetClippingRect(self, Rect rect)""" + """ + SetClippingRect(self, Rect rect) + + Sets the clipping region for this device context to the intersection + of the given region described by the parameters of this method and the + previously set clipping region. You should call `DestroyClippingRegion` + if you want to set the clipping region exactly to the region + specified. + + The clipping region is an area to which drawing is + restricted. Possible uses for the clipping region are for clipping + text or for speeding up window redraws when only a known area of the + screen is damaged. + """ return _gdi_.DC_SetClippingRect(*args, **kwargs) def DrawLines(*args, **kwargs): - """DrawLines(self, int points, Point points_array, int xoffset=0, int yoffset=0)""" + """ + DrawLines(self, List points, int xoffset=0, int yoffset=0) + + Draws lines using a sequence of `wx.Point` objects, adding the + optional offset coordinate. The current pen is used for drawing the + lines. + """ return _gdi_.DC_DrawLines(*args, **kwargs) def DrawPolygon(*args, **kwargs): """ - DrawPolygon(self, int points, Point points_array, int xoffset=0, int yoffset=0, + DrawPolygon(self, List points, int xoffset=0, int yoffset=0, int fillStyle=ODDEVEN_RULE) + + Draws a filled polygon using a sequence of `wx.Point` objects, adding + the optional offset coordinate. The last argument specifies the fill + rule: ``wx.ODDEVEN_RULE`` (the default) or ``wx.WINDING_RULE``. + + The current pen is used for drawing the outline, and the current brush + for filling the shape. Using a transparent brush suppresses + filling. Note that wxWidgets automatically closes the first and last + points. """ return _gdi_.DC_DrawPolygon(*args, **kwargs) @@ -2619,6 +3344,10 @@ class DC(_core.Object): """ DrawLabel(self, String text, Rect rect, int alignment=wxALIGN_LEFT|wxALIGN_TOP, int indexAccel=-1) + + Draw *text* within the specified rectangle, abiding by the alignment + flags. Will additionally emphasize the character at *indexAccel* if + it is not -1. """ return _gdi_.DC_DrawLabel(*args, **kwargs) @@ -2626,79 +3355,174 @@ class DC(_core.Object): """ DrawImageLabel(self, String text, Bitmap image, Rect rect, int alignment=wxALIGN_LEFT|wxALIGN_TOP, int indexAccel=-1) -> Rect + + Draw *text* and an image (which may be ``wx.NullBitmap`` to skip + drawing it) within the specified rectangle, abiding by the alignment + flags. Will additionally emphasize the character at *indexAccel* if + it is not -1. Returns the bounding rectangle. """ return _gdi_.DC_DrawImageLabel(*args, **kwargs) def DrawSpline(*args, **kwargs): - """DrawSpline(self, int points, Point points_array)""" + """ + DrawSpline(self, List points) + + Draws a spline between all given control points, (a list of `wx.Point` + objects) using the current pen. The spline is drawn using a series of + lines, using an algorithm taken from the X drawing program 'XFIG'. + """ return _gdi_.DC_DrawSpline(*args, **kwargs) def Clear(*args, **kwargs): - """Clear(self)""" + """ + Clear(self) + + Clears the device context using the current background brush. + """ return _gdi_.DC_Clear(*args, **kwargs) def StartDoc(*args, **kwargs): - """StartDoc(self, String message) -> bool""" + """ + StartDoc(self, String message) -> bool + + Starts a document (only relevant when outputting to a + printer). *Message* is a message to show whilst printing. + """ return _gdi_.DC_StartDoc(*args, **kwargs) def EndDoc(*args, **kwargs): - """EndDoc(self)""" + """ + EndDoc(self) + + Ends a document (only relevant when outputting to a printer). + """ return _gdi_.DC_EndDoc(*args, **kwargs) def StartPage(*args, **kwargs): - """StartPage(self)""" + """ + StartPage(self) + + Starts a document page (only relevant when outputting to a printer). + """ return _gdi_.DC_StartPage(*args, **kwargs) def EndPage(*args, **kwargs): - """EndPage(self)""" + """ + EndPage(self) + + Ends a document page (only relevant when outputting to a printer). + """ return _gdi_.DC_EndPage(*args, **kwargs) def SetFont(*args, **kwargs): - """SetFont(self, Font font)""" + """ + SetFont(self, Font font) + + Sets the current font for the DC. It must be a valid font, in + particular you should not pass ``wx.NullFont`` to this method. + """ return _gdi_.DC_SetFont(*args, **kwargs) def SetPen(*args, **kwargs): - """SetPen(self, Pen pen)""" + """ + SetPen(self, Pen pen) + + Sets the current pen for the DC. + + If the argument is ``wx.NullPen``, the current pen is selected out of the + device context, and the original pen restored. + """ return _gdi_.DC_SetPen(*args, **kwargs) def SetBrush(*args, **kwargs): - """SetBrush(self, Brush brush)""" + """ + SetBrush(self, Brush brush) + + Sets the current brush for the DC. + + If the argument is ``wx.NullBrush``, the current brush is selected out + of the device context, and the original brush restored, allowing the + current brush to be destroyed safely. + """ return _gdi_.DC_SetBrush(*args, **kwargs) def SetBackground(*args, **kwargs): - """SetBackground(self, Brush brush)""" + """ + SetBackground(self, Brush brush) + + Sets the current background brush for the DC. + """ return _gdi_.DC_SetBackground(*args, **kwargs) def SetBackgroundMode(*args, **kwargs): - """SetBackgroundMode(self, int mode)""" + """ + SetBackgroundMode(self, int mode) + + *mode* may be one of ``wx.SOLID`` and ``wx.TRANSPARENT``. This setting + determines whether text will be drawn with a background colour or + not. + """ return _gdi_.DC_SetBackgroundMode(*args, **kwargs) def SetPalette(*args, **kwargs): - """SetPalette(self, Palette palette)""" + """ + SetPalette(self, Palette palette) + + If this is a window DC or memory DC, assigns the given palette to the + window or bitmap associated with the DC. If the argument is + ``wx.NullPalette``, the current palette is selected out of the device + context, and the original palette restored. + """ return _gdi_.DC_SetPalette(*args, **kwargs) def DestroyClippingRegion(*args, **kwargs): - """DestroyClippingRegion(self)""" + """ + DestroyClippingRegion(self) + + Destroys the current clipping region so that none of the DC is + clipped. + """ return _gdi_.DC_DestroyClippingRegion(*args, **kwargs) def GetClippingBox(*args, **kwargs): - """GetClippingBox() -> (x, y, width, height)""" + """ + GetClippingBox() -> (x, y, width, height) + + Gets the rectangle surrounding the current clipping region. + """ return _gdi_.DC_GetClippingBox(*args, **kwargs) def GetClippingRect(*args, **kwargs): - """GetClippingRect(self) -> Rect""" + """ + GetClippingRect(self) -> Rect + + Gets the rectangle surrounding the current clipping region. + """ return _gdi_.DC_GetClippingRect(*args, **kwargs) def GetCharHeight(*args, **kwargs): - """GetCharHeight(self) -> int""" + """ + GetCharHeight(self) -> int + + Gets the character height of the currently set font. + """ return _gdi_.DC_GetCharHeight(*args, **kwargs) def GetCharWidth(*args, **kwargs): - """GetCharWidth(self) -> int""" + """ + GetCharWidth(self) -> int + + Gets the average character width of the currently set font. + """ return _gdi_.DC_GetCharWidth(*args, **kwargs) def GetTextExtent(*args, **kwargs): - """GetTextExtent(wxString string) -> (width, height)""" + """ + GetTextExtent(wxString string) -> (width, height) + + Get the width and height of the text using the current font. Only + works for single line strings. + """ return _gdi_.DC_GetTextExtent(*args, **kwargs) def GetFullTextExtent(*args, **kwargs): @@ -2715,18 +3539,41 @@ class DC(_core.Object): """ GetMultiLineTextExtent(wxString string, Font font=None) -> (width, height, descent, externalLeading) + + Get the width, height, decent and leading of the text using the + current or specified font. Works for single as well as multi-line + strings. """ return _gdi_.DC_GetMultiLineTextExtent(*args, **kwargs) def GetPartialTextExtents(*args, **kwargs): - """GetPartialTextExtents(self, String text) -> wxArrayInt""" + """ + GetPartialTextExtents(self, text) -> [widths] + + Returns a list of integers such that each value is the distance in + pixels from the begining of text to the coresponding character of + *text*. The generic version simply builds a running total of the widths + of each character using GetTextExtent, however if the various + platforms have a native API function that is faster or more accurate + than the generic implementation then it will be used instead. + """ return _gdi_.DC_GetPartialTextExtents(*args, **kwargs) def GetSize(*args, **kwargs): """ GetSize(self) -> Size - Get the DC size in device units. + This gets the horizontal and vertical resolution in device units. It + can be used to scale graphics to fit the page. For example, if *maxX* + and *maxY* represent the maximum horizontal and vertical 'pixel' values + used in your application, the following code will scale the graphic to + fit on the printer page:: + + w, h = dc.GetSize() + scaleX = maxX*1.0 / w + scaleY = maxY*1.0 / h + dc.SetUserScale(min(scaleX,scaleY),min(scaleX,scaleY)) + """ return _gdi_.DC_GetSize(*args, **kwargs) @@ -2734,7 +3581,17 @@ class DC(_core.Object): """ GetSizeTuple() -> (width, height) - Get the DC size in device units. + This gets the horizontal and vertical resolution in device units. It + can be used to scale graphics to fit the page. For example, if *maxX* + and *maxY* represent the maximum horizontal and vertical 'pixel' values + used in your application, the following code will scale the graphic to + fit on the printer page:: + + w, h = dc.GetSize() + scaleX = maxX*1.0 / w + scaleY = maxY*1.0 / h + dc.SetUserScale(min(scaleX,scaleY),min(scaleX,scaleY)) + """ return _gdi_.DC_GetSizeTuple(*args, **kwargs) @@ -2755,35 +3612,79 @@ class DC(_core.Object): return _gdi_.DC_GetSizeMMTuple(*args, **kwargs) def DeviceToLogicalX(*args, **kwargs): - """DeviceToLogicalX(self, int x) -> int""" + """ + DeviceToLogicalX(self, int x) -> int + + Convert device X coordinate to logical coordinate, using the current + mapping mode. + """ return _gdi_.DC_DeviceToLogicalX(*args, **kwargs) def DeviceToLogicalY(*args, **kwargs): - """DeviceToLogicalY(self, int y) -> int""" + """ + DeviceToLogicalY(self, int y) -> int + + Converts device Y coordinate to logical coordinate, using the current + mapping mode. + """ return _gdi_.DC_DeviceToLogicalY(*args, **kwargs) def DeviceToLogicalXRel(*args, **kwargs): - """DeviceToLogicalXRel(self, int x) -> int""" + """ + DeviceToLogicalXRel(self, int x) -> int + + Convert device X coordinate to relative logical coordinate, using the + current mapping mode but ignoring the x axis orientation. Use this + function for converting a width, for example. + """ return _gdi_.DC_DeviceToLogicalXRel(*args, **kwargs) def DeviceToLogicalYRel(*args, **kwargs): - """DeviceToLogicalYRel(self, int y) -> int""" + """ + DeviceToLogicalYRel(self, int y) -> int + + Convert device Y coordinate to relative logical coordinate, using the + current mapping mode but ignoring the y axis orientation. Use this + function for converting a height, for example. + """ return _gdi_.DC_DeviceToLogicalYRel(*args, **kwargs) def LogicalToDeviceX(*args, **kwargs): - """LogicalToDeviceX(self, int x) -> int""" + """ + LogicalToDeviceX(self, int x) -> int + + Converts logical X coordinate to device coordinate, using the current + mapping mode. + """ return _gdi_.DC_LogicalToDeviceX(*args, **kwargs) def LogicalToDeviceY(*args, **kwargs): - """LogicalToDeviceY(self, int y) -> int""" + """ + LogicalToDeviceY(self, int y) -> int + + Converts logical Y coordinate to device coordinate, using the current + mapping mode. + """ return _gdi_.DC_LogicalToDeviceY(*args, **kwargs) def LogicalToDeviceXRel(*args, **kwargs): - """LogicalToDeviceXRel(self, int x) -> int""" + """ + LogicalToDeviceXRel(self, int x) -> int + + Converts logical X coordinate to relative device coordinate, using the + current mapping mode but ignoring the x axis orientation. Use this for + converting a width, for example. + """ return _gdi_.DC_LogicalToDeviceXRel(*args, **kwargs) def LogicalToDeviceYRel(*args, **kwargs): - """LogicalToDeviceYRel(self, int y) -> int""" + """ + LogicalToDeviceYRel(self, int y) -> int + + Converts logical Y coordinate to relative device coordinate, using the + current mapping mode but ignoring the y axis orientation. Use this for + converting a height, for example. + """ return _gdi_.DC_LogicalToDeviceYRel(*args, **kwargs) def CanDrawBitmap(*args, **kwargs): @@ -2795,67 +3696,145 @@ class DC(_core.Object): return _gdi_.DC_CanGetTextExtent(*args, **kwargs) def GetDepth(*args, **kwargs): - """GetDepth(self) -> int""" + """ + GetDepth(self) -> int + + Returns the colour depth of the DC. + """ return _gdi_.DC_GetDepth(*args, **kwargs) def GetPPI(*args, **kwargs): - """GetPPI(self) -> Size""" + """ + GetPPI(self) -> Size + + Resolution in Pixels per inch + """ return _gdi_.DC_GetPPI(*args, **kwargs) def Ok(*args, **kwargs): - """Ok(self) -> bool""" + """ + Ok(self) -> bool + + Returns true if the DC is ok to use. + """ return _gdi_.DC_Ok(*args, **kwargs) def GetBackgroundMode(*args, **kwargs): - """GetBackgroundMode(self) -> int""" + """ + GetBackgroundMode(self) -> int + + Returns the current background mode, either ``wx.SOLID`` or + ``wx.TRANSPARENT``. + """ return _gdi_.DC_GetBackgroundMode(*args, **kwargs) def GetBackground(*args, **kwargs): - """GetBackground(self) -> Brush""" + """ + GetBackground(self) -> Brush + + Gets the brush used for painting the background. + """ return _gdi_.DC_GetBackground(*args, **kwargs) def GetBrush(*args, **kwargs): - """GetBrush(self) -> Brush""" + """ + GetBrush(self) -> Brush + + Gets the current brush + """ return _gdi_.DC_GetBrush(*args, **kwargs) def GetFont(*args, **kwargs): - """GetFont(self) -> Font""" + """ + GetFont(self) -> Font + + Gets the current font + """ return _gdi_.DC_GetFont(*args, **kwargs) def GetPen(*args, **kwargs): - """GetPen(self) -> Pen""" + """ + GetPen(self) -> Pen + + Gets the current pen + """ return _gdi_.DC_GetPen(*args, **kwargs) def GetTextBackground(*args, **kwargs): - """GetTextBackground(self) -> Colour""" + """ + GetTextBackground(self) -> Colour + + Gets the current text background colour + """ return _gdi_.DC_GetTextBackground(*args, **kwargs) def GetTextForeground(*args, **kwargs): - """GetTextForeground(self) -> Colour""" + """ + GetTextForeground(self) -> Colour + + Gets the current text foreground colour + """ return _gdi_.DC_GetTextForeground(*args, **kwargs) def SetTextForeground(*args, **kwargs): - """SetTextForeground(self, Colour colour)""" + """ + SetTextForeground(self, Colour colour) + + Sets the current text foreground colour for the DC. + """ return _gdi_.DC_SetTextForeground(*args, **kwargs) def SetTextBackground(*args, **kwargs): - """SetTextBackground(self, Colour colour)""" + """ + SetTextBackground(self, Colour colour) + + Sets the current text background colour for the DC. + """ return _gdi_.DC_SetTextBackground(*args, **kwargs) def GetMapMode(*args, **kwargs): - """GetMapMode(self) -> int""" + """ + GetMapMode(self) -> int + + Gets the current *mapping mode* for the device context + """ return _gdi_.DC_GetMapMode(*args, **kwargs) def SetMapMode(*args, **kwargs): - """SetMapMode(self, int mode)""" + """ + SetMapMode(self, int mode) + + The *mapping mode* of the device context defines the unit of + measurement used to convert logical units to device units. The + mapping mode can be one of the following: + + ================ ============================================= + wx.MM_TWIPS Each logical unit is 1/20 of a point, or 1/1440 + of an inch. + wx.MM_POINTS Each logical unit is a point, or 1/72 of an inch. + wx.MM_METRIC Each logical unit is 1 mm. + wx.MM_LOMETRIC Each logical unit is 1/10 of a mm. + wx.MM_TEXT Each logical unit is 1 pixel. + ================ ============================================= + + """ return _gdi_.DC_SetMapMode(*args, **kwargs) def GetUserScale(*args, **kwargs): - """GetUserScale() -> (xScale, yScale)""" + """ + GetUserScale(self) -> (xScale, yScale) + + Gets the current user scale factor (set by `SetUserScale`). + """ return _gdi_.DC_GetUserScale(*args, **kwargs) def SetUserScale(*args, **kwargs): - """SetUserScale(self, double x, double y)""" + """ + SetUserScale(self, double x, double y) + + Sets the user scaling factor, useful for applications which require + 'zooming'. + """ return _gdi_.DC_SetUserScale(*args, **kwargs) def GetLogicalScale(*args, **kwargs): @@ -2899,58 +3878,154 @@ class DC(_core.Object): return _gdi_.DC_SetDeviceOriginPoint(*args, **kwargs) def SetAxisOrientation(*args, **kwargs): - """SetAxisOrientation(self, bool xLeftRight, bool yBottomUp)""" + """ + SetAxisOrientation(self, bool xLeftRight, bool yBottomUp) + + Sets the x and y axis orientation (i.e., the direction from lowest to + highest values on the axis). The default orientation is the natural + orientation, e.g. x axis from left to right and y axis from bottom up. + """ return _gdi_.DC_SetAxisOrientation(*args, **kwargs) def GetLogicalFunction(*args, **kwargs): - """GetLogicalFunction(self) -> int""" + """ + GetLogicalFunction(self) -> int + + Gets the current logical function (set by `SetLogicalFunction`). + """ return _gdi_.DC_GetLogicalFunction(*args, **kwargs) def SetLogicalFunction(*args, **kwargs): - """SetLogicalFunction(self, int function)""" + """ + SetLogicalFunction(self, int function) + + Sets the current logical function for the device context. This + determines how a source pixel (from a pen or brush colour, or source + device context if using `Blit`) combines with a destination pixel in + the current device context. + + The possible values and their meaning in terms of source and + destination pixel values are as follows: + + ================ ========================== + wx.AND src AND dst + wx.AND_INVERT (NOT src) AND dst + wx.AND_REVERSE src AND (NOT dst) + wx.CLEAR 0 + wx.COPY src + wx.EQUIV (NOT src) XOR dst + wx.INVERT NOT dst + wx.NAND (NOT src) OR (NOT dst) + wx.NOR (NOT src) AND (NOT dst) + wx.NO_OP dst + wx.OR src OR dst + wx.OR_INVERT (NOT src) OR dst + wx.OR_REVERSE src OR (NOT dst) + wx.SET 1 + wx.SRC_INVERT NOT src + wx.XOR src XOR dst + ================ ========================== + + The default is wx.COPY, which simply draws with the current + colour. The others combine the current colour and the background using + a logical operation. wx.INVERT is commonly used for drawing rubber + bands or moving outlines, since drawing twice reverts to the original + colour. + + """ return _gdi_.DC_SetLogicalFunction(*args, **kwargs) - def SetOptimization(*args, **kwargs): - """SetOptimization(self, bool opt)""" - return _gdi_.DC_SetOptimization(*args, **kwargs) + def ComputeScaleAndOrigin(*args, **kwargs): + """ + ComputeScaleAndOrigin(self) + + Performs all necessary computations for given platform and context + type after each change of scale and origin parameters. Usually called + automatically internally after such changes. + + """ + return _gdi_.DC_ComputeScaleAndOrigin(*args, **kwargs) + + def SetOptimization(self, optimize): + pass + def GetOptimization(self): + return False - def GetOptimization(*args, **kwargs): - """GetOptimization(self) -> bool""" - return _gdi_.DC_GetOptimization(*args, **kwargs) + SetOptimization = wx._deprecated(SetOptimization) + GetOptimization = wx._deprecated(GetOptimization) def CalcBoundingBox(*args, **kwargs): - """CalcBoundingBox(self, int x, int y)""" + """ + CalcBoundingBox(self, int x, int y) + + Adds the specified point to the bounding box which can be retrieved + with `MinX`, `MaxX` and `MinY`, `MaxY` or `GetBoundingBox` functions. + """ return _gdi_.DC_CalcBoundingBox(*args, **kwargs) def CalcBoundingBoxPoint(*args, **kwargs): - """CalcBoundingBoxPoint(self, Point point)""" + """ + CalcBoundingBoxPoint(self, Point point) + + Adds the specified point to the bounding box which can be retrieved + with `MinX`, `MaxX` and `MinY`, `MaxY` or `GetBoundingBox` functions. + """ return _gdi_.DC_CalcBoundingBoxPoint(*args, **kwargs) def ResetBoundingBox(*args, **kwargs): - """ResetBoundingBox(self)""" + """ + ResetBoundingBox(self) + + Resets the bounding box: after a call to this function, the bounding + box doesn't contain anything. + """ return _gdi_.DC_ResetBoundingBox(*args, **kwargs) def MinX(*args, **kwargs): - """MinX(self) -> int""" + """ + MinX(self) -> int + + Gets the minimum horizontal extent used in drawing commands so far. + """ return _gdi_.DC_MinX(*args, **kwargs) def MaxX(*args, **kwargs): - """MaxX(self) -> int""" + """ + MaxX(self) -> int + + Gets the maximum horizontal extent used in drawing commands so far. + """ return _gdi_.DC_MaxX(*args, **kwargs) def MinY(*args, **kwargs): - """MinY(self) -> int""" + """ + MinY(self) -> int + + Gets the minimum vertical extent used in drawing commands so far. + """ return _gdi_.DC_MinY(*args, **kwargs) def MaxY(*args, **kwargs): - """MaxY(self) -> int""" + """ + MaxY(self) -> int + + Gets the maximum vertical extent used in drawing commands so far. + """ return _gdi_.DC_MaxY(*args, **kwargs) def GetBoundingBox(*args, **kwargs): - """GetBoundingBox() -> (x1,y1, x2,y2)""" + """ + GetBoundingBox() -> (x1,y1, x2,y2) + + Returns the min and max points used in drawing commands so far. + """ return _gdi_.DC_GetBoundingBox(*args, **kwargs) def __nonzero__(self): return self.Ok() + def GetHDC(*args, **kwargs): + """GetHDC(self) -> long""" + return _gdi_.DC_GetHDC(*args, **kwargs) + def _DrawPointList(*args, **kwargs): """_DrawPointList(self, PyObject pyCoords, PyObject pyPens, PyObject pyBrushes) -> PyObject""" return _gdi_.DC__DrawPointList(*args, **kwargs) @@ -2979,6 +4054,16 @@ class DC(_core.Object): return _gdi_.DC__DrawTextList(*args, **kwargs) def DrawPointList(self, points, pens=None): + """ + Draw a list of points as quickly as possible. + + :param points: A sequence of 2-element sequences representing + each point to draw, (x,y). + :param pens: If None, then the current pen is used. If a + single pen then it will be used for all points. If + a list of pens then there should be one for each point + in points. + """ if pens is None: pens = [] elif isinstance(pens, wx.Pen): @@ -2989,6 +4074,16 @@ class DC(_core.Object): def DrawLineList(self, lines, pens=None): + """ + Draw a list of lines as quickly as possible. + + :param lines: A sequence of 4-element sequences representing + each line to draw, (x1,y1, x2,y2). + :param pens: If None, then the current pen is used. If a + single pen then it will be used for all lines. If + a list of pens then there should be one for each line + in lines. + """ if pens is None: pens = [] elif isinstance(pens, wx.Pen): @@ -2999,6 +4094,18 @@ class DC(_core.Object): def DrawRectangleList(self, rectangles, pens=None, brushes=None): + """ + Draw a list of rectangles as quickly as possible. + + :param rectangles: A sequence of 4-element sequences representing + each rectangle to draw, (x,y, w,h). + :param pens: If None, then the current pen is used. If a + single pen then it will be used for all rectangles. + If a list of pens then there should be one for each + rectangle in rectangles. + :param brushes: A brush or brushes to be used to fill the rectagles, + with similar semantics as the pens parameter. + """ if pens is None: pens = [] elif isinstance(pens, wx.Pen): @@ -3015,6 +4122,18 @@ class DC(_core.Object): def DrawEllipseList(self, ellipses, pens=None, brushes=None): + """ + Draw a list of ellipses as quickly as possible. + + :param ellipses: A sequence of 4-element sequences representing + each ellipse to draw, (x,y, w,h). + :param pens: If None, then the current pen is used. If a + single pen then it will be used for all ellipses. + If a list of pens then there should be one for each + ellipse in ellipses. + :param brushes: A brush or brushes to be used to fill the ellipses, + with similar semantics as the pens parameter. + """ if pens is None: pens = [] elif isinstance(pens, wx.Pen): @@ -3031,8 +4150,20 @@ class DC(_core.Object): def DrawPolygonList(self, polygons, pens=None, brushes=None): - ## Note: This does not currently support fill style or offset - ## you can always use the non-List version if need be. + """ + Draw a list of polygons, each of which is a list of points. + + :param polygons: A sequence of sequences of sequences. + [[(x1,y1),(x2,y2),(x3,y3)...], + [(x1,y1),(x2,y2),(x3,y3)...]] + + :param pens: If None, then the current pen is used. If a + single pen then it will be used for all polygons. + If a list of pens then there should be one for each + polygon. + :param brushes: A brush or brushes to be used to fill the polygons, + with similar semantics as the pens parameter. + """ if pens is None: pens = [] elif isinstance(pens, wx.Pen): @@ -3048,10 +4179,20 @@ class DC(_core.Object): return self._DrawPolygonList(polygons, pens, brushes) - def DrawTextList(self, textList, coords, foregrounds = None, backgrounds = None, fonts = None): - ## NOTE: this does not currently support changing the font - ## Make sure you set Background mode to wxSolid (DC.SetBackgroundMode) - ## If you want backgounds to do anything. + def DrawTextList(self, textList, coords, foregrounds = None, backgrounds = None): + """ + Draw a list of strings using a list of coordinants for positioning each string. + + :param textList: A list of strings + :param coords: A list of (x,y) positions + :param foregrounds: A list of `wx.Colour` objects to use for the + foregrounds of the strings. + :param backgrounds: A list of `wx.Colour` objects to use for the + backgrounds of the strings. + + NOTE: Make sure you set Background mode to wx.Solid (DC.SetBackgroundMode) + If you want backgrounds to do anything. + """ if type(textList) == type(''): textList = [textList] elif len(textList) != len(coords): @@ -3081,16 +4222,51 @@ _gdi_.DC_swigregister(DCPtr) #--------------------------------------------------------------------------- class MemoryDC(DC): + """ + A memory device context provides a means to draw graphics onto a + bitmap. A bitmap must be selected into the new memory DC before it may + be used for anything. Typical usage is as follows:: + + dc = wx.MemoryDC() + dc.SelectObject(bitmap) + # draw on the dc usign any of the Draw methods + dc.SelectObject(wx.NullBitmap) + # the bitmap now contains wahtever was drawn upon it + + Note that the memory DC *must* be deleted (or the bitmap selected out + of it) before a bitmap can be reselected into another memory DC. + + """ def __repr__(self): return "<%s.%s; proxy of C++ wxMemoryDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> MemoryDC""" + """ + __init__(self) -> MemoryDC + + Constructs a new memory device context. + + Use the Ok member to test whether the constructor was successful in + creating a usable device context. Don't forget to select a bitmap into + the DC before drawing on it. + """ newobj = _gdi_.new_MemoryDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 del newobj.thisown def SelectObject(*args, **kwargs): - """SelectObject(self, Bitmap bitmap)""" + """ + SelectObject(self, Bitmap bitmap) + + Selects the bitmap into the device context, to use as the memory + bitmap. Selecting the bitmap into a memory DC allows you to draw into + the DC, and therefore the bitmap, and also to use Blit to copy the + bitmap to a window. + + If the argument is wx.NullBitmap (or some other uninitialised + `wx.Bitmap`) the current bitmap is selected out of the device context, + and the original bitmap restored, allowing the current bitmap to be + destroyed safely. + """ return _gdi_.MemoryDC_SelectObject(*args, **kwargs) @@ -3102,35 +4278,66 @@ class MemoryDCPtr(MemoryDC): _gdi_.MemoryDC_swigregister(MemoryDCPtr) def MemoryDCFromDC(*args, **kwargs): - """MemoryDCFromDC(DC oldDC) -> MemoryDC""" + """ + MemoryDCFromDC(DC oldDC) -> MemoryDC + + Creates a DC that is compatible with the oldDC. + """ val = _gdi_.new_MemoryDCFromDC(*args, **kwargs) val.thisown = 1 return val #--------------------------------------------------------------------------- +BUFFER_VIRTUAL_AREA = _gdi_.BUFFER_VIRTUAL_AREA +BUFFER_CLIENT_AREA = _gdi_.BUFFER_CLIENT_AREA class BufferedDC(MemoryDC): + """ + This simple class provides a simple way to avoid flicker: when drawing + on it, everything is in fact first drawn on an in-memory buffer (a + `wx.Bitmap`) and then copied to the screen only once, when this object + is destroyed. + + It can be used in the same way as any other device + context. wx.BufferedDC itself typically replaces `wx.ClientDC`, if you + want to use it in your EVT_PAINT handler, you should look at + `wx.BufferedPaintDC`. + + """ def __repr__(self): return "<%s.%s; proxy of C++ wxBufferedDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args): """ - __init__(self, DC dc, Bitmap buffer) -> BufferedDC - __init__(self, DC dc, Size area) -> BufferedDC + __init__(self, DC dc, Bitmap buffer=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedDC + __init__(self, DC dc, Size area, int style=BUFFER_CLIENT_AREA) -> BufferedDC + + Constructs a buffered DC. """ newobj = _gdi_.new_BufferedDC(*args) self.this = newobj.this self.thisown = 1 del newobj.thisown - self._dc = args[0] # save a ref so the other dc will not be deleted before self + self.__dc = args[0] # save a ref so the other dc will not be deleted before self def __del__(self, destroy=_gdi_.delete_BufferedDC): - """__del__(self)""" + """ + __del__(self) + + Copies everything drawn on the DC so far to the underlying DC + associated with this object, if any. + """ try: if self.thisown: destroy(self) except: pass def UnMask(*args, **kwargs): - """UnMask(self)""" + """ + UnMask(self) + + Blits the buffer to the dc, and detaches the dc from the buffer (so it + can be effectively used once only). This is usually only called in + the destructor. + """ return _gdi_.BufferedDC_UnMask(*args, **kwargs) @@ -3141,18 +4348,42 @@ class BufferedDCPtr(BufferedDC): self.__class__ = BufferedDC _gdi_.BufferedDC_swigregister(BufferedDCPtr) -def BufferedDCInternalBuffer(*args): - """BufferedDCInternalBuffer(DC dc, Size area) -> BufferedDC""" - val = _gdi_.new_BufferedDCInternalBuffer(*args) - val.thisown = 1 - val._dc = args[0] # save a ref so the other dc will not be deleted before self - return val - class BufferedPaintDC(BufferedDC): + """ + This is a subclass of `wx.BufferedDC` which can be used inside of an + EVT_PAINT event handler. Just create an object of this class instead + of `wx.PaintDC` and that's all you have to do to (mostly) avoid + flicker. The only thing to watch out for is that if you are using this + class together with `wx.ScrolledWindow`, you probably do **not** want + to call `wx.Window.PrepareDC` on it as it already does this internally + for the real underlying `wx.PaintDC`. + + If your window is already fully buffered in a `wx.Bitmap` then your + EVT_PAINT handler can be as simple as just creating a + ``wx.BufferedPaintDC`` as it will `Blit` the buffer to the window + automatically when it is destroyed. For example:: + + def OnPaint(self, event): + dc = wx.BufferedPaintDC(self, self.buffer) + + + + + + """ def __repr__(self): return "<%s.%s; proxy of C++ wxBufferedPaintDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, Window window, Bitmap buffer=NullBitmap) -> BufferedPaintDC""" + """ + __init__(self, Window window, Bitmap buffer=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedPaintDC + + Create a buffered paint DC. As with `wx.BufferedDC`, you may either + provide the bitmap to be used for buffering or let this object create + one internally (in the latter case, the size of the client part of the + window is automatically used). + + + """ newobj = _gdi_.new_BufferedPaintDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3168,24 +4399,66 @@ _gdi_.BufferedPaintDC_swigregister(BufferedPaintDCPtr) #--------------------------------------------------------------------------- class ScreenDC(DC): + """ + A wxScreenDC can be used to paint anywhere on the screen. This should + normally be constructed as a temporary stack object; don't store a + wxScreenDC object. + + """ def __repr__(self): return "<%s.%s; proxy of C++ wxScreenDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> ScreenDC""" + """ + __init__(self) -> ScreenDC + + A wxScreenDC can be used to paint anywhere on the screen. This should + normally be constructed as a temporary stack object; don't store a + wxScreenDC object. + + """ newobj = _gdi_.new_ScreenDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 del newobj.thisown def StartDrawingOnTopWin(*args, **kwargs): - """StartDrawingOnTopWin(self, Window window) -> bool""" + """ + StartDrawingOnTopWin(self, Window window) -> bool + + Specify that the area of the screen to be drawn upon coincides with + the given window. + + :see: `EndDrawingOnTop` + """ return _gdi_.ScreenDC_StartDrawingOnTopWin(*args, **kwargs) def StartDrawingOnTop(*args, **kwargs): - """StartDrawingOnTop(self, Rect rect=None) -> bool""" + """ + StartDrawingOnTop(self, Rect rect=None) -> bool + + Specify that the area is the given rectangle, or the whole screen if + ``None`` is passed. + + :see: `EndDrawingOnTop` + """ return _gdi_.ScreenDC_StartDrawingOnTop(*args, **kwargs) def EndDrawingOnTop(*args, **kwargs): - """EndDrawingOnTop(self) -> bool""" + """ + EndDrawingOnTop(self) -> bool + + Use this in conjunction with `StartDrawingOnTop` or + `StartDrawingOnTopWin` to ensure that drawing to the screen occurs on + top of existing windows. Without this, some window systems (such as X) + only allow drawing to take place underneath other windows. + + You might use this pair of functions when implementing a drag feature, + for example as in the `wx.SplitterWindow` implementation. + + These functions are probably obsolete since the X implementations + allow drawing directly on the screen now. However, the fact that this + function allows the screen to be refreshed afterwards may be useful + to some applications. + """ return _gdi_.ScreenDC_EndDrawingOnTop(*args, **kwargs) @@ -3199,10 +4472,27 @@ _gdi_.ScreenDC_swigregister(ScreenDCPtr) #--------------------------------------------------------------------------- class ClientDC(DC): + """ + A wx.ClientDC must be constructed if an application wishes to paint on + the client area of a window from outside an EVT_PAINT event. This should + normally be constructed as a temporary stack object; don't store a + wx.ClientDC object long term. + + To draw on a window from within an EVT_PAINT handler, construct a + `wx.PaintDC` object. + + To draw on the whole window including decorations, construct a + `wx.WindowDC` object (Windows only). + + """ def __repr__(self): return "<%s.%s; proxy of C++ wxClientDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, Window win) -> ClientDC""" + """ + __init__(self, Window win) -> ClientDC + + Constructor. Pass the window on which you wish to paint. + """ newobj = _gdi_.new_ClientDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3218,10 +4508,30 @@ _gdi_.ClientDC_swigregister(ClientDCPtr) #--------------------------------------------------------------------------- class PaintDC(DC): + """ + A wx.PaintDC must be constructed if an application wishes to paint on + the client area of a window from within an EVT_PAINT event + handler. This should normally be constructed as a temporary stack + object; don't store a wx.PaintDC object. If you have an EVT_PAINT + handler, you **must** create a wx.PaintDC object within it even if you + don't actually use it. + + Using wx.PaintDC within EVT_PAINT handlers is important because it + automatically sets the clipping area to the damaged area of the + window. Attempts to draw outside this area do not appear. + + To draw on a window from outside EVT_PAINT handlers, construct a + `wx.ClientDC` object. + + """ def __repr__(self): return "<%s.%s; proxy of C++ wxPaintDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, Window win) -> PaintDC""" + """ + __init__(self, Window win) -> PaintDC + + Constructor. Pass the window on which you wish to paint. + """ newobj = _gdi_.new_PaintDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3237,10 +4547,20 @@ _gdi_.PaintDC_swigregister(PaintDCPtr) #--------------------------------------------------------------------------- class WindowDC(DC): + """ + A wx.WindowDC must be constructed if an application wishes to paint on + the whole area of a window (client and decorations). This should + normally be constructed as a temporary stack object; don't store a + wx.WindowDC object. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxWindowDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, Window win) -> WindowDC""" + """ + __init__(self, Window win) -> WindowDC + + Constructor. Pass the window on which you wish to paint. + """ newobj = _gdi_.new_WindowDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3256,10 +4576,24 @@ _gdi_.WindowDC_swigregister(WindowDCPtr) #--------------------------------------------------------------------------- class MirrorDC(DC): + """ + wx.MirrorDC is a simple wrapper class which is always associated with a + real `wx.DC` object and either forwards all of its operations to it + without changes (no mirroring takes place) or exchanges x and y + coordinates which makes it possible to reuse the same code to draw a + figure and its mirror -- i.e. reflection related to the diagonal line + x == y. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxMirrorDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, DC dc, bool mirror) -> MirrorDC""" + """ + __init__(self, DC dc, bool mirror) -> MirrorDC + + Creates a mirrored DC associated with the real *dc*. Everything drawn + on the wx.MirrorDC will appear on the *dc*, and will be mirrored if + *mirror* is True. + """ newobj = _gdi_.new_MirrorDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3275,10 +4609,16 @@ _gdi_.MirrorDC_swigregister(MirrorDCPtr) #--------------------------------------------------------------------------- class PostScriptDC(DC): + """This is a `wx.DC` that can write to PostScript files on any platform.""" def __repr__(self): return "<%s.%s; proxy of C++ wxPostScriptDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, wxPrintData printData) -> PostScriptDC""" + """ + __init__(self, wxPrintData printData) -> PostScriptDC + + Constructs a PostScript printer device context from a `wx.PrintData` + object. + """ newobj = _gdi_.new_PostScriptDC(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3292,12 +4632,21 @@ class PostScriptDC(DC): return _gdi_.PostScriptDC_SetPrintData(*args, **kwargs) def SetResolution(*args, **kwargs): - """SetResolution(int ppi)""" + """ + SetResolution(int ppi) + + Set resolution (in pixels per inch) that will be used in PostScript + output. Default is 720ppi. + """ return _gdi_.PostScriptDC_SetResolution(*args, **kwargs) SetResolution = staticmethod(SetResolution) def GetResolution(*args, **kwargs): - """GetResolution() -> int""" + """ + GetResolution() -> int + + Return resolution used in PostScript output. + """ return _gdi_.PostScriptDC_GetResolution(*args, **kwargs) GetResolution = staticmethod(GetResolution) @@ -3310,16 +4659,26 @@ class PostScriptDCPtr(PostScriptDC): _gdi_.PostScriptDC_swigregister(PostScriptDCPtr) def PostScriptDC_SetResolution(*args, **kwargs): - """PostScriptDC_SetResolution(int ppi)""" + """ + PostScriptDC_SetResolution(int ppi) + + Set resolution (in pixels per inch) that will be used in PostScript + output. Default is 720ppi. + """ return _gdi_.PostScriptDC_SetResolution(*args, **kwargs) def PostScriptDC_GetResolution(*args, **kwargs): - """PostScriptDC_GetResolution() -> int""" + """ + PostScriptDC_GetResolution() -> int + + Return resolution used in PostScript output. + """ return _gdi_.PostScriptDC_GetResolution(*args, **kwargs) #--------------------------------------------------------------------------- class MetaFile(_core.Object): + """Proxy of C++ MetaFile class""" def __repr__(self): return "<%s.%s; proxy of C++ wxMetaFile instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -3368,6 +4727,7 @@ class MetaFilePtr(MetaFile): _gdi_.MetaFile_swigregister(MetaFilePtr) class MetaFileDC(DC): + """Proxy of C++ MetaFileDC class""" def __repr__(self): return "<%s.%s; proxy of C++ wxMetaFileDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -3392,6 +4752,7 @@ class MetaFileDCPtr(MetaFileDC): _gdi_.MetaFileDC_swigregister(MetaFileDCPtr) class PrinterDC(DC): + """Proxy of C++ PrinterDC class""" def __repr__(self): return "<%s.%s; proxy of C++ wxPrinterDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -3418,6 +4779,7 @@ IMAGE_LIST_NORMAL = _gdi_.IMAGE_LIST_NORMAL IMAGE_LIST_SMALL = _gdi_.IMAGE_LIST_SMALL IMAGE_LIST_STATE = _gdi_.IMAGE_LIST_STATE class ImageList(_core.Object): + """Proxy of C++ ImageList class""" def __repr__(self): return "<%s.%s; proxy of C++ wxImageList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -3444,6 +4806,14 @@ class ImageList(_core.Object): """AddIcon(self, Icon icon) -> int""" return _gdi_.ImageList_AddIcon(*args, **kwargs) + def GetBitmap(*args, **kwargs): + """GetBitmap(self, int index) -> Bitmap""" + return _gdi_.ImageList_GetBitmap(*args, **kwargs) + + def GetIcon(*args, **kwargs): + """GetIcon(self, int index) -> Icon""" + return _gdi_.ImageList_GetIcon(*args, **kwargs) + def Replace(*args, **kwargs): """Replace(self, int index, Bitmap bitmap, Bitmap mask=NullBitmap) -> bool""" return _gdi_.ImageList_Replace(*args, **kwargs) @@ -3482,6 +4852,7 @@ _gdi_.ImageList_swigregister(ImageListPtr) #--------------------------------------------------------------------------- class PenList(_core.Object): + """Proxy of C++ PenList class""" def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxPenList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -3553,6 +4924,7 @@ NullFont = cvar.NullFont NullColour = cvar.NullColour class BrushList(_core.Object): + """Proxy of C++ BrushList class""" def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxBrushList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -3561,7 +4933,7 @@ class BrushList(_core.Object): return _gdi_.BrushList_AddBrush(*args, **kwargs) def FindOrCreateBrush(*args, **kwargs): - """FindOrCreateBrush(self, Colour colour, int style) -> Brush""" + """FindOrCreateBrush(self, Colour colour, int style=SOLID) -> Brush""" return _gdi_.BrushList_FindOrCreateBrush(*args, **kwargs) def RemoveBrush(*args, **kwargs): @@ -3581,6 +4953,7 @@ class BrushListPtr(BrushList): _gdi_.BrushList_swigregister(BrushListPtr) class ColourDatabase(_core.Object): + """Proxy of C++ ColourDatabase class""" def __repr__(self): return "<%s.%s; proxy of C++ wxColourDatabase instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -3621,6 +4994,7 @@ class ColourDatabasePtr(ColourDatabase): _gdi_.ColourDatabase_swigregister(ColourDatabasePtr) class FontList(_core.Object): + """Proxy of C++ FontList class""" def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxFontList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -3658,6 +5032,7 @@ NullColor = NullColour #--------------------------------------------------------------------------- class Effects(_core.Object): + """Proxy of C++ Effects class""" def __repr__(self): return "<%s.%s; proxy of C++ wxEffects instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs):