]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/cursor.cpp
always pass WM_DESTROY to DefWindowProc() - this fixes memory/resource leak for wxListBox
[wxWidgets.git] / src / msw / cursor.cpp
index 1f76183f6eb969c11377db03b3a3075faa256c00..2d93aa74191036e1110f069d82ea8663c5f3d65a 100644 (file)
     #include "wx/cursor.h"
 #endif
 
+#include "wx/module.h"
 #include "wx/msw/private.h"
+#ifndef __WXMICROWIN__
 #include "wx/msw/dib.h"
+#endif
 
 #if wxUSE_RESOURCE_LOADING_IN_MSW
     #include "wx/msw/curico.h"
@@ -100,8 +103,10 @@ void wxCursorRefData::Free()
 {
     if ( m_hCursor )
     {
+#ifndef __WXMICROWIN__
         if ( m_destroyCursor )
             ::DestroyCursor((HCURSOR)m_hCursor);
+#endif
 
         m_hCursor = 0;
     }
@@ -127,6 +132,9 @@ wxCursor::wxCursor(const wxString& cursor_file,
                    long flags,
                    int hotSpotX, int hotSpotY)
 {
+#ifdef __WXMICROWIN__
+    m_refData = NULL;
+#else
     wxCursorRefData *refData = new wxCursorRefData;
     m_refData = refData;
 
@@ -180,16 +188,26 @@ wxCursor::wxCursor(const wxString& cursor_file,
 #if WXWIN_COMPATIBILITY_2
     refData->SetOk();
 #endif // WXWIN_COMPATIBILITY_2
+
+#endif
 }
 
 // Cursors by stock number
 wxCursor::wxCursor(int cursor_type)
 {
+#ifdef __WXMICROWIN__
+    m_refData = NULL;
+#else
   wxCursorRefData *refData = new wxCursorRefData;
   m_refData = refData;
 
   switch (cursor_type)
   {
+    case wxCURSOR_ARROWWAIT:
+#ifndef __WIN16__
+      refData->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_APPSTARTING);
+      break;
+#endif
     case wxCURSOR_WAIT:
       refData->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_WAIT);
       break;
@@ -288,6 +306,7 @@ wxCursor::wxCursor(int cursor_type)
     }
     case wxCURSOR_QUESTION_ARROW:
     {
+//      refData->m_hCursor = (WXHCURSOR) LoadImage(wxGetInstance(), wxT("wxCURSOR_QARROW"), IMAGE_CURSOR, 16, 16, LR_MONOCHROME);
       refData->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_QARROW"));
       break;
     }
@@ -301,6 +320,7 @@ wxCursor::wxCursor(int cursor_type)
       refData->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW);
       break;
   }
+#endif
 }
 
 wxCursor::~wxCursor()
@@ -320,7 +340,9 @@ void wxSetCursor(const wxCursor& cursor)
 {
     if ( cursor.Ok() )
     {
+#ifndef __WXMICROWIN__
         ::SetCursor(GetHcursorOf(cursor));
+#endif
 
         if ( gs_globalCursor )
             *gs_globalCursor = cursor;