]> git.lyx.org Git - lyx.git/blobdiff - src/kbmap.h
Fix fuer #209
[lyx.git] / src / kbmap.h
index 3a0ae1e70c63b648480908209d7ef569fc0cccd5..7852e586c5e4580c6c8755aff55d88bf6f036fe0 100644 (file)
@@ -23,21 +23,40 @@ class kb_sequence;
 /// Defines key maps and actions for key sequences
 class kb_keymap {
 public:
-       /** Bind a key-sequence to an action.
-           Returns 0 on success. Otherwise, position in string where
-           error occured. */
-       int bind(string const & seq, int action);
+       /**
+        * Bind a key sequence to an action.
+        * @return 0 on success, or position in string seq where error
+        * occurs.
+        */
+       string::size_type bind(string const & seq, int action);
 
-       ///
-       void print(string & buf) const;
+       /// print all available keysyms
+       string const print() const;
        
-       /// Look up a key in the keymap
+       /**
+        * Look up a key press in the keymap.
+        * @param key the keysym
+        * @param mod the modifiers
+        * @param seq the current key sequence so far
+        * @return the action / LFUN_PREFIX / LFUN_UNKNOWN_ACTION
+        */
        int lookup(unsigned int key,
                   unsigned int mod, kb_sequence * seq) const;
 
        /// Given an action, find all keybindings.
        string const findbinding(int action,
                                 string const & prefix = string()) const;
+
+       /**
+        * Returns a string of the given keysym, with modifiers.
+        * @param key the key
+        * @param mod the modifiers
+        */
+       static string const printKeysym(unsigned int key, unsigned int mod);
+
+       /// return the ISO value of a keysym
+       static char getiso(unsigned int i);
+
 private:
        ///
        struct kb_key {
@@ -55,15 +74,16 @@ private:
        };
 
 
-       /// Define a new key sequence
-       int defkey(kb_sequence * seq, int action, int idx = 0);
-       ///
-       static string const keyname(kb_key const & k);
+       /**
+        * Define an action for a key sequence.
+        * @param r internal recursion level
+        */
+       void defkey(kb_sequence * seq, int action, unsigned int r = 0);
        
-       ///
-       static
-       void printKey(kb_key const & key, string & buf);
-       ///
+       ///  Returns a string of the given key
+       string const printKey(kb_key const & key) const;
+
+       /// is the table empty ?
        bool empty() const {
                return table.empty();
        }