/////////////////////////////////////////////////////////////////////////////
-// Name: cursor.cpp
+// Name: src/os2/cursor.cpp
// Purpose: wxCursor class
// Author: David Webster
// Modified by:
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#ifndef WX_PRECOMP
-#include <stdio.h>
-#include "wx/setup.h"
-#include "wx/list.h"
-#include "wx/utils.h"
-#include "wx/app.h"
#include "wx/cursor.h"
-#include "wx/icon.h"
-#include "wx/resource.h"
+
+#ifndef WX_PRECOMP
+ #include <stdio.h>
+ #include "wx/list.h"
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/icon.h"
+ #include "wx/image.h"
+ #include "wx/log.h"
#endif
#include "wx/os2/private.h"
-#include "wx/image.h"
+#include "wx/os2/wxrsc.h"
#include "assert.h"
m_nWidth = 32;
m_nHeight = 32;
m_hCursor = 0 ;
- m_bDestroyCursor = FALSE;
+ m_bDestroyCursor = false;
}
void wxCursorRefData::Free()
{
}
-wxCursor::wxCursor(
- const char WXUNUSED(bits)[]
-, int WXUNUSED(width)
-, int WXUNUSED(height)
-, int WXUNUSED(hotSpotX)
-, int WXUNUSED(hotSpotY)
-, const char WXUNUSED(maskBits)[]
-)
-{
-}
-
-wxCursor::wxCursor(
- const wxImage& rImage
-)
+wxCursor::wxCursor(const wxImage& rImage)
{
- wxImage vImage32 = rImage.Scale(32,32);
- int nWidth = vImage32.GetWidth();
- int nHeight = vImage32.GetHeight();
+ wxImage vImage32 = rImage.Scale(32,32);
+ int nWidth = vImage32.GetWidth();
+ int nHeight = vImage32.GetHeight();
//
// Need a bitmap handle somehow
//
- HBITMAP hBitmap = wxBitmap(vImage32).GetHBITMAP();
- int nHotSpotX = vImage32.GetOptionInt(wxCUR_HOTSPOT_X);
- int nHotSpotY = vImage32.GetOptionInt(wxCUR_HOTSPOT_Y);
+ HBITMAP hBitmap = wxBitmap(vImage32).GetHBITMAP();
+ int nHotSpotX = vImage32.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
+ int nHotSpotY = vImage32.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
if (nHotSpotX < 0 || nHotSpotX >= nWidth)
- nHotSpotX = 0;
+ nHotSpotX = 0;
if (nHotSpotY < 0 || nHotSpotY >= nHeight)
- nHotSpotY = 0;
+ nHotSpotY = 0;
- wxCursorRefData* pRefData = new wxCursorRefData;
+ wxCursorRefData* pRefData = new wxCursorRefData;
m_refData = pRefData;
pRefData->m_hCursor = (WXHCURSOR) ::WinCreatePointer( HWND_DESKTOP
} // end of wxCursor::wxCursor
-wxCursor::wxCursor(
- const wxString& rsCursorFile
-, long lFlags
-, int nHotSpotX
-, int nHotSpotY
-)
+wxCursor::wxCursor( const wxString& WXUNUSED(rsCursorFile),
+ wxBitmapType type,
+ int WXUNUSED(nHotSpotX),
+ int WXUNUSED(nHotSpotY) )
{
- wxCursorRefData* pRefData = new wxCursorRefData;
+ wxCursorRefData* pRefData = new wxCursorRefData;
pRefData = new wxCursorRefData;
m_refData = pRefData;
- pRefData->m_bDestroyCursor = FALSE;
- if (lFlags == wxBITMAP_TYPE_CUR_RESOURCE)
+ pRefData->m_bDestroyCursor = false;
+ if (type == wxBITMAP_TYPE_CUR_RESOURCE)
{
pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP
,0
- ,(ULONG)lFlags // if OS/2 this should be the resource Id
+ ,(ULONG)type // if OS/2 this should be the resource Id
);
}
+ else
+ wxLogError("Invalid cursor bitmap type '%d'", type);
} // end of wxCursor::wxCursor
// Cursors by stock number
-wxCursor::wxCursor(
- int nCursorType
-)
+void wxCursor::InitFromStock(wxStockCursor nCursorType)
{
wxCursorRefData* pRefData = new wxCursorRefData;
);
break;
+ case wxCURSOR_WATCH:
case wxCURSOR_WAIT:
pRefData->m_hCursor = (WXHCURSOR) ::WinQuerySysPointer( HWND_DESKTOP
,(ULONG)SPTR_WAIT
break;
case wxCURSOR_NO_ENTRY:
- pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP
- ,0
- ,(ULONG)wxCURSOR_NO_ENTRY
- );
+ pRefData->m_hCursor = (WXHCURSOR) ::WinQuerySysPointer( HWND_DESKTOP
+ ,(ULONG)SPTR_ILLEGAL
+ ,FALSE
+ );
break;
case wxCURSOR_LEFT_BUTTON:
);
break;
- case wxCURSOR_WATCH:
- pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP
- ,0
- ,(ULONG)wxCURSOR_WATCH
- );
- break;
-
case wxCURSOR_SPRAYCAN:
pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP
,0
);
break;
}
+ //
+ // No need to destroy the stock cursors
+ //
+ ((wxCursorRefData *)m_refData)->m_bDestroyCursor = false;
} // end of wxCursor::wxCursor
// Global cursor setting
{
extern wxCursor *g_globalCursor;
- if ( cursor.Ok() && cursor.GetHCURSOR() )
+ if ( cursor.IsOk() && cursor.GetHCURSOR() )
{
// ::SetCursor((HCURSOR) cursor.GetHCURSOR());
(*g_globalCursor) = cursor;
}
}
-