]> git.saurik.com Git - wxWidgets.git/blame - include/wx/cursor.h
Resolve GCC's 'type-punned pointer will break strict-aliasing rules' warning by break...
[wxWidgets.git] / include / wx / cursor.h
CommitLineData
99d80019
JS
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/cursor.h
3// Purpose: wxCursor base header
4// Author: Julian Smart
5// Modified by:
6// Created:
7// Copyright: (c) Julian Smart
8// RCS-ID: $Id$
9// Licence: wxWindows Licence
10/////////////////////////////////////////////////////////////////////////////
11
34138703
JS
12#ifndef _WX_CURSOR_H_BASE_
13#define _WX_CURSOR_H_BASE_
c801d85f 14
86d2c809
VZ
15#include "wx/defs.h"
16
d6764050
FM
17/*
18 wxCursor classes should have the following public API:
19
20class WXDLLIMPEXP_CORE wxCursor : public wxGDIObject
21{
22public:
23 wxCursor();
24 wxCursor(const wxImage& image);
25 wxCursor(const wxString& name,
26 wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
27 int hotSpotX = 0, int hotSpotY = 0);
28 wxCursor(wxStockCursor id) { InitFromStock(id); }
29#if WXWIN_COMPATIBILITY_2_8
30 wxCursor(int id) { InitFromStock((wxStockCursor)id); }
31#endif
32 virtual ~wxCursor();
33};
34
35*/
36
4055ed82 37#if defined(__WXPALMOS__)
0ef5b1da 38 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
86d2c809 39 #include "wx/palmos/cursor.h"
ffecfa5a 40#elif defined(__WXMSW__)
0ef5b1da 41 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
86d2c809 42 #include "wx/msw/cursor.h"
2049ba38 43#elif defined(__WXMOTIF__)
0ef5b1da 44 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XBM
86d2c809 45 #include "wx/motif/cursor.h"
1be7a35c 46#elif defined(__WXGTK20__)
0ef5b1da 47 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM
86d2c809 48 #include "wx/gtk/cursor.h"
1be7a35c 49#elif defined(__WXGTK__)
0ef5b1da 50 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM
1be7a35c 51 #include "wx/gtk1/cursor.h"
83df96d6 52#elif defined(__WXX11__)
0ef5b1da 53 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM
86d2c809 54 #include "wx/x11/cursor.h"
1e6feb95 55#elif defined(__WXMGL__)
0ef5b1da 56 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
86d2c809 57 #include "wx/mgl/cursor.h"
b3c86150 58#elif defined(__WXDFB__)
0ef5b1da 59 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
b3c86150 60 #include "wx/dfb/cursor.h"
34138703 61#elif defined(__WXMAC__)
0ef5b1da 62 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_MACCURSOR_RESOURCE
ef0e9220 63 #include "wx/osx/cursor.h"
e64df9bc 64#elif defined(__WXCOCOA__)
0ef5b1da 65 #define wxCURSOR_DEFAULT_TYPE 0
86d2c809 66 #include "wx/cocoa/cursor.h"
1777b9bb 67#elif defined(__WXPM__)
0ef5b1da 68 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
86d2c809 69 #include "wx/os2/cursor.h"
c801d85f
KB
70#endif
71
eebe4016 72#include "wx/utils.h"
83141d3a 73
eebe4016
KB
74/* This is a small class which can be used by all ports
75 to temporarily suspend the busy cursor. Useful in modal
76 dialogs.
f6bcfd97
BP
77
78 Actually that is not (any longer) quite true.. currently it is
79 only used in wxGTK Dialog::ShowModal() and now uses static
80 wxBusyCursor methods that are only implemented for wxGTK so far.
81 The BusyCursor handling code should probably be implemented in
82 common code somewhere instead of the separate implementations we
83 currently have. Also the name BusyCursorSuspender is a little
84 misleading since it doesn't actually suspend the BusyCursor, just
85 masks one that is already showing.
86 If another call to wxBeginBusyCursor is made while this is active
87 the Busy Cursor will again be shown. But at least now it doesn't
88 interfere with the state of wxIsBusy() -- RL
89
eebe4016
KB
90*/
91class wxBusyCursorSuspender
92{
93public:
f6bcfd97
BP
94 wxBusyCursorSuspender()
95 {
96 if( wxIsBusy() )
97 {
98 wxSetCursor( wxBusyCursor::GetStoredCursor() );
f6bcfd97
BP
99 }
100 }
101 ~wxBusyCursorSuspender()
102 {
103 if( wxIsBusy() )
104 {
105 wxSetCursor( wxBusyCursor::GetBusyCursor() );
f6bcfd97
BP
106 }
107 }
eebe4016 108};
c801d85f 109#endif
34138703 110 // _WX_CURSOR_H_BASE_