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: cursor.h 40865 2006-08-27 09:42:42Z VS $ 9 // Licence: wxWindows Licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_CURSOR_H_BASE_ 13 #define _WX_CURSOR_H_BASE_ 14 15 #include "wx/defs.h" 16 17 #if defined(__WXPALMOS__) 18 #include "wx/palmos/cursor.h" 19 #elif defined(__WXMSW__) 20 #include "wx/msw/cursor.h" 21 #elif defined(__WXMOTIF__) 22 #include "wx/motif/cursor.h" 23 #elif defined(__WXGTK20__) 24 #include "wx/gtk/cursor.h" 25 #elif defined(__WXGTK__) 26 #include "wx/gtk1/cursor.h" 27 #elif defined(__WXX11__) 28 #include "wx/x11/cursor.h" 29 #elif defined(__WXMGL__) 30 #include "wx/mgl/cursor.h" 31 #elif defined(__WXDFB__) 32 #include "wx/dfb/cursor.h" 33 #elif defined(__WXMAC__) 34 #include "wx/mac/cursor.h" 35 #elif defined(__WXCOCOA__) 36 #include "wx/cocoa/cursor.h" 37 #elif defined(__WXPM__) 38 #include "wx/os2/cursor.h" 39 #endif 40 41 #include "wx/utils.h" 42 43 /* This is a small class which can be used by all ports 44 to temporarily suspend the busy cursor. Useful in modal 45 dialogs. 46 47 Actually that is not (any longer) quite true.. currently it is 48 only used in wxGTK Dialog::ShowModal() and now uses static 49 wxBusyCursor methods that are only implemented for wxGTK so far. 50 The BusyCursor handling code should probably be implemented in 51 common code somewhere instead of the separate implementations we 52 currently have. Also the name BusyCursorSuspender is a little 53 misleading since it doesn't actually suspend the BusyCursor, just 54 masks one that is already showing. 55 If another call to wxBeginBusyCursor is made while this is active 56 the Busy Cursor will again be shown. But at least now it doesn't 57 interfere with the state of wxIsBusy() -- RL 58 59 */ 60 class wxBusyCursorSuspender 61 { 62 public: wxBusyCursorSuspender()63 wxBusyCursorSuspender() 64 { 65 if( wxIsBusy() ) 66 { 67 wxSetCursor( wxBusyCursor::GetStoredCursor() ); 68 } 69 } ~wxBusyCursorSuspender()70 ~wxBusyCursorSuspender() 71 { 72 if( wxIsBusy() ) 73 { 74 wxSetCursor( wxBusyCursor::GetBusyCursor() ); 75 } 76 } 77 }; 78 #endif 79 // _WX_CURSOR_H_BASE_ 80