]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/gtk/gdi.py
Fixes so bg colors in a notebook on XP are visible again
[wxWidgets.git] / wxPython / src / gtk / gdi.py
index 47fa49fde8d7c399ef67b22300c647b6913ca973..30da66d3fe7e1320e35cb89e2b29cc4f6db2e209 100644 (file)
@@ -45,10 +45,31 @@ _gdi.GDIObject_swigregister(GDIObjectPtr)
 #---------------------------------------------------------------------------
 
 class Colour(core.Object):
+    """
+    A colour is an object representing a combination of Red, Green, and Blue (RGB)
+    intensity values, and is used to determine drawing colours, window colours,
+    etc.  Valid RGB values are in the range 0 to 255.
+
+    In wxPython there are typemaps that will automatically convert from a colour
+    name, or from a "#RRGGBB" colour hex value string to a wx.Colour object when
+    calling C++ methods that expect a wxColour.  This means that the following are
+    all equivallent:
+
+        win.SetBackgroundColour(wxColour(0,0,255))
+        win.SetBackgroundColour("BLUE")
+        win.SetBackgroundColour("#0000FF")
+
+    You can retrieve the various current system colour settings with
+    wx.SystemSettings.GetColour.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxColour instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(unsigned char red=0, unsigned char green=0, unsigned char blue=0) -> Colour"""
+        """
+        __init__(unsigned char red=0, unsigned char green=0, unsigned char blue=0) -> Colour
+
+        Constructs a colour from red, green and blue values.
+        """
         newobj = _gdi.new_Colour(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -60,45 +81,104 @@ class Colour(core.Object):
         except: pass
 
     def Red(*args, **kwargs):
-        """Red() -> unsigned char"""
+        """
+        Red() -> unsigned char
+
+        Returns the red intensity.
+        """
         return _gdi.Colour_Red(*args, **kwargs)
 
     def Green(*args, **kwargs):
-        """Green() -> unsigned char"""
+        """
+        Green() -> unsigned char
+
+        Returns the green intensity.
+        """
         return _gdi.Colour_Green(*args, **kwargs)
 
     def Blue(*args, **kwargs):
-        """Blue() -> unsigned char"""
+        """
+        Blue() -> unsigned char
+
+        Returns the blue intensity.
+        """
         return _gdi.Colour_Blue(*args, **kwargs)
 
     def Ok(*args, **kwargs):
-        """Ok() -> bool"""
+        """
+        Ok() -> bool
+
+        Returns True if the colour object is valid (the colour has been
+        initialised with RGB values).
+        """
         return _gdi.Colour_Ok(*args, **kwargs)
 
     def Set(*args, **kwargs):
-        """Set(unsigned char red, unsigned char green, unsigned char blue)"""
+        """
+        Set(unsigned char red, unsigned char green, unsigned char blue)
+
+        Sets the RGB intensity values.
+        """
         return _gdi.Colour_Set(*args, **kwargs)
 
     def SetRGB(*args, **kwargs):
-        """SetRGB(unsigned long colRGB)"""
+        """
+        SetRGB(unsigned long colRGB)
+
+        Sets the RGB intensity values from a packed RGB value.
+        """
         return _gdi.Colour_SetRGB(*args, **kwargs)
 
+    def SetFromName(*args, **kwargs):
+        """
+        SetFromName(String colourName)
+
+        Sets the RGB intensity values using a colour name listed in wx.TheColourDatabase.
+        """
+        return _gdi.Colour_SetFromName(*args, **kwargs)
+
+    def GetPixel(*args, **kwargs):
+        """
+        GetPixel() -> long
+
+        Returns a pixel value which is platform-dependent. On Windows, a
+        COLORREF is returned. On X, an allocated pixel value is returned.
+        -1 is returned if the pixel is invalid (on X, unallocated).
+        """
+        return _gdi.Colour_GetPixel(*args, **kwargs)
+
     def __eq__(*args, **kwargs):
-        """__eq__(Colour colour) -> bool"""
+        """
+        __eq__(Colour colour) -> bool
+
+        Compare colours for equality
+        """
         return _gdi.Colour___eq__(*args, **kwargs)
 
     def __ne__(*args, **kwargs):
-        """__ne__(Colour colour) -> bool"""
-        return _gdi.Colour___ne__(*args, **kwargs)
+        """
+        __ne__(Colour colour) -> bool
 
-    def InitFromName(*args, **kwargs):
-        """InitFromName(String colourName)"""
-        return _gdi.Colour_InitFromName(*args, **kwargs)
+        Compare colours for inequality
+        """
+        return _gdi.Colour___ne__(*args, **kwargs)
 
     def Get(*args, **kwargs):
-        """Get() -> PyObject"""
+        """
+        Get() -> (r, g, b)
+
+        Returns the RGB intensity values as a tuple.
+        """
         return _gdi.Colour_Get(*args, **kwargs)
 
+    def GetRGB(*args, **kwargs):
+        """
+        GetRGB() -> unsigned long
+
+        Return the colour as a packed RGB value
+        """
+        return _gdi.Colour_GetRGB(*args, **kwargs)
+
     asTuple = Get
     def __str__(self):                  return str(self.asTuple())
     def __repr__(self):                 return 'wx.Colour' + str(self.asTuple())
@@ -115,13 +195,21 @@ class ColourPtr(Colour):
 _gdi.Colour_swigregister(ColourPtr)
 
 def NamedColour(*args, **kwargs):
-    """NamedColour(String colorName) -> Colour"""
+    """
+    NamedColour(String colorName) -> Colour
+
+    Constructs a colour object using a colour name listed in wx.TheColourDatabase.
+    """
     val = _gdi.new_NamedColour(*args, **kwargs)
     val.thisown = 1
     return val
 
 def ColourRGB(*args, **kwargs):
-    """ColourRGB(unsigned long colRGB) -> Colour"""
+    """
+    ColourRGB(unsigned long colRGB) -> Colour
+
+    Constructs a colour from a packed RGB value.
+    """
     val = _gdi.new_ColourRGB(*args, **kwargs)
     val.thisown = 1
     return val
@@ -236,9 +324,13 @@ class Pen(GDIObject):
         return _gdi.Pen_GetDashes(*args, **kwargs)
 
     def __eq__(*args, **kwargs):
-        """__eq__(Pen pen) -> bool"""
+        """__eq__(Pen other) -> bool"""
         return _gdi.Pen___eq__(*args, **kwargs)
 
+    def __ne__(*args, **kwargs):
+        """__ne__(Pen other) -> bool"""
+        return _gdi.Pen___ne__(*args, **kwargs)
+
     def GetDashCount(*args, **kwargs):
         """GetDashCount() -> int"""
         return _gdi.Pen_GetDashCount(*args, **kwargs)
@@ -479,6 +571,14 @@ class Bitmap(GDIObject):
         return _gdi.Bitmap_SetDepth(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
+    def __eq__(*args, **kwargs):
+        """__eq__(Bitmap other) -> bool"""
+        return _gdi.Bitmap___eq__(*args, **kwargs)
+
+    def __ne__(*args, **kwargs):
+        """__ne__(Bitmap other) -> bool"""
+        return _gdi.Bitmap___ne__(*args, **kwargs)
+
 
 class BitmapPtr(Bitmap):
     def __init__(self, this):
@@ -750,10 +850,30 @@ def IconBundleFromIcon(*args, **kwargs):
     return val
 
 class Cursor(GDIObject):
+    """
+    A cursor is a small bitmap usually used for denoting where the
+    mouse pointer is, with a picture that might indicate the
+    interpretation of a mouse click.
+
+    A single cursor object may be used in many windows (any subwindow
+    type). The wxWindows convention is to set the cursor for a
+    window, as in X, rather than to set it globally as in MS Windows,
+    although a global wx.SetCursor function is also available for use
+    on MS Windows.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCursor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(String cursorName, long flags, int hotSpotX=0, int hotSpotY=0) -> Cursor"""
+        """
+        __init__(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 file.
+
+        This cursor is not available on wxGTK, use wx.StockCursor,
+        wx.CursorFromImage, or wx.CursorFromBits instead.
+        """
         newobj = _gdi.new_Cursor(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -778,23 +898,33 @@ class CursorPtr(Cursor):
 _gdi.Cursor_swigregister(CursorPtr)
 
 def StockCursor(*args, **kwargs):
-    """StockCursor(int id) -> Cursor"""
+    """
+    StockCursor(int id) -> Cursor
+
+    Create a cursor using one of the stock cursors.  Note that not
+    all cursors are available on all platforms.
+    """
     val = _gdi.new_StockCursor(*args, **kwargs)
     val.thisown = 1
     return val
 
 def CursorFromImage(*args, **kwargs):
-    """CursorFromImage(Image image) -> Cursor"""
-    val = _gdi.new_CursorFromImage(*args, **kwargs)
-    val.thisown = 1
-    return val
-
-def CursorFromBits(*args, **kwargs):
     """
-    CursorFromBits(PyObject bits, int width, int height, int hotSpotX=-1, 
-        int hotSpotY=-1, PyObject maskBits=0) -> Cursor
+    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.
+
+    In MSW the foreground will be white and the background black. The
+    cursor is resized to 32x32 In GTK, the two most frequent colors
+    will be used for foreground and background. The cursor will be
+    displayed at the size of the image. On MacOS the cursor is
+    resized to 16x16 and currently only shown as black/white (mask
+    respected).
     """
-    val = _gdi.new_CursorFromBits(*args, **kwargs)
+    val = _gdi.new_CursorFromImage(*args, **kwargs)
     val.thisown = 1
     return val
 
@@ -1411,11 +1541,11 @@ class Font(GDIObject):
 
     def __nonzero__(self): return self.Ok() 
     def __eq__(*args, **kwargs):
-        """__eq__(Font font) -> bool"""
+        """__eq__(Font other) -> bool"""
         return _gdi.Font___eq__(*args, **kwargs)
 
     def __ne__(*args, **kwargs):
-        """__ne__(Font font) -> bool"""
+        """__ne__(Font other) -> bool"""
         return _gdi.Font___ne__(*args, **kwargs)
 
     def GetPointSize(*args, **kwargs):
@@ -2814,16 +2944,13 @@ def MemoryDCFromDC(*args, **kwargs):
 
 #---------------------------------------------------------------------------
 
-BUFFER_DC_OVERWRITE_BG = _gdi.BUFFER_DC_OVERWRITE_BG
-BUFFER_DC_PRESERVE_BG = _gdi.BUFFER_DC_PRESERVE_BG
-BUFFER_DC_DEFAULT = _gdi.BUFFER_DC_DEFAULT
 class BufferedDC(MemoryDC):
     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__(DC dc, Bitmap buffer) -> BufferedDC
-        __init__(DC dc, Size area, int flags=BUFFER_DC_DEFAULT) -> BufferedDC
+        __init__(DC dc, Size area) -> BufferedDC
         """
         newobj = _gdi.new_BufferedDC(*args)
         self.this = newobj.this
@@ -2831,6 +2958,12 @@ class BufferedDC(MemoryDC):
         del newobj.thisown
         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__()"""
+        try:
+            if self.thisown: destroy(self)
+        except: pass
+
     def UnMask(*args, **kwargs):
         """UnMask()"""
         return _gdi.BufferedDC_UnMask(*args, **kwargs)
@@ -2844,7 +2977,7 @@ class BufferedDCPtr(BufferedDC):
 _gdi.BufferedDC_swigregister(BufferedDCPtr)
 
 def BufferedDCInternalBuffer(*args):
-    """BufferedDCInternalBuffer(DC dc, Size area, int flags=BUFFER_DC_DEFAULT) -> BufferedDC"""
+    """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
@@ -2853,12 +2986,9 @@ def BufferedDCInternalBuffer(*args):
 class BufferedPaintDC(BufferedDC):
     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):
-        """
-        __init__(Window window, Bitmap buffer) -> BufferedPaintDC
-        __init__(Window window, int flags=BUFFER_DC_DEFAULT) -> BufferedPaintDC
-        """
-        newobj = _gdi.new_BufferedPaintDC(*args)
+    def __init__(self, *args, **kwargs):
+        """__init__(Window window, Bitmap buffer=NullBitmap) -> BufferedPaintDC"""
+        newobj = _gdi.new_BufferedPaintDC(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown