FlightGear next
fg_os.hxx
Go to the documentation of this file.
1#ifndef _FG_OS_HXX
2#define _FG_OS_HXX
3
4#ifdef HAVE_CONFIG_H
5# include <config.h>
6#endif
7
8#include <string>
9#include <vector>
10
11#include <osg/ref_ptr>
12#include <osg/Camera>
13#include <osg/GraphicsContext>
14
15#include <GUI/MouseCursor.hxx>
16
20
23
24enum { KEYMOD_NONE = 0,
25 KEYMOD_RELEASED = 1, // Not a mod key, indicates "up" action
32 KEYMOD_MAX = 128 };
33
34// A note on key codes: none are defined here. FlightGear has no
35// hard-coded interpretations of codes other than modifier keys, so we
36// can get away with that. The only firm requirement is that the
37// codes passed to the fgKeyHandler function be correctly interpreted
38// by the PUI library. Users who need to hard-code key codes
39// (probably not a good idea in any case) can use the pu.hxx header
40// for definitions.
41
42//
43// OS integration functions
44//
45
46void fgOSInit(int* argc, char** argv);
47void fgOSOpenWindow();
48void fgOSCloseWindow();
49void fgOSFullScreen();
50int fgOSMainLoop();
51void fgOSExit(int code);
53
56
57void fgWarpMouse(int x, int y);
58
60
61//
62// Callbacks and registration API
63//
64
65namespace osg { class Camera; class GraphicsContext; }
66namespace osgGA { class GUIEventAdapter; }
67
68typedef void (*fgIdleHandler)();
69typedef void (*fgDrawHandler)();
70typedef void (*fgWindowResizeHandler)(int w, int h);
71
72typedef void (*fgKeyHandler)(int key, int keymod, int mousex, int mousey);
73typedef void (*fgMouseClickHandler)(int button, int updown, int x, int y, bool mainWindow, const osgGA::GUIEventAdapter*);
74typedef void (*fgMouseMotionHandler)(int x, int y, const osgGA::GUIEventAdapter*);
75
79
83#endif // _FG_OS_HXX
void fgOSExit(int code)
void fgOSOpenWindow()
void(* fgKeyHandler)(int key, int keymod, int mousex, int mousey)
Definition fg_os.hxx:72
void fgRegisterMouseMotionHandler(fgMouseMotionHandler func)
void fgRegisterKeyHandler(fgKeyHandler func)
void fgSetMouseCursor(FGMouseCursor::Cursor cursor)
void(* fgDrawHandler)()
Definition fg_os.hxx:69
@ KEYMOD_SUPER
Definition fg_os.hxx:30
@ KEYMOD_CTRL
Definition fg_os.hxx:27
@ KEYMOD_HYPER
Definition fg_os.hxx:31
@ KEYMOD_NONE
Definition fg_os.hxx:24
@ KEYMOD_ALT
Definition fg_os.hxx:28
@ KEYMOD_META
Definition fg_os.hxx:29
@ KEYMOD_MAX
Definition fg_os.hxx:32
@ KEYMOD_RELEASED
Definition fg_os.hxx:25
@ KEYMOD_SHIFT
Definition fg_os.hxx:26
void fgOSResetProperties()
void(* fgMouseClickHandler)(int button, int updown, int x, int y, bool mainWindow, const osgGA::GUIEventAdapter *)
Definition fg_os.hxx:73
@ MOUSE_BUTTON_DOWN
Definition fg_os.hxx:21
@ MOUSE_BUTTON_UP
Definition fg_os.hxx:22
FGMouseCursor::Cursor fgGetMouseCursor()
void(* fgIdleHandler)()
Definition fg_os.hxx:68
void fgRegisterWindowResizeHandler(fgWindowResizeHandler func)
void fgRegisterDrawHandler(fgDrawHandler func)
void fgWarpMouse(int x, int y)
int fgGetKeyModifiers()
void fgRegisterIdleHandler(fgIdleHandler func)
void fgOSFullScreen()
void fgRegisterMouseClickHandler(fgMouseClickHandler func)
@ MOUSE_BUTTON_LEFT
Definition fg_os.hxx:17
@ MOUSE_BUTTON_RIGHT
Definition fg_os.hxx:19
@ MOUSE_BUTTON_MIDDLE
Definition fg_os.hxx:18
void fgOSInit(int *argc, char **argv)
int fgOSMainLoop()
void(* fgMouseMotionHandler)(int x, int y, const osgGA::GUIEventAdapter *)
Definition fg_os.hxx:74
void(* fgWindowResizeHandler)(int w, int h)
Definition fg_os.hxx:70
void fgOSCloseWindow()
Definition AIBase.hxx:25
naCFunction func