summaryrefslogtreecommitdiff
path: root/iup/src/iup_key.h
diff options
context:
space:
mode:
authorPixel <pixel@nobis-crew.org>2009-11-04 11:56:41 -0800
committerPixel <pixel@nobis-crew.org>2009-11-04 11:59:33 -0800
commitd577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch)
tree590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /iup/src/iup_key.h
Initial import. Contains the im, cd and iup librairies, and a "working" Makefile for them under linux.
Diffstat (limited to 'iup/src/iup_key.h')
-rwxr-xr-xiup/src/iup_key.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/iup/src/iup_key.h b/iup/src/iup_key.h
new file mode 100755
index 0000000..37d6c9d
--- /dev/null
+++ b/iup/src/iup_key.h
@@ -0,0 +1,70 @@
+/** \file
+ * \brief Manage keys encoding and decoding.
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#ifndef __IUP_KEY_H
+#define __IUP_KEY_H
+
+
+/** \defgroup key Key Coding and Key Callbacks
+ * \par
+ * See \ref iup_key.h
+ * \ingroup cpi */
+
+
+/** Returns the key name from its code.
+ * Returns NULL if code not found.
+ * \ingroup key */
+char *iupKeyCodeToName(int code);
+
+/** Returns the key code from its name.
+ * Returns 0 if name not found.
+ * \ingroup key */
+int iupKeyNameToCode(const char *name);
+
+/** Returns true if the key code can be changed by CAPSLOCK.
+ * \ingroup key */
+int iupKeyCanCaps(int code);
+
+/** Calls a function for each defined key.
+ * \ingroup key */
+void iupKeyForEach(void (*func)(const char *name, int code, void* user_data), void* user_data);
+
+/** Calls the K_ANY or K_* callbacks. Should be called when a keyboard event occoured.
+ * \ingroup key */
+int iupKeyCallKeyCb(Ihandle *ih, int c);
+
+/** Calls the KEYPRESS_CB callback. Should be called when a keyboard event occoured.
+ * \ingroup key */
+int iupKeyCallKeyPressCb(Ihandle *ih, int code, int press);
+
+/** Process Tab, DEFAULTENTER and DEFAULTESC in key press events.
+ * \ingroup key */
+int iupKeyProcessNavigation(Ihandle* ih, int key, int shift);
+
+
+/* Called only from IupOpen. */
+void iupKeyInit(void);
+
+
+#define IUPKEY_STATUS_SIZE 11 /* 10 chars + null */
+#define IUPKEY_STATUS_INIT " " /* 10 spaces */
+#define iupKEYSETSHIFT(_s) (_s[0]='S')
+#define iupKEYSETCONTROL(_s) (_s[1]='C')
+#define iupKEYSETBUTTON1(_s) (_s[2]='1')
+#define iupKEYSETBUTTON2(_s) (_s[3]='2')
+#define iupKEYSETBUTTON3(_s) (_s[4]='3')
+#define iupKEYSETDOUBLE(_s) (_s[5]='D')
+#define iupKEYSETALT(_s) (_s[6]='A')
+#define iupKEYSETSYS(_s) (_s[7]='Y')
+#define iupKEYSETBUTTON4(_s) (_s[8]='4')
+#define iupKEYSETBUTTON5(_s) (_s[9]='5')
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif