X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/99ee04b97b773ddbd7dbb8f2be3638c946eda208..7dbe942aaaa9a8f32c9f901bdcf83d7941362b71:/src/mgl/cursor.cpp diff --git a/src/mgl/cursor.cpp b/src/mgl/cursor.cpp index 94df70a5c2..d2334ba0d2 100644 --- a/src/mgl/cursor.cpp +++ b/src/mgl/cursor.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp +// Name: src/mgl/cursor.cpp // Purpose: // Author: Vaclav Slavik // Id: $Id$ @@ -7,11 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -57,7 +52,7 @@ wxCursorRefData::~wxCursorRefData() //----------------------------------------------------------------------------- -WX_DECLARE_HASH_MAP(int, wxCursor, wxIntegerHash, wxIntegerEqual, wxCursorsHash) +WX_DECLARE_HASH_MAP(int, wxCursor, wxIntegerHash, wxIntegerEqual, wxCursorsHash); static wxCursorsHash *gs_cursorsHash = NULL; @@ -69,6 +64,9 @@ wxCursor::wxCursor() wxCursor::wxCursor(int cursorId) { + if ( !gs_cursorsHash ) + gs_cursorsHash = new wxCursorsHash; + if ( gs_cursorsHash->find(cursorId) != gs_cursorsHash->end() ) { wxLogTrace(_T("mglcursor"), _T("cursor id %i fetched from cache"), cursorId); @@ -82,6 +80,7 @@ wxCursor::wxCursor(int cursorId) switch (cursorId) { case wxCURSOR_ARROW: cursorname = "arrow.cur"; break; + case wxCURSOR_RIGHT_ARROW: cursorname = "rightarr.cur"; break; case wxCURSOR_BULLSEYE: cursorname = "bullseye.cur"; break; case wxCURSOR_CHAR: cursorname = "char.cur"; break; case wxCURSOR_CROSS: cursorname = "cross.cur"; break; @@ -110,13 +109,12 @@ wxCursor::wxCursor(int cursorId) case wxCURSOR_NONE: *this = wxNullCursor; return; - break; default: wxFAIL_MSG(wxT("unsupported cursor type")); break; } - + M_CURSORDATA->m_cursor = new MGLCursor(cursorname); // if we cannot load arrow cursor, use MGL's default arrow cursor: @@ -125,7 +123,7 @@ wxCursor::wxCursor(int cursorId) delete M_CURSORDATA->m_cursor; M_CURSORDATA->m_cursor = new MGLCursor(MGL_DEF_CURSOR); } - + if ( !M_CURSORDATA->m_cursor->valid() ) { wxLogError(_("Couldn't create cursor.")); @@ -134,7 +132,7 @@ wxCursor::wxCursor(int cursorId) else { (*gs_cursorsHash)[cursorId] = *this; - wxLogTrace(_T("mglcursor"), _T("cursor id %i added to cache (%s)"), + wxLogTrace(_T("mglcursor"), _T("cursor id %i added to cache (%s)"), cursorId, cursorname); } } @@ -151,7 +149,7 @@ wxCursor::wxCursor(const char WXUNUSED(bits)[], wxCursor::wxCursor(const wxString& cursor_file, long flags, - int hotSpotX, int hotSpotY) + int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY)) { if ( flags == wxBITMAP_TYPE_CUR || flags == wxBITMAP_TYPE_CUR_RESOURCE ) { @@ -227,7 +225,7 @@ void wxSetCursor(const wxCursor& cursor) { if ( g_winMng ) MGL_wmSetGlobalCursor(g_winMng, NULL); - gs_globalCursor = wxNullCursor; + gs_globalCursor = wxNullCursor; } } @@ -286,12 +284,8 @@ bool wxIsBusy() class wxCursorModule : public wxModule { public: - virtual bool OnInit() - { - gs_cursorsHash = new wxCursorsHash; - return TRUE; - } - + virtual bool OnInit() { return true; } + virtual void OnExit() { wxDELETE(gs_cursorsHash);