X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..6caa0f5cd18fe9fb39c207d5f31fa5633479a822:/wxPython/src/_cursor.i?ds=sidebyside diff --git a/wxPython/src/_cursor.i b/wxPython/src/_cursor.i index 84f22ebd5f..02e8a7f1cc 100644 --- a/wxPython/src/_cursor.i +++ b/wxPython/src/_cursor.i @@ -15,58 +15,169 @@ //--------------------------------------------------------------------------- + +DocStr(wxCursor, +"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. +"," + +Stock Cursor IDs +----------------- + ======================== ====================================== + wx.CURSOR_ARROW A standard arrow cursor. + wx.CURSOR_RIGHT_ARROW A standard arrow cursor pointing to the right. + wx.CURSOR_BLANK Transparent cursor. + wx.CURSOR_BULLSEYE Bullseye cursor. + wx.CURSOR_CHAR Rectangular character cursor. + wx.CURSOR_CROSS A cross cursor. + wx.CURSOR_HAND A hand cursor. + wx.CURSOR_IBEAM An I-beam cursor (vertical line). + wx.CURSOR_LEFT_BUTTON Represents a mouse with the left button depressed. + wx.CURSOR_MAGNIFIER A magnifier icon. + wx.CURSOR_MIDDLE_BUTTON Represents a mouse with the middle button depressed. + wx.CURSOR_NO_ENTRY A no-entry sign cursor. + wx.CURSOR_PAINT_BRUSH A paintbrush cursor. + wx.CURSOR_PENCIL A pencil cursor. + wx.CURSOR_POINT_LEFT A cursor that points left. + wx.CURSOR_POINT_RIGHT A cursor that points right. + wx.CURSOR_QUESTION_ARROW An arrow and question mark. + wx.CURSOR_RIGHT_BUTTON Represents a mouse with the right button depressed. + wx.CURSOR_SIZENESW A sizing cursor pointing NE-SW. + wx.CURSOR_SIZENS A sizing cursor pointing N-S. + wx.CURSOR_SIZENWSE A sizing cursor pointing NW-SE. + wx.CURSOR_SIZEWE A sizing cursor pointing W-E. + wx.CURSOR_SIZING A general sizing cursor. + wx.CURSOR_SPRAYCAN A spraycan cursor. + wx.CURSOR_WAIT A wait cursor. + wx.CURSOR_WATCH A watch cursor. + wx.CURSOR_ARROWWAIT A cursor with both an arrow and an hourglass, (windows.) + ======================== ====================================== + +"); + +MustHaveApp(wxCursor); + class wxCursor : public wxGDIObject { public: + %extend { - wxCursor(const wxString* cursorName, long flags, int hotSpotX=0, int hotSpotY=0) { -#ifdef __WXGTK__ - wxCHECK_MSG(FALSE, NULL, - wxT("wxCursor constructor not implemented for wxGTK, use wxStockCursor, wxCursorFromImage, or wxCursorFromBits instead.")); -#else - return new wxCursor(*cursorName, flags, hotSpotX, hotSpotY); -#endif + DocStr(wxCursor, + "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."," +:see: Alternate constructors `wx.StockCursor`,`wx.CursorFromImage`"); + wxCursor(const wxString& cursorName, long type, int hotSpotX=0, int hotSpotY=0) { +%#ifdef __WXGTK__ + wxImage img(cursorName, type); + img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotSpotX); + img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY); + return new wxCursor(img); +%#else + return new wxCursor(cursorName, type, hotSpotX, hotSpotY); +%#endif } } ~wxCursor(); - // alternate constructors - %name(StockCursor) wxCursor(int id); - %name(CursorFromImage) wxCursor(const wxImage& image); + DocCtorStrName( + wxCursor(int id), + "Create a cursor using one of the stock cursors. Note that not all +stock cursors are available on all platforms.", "", + StockCursor); + + + DocCtorStrName( + wxCursor(const wxImage& image), + "Constructs a cursor from a `wx.Image`. The mask (if any) will be used +for setting the transparent portions of the cursor.", +" +In MSW the cursor is resized to 32x32 if it was larger. + +In GTK the cursor will be displayed at the size of the image. + +On MacOS the cursor is resized to 16x16 if it was larger.", + CursorFromImage); + + +// %extend { +// DocStr(wxCursor, +// ""); +// %RenameCtor(CursorFromBits, wxCursor(PyObject* bits, int width, int height, +// int hotSpotX=-1, int hotSpotY=-1, +// PyObject* maskBits=NULL)) +// { +// char* bitsbuf; +// char* maskbuf = NULL; +// int length; +// PyString_AsStringAndSize(bits, &bitsbuf, &length); +// if (maskBits) +// PyString_AsStringAndSize(maskBits, &maskbuf, &length); +// return new wxCursor(bitsbuf, width, height, hotSpotX, hotSpotY, maskbuf); +// } +// } + + + +#ifdef __WXMSW__ + DocDeclStr( + long , GetHandle(), + "Get the MS Windows handle for the cursor", ""); + %extend { - %name(CursorFromBits) wxCursor(PyObject* bits, int width, int height, - int hotSpotX=-1, int hotSpotY=-1, - PyObject* maskBits=0) { - char* bitsbuf; - char* maskbuf = NULL; - int length; - PyString_AsStringAndSize(bits, &bitsbuf, &length); - if (maskBits) - PyString_AsStringAndSize(maskBits, &maskbuf, &length); - return new wxCursor(bitsbuf, width, height, hotSpotX, hotSpotY, maskbuf); - } + DocStr(SetHandle, + "Set the MS Windows handle to use for the cursor", ""); + void SetHandle(long handle) { self->SetHandle((WXHANDLE)handle); } } - // wxGDIImage methods -#ifdef __WXMSW__ - long GetHandle(); - void SetHandle(long handle); #endif - bool Ok(); + DocDeclStr( + bool , IsOk(), + "", ""); + %pythoncode { Ok = IsOk } + + %pythoncode { def __nonzero__(self): return self.IsOk() } + #ifdef __WXMSW__ - int GetWidth(); - int GetHeight(); - int GetDepth(); - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetSize(const wxSize& size); + DocDeclStr( + int , GetWidth(), + "", ""); + + DocDeclStr( + int , GetHeight(), + "", ""); + + DocDeclStr( + int , GetDepth(), + "", ""); + + DocDeclStr( + void , SetWidth(int w), + "", ""); + + DocDeclStr( + void , SetHeight(int h), + "", ""); + + DocDeclStr( + void , SetDepth(int d), + "", ""); + + DocDeclStr( + void , SetSize(const wxSize& size), + "", ""); + #endif - %pythoncode { def __nonzero__(self): return self.Ok() } };