]> git.mxchange.org Git - flightgear.git/blob - src/GUI/MouseCursor.hxx
Forgot GPL license on new files.
[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,
37         CURSOR_CROSSHAIR,
38         CURSOR_IBEAM, ///< for editing text
39         CURSOR_IN_OUT, ///< arrow pointing into / out of the screen
40         CURSOR_LEFT_RIGHT,
41         CURSOR_UP_DOWN,
42         CURSOR_SPIN_CW,
43         CURSOR_SPIN_CCW
44     };
45   
46     virtual void setCursor(Cursor aCursor) = 0;
47     
48     virtual void setCursorVisible(bool aVis) = 0;
49     
50     virtual void hideCursorUntilMouseMove() = 0;
51     
52     virtual void mouseMoved() = 0;
53     
54     static Cursor cursorFromString(const char* str);
55
56 protected:
57     FGMouseCursor();
58     
59     bool setCursorCommand(const SGPropertyNode* arg);
60     
61     unsigned int mAutoHideTimeMsec;
62 };
63
64 #endif // FG_GUI_MOUSE_CURSOR_HXX