]> git.mxchange.org Git - flightgear.git/blobdiff - src/Input/input.hxx
add <mod-meta> and <mod-super> XML elements for key bindings
[flightgear.git] / src / Input / input.hxx
index ca15e458d873a1eb33f0ea7e0e8b1c7f469894ea..eef9e243457e90f8962c4993a7c291012893c0a3 100644 (file)
@@ -134,7 +134,7 @@ public:
    * @param x The X position of the mouse event, in screen coordinates.
    * @param y The Y position of the mouse event, in screen coordinates.
    */
-  virtual void doMouseClick (int button, int updown, int x, int y);
+  virtual void doMouseClick (int button, int updown, int x, int y, bool mainWindow, const osgGA::GUIEventAdapter*);
 
 
   /**
@@ -151,12 +151,7 @@ private:
   enum 
   {
     MAX_KEYS = 1024,
-
-  #ifdef WIN32
-    MAX_JOYSTICKS = 2,
-  #else
     MAX_JOYSTICKS = 10,
-  #endif
     MAX_JOYSTICK_AXES = _JS_MAX_AXES,
     MAX_JOYSTICK_BUTTONS = 32,
 
@@ -249,12 +244,6 @@ private:
   };
 
 
-  /**
-   * Initialize key bindings.
-   */
-  void _init_keyboard ();
-
-
   /**
    * Initialize joystick bindings.
    */
@@ -282,9 +271,10 @@ private:
                            const string name);
 
   /**
-   * Initialize nasal parts that had to wait for the nasal to get
-   * functional.
+   * Initialize key bindings, as well as those joystick parts that
+   * depend on a working Nasal subsystem.
    */
+  void _postinit_keyboard ();
   void _postinit_joystick ();
 
   /**
@@ -332,12 +322,25 @@ private:
   /**
    * Nasal module name/namespace.
    */
-  char _module[32];
+  string _module;
 
   /**
    * List of currently pressed mouse button events
    */
   std::map<int, std::list<SGSharedPtr<SGPickCallback> > > _activePickCallbacks;
+
+  /**
+   * Key listener interface.
+   */
+  SGPropertyNode_ptr _key_event;
+  int  _key_code;
+  int  _key_modifiers;
+  bool _key_pressed;
+  bool _key_shift;
+  bool _key_ctrl;
+  bool _key_alt;
+  bool _key_meta;
+  bool _key_super;
 };
 
 #endif // _INPUT_HXX