]> git.saurik.com Git - wxWidgets.git/blame - include/wx/cursor.h
Enable variadic macros for VC9 and later.
[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
bd362275 37#if defined(__WXMSW__)
0ef5b1da 38 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
86d2c809 39 #include "wx/msw/cursor.h"
2049ba38 40#elif defined(__WXMOTIF__)
0ef5b1da 41 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XBM
86d2c809 42 #include "wx/motif/cursor.h"
1be7a35c 43#elif defined(__WXGTK20__)
0ef5b1da 44 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM
86d2c809 45 #include "wx/gtk/cursor.h"
1be7a35c 46#elif defined(__WXGTK__)
0ef5b1da 47 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM
1be7a35c 48 #include "wx/gtk1/cursor.h"
83df96d6 49#elif defined(__WXX11__)
0ef5b1da 50 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM
86d2c809 51 #include "wx/x11/cursor.h"
b3c86150 52#elif defined(__WXDFB__)
0ef5b1da 53 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
b3c86150 54 #include "wx/dfb/cursor.h"
34138703 55#elif defined(__WXMAC__)
0ef5b1da 56 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_MACCURSOR_RESOURCE
ef0e9220 57 #include "wx/osx/cursor.h"
e64df9bc 58#elif defined(__WXCOCOA__)
167d0cb3 59 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_MACCURSOR_RESOURCE
86d2c809 60 #include "wx/cocoa/cursor.h"
1777b9bb 61#elif defined(__WXPM__)
0ef5b1da 62 #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE
86d2c809 63 #include "wx/os2/cursor.h"
c801d85f
KB
64#endif
65
eebe4016 66#include "wx/utils.h"
83141d3a 67
eebe4016
KB
68/* This is a small class which can be used by all ports
69 to temporarily suspend the busy cursor. Useful in modal
70 dialogs.
f6bcfd97
BP
71
72 Actually that is not (any longer) quite true.. currently it is
73 only used in wxGTK Dialog::ShowModal() and now uses static
74 wxBusyCursor methods that are only implemented for wxGTK so far.
75 The BusyCursor handling code should probably be implemented in
76 common code somewhere instead of the separate implementations we
77 currently have. Also the name BusyCursorSuspender is a little
78 misleading since it doesn't actually suspend the BusyCursor, just
79 masks one that is already showing.
80 If another call to wxBeginBusyCursor is made while this is active
81 the Busy Cursor will again be shown. But at least now it doesn't
82 interfere with the state of wxIsBusy() -- RL
83
eebe4016
KB
84*/
85class wxBusyCursorSuspender
86{
87public:
f6bcfd97
BP
88 wxBusyCursorSuspender()
89 {
90 if( wxIsBusy() )
91 {
92 wxSetCursor( wxBusyCursor::GetStoredCursor() );
f6bcfd97
BP
93 }
94 }
95 ~wxBusyCursorSuspender()
96 {
97 if( wxIsBusy() )
98 {
99 wxSetCursor( wxBusyCursor::GetBusyCursor() );
f6bcfd97
BP
100 }
101 }
eebe4016 102};
c801d85f 103#endif
34138703 104 // _WX_CURSOR_H_BASE_