X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/51b83b37560a05eb688e8ed584bca47b0d1f968e..09d27083f5e1e6cd155a9eab9ffeb71fc2d0d2f7:/wxPython/src/msw/_core.py diff --git a/wxPython/src/msw/_core.py b/wxPython/src/msw/_core.py index 1d17722901..957f027f68 100644 --- a/wxPython/src/msw/_core.py +++ b/wxPython/src/msw/_core.py @@ -85,17 +85,14 @@ SIMPLE_BORDER = _core_.SIMPLE_BORDER STATIC_BORDER = _core_.STATIC_BORDER TRANSPARENT_WINDOW = _core_.TRANSPARENT_WINDOW NO_BORDER = _core_.NO_BORDER +DEFAULT_CONTROL_BORDER = _core_.DEFAULT_CONTROL_BORDER +DEFAULT_STATUSBAR_STYLE = _core_.DEFAULT_STATUSBAR_STYLE TAB_TRAVERSAL = _core_.TAB_TRAVERSAL WANTS_CHARS = _core_.WANTS_CHARS POPUP_WINDOW = _core_.POPUP_WINDOW CENTER_FRAME = _core_.CENTER_FRAME CENTRE_ON_SCREEN = _core_.CENTRE_ON_SCREEN CENTER_ON_SCREEN = _core_.CENTER_ON_SCREEN -ED_CLIENT_MARGIN = _core_.ED_CLIENT_MARGIN -ED_BUTTONS_BOTTOM = _core_.ED_BUTTONS_BOTTOM -ED_BUTTONS_RIGHT = _core_.ED_BUTTONS_RIGHT -ED_STATIC_LINE = _core_.ED_STATIC_LINE -EXT_DIALOG_STYLE = _core_.EXT_DIALOG_STYLE CLIP_CHILDREN = _core_.CLIP_CHILDREN CLIP_SIBLINGS = _core_.CLIP_SIBLINGS ALWAYS_SHOW_SB = _core_.ALWAYS_SHOW_SB @@ -121,20 +118,12 @@ RA_HORIZONTAL = _core_.RA_HORIZONTAL RA_VERTICAL = _core_.RA_VERTICAL RA_SPECIFY_ROWS = _core_.RA_SPECIFY_ROWS RA_SPECIFY_COLS = _core_.RA_SPECIFY_COLS +RA_USE_CHECKBOX = _core_.RA_USE_CHECKBOX RB_GROUP = _core_.RB_GROUP RB_SINGLE = _core_.RB_SINGLE -SL_HORIZONTAL = _core_.SL_HORIZONTAL -SL_VERTICAL = _core_.SL_VERTICAL -SL_AUTOTICKS = _core_.SL_AUTOTICKS -SL_LABELS = _core_.SL_LABELS -SL_LEFT = _core_.SL_LEFT -SL_TOP = _core_.SL_TOP -SL_RIGHT = _core_.SL_RIGHT -SL_BOTTOM = _core_.SL_BOTTOM -SL_BOTH = _core_.SL_BOTH -SL_SELRANGE = _core_.SL_SELRANGE SB_HORIZONTAL = _core_.SB_HORIZONTAL SB_VERTICAL = _core_.SB_VERTICAL +RB_USE_CHECKBOX = _core_.RB_USE_CHECKBOX ST_SIZEGRIP = _core_.ST_SIZEGRIP ST_NO_AUTORESIZE = _core_.ST_NO_AUTORESIZE FLOOD_SURFACE = _core_.FLOOD_SURFACE @@ -517,6 +506,27 @@ WXK_NUMPAD_DIVIDE = _core_.WXK_NUMPAD_DIVIDE WXK_WINDOWS_LEFT = _core_.WXK_WINDOWS_LEFT WXK_WINDOWS_RIGHT = _core_.WXK_WINDOWS_RIGHT WXK_WINDOWS_MENU = _core_.WXK_WINDOWS_MENU +WXK_COMMAND = _core_.WXK_COMMAND +WXK_SPECIAL1 = _core_.WXK_SPECIAL1 +WXK_SPECIAL2 = _core_.WXK_SPECIAL2 +WXK_SPECIAL3 = _core_.WXK_SPECIAL3 +WXK_SPECIAL4 = _core_.WXK_SPECIAL4 +WXK_SPECIAL5 = _core_.WXK_SPECIAL5 +WXK_SPECIAL6 = _core_.WXK_SPECIAL6 +WXK_SPECIAL7 = _core_.WXK_SPECIAL7 +WXK_SPECIAL8 = _core_.WXK_SPECIAL8 +WXK_SPECIAL9 = _core_.WXK_SPECIAL9 +WXK_SPECIAL10 = _core_.WXK_SPECIAL10 +WXK_SPECIAL11 = _core_.WXK_SPECIAL11 +WXK_SPECIAL12 = _core_.WXK_SPECIAL12 +WXK_SPECIAL13 = _core_.WXK_SPECIAL13 +WXK_SPECIAL14 = _core_.WXK_SPECIAL14 +WXK_SPECIAL15 = _core_.WXK_SPECIAL15 +WXK_SPECIAL16 = _core_.WXK_SPECIAL16 +WXK_SPECIAL17 = _core_.WXK_SPECIAL17 +WXK_SPECIAL18 = _core_.WXK_SPECIAL18 +WXK_SPECIAL19 = _core_.WXK_SPECIAL19 +WXK_SPECIAL20 = _core_.WXK_SPECIAL20 PAPER_NONE = _core_.PAPER_NONE PAPER_LETTER = _core_.PAPER_LETTER PAPER_LEGAL = _core_.PAPER_LEGAL @@ -1143,6 +1153,10 @@ class Rect(object): """SetSize(self, Size s)""" return _core_.Rect_SetSize(*args, **kwargs) + def IsEmpty(*args, **kwargs): + """IsEmpty(self) -> bool""" + return _core_.Rect_IsEmpty(*args, **kwargs) + def GetTopLeft(*args, **kwargs): """GetTopLeft(self) -> Point""" return _core_.Rect_GetTopLeft(*args, **kwargs) @@ -1202,9 +1216,24 @@ class Rect(object): """ Inflate(self, int dx, int dy) -> Rect - Increase the rectangle size by dx in x direction and dy in y - direction. Both (or one of) parameters may be negative to decrease the - rectangle size. + Increases the size of the rectangle. + + The left border is moved farther left and the right border is moved + farther right by ``dx``. The upper border is moved farther up and the + bottom border is moved farther down by ``dy``. (Note the the width and + height of the rectangle thus change by ``2*dx`` and ``2*dy``, + respectively.) If one or both of ``dx`` and ``dy`` are negative, the + opposite happens: the rectangle size decreases in the respective + direction. + + The change is made to the rectangle inplace, if instead you need a + copy that is inflated, preserving the original then make the copy + first:: + + copy = wx.Rect(*original) + copy.Inflate(10,15) + + """ return _core_.Rect_Inflate(*args, **kwargs) @@ -1212,9 +1241,9 @@ class Rect(object): """ Deflate(self, int dx, int dy) -> Rect - Decrease the rectangle size by dx in x direction and dy in y - direction. Both (or one of) parameters may be negative to increase the - rectngle size. This method is the opposite of Inflate. + Decrease the rectangle size. This method is the opposite of `Inflate` + in that Deflate(a,b) is equivalent to Inflate(-a,-b). Please refer to + `Inflate` for a full description. """ return _core_.Rect_Deflate(*args, **kwargs) @@ -1684,7 +1713,7 @@ class FSFile(Object): self.this = newobj.this self.thisown = 1 del newobj.thisown - self.thisown = 0 # It will normally be deleted by the user of the wxFileSystem + self.thisown = 0 # It will normally be deleted by the user of the wx.FileSystem def __del__(self, destroy=_core_.delete_FSFile): """__del__(self)""" @@ -2006,10 +2035,17 @@ def MemoryFSHandler_RemoveFile(*args, **kwargs): """MemoryFSHandler_RemoveFile(String filename)""" return _core_.MemoryFSHandler_RemoveFile(*args, **kwargs) +IMAGE_ALPHA_TRANSPARENT = _core_.IMAGE_ALPHA_TRANSPARENT +IMAGE_ALPHA_THRESHOLD = _core_.IMAGE_ALPHA_THRESHOLD +IMAGE_ALPHA_OPAQUE = _core_.IMAGE_ALPHA_OPAQUE #--------------------------------------------------------------------------- class ImageHandler(Object): - """Proxy of C++ ImageHandler class""" + """ + This is the base class for implementing image file loading/saving, and + image creation from data. It is used within `wx.Image` and is not + normally seen by the application. + """ def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxImageHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -2086,6 +2122,31 @@ class ImageHistogram(object): """ return _core_.ImageHistogram_FindFirstUnusedColour(*args, **kwargs) + def GetCount(*args, **kwargs): + """ + GetCount(self, unsigned long key) -> unsigned long + + Returns the pixel count for the given key. Use `MakeKey` to create a + key value from a RGB tripple. + """ + return _core_.ImageHistogram_GetCount(*args, **kwargs) + + def GetCountRGB(*args, **kwargs): + """ + GetCountRGB(self, unsigned char r, unsigned char g, unsigned char b) -> unsigned long + + Returns the pixel count for the given RGB values. + """ + return _core_.ImageHistogram_GetCountRGB(*args, **kwargs) + + def GetCountColour(*args, **kwargs): + """ + GetCountColour(self, Colour colour) -> unsigned long + + Returns the pixel count for the given `wx.Colour` value. + """ + return _core_.ImageHistogram_GetCountColour(*args, **kwargs) + class ImageHistogramPtr(ImageHistogram): def __init__(self, this): @@ -2142,10 +2203,18 @@ class Image(Object): """Rescale(self, int width, int height) -> Image""" return _core_.Image_Rescale(*args, **kwargs) + def Resize(*args, **kwargs): + """Resize(self, Size size, Point pos, int r=-1, int g=-1, int b=-1) -> Image""" + return _core_.Image_Resize(*args, **kwargs) + def SetRGB(*args, **kwargs): """SetRGB(self, int x, int y, unsigned char r, unsigned char g, unsigned char b)""" return _core_.Image_SetRGB(*args, **kwargs) + def SetRGBRect(*args, **kwargs): + """SetRGBRect(self, Rect rect, unsigned char r, unsigned char g, unsigned char b)""" + return _core_.Image_SetRGBRect(*args, **kwargs) + def GetRed(*args, **kwargs): """GetRed(self, int x, int y) -> unsigned char""" return _core_.Image_GetRed(*args, **kwargs) @@ -2170,6 +2239,26 @@ class Image(Object): """HasAlpha(self) -> bool""" return _core_.Image_HasAlpha(*args, **kwargs) + def InitAlpha(*args, **kwargs): + """ + InitAlpha(self) + + Initializes the image alpha channel data. It is an error to call it if + the image already has alpha data. If it doesn't, alpha data will be by + default initialized to all pixels being fully opaque. But if the image + has a a mask colour, all mask pixels will be completely transparent. + """ + return _core_.Image_InitAlpha(*args, **kwargs) + + def IsTransparent(*args, **kwargs): + """ + IsTransparent(self, int x, int y, unsigned char threshold=IMAGE_ALPHA_THRESHOLD) -> bool + + Returns True if this pixel is masked or has an alpha value less than + the spcified threshold. + """ + return _core_.Image_IsTransparent(*args, **kwargs) + def FindFirstUnusedColour(*args, **kwargs): """ FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b) @@ -2182,7 +2271,7 @@ class Image(Object): def ConvertAlphaToMask(*args, **kwargs): """ - ConvertAlphaToMask(self, byte threshold=128) -> bool + ConvertAlphaToMask(self, byte threshold=IMAGE_ALPHA_THRESHOLD) -> bool If the image has alpha channel, this method converts it to mask. All pixels with alpha value less than ``threshold`` are replaced with mask colour and the @@ -2271,6 +2360,10 @@ class Image(Object): """GetSubImage(self, Rect rect) -> Image""" return _core_.Image_GetSubImage(*args, **kwargs) + def Size(*args, **kwargs): + """Size(self, Size size, Point pos, int r=-1, int g=-1, int b=-1) -> Image""" + return _core_.Image_Size(*args, **kwargs) + def Copy(*args, **kwargs): """Copy(self) -> Image""" return _core_.Image_Copy(*args, **kwargs) @@ -2280,27 +2373,58 @@ class Image(Object): return _core_.Image_Paste(*args, **kwargs) def GetData(*args, **kwargs): - """GetData(self) -> PyObject""" + """ + GetData(self) -> PyObject + + Returns a string containing a copy of the RGB bytes of the image. + """ return _core_.Image_GetData(*args, **kwargs) def SetData(*args, **kwargs): - """SetData(self, PyObject data)""" + """ + SetData(self, buffer data) + + Resets the Image's RGB data from a buffer of RGB bytes. Accepts + either a string or a buffer object holding the data and the length of + the data must be width*height*3. + """ return _core_.Image_SetData(*args, **kwargs) def GetDataBuffer(*args, **kwargs): - """GetDataBuffer(self) -> PyObject""" + """ + GetDataBuffer(self) -> PyObject + + Returns a writable Python buffer object that is pointing at the RGB + image data buffer inside the wx.Image. + """ return _core_.Image_GetDataBuffer(*args, **kwargs) def SetDataBuffer(*args, **kwargs): - """SetDataBuffer(self, PyObject data)""" + """ + SetDataBuffer(self, buffer data) + + Sets the internal image data pointer to point at a Python buffer + object. This can save a copy of the data but you must ensure that the + buffer object lives longer than the wx.Image does. + """ return _core_.Image_SetDataBuffer(*args, **kwargs) def GetAlphaData(*args, **kwargs): - """GetAlphaData(self) -> PyObject""" + """ + GetAlphaData(self) -> PyObject + + Returns a string containing a copy of the alpha bytes of the image. + """ return _core_.Image_GetAlphaData(*args, **kwargs) def SetAlphaData(*args, **kwargs): - """SetAlphaData(self, PyObject data)""" + """ + SetAlphaData(self, buffer alpha) + + Resets the Image's alpha data from a buffer of bytes. Accepts either + a string or a buffer object holding the data and the length of the + data must be width*height. + """ return _core_.Image_SetAlphaData(*args, **kwargs) def GetAlphaBuffer(*args, **kwargs): @@ -2308,13 +2432,21 @@ class Image(Object): return _core_.Image_GetAlphaBuffer(*args, **kwargs) def SetAlphaBuffer(*args, **kwargs): - """SetAlphaBuffer(self, PyObject data)""" + """SetAlphaBuffer(self, buffer alpha)""" return _core_.Image_SetAlphaBuffer(*args, **kwargs) def SetMaskColour(*args, **kwargs): """SetMaskColour(self, unsigned char r, unsigned char g, unsigned char b)""" return _core_.Image_SetMaskColour(*args, **kwargs) + def GetOrFindMaskColour(*args, **kwargs): + """ + GetOrFindMaskColour() -> (r,g,b) + + Get the current mask colour or find a suitable colour. + """ + return _core_.Image_GetOrFindMaskColour(*args, **kwargs) + def GetMaskRed(*args, **kwargs): """GetMaskRed(self) -> unsigned char""" return _core_.Image_GetMaskRed(*args, **kwargs) @@ -2445,25 +2577,46 @@ def ImageFromStreamMime(*args, **kwargs): return val def EmptyImage(*args, **kwargs): - """EmptyImage(int width=0, int height=0, bool clear=True) -> Image""" + """ + EmptyImage(int width=0, int height=0, bool clear=True) -> Image + + Construct an empty image of a given size, optionally setting all + pixels to black. + """ val = _core_.new_EmptyImage(*args, **kwargs) val.thisown = 1 return val def ImageFromBitmap(*args, **kwargs): - """ImageFromBitmap(Bitmap bitmap) -> Image""" + """ + ImageFromBitmap(Bitmap bitmap) -> Image + + Construct an Image from a `wx.Bitmap`. + """ val = _core_.new_ImageFromBitmap(*args, **kwargs) val.thisown = 1 return val def ImageFromData(*args, **kwargs): - """ImageFromData(int width, int height, unsigned char data) -> Image""" + """ + ImageFromData(int width, int height, buffer data) -> Image + + Construct an Image from a buffer of RGB bytes. Accepts either a + string or a buffer object holding the data and the length of the data + must be width*height*3. + """ val = _core_.new_ImageFromData(*args, **kwargs) val.thisown = 1 return val def ImageFromDataWithAlpha(*args, **kwargs): - """ImageFromDataWithAlpha(int width, int height, unsigned char data, unsigned char alpha) -> Image""" + """ + ImageFromDataWithAlpha(int width, int height, buffer data, buffer alpha) -> Image + + Construct an Image from a buffer of RGB bytes with an Alpha channel. + Accepts either a string or a buffer object holding the data and the + length of the data must be width*height*3. + """ val = _core_.new_ImageFromDataWithAlpha(*args, **kwargs) val.thisown = 1 return val @@ -2505,6 +2658,9 @@ def InitAllImageHandlers(): IMAGE_RESOLUTION_INCHES = _core_.IMAGE_RESOLUTION_INCHES IMAGE_RESOLUTION_CM = _core_.IMAGE_RESOLUTION_CM +PNG_TYPE_COLOUR = _core_.PNG_TYPE_COLOUR +PNG_TYPE_GREY = _core_.PNG_TYPE_GREY +PNG_TYPE_GREY_RED = _core_.PNG_TYPE_GREY_RED BMP_24BPP = _core_.BMP_24BPP BMP_8BPP = _core_.BMP_8BPP BMP_8BPP_GREY = _core_.BMP_8BPP_GREY @@ -2515,11 +2671,15 @@ BMP_4BPP = _core_.BMP_4BPP BMP_1BPP = _core_.BMP_1BPP BMP_1BPP_BW = _core_.BMP_1BPP_BW class BMPHandler(ImageHandler): - """Proxy of C++ BMPHandler class""" + """A `wx.ImageHandler` for \*.bmp bitmap files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxBMPHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> BMPHandler""" + """ + __init__(self) -> BMPHandler + + A `wx.ImageHandler` for \*.bmp bitmap files. + """ newobj = _core_.new_BMPHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2532,18 +2692,32 @@ class BMPHandlerPtr(BMPHandler): self.__class__ = BMPHandler _core_.BMPHandler_swigregister(BMPHandlerPtr) NullImage = cvar.NullImage +IMAGE_OPTION_FILENAME = cvar.IMAGE_OPTION_FILENAME IMAGE_OPTION_BMP_FORMAT = cvar.IMAGE_OPTION_BMP_FORMAT IMAGE_OPTION_CUR_HOTSPOT_X = cvar.IMAGE_OPTION_CUR_HOTSPOT_X IMAGE_OPTION_CUR_HOTSPOT_Y = cvar.IMAGE_OPTION_CUR_HOTSPOT_Y IMAGE_OPTION_RESOLUTION = cvar.IMAGE_OPTION_RESOLUTION +IMAGE_OPTION_RESOLUTIONX = cvar.IMAGE_OPTION_RESOLUTIONX +IMAGE_OPTION_RESOLUTIONY = cvar.IMAGE_OPTION_RESOLUTIONY IMAGE_OPTION_RESOLUTIONUNIT = cvar.IMAGE_OPTION_RESOLUTIONUNIT +IMAGE_OPTION_QUALITY = cvar.IMAGE_OPTION_QUALITY +IMAGE_OPTION_BITSPERSAMPLE = cvar.IMAGE_OPTION_BITSPERSAMPLE +IMAGE_OPTION_SAMPLESPERPIXEL = cvar.IMAGE_OPTION_SAMPLESPERPIXEL +IMAGE_OPTION_COMPRESSION = cvar.IMAGE_OPTION_COMPRESSION +IMAGE_OPTION_IMAGEDESCRIPTOR = cvar.IMAGE_OPTION_IMAGEDESCRIPTOR +IMAGE_OPTION_PNG_FORMAT = cvar.IMAGE_OPTION_PNG_FORMAT +IMAGE_OPTION_PNG_BITDEPTH = cvar.IMAGE_OPTION_PNG_BITDEPTH class ICOHandler(BMPHandler): - """Proxy of C++ ICOHandler class""" + """A `wx.ImageHandler` for \*.ico icon files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxICOHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> ICOHandler""" + """ + __init__(self) -> ICOHandler + + A `wx.ImageHandler` for \*.ico icon files. + """ newobj = _core_.new_ICOHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2557,11 +2731,15 @@ class ICOHandlerPtr(ICOHandler): _core_.ICOHandler_swigregister(ICOHandlerPtr) class CURHandler(ICOHandler): - """Proxy of C++ CURHandler class""" + """A `wx.ImageHandler` for \*.cur cursor files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxCURHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> CURHandler""" + """ + __init__(self) -> CURHandler + + A `wx.ImageHandler` for \*.cur cursor files. + """ newobj = _core_.new_CURHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2575,11 +2753,15 @@ class CURHandlerPtr(CURHandler): _core_.CURHandler_swigregister(CURHandlerPtr) class ANIHandler(CURHandler): - """Proxy of C++ ANIHandler class""" + """A `wx.ImageHandler` for \*.ani animated cursor files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxANIHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> ANIHandler""" + """ + __init__(self) -> ANIHandler + + A `wx.ImageHandler` for \*.ani animated cursor files. + """ newobj = _core_.new_ANIHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2593,11 +2775,15 @@ class ANIHandlerPtr(ANIHandler): _core_.ANIHandler_swigregister(ANIHandlerPtr) class PNGHandler(ImageHandler): - """Proxy of C++ PNGHandler class""" + """A `wx.ImageHandler` for PNG image files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxPNGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> PNGHandler""" + """ + __init__(self) -> PNGHandler + + A `wx.ImageHandler` for PNG image files. + """ newobj = _core_.new_PNGHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2611,11 +2797,15 @@ class PNGHandlerPtr(PNGHandler): _core_.PNGHandler_swigregister(PNGHandlerPtr) class GIFHandler(ImageHandler): - """Proxy of C++ GIFHandler class""" + """A `wx.ImageHandler` for GIF image files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxGIFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> GIFHandler""" + """ + __init__(self) -> GIFHandler + + A `wx.ImageHandler` for GIF image files. + """ newobj = _core_.new_GIFHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2629,11 +2819,15 @@ class GIFHandlerPtr(GIFHandler): _core_.GIFHandler_swigregister(GIFHandlerPtr) class PCXHandler(ImageHandler): - """Proxy of C++ PCXHandler class""" + """A `wx.ImageHandler` for PCX imager files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxPCXHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> PCXHandler""" + """ + __init__(self) -> PCXHandler + + A `wx.ImageHandler` for PCX imager files. + """ newobj = _core_.new_PCXHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2647,11 +2841,15 @@ class PCXHandlerPtr(PCXHandler): _core_.PCXHandler_swigregister(PCXHandlerPtr) class JPEGHandler(ImageHandler): - """Proxy of C++ JPEGHandler class""" + """A `wx.ImageHandler` for JPEG/JPG image files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxJPEGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> JPEGHandler""" + """ + __init__(self) -> JPEGHandler + + A `wx.ImageHandler` for JPEG/JPG image files. + """ newobj = _core_.new_JPEGHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2665,11 +2863,15 @@ class JPEGHandlerPtr(JPEGHandler): _core_.JPEGHandler_swigregister(JPEGHandlerPtr) class PNMHandler(ImageHandler): - """Proxy of C++ PNMHandler class""" + """A `wx.ImageHandler` for PNM image files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxPNMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> PNMHandler""" + """ + __init__(self) -> PNMHandler + + A `wx.ImageHandler` for PNM image files. + """ newobj = _core_.new_PNMHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2683,11 +2885,15 @@ class PNMHandlerPtr(PNMHandler): _core_.PNMHandler_swigregister(PNMHandlerPtr) class XPMHandler(ImageHandler): - """Proxy of C++ XPMHandler class""" + """A `wx.ImageHandler` for XPM image.""" def __repr__(self): return "<%s.%s; proxy of C++ wxXPMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> XPMHandler""" + """ + __init__(self) -> XPMHandler + + A `wx.ImageHandler` for XPM image. + """ newobj = _core_.new_XPMHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -2701,11 +2907,15 @@ class XPMHandlerPtr(XPMHandler): _core_.XPMHandler_swigregister(XPMHandlerPtr) class TIFFHandler(ImageHandler): - """Proxy of C++ TIFFHandler class""" + """A `wx.ImageHandler` for TIFF image files.""" def __repr__(self): return "<%s.%s; proxy of C++ wxTIFFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self) -> TIFFHandler""" + """ + __init__(self) -> TIFFHandler + + A `wx.ImageHandler` for TIFF image files. + """ newobj = _core_.new_TIFFHandler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3043,6 +3253,7 @@ wxEVT_IDLE = _core_.wxEVT_IDLE wxEVT_UPDATE_UI = _core_.wxEVT_UPDATE_UI wxEVT_SIZING = _core_.wxEVT_SIZING wxEVT_MOVING = _core_.wxEVT_MOVING +wxEVT_HIBERNATE = _core_.wxEVT_HIBERNATE wxEVT_COMMAND_LEFT_CLICK = _core_.wxEVT_COMMAND_LEFT_CLICK wxEVT_COMMAND_LEFT_DCLICK = _core_.wxEVT_COMMAND_LEFT_DCLICK wxEVT_COMMAND_RIGHT_CLICK = _core_.wxEVT_COMMAND_RIGHT_CLICK @@ -3076,6 +3287,7 @@ EVT_KILL_FOCUS = wx.PyEventBinder( wxEVT_KILL_FOCUS ) EVT_CHILD_FOCUS = wx.PyEventBinder( wxEVT_CHILD_FOCUS ) EVT_ACTIVATE = wx.PyEventBinder( wxEVT_ACTIVATE ) EVT_ACTIVATE_APP = wx.PyEventBinder( wxEVT_ACTIVATE_APP ) +EVT_HIBERNATE = wx.PyEventBinder( wxEVT_HIBERNATE ) EVT_END_SESSION = wx.PyEventBinder( wxEVT_END_SESSION ) EVT_QUERY_END_SESSION = wx.PyEventBinder( wxEVT_QUERY_END_SESSION ) EVT_DROP_FILES = wx.PyEventBinder( wxEVT_DROP_FILES ) @@ -3143,7 +3355,7 @@ EVT_SCROLLWIN_PAGEDOWN = wx.PyEventBinder( wxEVT_SCROLLWIN_PAGEDOWN ) EVT_SCROLLWIN_THUMBTRACK = wx.PyEventBinder( wxEVT_SCROLLWIN_THUMBTRACK ) EVT_SCROLLWIN_THUMBRELEASE = wx.PyEventBinder( wxEVT_SCROLLWIN_THUMBRELEASE ) -# Scrolling from wxSlider and wxScrollBar +# Scrolling from wx.Slider and wx.ScrollBar EVT_SCROLL = wx.PyEventBinder([ wxEVT_SCROLL_TOP, wxEVT_SCROLL_BOTTOM, wxEVT_SCROLL_LINEUP, @@ -3165,7 +3377,7 @@ EVT_SCROLL_THUMBTRACK = wx.PyEventBinder( wxEVT_SCROLL_THUMBTRACK ) EVT_SCROLL_THUMBRELEASE = wx.PyEventBinder( wxEVT_SCROLL_THUMBRELEASE ) EVT_SCROLL_ENDSCROLL = wx.PyEventBinder( wxEVT_SCROLL_ENDSCROLL ) -# Scrolling from wxSlider and wxScrollBar, with an id +# Scrolling from wx.Slider and wx.ScrollBar, with an id EVT_COMMAND_SCROLL = wx.PyEventBinder([ wxEVT_SCROLL_TOP, wxEVT_SCROLL_BOTTOM, wxEVT_SCROLL_LINEUP, @@ -3229,7 +3441,11 @@ EVT_CONTEXT_MENU = wx.PyEventBinder( wxEVT_CONTEXT_MENU ) #--------------------------------------------------------------------------- class Event(Object): - """Proxy of C++ Event class""" + """ + An event is a structure holding information about an event passed to a + callback or member function. wx.Event is an abstract base class for + other event classes + """ def __init__(self): raise RuntimeError, "No constructor defined" def __repr__(self): return "<%s.%s; proxy of C++ wxEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) @@ -3240,19 +3456,38 @@ class Event(Object): except: pass def SetEventType(*args, **kwargs): - """SetEventType(self, wxEventType typ)""" + """ + SetEventType(self, wxEventType typ) + + Sets the specific type of the event. + """ return _core_.Event_SetEventType(*args, **kwargs) def GetEventType(*args, **kwargs): - """GetEventType(self) -> wxEventType""" + """ + GetEventType(self) -> wxEventType + + Returns the identifier of the given event type, such as + ``wxEVT_COMMAND_BUTTON_CLICKED``. + """ return _core_.Event_GetEventType(*args, **kwargs) def GetEventObject(*args, **kwargs): - """GetEventObject(self) -> Object""" + """ + GetEventObject(self) -> Object + + Returns the object (usually a window) associated with the event, if + any. + """ return _core_.Event_GetEventObject(*args, **kwargs) def SetEventObject(*args, **kwargs): - """SetEventObject(self, Object obj)""" + """ + SetEventObject(self, Object obj) + + Sets the originating object, or in other words, obj is normally the + object that is sending the event. + """ return _core_.Event_SetEventObject(*args, **kwargs) def GetTimestamp(*args, **kwargs): @@ -3264,15 +3499,31 @@ class Event(Object): return _core_.Event_SetTimestamp(*args, **kwargs) def GetId(*args, **kwargs): - """GetId(self) -> int""" + """ + GetId(self) -> int + + Returns the identifier associated with this event, such as a button + command id. + """ return _core_.Event_GetId(*args, **kwargs) def SetId(*args, **kwargs): - """SetId(self, int Id)""" + """ + SetId(self, int Id) + + Set's the ID for the event. This is usually the ID of the window that + is sending the event, but it can also be a command id from a menu + item, etc. + """ return _core_.Event_SetId(*args, **kwargs) def IsCommandEvent(*args, **kwargs): - """IsCommandEvent(self) -> bool""" + """ + IsCommandEvent(self) -> bool + + Returns true if the event is or is derived from `wx.CommandEvent` else + it returns false. Note: Exists only for optimization purposes. + """ return _core_.Event_IsCommandEvent(*args, **kwargs) def Skip(*args, **kwargs): @@ -3291,19 +3542,42 @@ class Event(Object): return _core_.Event_Skip(*args, **kwargs) def GetSkipped(*args, **kwargs): - """GetSkipped(self) -> bool""" + """ + GetSkipped(self) -> bool + + Returns true if the event handler should be skipped, false otherwise. + :see: `Skip` + """ return _core_.Event_GetSkipped(*args, **kwargs) def ShouldPropagate(*args, **kwargs): - """ShouldPropagate(self) -> bool""" + """ + ShouldPropagate(self) -> bool + + Test if this event should be propagated to the parent window or not, + i.e. if the propagation level is currently greater than 0. + """ return _core_.Event_ShouldPropagate(*args, **kwargs) def StopPropagation(*args, **kwargs): - """StopPropagation(self) -> int""" + """ + StopPropagation(self) -> int + + Stop the event from propagating to its parent window. Returns the old + propagation level value which may be later passed to + `ResumePropagation` to allow propagating the event again. + """ return _core_.Event_StopPropagation(*args, **kwargs) def ResumePropagation(*args, **kwargs): - """ResumePropagation(self, int propagationLevel)""" + """ + ResumePropagation(self, int propagationLevel) + + Resume the event propagation by restoring the propagation level. (For + example, you can use the value returned by an earlier call to + `StopPropagation`.) + + """ return _core_.Event_ResumePropagation(*args, **kwargs) def Clone(*args, **kwargs): @@ -3321,11 +3595,21 @@ _core_.Event_swigregister(EventPtr) #--------------------------------------------------------------------------- class PropagationDisabler(object): - """Proxy of C++ PropagationDisabler class""" + """ + Helper class to temporarily change an event not to propagate. Simply + create an instance of this class and then whe it is destroyed the + propogation of the event will be restored. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxPropagationDisabler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, Event event) -> PropagationDisabler""" + """ + __init__(self, Event event) -> PropagationDisabler + + Helper class to temporarily change an event not to propagate. Simply + create an instance of this class and then whe it is destroyed the + propogation of the event will be restored. + """ newobj = _core_.new_PropagationDisabler(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3345,11 +3629,21 @@ class PropagationDisablerPtr(PropagationDisabler): _core_.PropagationDisabler_swigregister(PropagationDisablerPtr) class PropagateOnce(object): - """Proxy of C++ PropagateOnce class""" + """ + A helper class that will temporarily lower propagation level of an + event. Simply create an instance of this class and then whe it is + destroyed the propogation of the event will be restored. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxPropagateOnce instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, Event event) -> PropagateOnce""" + """ + __init__(self, Event event) -> PropagateOnce + + A helper class that will temporarily lower propagation level of an + event. Simply create an instance of this class and then whe it is + destroyed the propogation of the event will be restored. + """ newobj = _core_.new_PropagateOnce(*args, **kwargs) self.this = newobj.this self.thisown = 1 @@ -3371,17 +3665,32 @@ _core_.PropagateOnce_swigregister(PropagateOncePtr) #--------------------------------------------------------------------------- class CommandEvent(Event): - """Proxy of C++ CommandEvent class""" + """ + This event class contains information about command events, which + originate from a variety of simple controls, as well as menus and + toolbars. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, wxEventType commandType=wxEVT_NULL, int winid=0) -> CommandEvent""" + """ + __init__(self, wxEventType commandType=wxEVT_NULL, int winid=0) -> CommandEvent + + This event class contains information about command events, which + originate from a variety of simple controls, as well as menus and + toolbars. + """ newobj = _core_.new_CommandEvent(*args, **kwargs) self.this = newobj.this self.thisown = 1 del newobj.thisown def GetSelection(*args, **kwargs): - """GetSelection(self) -> int""" + """ + GetSelection(self) -> int + + Returns item index for a listbox or choice selection event (not valid + for a deselection). + """ return _core_.CommandEvent_GetSelection(*args, **kwargs) def SetString(*args, **kwargs): @@ -3389,16 +3698,34 @@ class CommandEvent(Event): return _core_.CommandEvent_SetString(*args, **kwargs) def GetString(*args, **kwargs): - """GetString(self) -> String""" + """ + GetString(self) -> String + + Returns item string for a listbox or choice selection event (not valid + for a deselection). + """ return _core_.CommandEvent_GetString(*args, **kwargs) def IsChecked(*args, **kwargs): - """IsChecked(self) -> bool""" + """ + IsChecked(self) -> bool + + This method can be used with checkbox and menu events: for the + checkboxes, the method returns true for a selection event and false + for a deselection one. For the menu events, this method indicates if + the menu item just has become checked or unchecked (and thus only + makes sense for checkable menu items). + """ return _core_.CommandEvent_IsChecked(*args, **kwargs) Checked = IsChecked def IsSelection(*args, **kwargs): - """IsSelection(self) -> bool""" + """ + IsSelection(self) -> bool + + For a listbox or similar event, returns true if it is a selection, + false if it is a deselection. + """ return _core_.CommandEvent_IsSelection(*args, **kwargs) def SetExtraLong(*args, **kwargs): @@ -3406,7 +3733,15 @@ class CommandEvent(Event): return _core_.CommandEvent_SetExtraLong(*args, **kwargs) def GetExtraLong(*args, **kwargs): - """GetExtraLong(self) -> long""" + """ + GetExtraLong(self) -> long + + Returns extra information dependant on the event objects type. If the event + comes from a listbox selection, it is a boolean determining whether the event + was a selection (true) or a deselection (false). A listbox deselection only + occurs for multiple-selection boxes, and in this case the index and string + values are indeterminate and the listbox must be examined by the application. + """ return _core_.CommandEvent_GetExtraLong(*args, **kwargs) def SetInt(*args, **kwargs): @@ -3414,7 +3749,13 @@ class CommandEvent(Event): return _core_.CommandEvent_SetInt(*args, **kwargs) def GetInt(*args, **kwargs): - """GetInt(self) -> long""" + """ + GetInt(self) -> long + + Returns the integer identifier corresponding to a listbox, choice or radiobox + selection (only if the event was a selection, not a deselection), or a boolean + value representing the value of a checkbox. + """ return _core_.CommandEvent_GetInt(*args, **kwargs) def Clone(*args, **kwargs): @@ -3432,25 +3773,57 @@ _core_.CommandEvent_swigregister(CommandEventPtr) #--------------------------------------------------------------------------- class NotifyEvent(CommandEvent): - """Proxy of C++ NotifyEvent class""" + """ + An instance of this class (or one of its derived classes) is sent from + a control when the control's state is being changed and the control + allows that change to be prevented from happening. The event handler + can call `Veto` or `Allow` to tell the control what to do. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxNotifyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, wxEventType commandType=wxEVT_NULL, int winid=0) -> NotifyEvent""" + """ + __init__(self, wxEventType commandType=wxEVT_NULL, int winid=0) -> NotifyEvent + + An instance of this class (or one of its derived classes) is sent from + a control when the control's state is being changed and the control + allows that change to be prevented from happening. The event handler + can call `Veto` or `Allow` to tell the control what to do. + """ newobj = _core_.new_NotifyEvent(*args, **kwargs) self.this = newobj.this self.thisown = 1 del newobj.thisown def Veto(*args, **kwargs): - """Veto(self)""" + """ + Veto(self) + + Prevents the change announced by this event from happening. + + It is in general a good idea to notify the user about the reasons for + vetoing the change because otherwise the applications behaviour (which + just refuses to do what the user wants) might be quite surprising. + """ return _core_.NotifyEvent_Veto(*args, **kwargs) def Allow(*args, **kwargs): - """Allow(self)""" + """ + Allow(self) + + This is the opposite of `Veto`: it explicitly allows the event to be + processed. For most events it is not necessary to call this method as + the events are allowed anyhow but some are forbidden by default (this + will be mentioned in the corresponding event description). + """ return _core_.NotifyEvent_Allow(*args, **kwargs) def IsAllowed(*args, **kwargs): - """IsAllowed(self) -> bool""" + """ + IsAllowed(self) -> bool + + Returns true if the change is allowed (`Veto` hasn't been called) or + false otherwise (if it was). + """ return _core_.NotifyEvent_IsAllowed(*args, **kwargs) @@ -3464,7 +3837,12 @@ _core_.NotifyEvent_swigregister(NotifyEventPtr) #--------------------------------------------------------------------------- class ScrollEvent(CommandEvent): - """Proxy of C++ ScrollEvent class""" + """ + A scroll event holds information about events sent from stand-alone + scrollbars and sliders. Note that scrolled windows do not send + instnaces of this event class, but send the `wx.ScrollWinEvent` + instead. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxScrollEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -3477,11 +3855,20 @@ class ScrollEvent(CommandEvent): self.thisown = 1 del newobj.thisown def GetOrientation(*args, **kwargs): - """GetOrientation(self) -> int""" + """ + GetOrientation(self) -> int + + Returns wx.HORIZONTAL or wx.VERTICAL, depending on the orientation of + the scrollbar. + """ return _core_.ScrollEvent_GetOrientation(*args, **kwargs) def GetPosition(*args, **kwargs): - """GetPosition(self) -> int""" + """ + GetPosition(self) -> int + + Returns the position of the scrollbar. + """ return _core_.ScrollEvent_GetPosition(*args, **kwargs) def SetOrientation(*args, **kwargs): @@ -3503,21 +3890,40 @@ _core_.ScrollEvent_swigregister(ScrollEventPtr) #--------------------------------------------------------------------------- class ScrollWinEvent(Event): - """Proxy of C++ ScrollWinEvent class""" + """ + A wx.ScrollWinEvent holds information about scrolling and is sent from + scrolling windows. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxScrollWinEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, wxEventType commandType=wxEVT_NULL, int pos=0, int orient=0) -> ScrollWinEvent""" + """ + __init__(self, wxEventType commandType=wxEVT_NULL, int pos=0, int orient=0) -> ScrollWinEvent + + A wx.ScrollWinEvent holds information about scrolling and is sent from + scrolling windows. + """ newobj = _core_.new_ScrollWinEvent(*args, **kwargs) self.this = newobj.this self.thisown = 1 del newobj.thisown def GetOrientation(*args, **kwargs): - """GetOrientation(self) -> int""" + """ + GetOrientation(self) -> int + + Returns wx.HORIZONTAL or wx.VERTICAL, depending on the orientation of + the scrollbar. + """ return _core_.ScrollWinEvent_GetOrientation(*args, **kwargs) def GetPosition(*args, **kwargs): - """GetPosition(self) -> int""" + """ + GetPosition(self) -> int + + Returns the position of the scrollbar for the thumb track and release + events. Note that this field can't be used for the other events, you + need to query the window itself for the current position in that case. + """ return _core_.ScrollWinEvent_GetPosition(*args, **kwargs) def SetOrientation(*args, **kwargs): @@ -3544,33 +3950,108 @@ MOUSE_BTN_LEFT = _core_.MOUSE_BTN_LEFT MOUSE_BTN_MIDDLE = _core_.MOUSE_BTN_MIDDLE MOUSE_BTN_RIGHT = _core_.MOUSE_BTN_RIGHT class MouseEvent(Event): - """Proxy of C++ MouseEvent class""" + """ + This event class contains information about the events generated by + the mouse: they include mouse buttons press and release events and + mouse move events. + + All mouse events involving the buttons use ``wx.MOUSE_BTN_LEFT`` for + the left mouse button, ``wx.MOUSE_BTN_MIDDLE`` for the middle one and + ``wx.MOUSE_BTN_RIGHT`` for the right one. Note that not all mice have + a middle button so a portable application should avoid relying on the + events from it. + + Note the difference between methods like `LeftDown` and `LeftIsDown`: + the former returns true when the event corresponds to the left mouse + button click while the latter returns true if the left mouse button is + currently being pressed. For example, when the user is dragging the + mouse you can use `LeftIsDown` to test whether the left mouse button + is (still) depressed. Also, by convention, if `LeftDown` returns true, + `LeftIsDown` will also return true in wxWidgets whatever the + underlying GUI behaviour is (which is platform-dependent). The same + applies, of course, to other mouse buttons as well. + """ def __repr__(self): return "<%s.%s; proxy of C++ wxMouseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): - """__init__(self, wxEventType mouseType=wxEVT_NULL) -> MouseEvent""" + """ + __init__(self, wxEventType mouseType=wxEVT_NULL) -> MouseEvent + + Constructs a wx.MouseEvent. Valid event types are: + + * wxEVT_ENTER_WINDOW + * wxEVT_LEAVE_WINDOW + * wxEVT_LEFT_DOWN + * wxEVT_LEFT_UP + * wxEVT_LEFT_DCLICK + * wxEVT_MIDDLE_DOWN + * wxEVT_MIDDLE_UP + * wxEVT_MIDDLE_DCLICK + * wxEVT_RIGHT_DOWN + * wxEVT_RIGHT_UP + * wxEVT_RIGHT_DCLICK + * wxEVT_MOTION + * wxEVT_MOUSEWHEEL + """ newobj = _core_.new_MouseEvent(*args, **kwargs) self.this = newobj.this self.thisown = 1 del newobj.thisown def IsButton(*args, **kwargs): - """IsButton(self) -> bool""" + """ + IsButton(self) -> bool + + Returns true if the event was a mouse button event (not necessarily a + button down event - that may be tested using `ButtonDown`). + """ return _core_.MouseEvent_IsButton(*args, **kwargs) def ButtonDown(*args, **kwargs): - """ButtonDown(self, int but=MOUSE_BTN_ANY) -> bool""" + """ + ButtonDown(self, int but=MOUSE_BTN_ANY) -> bool + + If the argument is omitted, this returns true if the event was any mouse + button down event. Otherwise the argument specifies which button-down + event shold be checked for (see `Button` for the possible values). + """ return _core_.MouseEvent_ButtonDown(*args, **kwargs) def ButtonDClick(*args, **kwargs): - """ButtonDClick(self, int but=MOUSE_BTN_ANY) -> bool""" + """ + ButtonDClick(self, int but=MOUSE_BTN_ANY) -> bool + + If the argument is omitted, this returns true if the event was any + mouse double click event. Otherwise the argument specifies which + double click event to check for (see `Button` for the possible + values). + """ return _core_.MouseEvent_ButtonDClick(*args, **kwargs) def ButtonUp(*args, **kwargs): - """ButtonUp(self, int but=MOUSE_BTN_ANY) -> bool""" + """ + ButtonUp(self, int but=MOUSE_BTN_ANY) -> bool + + If the argument is omitted, this returns true if the event was any + mouse button up event. Otherwise the argument specifies which + button up event to check for (see `Button` for the possible values). + """ return _core_.MouseEvent_ButtonUp(*args, **kwargs) def Button(*args, **kwargs): - """Button(self, int but) -> bool""" + """ + Button(self, int button) -> bool + + Returns true if the identified mouse button is changing state. Valid + values of button are: + + ==================== ===================================== + wx.MOUSE_BTN_LEFT check if left button was pressed + wx.MOUSE_BTN_MIDDLE check if middle button was pressed + wx.MOUSE_BTN_RIGHT check if right button was pressed + wx.MOUSE_BTN_ANY check if any button was pressed + ==================== ===================================== + + """ return _core_.MouseEvent_Button(*args, **kwargs) def ButtonIsDown(*args, **kwargs): @@ -3578,23 +4059,48 @@ class MouseEvent(Event): return _core_.MouseEvent_ButtonIsDown(*args, **kwargs) def GetButton(*args, **kwargs): - """GetButton(self) -> int""" + """ + GetButton(self) -> int + + Returns the mouse button which generated this event or + wx.MOUSE_BTN_NONE if no button is involved (for mouse move, enter or + leave event, for example). Otherwise wx.MOUSE_BTN_LEFT is returned for + the left button down, up and double click events, wx.MOUSE_BTN_MIDDLE + and wx.MOUSE_BTN_RIGHT for the same events for the middle and the + right buttons respectively. + """ return _core_.MouseEvent_GetButton(*args, **kwargs) def ControlDown(*args, **kwargs): - """ControlDown(self) -> bool""" + """ + ControlDown(self) -> bool + + Returns true if the control key was down at the time of the event. + """ return _core_.MouseEvent_ControlDown(*args, **kwargs) def MetaDown(*args, **kwargs): - """MetaDown(self) -> bool""" + """ + MetaDown(self) -> bool + + Returns true if the Meta key was down at the time of the event. + """ return _core_.MouseEvent_MetaDown(*args, **kwargs) def AltDown(*args, **kwargs): - """AltDown(self) -> bool""" + """ + AltDown(self) -> bool + + Returns true if the Alt key was down at the time of the event. + """ return _core_.MouseEvent_AltDown(*args, **kwargs) def ShiftDown(*args, **kwargs): - """ShiftDown(self) -> bool""" + """ + ShiftDown(self) -> bool + + Returns true if the Shift key was down at the time of the event. + """ return _core_.MouseEvent_ShiftDown(*args, **kwargs) def CmdDown(*args, **kwargs): @@ -3603,84 +4109,162 @@ class MouseEvent(Event): "Cmd" is a pseudo key which is the same as Control for PC and Unix platforms but the special "Apple" (a.k.a as "Command") key on - Macs: it makes often sense to use it instead of, say, `ControlDown` + Macs: it often makes sense to use it instead of, say, `ControlDown` because Cmd key is used for the same thing under Mac as Ctrl - elsewhere. The Ctrl still exists, it's just not used for this + elsewhere. The Ctrl key still exists, it's just not used for this purpose. So for non-Mac platforms this is the same as `ControlDown` and Macs this is the same as `MetaDown`. """ return _core_.MouseEvent_CmdDown(*args, **kwargs) def LeftDown(*args, **kwargs): - """LeftDown(self) -> bool""" + """ + LeftDown(self) -> bool + + Returns true if the left mouse button state changed to down. + """ return _core_.MouseEvent_LeftDown(*args, **kwargs) def MiddleDown(*args, **kwargs): - """MiddleDown(self) -> bool""" + """ + MiddleDown(self) -> bool + + Returns true if the middle mouse button state changed to down. + """ return _core_.MouseEvent_MiddleDown(*args, **kwargs) def RightDown(*args, **kwargs): - """RightDown(self) -> bool""" + """ + RightDown(self) -> bool + + Returns true if the right mouse button state changed to down. + """ return _core_.MouseEvent_RightDown(*args, **kwargs) def LeftUp(*args, **kwargs): - """LeftUp(self) -> bool""" + """ + LeftUp(self) -> bool + + Returns true if the left mouse button state changed to up. + """ return _core_.MouseEvent_LeftUp(*args, **kwargs) def MiddleUp(*args, **kwargs): - """MiddleUp(self) -> bool""" + """ + MiddleUp(self) -> bool + + Returns true if the middle mouse button state changed to up. + """ return _core_.MouseEvent_MiddleUp(*args, **kwargs) def RightUp(*args, **kwargs): - """RightUp(self) -> bool""" + """ + RightUp(self) -> bool + + Returns true if the right mouse button state changed to up. + """ return _core_.MouseEvent_RightUp(*args, **kwargs) def LeftDClick(*args, **kwargs): - """LeftDClick(self) -> bool""" + """ + LeftDClick(self) -> bool + + Returns true if the event was a left button double click. + """ return _core_.MouseEvent_LeftDClick(*args, **kwargs) def MiddleDClick(*args, **kwargs): - """MiddleDClick(self) -> bool""" + """ + MiddleDClick(self) -> bool + + Returns true if the event was a middle button double click. + """ return _core_.MouseEvent_MiddleDClick(*args, **kwargs) def RightDClick(*args, **kwargs): - """RightDClick(self) -> bool""" + """ + RightDClick(self) -> bool + + Returns true if the event was a right button double click. + """ return _core_.MouseEvent_RightDClick(*args, **kwargs) def LeftIsDown(*args, **kwargs): - """LeftIsDown(self) -> bool""" + """ + LeftIsDown(self) -> bool + + Returns true if the left mouse button is currently down, independent + of the current event type. + + Please notice that it is not the same as LeftDown which returns true + if the left mouse button was just pressed. Rather, it describes the + state of the mouse button before the event happened. + + This event is usually used in the mouse event handlers which process + "move mouse" messages to determine whether the user is (still) + dragging the mouse. + """ return _core_.MouseEvent_LeftIsDown(*args, **kwargs) def MiddleIsDown(*args, **kwargs): - """MiddleIsDown(self) -> bool""" + """ + MiddleIsDown(self) -> bool + + Returns true if the middle mouse button is currently down, independent + of the current event type. + """ return _core_.MouseEvent_MiddleIsDown(*args, **kwargs) def RightIsDown(*args, **kwargs): - """RightIsDown(self) -> bool""" + """ + RightIsDown(self) -> bool + + Returns true if the right mouse button is currently down, independent + of the current event type. + """ return _core_.MouseEvent_RightIsDown(*args, **kwargs) def Dragging(*args, **kwargs): - """Dragging(self) -> bool""" + """ + Dragging(self) -> bool + + Returns true if this was a dragging event (motion while a button is + depressed). + """ return _core_.MouseEvent_Dragging(*args, **kwargs) def Moving(*args, **kwargs): - """Moving(self) -> bool""" + """ + Moving(self) -> bool + + Returns true if this was a motion event and no mouse buttons were + pressed. If any mouse button is held pressed, then this method returns + false and Dragging returns true. + """ return _core_.MouseEvent_Moving(*args, **kwargs) def Entering(*args, **kwargs): - """Entering(self) -> bool""" + """ + Entering(self) -> bool + + Returns true if the mouse was entering the window. + """ return _core_.MouseEvent_Entering(*args, **kwargs) def Leaving(*args, **kwargs): - """Leaving(self) -> bool""" + """ + Leaving(self) -> bool + + Returns true if the mouse was leaving the window. + """ return _core_.MouseEvent_Leaving(*args, **kwargs) def GetPosition(*args, **kwargs): """ GetPosition(self) -> Point - Returns the position of the mouse in window coordinates when the event - happened. + Returns the pixel position of the mouse in window coordinates when the + event happened. """ return _core_.MouseEvent_GetPosition(*args, **kwargs) @@ -3688,37 +4272,77 @@ class MouseEvent(Event): """ GetPositionTuple() -> (x,y) - Returns the position of the mouse in window coordinates when the event - happened. + Returns the pixel position of the mouse in window coordinates when the + event happened. """ return _core_.MouseEvent_GetPositionTuple(*args, **kwargs) def GetLogicalPosition(*args, **kwargs): - """GetLogicalPosition(self, DC dc) -> Point""" + """ + GetLogicalPosition(self, DC dc) -> Point + + Returns the logical mouse position in pixels (i.e. translated + according to the translation set for the DC, which usually indicates + that the window has been scrolled). + """ return _core_.MouseEvent_GetLogicalPosition(*args, **kwargs) def GetX(*args, **kwargs): - """GetX(self) -> int""" + """ + GetX(self) -> int + + Returns X coordinate of the physical mouse event position. + """ return _core_.MouseEvent_GetX(*args, **kwargs) def GetY(*args, **kwargs): - """GetY(self) -> int""" + """ + GetY(self) -> int + + Returns Y coordinate of the physical mouse event position. + """ return _core_.MouseEvent_GetY(*args, **kwargs) def GetWheelRotation(*args, **kwargs): - """GetWheelRotation(self) -> int""" + """ + GetWheelRotation(self) -> int + + Get wheel rotation, positive or negative indicates direction of + rotation. Current devices all send an event when rotation is equal to + +/-WheelDelta, but this allows for finer resolution devices to be + created in the future. Because of this you shouldn't assume that one + event is equal to 1 line or whatever, but you should be able to either + do partial line scrolling or wait until +/-WheelDelta rotation values + have been accumulated before scrolling. + """ return _core_.MouseEvent_GetWheelRotation(*args, **kwargs) def GetWheelDelta(*args, **kwargs): - """GetWheelDelta(self) -> int""" + """ + GetWheelDelta(self) -> int + + Get wheel delta, normally 120. This is the threshold for action to be + taken, and one such action (for example, scrolling one increment) + should occur for each delta. + """ return _core_.MouseEvent_GetWheelDelta(*args, **kwargs) def GetLinesPerAction(*args, **kwargs): - """GetLinesPerAction(self) -> int""" + """ + GetLinesPerAction(self) -> int + + Returns the configured number of lines (or whatever) to be scrolled + per wheel action. Defaults to three. + """ return _core_.MouseEvent_GetLinesPerAction(*args, **kwargs) def IsPageScroll(*args, **kwargs): - """IsPageScroll(self) -> bool""" + """ + IsPageScroll(self) -> bool + + Returns true if the system has been setup to do page scrolling with + the mouse wheel instead of line scrolling. + """ return _core_.MouseEvent_IsPageScroll(*args, **kwargs) m_x = property(_core_.MouseEvent_m_x_get, _core_.MouseEvent_m_x_set) @@ -3953,8 +4577,9 @@ class MoveEvent(Event): """SetPosition(self, Point pos)""" return _core_.MoveEvent_SetPosition(*args, **kwargs) - m_pos = property(_core_.MoveEvent_m_pos_get, _core_.MoveEvent_m_pos_set) - m_rect = property(_core_.MoveEvent_m_rect_get, _core_.MoveEvent_m_rect_set) + m_pos = property(GetPosition, SetPosition) + m_rect = property(GetRect, SetRect) + class MoveEventPtr(MoveEvent): def __init__(self, this): @@ -4556,6 +5181,14 @@ class NavigationKeyEvent(Event): """SetWindowChange(self, bool ischange)""" return _core_.NavigationKeyEvent_SetWindowChange(*args, **kwargs) + def IsFromTab(*args, **kwargs): + """IsFromTab(self) -> bool""" + return _core_.NavigationKeyEvent_IsFromTab(*args, **kwargs) + + def SetFromTab(*args, **kwargs): + """SetFromTab(self, bool bIs)""" + return _core_.NavigationKeyEvent_SetFromTab(*args, **kwargs) + def SetFlags(*args, **kwargs): """SetFlags(self, long flags)""" return _core_.NavigationKeyEvent_SetFlags(*args, **kwargs) @@ -4571,6 +5204,7 @@ class NavigationKeyEvent(Event): IsBackward = _core_.NavigationKeyEvent_IsBackward IsForward = _core_.NavigationKeyEvent_IsForward WinChange = _core_.NavigationKeyEvent_WinChange + FromTab = _core_.NavigationKeyEvent_FromTab class NavigationKeyEventPtr(NavigationKeyEvent): def __init__(self, this): @@ -4780,6 +5414,35 @@ class PyCommandEventPtr(PyCommandEvent): self.__class__ = PyCommandEvent _core_.PyCommandEvent_swigregister(PyCommandEventPtr) +class DateEvent(CommandEvent): + """Proxy of C++ DateEvent class""" + def __repr__(self): + return "<%s.%s; proxy of C++ wxDateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) + def __init__(self, *args, **kwargs): + """__init__(self, Window win, DateTime dt, wxEventType type) -> DateEvent""" + newobj = _core_.new_DateEvent(*args, **kwargs) + self.this = newobj.this + self.thisown = 1 + del newobj.thisown + def GetDate(*args, **kwargs): + """GetDate(self) -> DateTime""" + return _core_.DateEvent_GetDate(*args, **kwargs) + + def SetDate(*args, **kwargs): + """SetDate(self, DateTime date)""" + return _core_.DateEvent_SetDate(*args, **kwargs) + + +class DateEventPtr(DateEvent): + def __init__(self, this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = DateEvent +_core_.DateEvent_swigregister(DateEventPtr) + +wxEVT_DATE_CHANGED = _core_.wxEVT_DATE_CHANGED +EVT_DATE_CHANGED = wx.PyEventBinder( wxEVT_DATE_CHANGED, 1 ) + #--------------------------------------------------------------------------- PYAPP_ASSERT_SUPPRESS = _core_.PYAPP_ASSERT_SUPPRESS @@ -4805,8 +5468,8 @@ class PyApp(EvtHandler): self.this = newobj.this self.thisown = 1 del newobj.thisown - self._setCallbackInfo(self, PyApp) - self._setOORInfo(self) + self._setCallbackInfo(self, PyApp, False) + self._setOORInfo(self, False) def __del__(self, destroy=_core_.delete_PyApp): """__del__(self)""" @@ -4815,7 +5478,7 @@ class PyApp(EvtHandler): except: pass def _setCallbackInfo(*args, **kwargs): - """_setCallbackInfo(self, PyObject self, PyObject _class)""" + """_setCallbackInfo(self, PyObject self, PyObject _class, bool incref)""" return _core_.PyApp__setCallbackInfo(*args, **kwargs) def GetAppName(*args, **kwargs): @@ -5488,12 +6151,13 @@ your Mac.""" self._BootstrapApp() - def __del__(self): - try: - self.RestoreStdio() # Just in case the MainLoop was overridden - except: - pass + def __del__(self, destroy=wx.PyApp.__del__): + self.RestoreStdio() # Just in case the MainLoop was overridden + destroy(self) + def Destroy(self): + wx.PyApp.Destroy(self) + self.thisown = 0 def SetTopWindow(self, frame): """Set the \"main\" top level window""" @@ -5518,7 +6182,10 @@ your Mac.""" def RestoreStdio(self): - _sys.stdout, _sys.stderr = self.saveStdio + try: + _sys.stdout, _sys.stderr = self.saveStdio + except: + pass def SetOutputWindowAttributes(self, title=None, pos=None, size=None): @@ -7113,7 +7780,7 @@ class Window(EvtHandler): def RefreshRect(*args, **kwargs): """ - RefreshRect(self, Rect rect) + RefreshRect(self, Rect rect, bool eraseBackground=True) Redraws the contents of the given rectangle: the area inside it will be repainted. This is the same as Refresh but has a nicer syntax. @@ -7319,6 +7986,14 @@ class Window(EvtHandler): """ return _core_.Window_GetForegroundColour(*args, **kwargs) + def InheritsBackgroundColour(*args, **kwargs): + """InheritsBackgroundColour(self) -> bool""" + return _core_.Window_InheritsBackgroundColour(*args, **kwargs) + + def UseBgCol(*args, **kwargs): + """UseBgCol(self) -> bool""" + return _core_.Window_UseBgCol(*args, **kwargs) + def SetBackgroundStyle(*args, **kwargs): """ SetBackgroundStyle(self, int style) -> bool @@ -8079,6 +8754,18 @@ def FindWindowByLabel(*args, **kwargs): def Window_FromHWND(*args, **kwargs): """Window_FromHWND(Window parent, unsigned long _hWnd) -> Window""" return _core_.Window_FromHWND(*args, **kwargs) + +def GetTopLevelWindows(*args, **kwargs): + """ + GetTopLevelWindows() -> PyObject + + Returns a list of the the application's top-level windows, (frames, + dialogs, etc.) NOTE: Currently this is a copy of the list maintained + by wxWidgets, and so it is only valid as long as no top-level windows + are closed or new top-level windows are created. + + """ + return _core_.GetTopLevelWindows(*args, **kwargs) #--------------------------------------------------------------------------- class Validator(EvtHandler): @@ -8864,10 +9551,10 @@ def Control_GetClassDefaultAttributes(*args, **kwargs): class ItemContainer(object): """ - wx.ItemContainer defines an interface which is implemented by all - controls which have string subitems, each of which may be selected, - such as `wx.ListBox`, `wx.CheckListBox`, `wx.Choice` as well as - `wx.ComboBox` which implements an extended interface deriving from + The wx.ItemContainer class defines an interface which is implemented + by all controls which have string subitems, each of which may be + selected, such as `wx.ListBox`, `wx.CheckListBox`, `wx.Choice` as well + as `wx.ComboBox` which implements an extended interface deriving from this one. It defines the methods for accessing the control's items and although @@ -8930,6 +9617,22 @@ class ItemContainer(object): """ return _core_.ItemContainer_Delete(*args, **kwargs) + def GetClientData(*args, **kwargs): + """ + GetClientData(self, int n) -> PyObject + + Returns the client data associated with the given item, (if any.) + """ + return _core_.ItemContainer_GetClientData(*args, **kwargs) + + def SetClientData(*args, **kwargs): + """ + SetClientData(self, int n, PyObject clientData) + + Associate the given client data with the item at position n. + """ + return _core_.ItemContainer_SetClientData(*args, **kwargs) + def GetCount(*args, **kwargs): """ GetCount(self) -> int @@ -8976,15 +9679,14 @@ class ItemContainer(object): """ return _core_.ItemContainer_FindString(*args, **kwargs) - def Select(*args, **kwargs): + def SetSelection(*args, **kwargs): """ - Select(self, int n) + SetSelection(self, int n) Sets the item at index 'n' to be the selected item. """ - return _core_.ItemContainer_Select(*args, **kwargs) + return _core_.ItemContainer_SetSelection(*args, **kwargs) - SetSelection = Select def GetSelection(*args, **kwargs): """ GetSelection(self) -> int @@ -8994,6 +9696,10 @@ class ItemContainer(object): """ return _core_.ItemContainer_GetSelection(*args, **kwargs) + def SetStringSelection(*args, **kwargs): + """SetStringSelection(self, String s) -> bool""" + return _core_.ItemContainer_SetStringSelection(*args, **kwargs) + def GetStringSelection(*args, **kwargs): """ GetStringSelection(self) -> String @@ -9003,21 +9709,14 @@ class ItemContainer(object): """ return _core_.ItemContainer_GetStringSelection(*args, **kwargs) - def GetClientData(*args, **kwargs): - """ - GetClientData(self, int n) -> PyObject - - Returns the client data associated with the given item, (if any.) - """ - return _core_.ItemContainer_GetClientData(*args, **kwargs) - - def SetClientData(*args, **kwargs): + def Select(*args, **kwargs): """ - SetClientData(self, int n, PyObject clientData) + Select(self, int n) - Associate the given client data with the item at position n. + This is the same as `SetSelection` and exists only because it is + slightly more natural for controls which support multiple selection. """ - return _core_.ItemContainer_SetClientData(*args, **kwargs) + return _core_.ItemContainer_Select(*args, **kwargs) class ItemContainerPtr(ItemContainer): @@ -9538,18 +10237,45 @@ class Sizer(Object): self.Add(*item) # for backwards compatibility only, please do not use in new code - AddWindow = wx._deprecated(Add, "AddWindow is deprecated, use `Add` instead.") - AddSizer = wx._deprecated(Add, "AddSizer is deprecated, use `Add` instead.") - AddSpacer = wx._deprecated(Add, "AddSpacer is deprecated, use `Add` instead.") - PrependWindow = wx._deprecated(Prepend, "PrependWindow is deprecated, use `Prepend` instead.") - PrependSizer = wx._deprecated(Prepend, "PrependSizer is deprecated, use `Prepend` instead.") - PrependSpacer = wx._deprecated(Prepend, "PrependSpacer is deprecated, use `Prepend` instead.") - InsertWindow = wx._deprecated(Insert, "InsertWindow is deprecated, use `Insert` instead.") - InsertSizer = wx._deprecated(Insert, "InsertSizer is deprecated, use `Insert` instead.") - InsertSpacer = wx._deprecated(Insert, "InsertSpacer is deprecated, use `Insert` instead.") - RemoveWindow = wx._deprecated(Remove, "RemoveWindow is deprecated, use `Remove` instead.") - RemoveSizer = wx._deprecated(Remove, "RemoveSizer is deprecated, use `Remove` instead.") - RemovePos = wx._deprecated(Remove, "RemovePos is deprecated, use `Remove` instead.") + def AddWindow(self, *args, **kw): + """Compatibility alias for `Add`.""" + return self.Add(*args, **kw) + def AddSizer(self, *args, **kw): + """Compatibility alias for `Add`.""" + return self.Add(*args, **kw) + def AddSpacer(self, *args, **kw): + """Compatibility alias for `Add`.""" + return self.Add(*args, **kw) + + def PrependWindow(self, *args, **kw): + """Compatibility alias for `Prepend`.""" + return self.Prepend(*args, **kw) + def PrependSizer(self, *args, **kw): + """Compatibility alias for `Prepend`.""" + return self.Prepend(*args, **kw) + def PrependSpacer(self, *args, **kw): + """Compatibility alias for `Prepend`.""" + return self.Prepend(*args, **kw) + + def InsertWindow(self, *args, **kw): + """Compatibility alias for `Insert`.""" + return self.Insert(*args, **kw) + def InsertSizer(self, *args, **kw): + """Compatibility alias for `Insert`.""" + return self.Insert(*args, **kw) + def InsertSpacer(self, *args, **kw): + """Compatibility alias for `Insert`.""" + return self.Insert(*args, **kw) + + def RemoveWindow(self, *args, **kw): + """Compatibility alias for `Remove`.""" + return self.Remove(*args, **kw) + def RemoveSizer(self, *args, **kw): + """Compatibility alias for `Remove`.""" + return self.Remove(*args, **kw) + def RemovePos(self, *args, **kw): + """Compatibility alias for `Remove`.""" + return self.Remove(*args, **kw) def SetDimension(*args, **kwargs): @@ -9744,7 +10470,7 @@ class Sizer(Object): def Hide(self, item, recursive=False): """ - A convenience method for Show(item, False, recursive). + A convenience method for `Show` (item, False, recursive). """ return self.Show(item, False, recursive) @@ -10213,7 +10939,7 @@ class StdDialogButtonSizer(BoxSizer): A special sizer that knows how to order and position standard buttons in order to conform to the current platform's standards. You simply need to add each `wx.Button` to the sizer, and be sure to create the - buttons using the standard ID's. Then call `Finalize` and the sizer + buttons using the standard ID's. Then call `Realize` and the sizer will take care of the rest. """ @@ -10234,15 +10960,15 @@ class StdDialogButtonSizer(BoxSizer): """ return _core_.StdDialogButtonSizer_AddButton(*args, **kwargs) - def Finalise(*args, **kwargs): + def Realize(*args, **kwargs): """ - Finalise(self) + Realize(self) This funciton needs to be called after all the buttons have been added to the sizer. It will reorder them and position them in a platform specifc manner. """ - return _core_.StdDialogButtonSizer_Finalise(*args, **kwargs) + return _core_.StdDialogButtonSizer_Realize(*args, **kwargs) def SetAffirmativeButton(*args, **kwargs): """SetAffirmativeButton(self, wxButton button)""" @@ -11085,19 +11811,32 @@ if RELEASE_VERSION != _core_.RELEASE_VERSION: #---------------------------------------------------------------------------- -# Set the default string<-->unicode conversion encoding from the -# locale. This encoding is used when string or unicode objects need -# to be converted in order to pass them to wxWidgets. Please be aware -# that the default encoding within the same locale may be slightly -# different on different platforms. For example, please see +# Set wxPython's default string<-->unicode conversion encoding from +# the locale, but only if Python's default hasn't been changed. (We +# assume that if the user has customized it already then that is the +# encoding we need to use as well.) +# +# The encoding selected here is used when string or unicode objects +# need to be converted in order to pass them to wxWidgets. Please be +# aware that the default encoding within the same locale may be +# slightly different on different platforms. For example, please see # http://www.alanwood.net/demos/charsetdiffs.html for differences # between the common latin/roman encodings. -import locale -default = locale.getdefaultlocale()[1] + +default = _sys.getdefaultencoding() +if default == 'ascii': + import locale + import codecs + try: + default = locale.getdefaultlocale()[1] + codecs.lookup(default) + except (ValueError, LookupError, TypeError): + default = _sys.getdefaultencoding() + del locale + del codecs if default: wx.SetDefaultPyEncoding(default) del default -del locale #----------------------------------------------------------------------------