X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..31ad423e4fb556ec225a63b161154d3bf3445c1b:/include/wx/cursor.h diff --git a/include/wx/cursor.h b/include/wx/cursor.h index b56d15ec5b..4f845c6605 100644 --- a/include/wx/cursor.h +++ b/include/wx/cursor.h @@ -1,13 +1,60 @@ -#ifndef __CURSORH_BASE__ -#define __CURSORH_BASE__ +#ifndef _WX_CURSOR_H_BASE_ +#define _WX_CURSOR_H_BASE_ -#if defined(__WINDOWS__) +#if defined(__WXMSW__) #include "wx/msw/cursor.h" -#elif defined(__MOTIF__) -#include "wx/xt/cursor.h" -#elif defined(__GTK__) +#elif defined(__WXMOTIF__) +#include "wx/motif/cursor.h" +#elif defined(__WXGTK__) #include "wx/gtk/cursor.h" +#elif defined(__WXX11__) +#include "wx/x11/cursor.h" +#elif defined(__WXMGL__) +#include "wx/mgl/cursor.h" +#elif defined(__WXMAC__) +#include "wx/mac/cursor.h" +#elif defined(__WXCOCOA__) +#include "wx/cocoa/cursor.h" +#elif defined(__WXPM__) +#include "wx/os2/cursor.h" #endif +#include "wx/utils.h" + +/* This is a small class which can be used by all ports + to temporarily suspend the busy cursor. Useful in modal + dialogs. + + Actually that is not (any longer) quite true.. currently it is + only used in wxGTK Dialog::ShowModal() and now uses static + wxBusyCursor methods that are only implemented for wxGTK so far. + The BusyCursor handling code should probably be implemented in + common code somewhere instead of the separate implementations we + currently have. Also the name BusyCursorSuspender is a little + misleading since it doesn't actually suspend the BusyCursor, just + masks one that is already showing. + If another call to wxBeginBusyCursor is made while this is active + the Busy Cursor will again be shown. But at least now it doesn't + interfere with the state of wxIsBusy() -- RL + +*/ +class wxBusyCursorSuspender +{ +public: + wxBusyCursorSuspender() + { + if( wxIsBusy() ) + { + wxSetCursor( wxBusyCursor::GetStoredCursor() ); + } + } + ~wxBusyCursorSuspender() + { + if( wxIsBusy() ) + { + wxSetCursor( wxBusyCursor::GetBusyCursor() ); + } + } +}; #endif - // __CURSORH_BASE__ + // _WX_CURSOR_H_BASE_