]> git.mxchange.org Git - flightgear.git/blob - src/GUI/MouseCursor.hxx
Support for multiple data dirs.
[flightgear.git] / src / GUI / MouseCursor.hxx
1 // MouseCursor.hxx - abstract inteface for  mouse cursor control
2
3 // Copyright (C) 2013 James Turner <zakalawe@mac.com>
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License as
7 // published by the Free Software Foundation; either version 2 of the
8 // License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 //
19
20
21 #ifndef FG_GUI_MOUSE_CURSOR_HXX
22 #define FG_GUI_MOUSE_CURSOR_HXX 1
23
24 class SGPropertyNode;
25
26 class FGMouseCursor
27 {
28 public:
29     static FGMouseCursor* instance();
30
31     virtual void setAutoHideTimeMsec(unsigned int aMsec);
32   
33     enum Cursor
34     {
35         CURSOR_ARROW,
36         CURSOR_HAND, ///< the browser 'link' cursor
37         CURSOR_CLOSED_HAND,
38         CURSOR_CROSSHAIR,
39         CURSOR_IBEAM, ///< for editing text
40         CURSOR_IN_OUT, ///< arrow pointing into / out of the screen
41         CURSOR_LEFT_RIGHT,
42         CURSOR_UP_DOWN,
43         CURSOR_SPIN_CW,
44         CURSOR_SPIN_CCW
45     };
46   
47     virtual void setCursor(Cursor aCursor) = 0;
48     
49     virtual void setCursorVisible(bool aVis) = 0;
50     
51     virtual void hideCursorUntilMouseMove() = 0;
52     
53     virtual void mouseMoved() = 0;
54     
55     static Cursor cursorFromString(const char* str);
56
57 protected:
58     FGMouseCursor();
59     
60     bool setCursorCommand(const SGPropertyNode* arg);
61     
62     unsigned int mAutoHideTimeMsec;
63 };
64
65 #endif // FG_GUI_MOUSE_CURSOR_HXX