]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/cursor.cpp
Add some version checks to help compiling on OSX.
[wxWidgets.git] / src / mgl / cursor.cpp
index 94df70a5c2eb7a5a2b2374a8a8c3498f28011eea..8832eff0e74a48b482074faafed6018a3a4617d5 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        cursor.cpp
+// Name:        src/mgl/cursor.cpp
 // Purpose:
 // Author:      Vaclav Slavik
 // Id:          $Id$
 // Purpose:
 // Author:      Vaclav Slavik
 // Id:          $Id$
@@ -7,11 +7,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
-#ifdef __GNUG__
-#pragma implementation "cursor.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #endif
 
 #include "wx/cursor.h"
 #endif
 
 #include "wx/cursor.h"
-#include "wx/module.h"
-#include "wx/utils.h"
-#include "wx/log.h"
-#include "wx/intl.h"
-#include "wx/hashmap.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/intl.h"
+    #include "wx/log.h"
+    #include "wx/utils.h"
+    #include "wx/hashmap.h"
+    #include "wx/module.h"
+#endif
 
 #include "wx/mgl/private.h"
 
 
 #include "wx/mgl/private.h"
 
@@ -38,14 +36,14 @@ class wxCursorRefData: public wxObjectRefData
   public:
 
     wxCursorRefData();
   public:
 
     wxCursorRefData();
-    ~wxCursorRefData();
+    virtual ~wxCursorRefData();
 
     MGLCursor *m_cursor;
 };
 
 wxCursorRefData::wxCursorRefData()
 {
 
     MGLCursor *m_cursor;
 };
 
 wxCursorRefData::wxCursorRefData()
 {
-    m_cursor = (MGLCursor*) NULL;
+    m_cursor = NULL;
 }
 
 wxCursorRefData::~wxCursorRefData()
 }
 
 wxCursorRefData::~wxCursorRefData()
@@ -57,7 +55,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;
 
 
 static wxCursorsHash *gs_cursorsHash = NULL;
 
@@ -67,11 +65,14 @@ wxCursor::wxCursor()
 {
 }
 
 {
 }
 
-wxCursor::wxCursor(int cursorId)
+void wxCursor::InitFromStock(wxStockCursor cursorId)
 {
 {
+    if ( !gs_cursorsHash )
+        gs_cursorsHash = new wxCursorsHash;
+
     if ( gs_cursorsHash->find(cursorId) != gs_cursorsHash->end() )
     {
     if ( gs_cursorsHash->find(cursorId) != gs_cursorsHash->end() )
     {
-        wxLogTrace(_T("mglcursor"), _T("cursor id %i fetched from cache"), cursorId);
+        wxLogTrace(wxT("mglcursor"), wxT("cursor id %i fetched from cache"), cursorId);
         *this = (*gs_cursorsHash)[cursorId];
         return;
     }
         *this = (*gs_cursorsHash)[cursorId];
         return;
     }
@@ -82,6 +83,7 @@ wxCursor::wxCursor(int cursorId)
     switch (cursorId)
     {
         case wxCURSOR_ARROW:           cursorname = "arrow.cur"; break;
     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;
         case wxCURSOR_BULLSEYE:        cursorname = "bullseye.cur"; break;
         case wxCURSOR_CHAR:            cursorname = "char.cur"; break;
         case wxCURSOR_CROSS:           cursorname = "cross.cur"; break;
@@ -110,13 +112,12 @@ wxCursor::wxCursor(int cursorId)
         case wxCURSOR_NONE:
             *this = wxNullCursor;
             return;
         case wxCURSOR_NONE:
             *this = wxNullCursor;
             return;
-            break;
 
         default:
             wxFAIL_MSG(wxT("unsupported cursor type"));
             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:
     M_CURSORDATA->m_cursor = new MGLCursor(cursorname);
 
     // if we cannot load arrow cursor, use MGL's default arrow cursor:
@@ -125,7 +126,7 @@ wxCursor::wxCursor(int cursorId)
         delete M_CURSORDATA->m_cursor;
         M_CURSORDATA->m_cursor = new MGLCursor(MGL_DEF_CURSOR);
     }
         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."));
     if ( !M_CURSORDATA->m_cursor->valid() )
     {
         wxLogError(_("Couldn't create cursor."));
@@ -134,26 +135,16 @@ wxCursor::wxCursor(int cursorId)
     else
     {
         (*gs_cursorsHash)[cursorId] = *this;
     else
     {
         (*gs_cursorsHash)[cursorId] = *this;
-        wxLogTrace(_T("mglcursor"), _T("cursor id %i added to cache (%s)"), 
+        wxLogTrace(wxT("mglcursor"), wxT("cursor id %i added to cache (%s)"),
                    cursorId, cursorname);
     }
 }
 
                    cursorId, cursorname);
     }
 }
 
-wxCursor::wxCursor(const char WXUNUSED(bits)[],
-                   int WXUNUSED(width),
-                   int WXUNUSED(height),
-                   int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY),
-                   const char WXUNUSED(maskBits)[],
-                   wxColour * WXUNUSED(fg), wxColour * WXUNUSED(bg) )
-{
-    //FIXME_MGL
-}
-
 wxCursor::wxCursor(const wxString& cursor_file,
 wxCursor::wxCursor(const wxString& cursor_file,
-                   long flags,
-                   int hotSpotX, int hotSpotY)
+                   wxBitmapType type,
+                   int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY))
 {
 {
-    if ( flags == wxBITMAP_TYPE_CUR || flags == wxBITMAP_TYPE_CUR_RESOURCE )
+    if ( type == wxBITMAP_TYPE_CUR || type == wxBITMAP_TYPE_CUR_RESOURCE )
     {
         m_refData = new wxCursorRefData();
         M_CURSORDATA->m_cursor = new MGLCursor(cursor_file.mb_str());
     {
         m_refData = new wxCursorRefData();
         M_CURSORDATA->m_cursor = new MGLCursor(cursor_file.mb_str());
@@ -169,39 +160,11 @@ wxCursor::wxCursor(const wxString& cursor_file,
     }
 }
 
     }
 }
 
-wxCursor::wxCursor(const wxCursor &cursor)
-{
-    Ref(cursor);
-}
-
 wxCursor::~wxCursor()
 {
     // wxObject unrefs data
 }
 
 wxCursor::~wxCursor()
 {
     // wxObject unrefs data
 }
 
-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);
-}
-
-bool wxCursor::operator != (const wxCursor& cursor) const
-{
-    return (m_refData != cursor.m_refData);
-}
-
-bool wxCursor::Ok() const
-{
-    return (m_refData != NULL);
-}
-
 MGLCursor *wxCursor::GetMGLCursor() const
 {
     return M_CURSORDATA->m_cursor;
 MGLCursor *wxCursor::GetMGLCursor() const
 {
     return M_CURSORDATA->m_cursor;
@@ -217,7 +180,7 @@ static wxCursor  gs_globalCursor = wxNullCursor;
 
 void wxSetCursor(const wxCursor& cursor)
 {
 
 void wxSetCursor(const wxCursor& cursor)
 {
-    if ( cursor.Ok() )
+    if ( cursor.IsOk() )
     {
         if ( g_winMng )
             MGL_wmSetGlobalCursor(g_winMng, *cursor.GetMGLCursor());
     {
         if ( g_winMng )
             MGL_wmSetGlobalCursor(g_winMng, *cursor.GetMGLCursor());
@@ -227,7 +190,7 @@ void wxSetCursor(const wxCursor& cursor)
     {
         if ( g_winMng )
             MGL_wmSetGlobalCursor(g_winMng, NULL);
     {
         if ( g_winMng )
             MGL_wmSetGlobalCursor(g_winMng, NULL);
-        gs_globalCursor = wxNullCursor;        
+        gs_globalCursor = wxNullCursor;
     }
 }
 
     }
 }
 
@@ -258,15 +221,15 @@ void wxEndBusyCursor()
     gs_savedCursor = wxNullCursor;
 }
 
     gs_savedCursor = wxNullCursor;
 }
 
-void wxBeginBusyCursor(wxCursor *cursor)
+void wxBeginBusyCursor(const wxCursor *cursor)
 {
     if ( gs_busyCount++ > 0 ) return;
 
 {
     if ( gs_busyCount++ > 0 ) return;
 
-    wxASSERT_MSG( !gs_savedCursor.Ok(),
+    wxASSERT_MSG( !gs_savedCursor.IsOk(),
                   wxT("forgot to call wxEndBusyCursor, will leak memory") );
 
     gs_savedCursor = gs_globalCursor;
                   wxT("forgot to call wxEndBusyCursor, will leak memory") );
 
     gs_savedCursor = gs_globalCursor;
-    if ( cursor->Ok() )
+    if ( cursor->IsOk() )
         wxSetCursor(*cursor);
     else
         wxSetCursor(wxCursor(wxCURSOR_WAIT));
         wxSetCursor(*cursor);
     else
         wxSetCursor(wxCursor(wxCURSOR_WAIT));
@@ -286,12 +249,8 @@ bool wxIsBusy()
 class wxCursorModule : public wxModule
 {
 public:
 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);
     virtual void OnExit()
     {
         wxDELETE(gs_cursorsHash);