]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/os2/cursor.cpp
Various cygwin compilation fixes.
[wxWidgets.git] / src / os2 / cursor.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: cursor.cpp
3// Purpose: wxCursor class
4// Author: David Webster
5// Modified by:
6// Created: 10/13/99
7// RCS-ID: $Id$
8// Copyright: (c) David Webster
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12// For compilers that support precompilation, includes "wx.h".
13#include "wx/wxprec.h"
14
15#ifndef WX_PRECOMP
16#include <stdio.h>
17#include "wx/setup.h"
18#include "wx/list.h"
19#include "wx/utils.h"
20#include "wx/app.h"
21#include "wx/cursor.h"
22#include "wx/icon.h"
23#endif
24
25#include "wx/os2/private.h"
26
27#include "assert.h"
28
29IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap)
30
31wxCursorRefData::wxCursorRefData(void)
32{
33 m_nWidth = 32;
34 m_nHeight = 32;
35 m_hCursor = 0 ;
36 m_destroyCursor = FALSE;
37}
38
39wxCursorRefData::~wxCursorRefData(void)
40{
41// if ( m_hCursor && m_destroyCursor)
42// ::DestroyCursor((HICON) m_hCursor);
43}
44
45// Cursors
46wxCursor::wxCursor(void)
47{
48}
49
50wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height),
51 int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), const char WXUNUSED(maskBits)[])
52{
53}
54
55wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY)
56{
57 m_refData = new wxCursorRefData;
58
59 M_CURSORDATA->m_destroyCursor = FALSE;
60 M_CURSORDATA->m_hCursor = 0;
61// TODO:
62/*
63 M_CURSORDATA->m_bOK = FALSE;
64 if (flags & wxBITMAP_TYPE_CUR_RESOURCE)
65 {
66 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadImage(wxGetInstance(), cursor_file, IMAGE_CURSOR, 0, 0, 0);
67 if (M_CURSORDATA->m_hCursor)
68 M_CURSORDATA->m_ok = TRUE;
69 else
70 M_CURSORDATA->m_ok = FALSE;
71 }
72 else if (flags & wxBITMAP_TYPE_CUR)
73 {
74 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadImage(wxGetInstance(), cursor_file, IMAGE_CURSOR, 0, 0, LR_LOADFROMFILE);
75 }
76 else if (flags & wxBITMAP_TYPE_ICO)
77 {
78 }
79 else if (flags & wxBITMAP_TYPE_BMP)
80 {
81 }
82*/
83}
84
85// Cursors by stock number
86wxCursor::wxCursor(int cursor_type)
87{
88 m_refData = new wxCursorRefData;
89// TODO:
90/*
91 switch (cursor_type)
92 {
93 case wxCURSOR_WAIT:
94 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_WAIT);
95 break;
96 case wxCURSOR_IBEAM:
97 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_IBEAM);
98 break;
99 case wxCURSOR_CROSS:
100 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_CROSS);
101 break;
102 case wxCURSOR_SIZENWSE:
103 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZENWSE);
104 break;
105 case wxCURSOR_SIZENESW:
106 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZENESW);
107 break;
108 case wxCURSOR_SIZEWE:
109 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZEWE);
110 break;
111 case wxCURSOR_SIZENS:
112 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZENS);
113 break;
114 case wxCURSOR_CHAR:
115 {
116 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW);
117 break;
118 }
119 case wxCURSOR_HAND:
120 {
121 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_HAND"));
122 break;
123 }
124 case wxCURSOR_BULLSEYE:
125 {
126 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_BULLSEYE"));
127 break;
128 }
129 case wxCURSOR_PENCIL:
130 {
131 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PENCIL"));
132 break;
133 }
134 case wxCURSOR_MAGNIFIER:
135 {
136 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_MAGNIFIER"));
137 break;
138 }
139 case wxCURSOR_NO_ENTRY:
140 {
141 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_NO_ENTRY"));
142 break;
143 }
144 case wxCURSOR_LEFT_BUTTON:
145 {
146 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW);
147 break;
148 }
149 case wxCURSOR_RIGHT_BUTTON:
150 {
151 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW);
152 break;
153 }
154 case wxCURSOR_MIDDLE_BUTTON:
155 {
156 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW);
157 break;
158 }
159 case wxCURSOR_SIZING:
160 {
161 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_SIZING"));
162 break;
163 }
164 case wxCURSOR_WATCH:
165 {
166 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_WATCH"));
167 break;
168 }
169 case wxCURSOR_SPRAYCAN:
170 {
171 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_ROLLER"));
172 break;
173 }
174 case wxCURSOR_PAINT_BRUSH:
175 {
176 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PBRUSH"));
177 break;
178 }
179 case wxCURSOR_POINT_LEFT:
180 {
181 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PLEFT"));
182 break;
183 }
184 case wxCURSOR_POINT_RIGHT:
185 {
186 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PRIGHT"));
187 break;
188 }
189 case wxCURSOR_QUESTION_ARROW:
190 {
191 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_QARROW"));
192 break;
193 }
194 case wxCURSOR_BLANK:
195 {
196 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_BLANK"));
197 break;
198 }
199 default:
200 case wxCURSOR_ARROW:
201 M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW);
202 break;
203 }
204*/
205}
206
207wxCursor::~wxCursor(void)
208{
209// FreeResource(TRUE);
210}
211
212bool wxCursor::FreeResource(bool WXUNUSED(force))
213{
214// if (M_CURSORDATA && M_CURSORDATA->m_hCursor && M_CURSORDATA->m_destroyCursor)
215// {
216// DestroyCursor((HCURSOR) M_CURSORDATA->m_hCursor);
217// M_CURSORDATA->m_hCursor = 0;
218// }
219 return TRUE;
220}
221
222void wxCursor::SetHCURSOR(WXHCURSOR cursor)
223{
224 if ( !M_CURSORDATA )
225 m_refData = new wxCursorRefData;
226
227 M_CURSORDATA->m_hCursor = cursor;
228}
229
230// Global cursor setting
231void wxSetCursor(const wxCursor& cursor)
232{
233 extern wxCursor *g_globalCursor;
234
235 if ( cursor.Ok() && cursor.GetHCURSOR() )
236 {
237// ::SetCursor((HCURSOR) cursor.GetHCURSOR());
238
239 if ( g_globalCursor )
240 (*g_globalCursor) = cursor;
241 }
242}
243