X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fkbmap.h;h=9c1ddecd2259d3858e4dcb7cef6050e96a7b6b8b;hb=98c966c64594611e469313314abd1e59524adb4a;hp=a21a66255802639cbb88123a4f369f9a40779a0e;hpb=e266fd847f7c1ec14c9802c85f19f1193bfdbf7c;p=lyx.git diff --git a/src/kbmap.h b/src/kbmap.h index a21a662558..9c1ddecd22 100644 --- a/src/kbmap.h +++ b/src/kbmap.h @@ -1,10 +1,12 @@ // -*- C++ -*- -/* ======================================================================= *\ - File : kbmap.h, kbmap.h,v 1.3 1996/12/10 04:35:57 larsbj Exp - Author : chb, 30.Oct.1995 - Docu : see kbmap.C - Purpose: class definitions for XKeyEvent keymap handling - \* ==================================================================== */ +/** + * \file kbmap.h + * Copyright 1995-2002 the LyX Team + * Read the file COPYING + * + * \author Lars Gullik Bjønnes + * \author John Levon + */ #ifndef KBMAP_H #define KBMAP_H @@ -23,47 +25,67 @@ 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. */ + /** + * 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; - - /// Look up a key in the keymap + /// print all available keysyms + string const print() const; + + /** + * 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 { /// Keysym unsigned int code; - + /// Modifier masks unsigned int mod; - + /// Keymap for prefix keys boost::shared_ptr table; - + /// Action for !prefix keys int action; }; - /// Define a new key sequence - int defkey(kb_sequence * seq, int action, int idx = 0); - /// - static string const keyname(kb_key const & k); - - /// - static - void printKey(kb_key const & key, string & buf); - /// + /** + * Define an action for a key sequence. + * @param r internal recursion level + */ + void defkey(kb_sequence * seq, int action, unsigned int r = 0); + + /// 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(); } @@ -73,4 +95,4 @@ private: Table table; }; -#endif +#endif // KBMAP_H