X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14f355c2b5c71fc7c3d680aea366582d2ac60f7b..9a6a4f6d5799f9cf0ed240b23f3422ad73623971:/src/gtk1/cursor.cpp diff --git a/src/gtk1/cursor.cpp b/src/gtk1/cursor.cpp index f23daacbb9..cac9e5aaba 100644 --- a/src/gtk1/cursor.cpp +++ b/src/gtk1/cursor.cpp @@ -7,10 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "cursor.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -70,6 +66,20 @@ wxCursor::wxCursor( int cursorId ) GdkCursorType gdk_cur = GDK_LEFT_PTR; switch (cursorId) { + case wxCURSOR_BLANK: + { + static const gchar bits[] = { 0 }; + static /* const -- not in GTK1 */ GdkColor color = { 0, 0, 0, 0 }; + + GdkPixmap *pixmap = gdk_bitmap_create_from_data(NULL, bits, 1, 1); + M_CURSORDATA->m_cursor = gdk_cursor_new_from_pixmap(pixmap, + pixmap, + &color, + &color, + 0, 0); + } + return; + case wxCURSOR_ARROW: // fall through to default case wxCURSOR_DEFAULT: gdk_cur = GDK_LEFT_PTR; break; case wxCURSOR_RIGHT_ARROW: gdk_cur = GDK_RIGHT_PTR; break; @@ -104,6 +114,7 @@ wxCursor::wxCursor( int cursorId ) case wxCURSOR_BASED_ARROW_UP: gdk_cur = GDK_BASED_ARROW_UP; break; case wxCURSOR_BASED_ARROW_DOWN: gdk_cur = GDK_BASED_ARROW_DOWN; break; */ + default: wxFAIL_MSG(wxT("unsupported cursor type")); // will use the standard one @@ -142,13 +153,6 @@ wxCursor::wxCursor(const char bits[], int width, int height, gdk_bitmap_unref( mask ); } - -wxCursor::wxCursor( const wxCursor &cursor ) - : wxObject() -{ - Ref( cursor ); -} - #if wxUSE_IMAGE wxCursor::wxCursor( const wxImage & image ) @@ -254,16 +258,27 @@ wxCursor::wxCursor( const wxImage & image ) (unsigned char)(colNextMostFreq >> 8), (unsigned char)(colNextMostFreq) ); + int fg_intensity = fg.Red() + fg.Green() + fg.Blue(); + int bg_intensity = bg.Red() + bg.Green() + bg.Blue(); + + if (bg_intensity > fg_intensity) + { + //swap fg and bg + wxColour tmp = fg; + fg = bg; + bg = tmp; + } + int hotSpotX; int hotSpotY; - if (image.HasOption(wxCUR_HOTSPOT_X)) - hotSpotX = image.GetOptionInt(wxCUR_HOTSPOT_X); + if (image.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_X)) + hotSpotX = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X); else hotSpotX = 0; - if (image.HasOption(wxCUR_HOTSPOT_Y)) - hotSpotY = image.GetOptionInt(wxCUR_HOTSPOT_Y); + if (image.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y)) + hotSpotY = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y); else hotSpotY = 0; @@ -298,16 +313,6 @@ wxCursor::~wxCursor() { } -wxCursor& wxCursor::operator = ( const wxCursor& cursor ) -{ - if (*this == cursor) - return (*this); - - Ref( cursor ); - - return *this; -} - bool wxCursor::operator == ( const wxCursor& cursor ) const { return m_refData == cursor.m_refData;