diff --git a/.gitignore b/.gitignore
index 7d687ff5..ac7fce75 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,9 +28,6 @@ missing
stamp-h1
libkeyactor*.tar.*
mkinstalldirs
-docs/reference/eek/eek-overrides.txt
-docs/reference/eek/eek-sections.txt
-docs/reference/eek/eek.types
m4/*.m4
gtk-doc.make
eek/eek-special-keysym-labels.h
@@ -42,6 +39,7 @@ tests/eek-xkb-test
src/eekboard
docs/reference/eek/*.stamp
docs/reference/eek/*.txt
+!/docs/reference/eek/eek-sections.txt
docs/reference/eek/xml
docs/reference/eek/html
docs/reference/eek/eek.signals
diff --git a/README b/README
index e53b317f..84a68719 100644
--- a/README
+++ b/README
@@ -20,22 +20,23 @@ lot of bugs and lacks documentation.
* libeek API (not fixed)
-libeek provides only two kinds of objects. One is "keyboard element"
-and another is "keyboard layout engine". A keyboard element
-represents either a keyboard, a section, or a key. Each element
-implements the Builder pattern[1] so that it can be converted into a
-UI widget (ClutterActor, GTK+ button, ...). A layout engine arranges
-keyboard elements using information from external configuration
-mechanisms (XKB, matchbox-keyboard layouts in XML, ...)
+Since libeek is designed as simple as possible, it provides only two
+kinds of objects. One is "keyboard element" and another is "keyboard
+layout engine". A keyboard element represents either a keyboard, a
+section, or a key. Each element implements the Builder pattern[1] so
+that it can be converted into a UI widget (ClutterActor,
+GtkDrawingArea, ...). A layout engine arranges keyboard elements
+using information from external configuration mechanisms (libxklavier,
+XKB, matchbox-keyboard layouts in XML, ...)
-Here is a sample code which utilizes Clutter-based keyboard elements
-and an XKB-based layout engine:
+Here is a sample code which utilizes Clutter keyboard elements
+and libxklavier layout engine:
1: EekKeyboard *keyboard;
2: EekLayout *layout;
3:
- 4: /* Create a keyboard layout using XKB configuration. */
- 5: layout = eek_xkb_layout_new (NULL, "kinesis", "in");
+ 4: /* Create a keyboard layout using libxklavier configuration. */
+ 5: layout = eek_xkl_layout_new ();
6:
7: /* Create a keyboard implemented as ClutterActor. */
8: keyboard = eek_clutter_keyboard_new (640, 480);
diff --git a/docs/reference/eek/Makefile.am b/docs/reference/eek/Makefile.am
index 353b48d5..899a2b6e 100644
--- a/docs/reference/eek/Makefile.am
+++ b/docs/reference/eek/Makefile.am
@@ -77,9 +77,12 @@ EXTRA_HFILES=
# Header files to ignore when scanning. Use base file name, no paths
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES= eek-private.h \
- eek-keysym.h \
- config.h \
- $(NULL)
+ eek-drawing.h \
+ eek-clutter-key.h \
+ eek-clutter-section.h \
+ eek-clutter-key-actor.h \
+ eek-clutter-drawing-context.h \
+ config.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
@@ -107,8 +110,7 @@ GTKDOC_LIBS = $(top_srcdir)/eek/libeek.la \
$(top_srcdir)/eek/libeek-xkl.la \
$(GOBJECT2_LIBS) \
$(CLUTTER_LIBS) \
- $(XKB_LIBS) \
- $(NULL)
+ $(XKB_LIBS)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
diff --git a/docs/reference/eek/eek-docs.sgml b/docs/reference/eek/eek-docs.sgml
index 1faf9a3e..90d0f297 100644
--- a/docs/reference/eek/eek-docs.sgml
+++ b/docs/reference/eek/eek-docs.sgml
@@ -23,10 +23,12 @@
- Clutter keyboard elements
+ Clutter keyboard
-
-
+
+
+ GTK keyboard
+
XKB layout engine
diff --git a/eek/eek-clutter-key-actor.c b/eek/eek-clutter-key-actor.c
index 15b67939..e51fe221 100644
--- a/eek/eek-clutter-key-actor.c
+++ b/eek/eek-clutter-key-actor.c
@@ -19,11 +19,6 @@
* 02110-1301 USA
*/
-/**
- * SECTION:eek-clutter-key-actor
- * @short_description: Custom #ClutterActor drawing a key shape
- */
-
#include
#include
diff --git a/eek/eek-clutter-key.c b/eek/eek-clutter-key.c
index e3beb4b0..0762c21b 100644
--- a/eek/eek-clutter-key.c
+++ b/eek/eek-clutter-key.c
@@ -18,10 +18,6 @@
* 02110-1301 USA
*/
-/**
- * SECTION:eek-clutter-key
- * @short_description: #EekKey embedding a #ClutterActor
- */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif /* HAVE_CONFIG_H */
diff --git a/eek/eek-clutter-section.c b/eek/eek-clutter-section.c
index 7ee7db12..042d9c2b 100644
--- a/eek/eek-clutter-section.c
+++ b/eek/eek-clutter-section.c
@@ -18,10 +18,6 @@
* 02110-1301 USA
*/
-/**
- * SECTION:eek-clutter-section
- * @short_description: #EekSection embedding a #ClutterActor
- */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif /* HAVE_CONFIG_H */
diff --git a/eek/eek-container.h b/eek/eek-container.h
index 75e2a847..32959ef7 100644
--- a/eek/eek-container.h
+++ b/eek/eek-container.h
@@ -42,10 +42,16 @@ struct _EekContainer
/*< private >*/
EekElement parent;
- /*< public >*/
EekContainerPrivate *priv;
};
+/**
+ * EekContainerClass:
+ * @foreach_child: virtual function for iterating over the container's children
+ * @find: virtual function for looking up a child
+ * @child_added: class handler for #EekContainer::child-added
+ * @child_removed: class handler for #EekContainer::child-added
+ */
struct _EekContainerClass
{
/*< private >*/
@@ -64,9 +70,6 @@ struct _EekContainerClass
EekElement *(* find) (EekContainer *self,
EekCompareFunc func,
gpointer user_data);
- EekElement *(* find_by_position) (EekContainer *self,
- gdouble x,
- gdouble y);
/* signals */
void (* child_added) (EekContainer *self,
diff --git a/eek/eek-element.c b/eek/eek-element.c
index 3958a021..a55f8012 100644
--- a/eek/eek-element.c
+++ b/eek/eek-element.c
@@ -317,7 +317,7 @@ eek_element_set_bounds (EekElement *element,
*
* Get the bounding box of @element. Note that if @element has
* parent, position of @bounds are relative to the parent. To obtain
- * the absolute position, use #eek_element_get_absolute_position().
+ * the absolute position, use eek_element_get_absolute_position().
*/
void
eek_element_get_bounds (EekElement *element,
diff --git a/eek/eek-gtk-keyboard.c b/eek/eek-gtk-keyboard.c
index 2fe25f82..9739fcbf 100644
--- a/eek/eek-gtk-keyboard.c
+++ b/eek/eek-gtk-keyboard.c
@@ -20,7 +20,7 @@
/**
* SECTION:eek-gtk-keyboard
- * @short_description: #EekKeyboard embedding a #GtkActor
+ * @short_description: #EekKeyboard that can be converted into a #GtkWidget
*/
#include
diff --git a/eek/eek-key.h b/eek/eek-key.h
index b3995b97..524f9f35 100644
--- a/eek/eek-key.h
+++ b/eek/eek-key.h
@@ -44,6 +44,24 @@ struct _EekKey
EekKeyPrivate *priv;
};
+/**
+ * EekKeyClass:
+ * @set_keycode: virtual function for setting keycode of the key
+ * @get_keycode: virtual function for getting keycode of the key
+ * @set_keysyms: virtual function for setting symbol matrix of the key
+ * @get_keysyms: virtual function for getting symbol matrix of the key
+ * @get_keysym: virtual function for getting the current symbol of the key
+ * @set_index: virtual function for setting position of the key in the
+ * section
+ * @get_index: virtual function for getting position of the key in the
+ * section
+ * @set_outline: virtual function for setting outline shape of the key
+ * @get_outline: virtual function for getting outline shape of the key
+ * @set_keysym_index: virtual function for setting group and level of the key
+ * @get_keysym_index: virtual function for getting group and level of the key
+ * @pressed: class handler for #EekKey::pressed signal
+ * @released: class handler for #EekKey::released signal
+ */
struct _EekKeyClass
{
/*< private >*/
diff --git a/eek/eek-keyboard.h b/eek/eek-keyboard.h
index 1601dc4e..f753364d 100644
--- a/eek/eek-keyboard.h
+++ b/eek/eek-keyboard.h
@@ -45,6 +45,18 @@ struct _EekKeyboard
EekKeyboardPrivate *priv;
};
+/**
+ * EekKeyboardClass:
+ * @set_keysym_index: virtual function for setting group and level of
+ * the entire keyboard
+ * @get_keysym_index: virtual function for getting group and level of
+ * the entire keyboard
+ * @create_section: virtual function for creating a section
+ * @set_layout: virtual function for setting layout engine
+ * @find_key_by_keycode: virtual function for finding a key in the
+ * keyboard by keycode
+ * @realize: virtual function for applying a layout to the keyboard
+ */
struct _EekKeyboardClass
{
/*< private >*/
diff --git a/eek/eek-keysym.h b/eek/eek-keysym.h
index 9f66555a..37e2e864 100644
--- a/eek/eek-keysym.h
+++ b/eek/eek-keysym.h
@@ -22,9 +22,30 @@
#include
+/**
+ * EEK_INVALID_KEYSYM:
+ *
+ * Pseudo keysym used for error reporting.
+ */
#define EEK_INVALID_KEYSYM ((guint)(-1))
+
+/**
+ * EEK_INVALID_KEYCODE:
+ *
+ * Pseudo keycode used for error reporting.
+ */
#define EEK_INVALID_KEYCODE ((guint)(-1))
+/**
+ * EekKeysymCategory:
+ * @EEK_KEYSYM_CATEGORY_LETTER: the symbol represents an alphabet letter
+ * @EEK_KEYSYM_CATEGORY_FUNCTION: the symbol represents a function
+ * @EEK_KEYSYM_CATEGORY_KEYNAME: the symbol does not have meaning but
+ * have a name
+ * @EEK_KEYSYM_CATEGORY_UNKNOWN: used for error reporting
+ *
+ * Category of the key symbols.
+ */
typedef enum {
EEK_KEYSYM_CATEGORY_LETTER,
EEK_KEYSYM_CATEGORY_FUNCTION,
diff --git a/eek/eek-layout.h b/eek/eek-layout.h
index 63a2a8ab..e9942c15 100644
--- a/eek/eek-layout.h
+++ b/eek/eek-layout.h
@@ -34,6 +34,14 @@ G_BEGIN_DECLS
typedef struct _EekLayoutIface EekLayoutIface;
typedef struct _EekLayout EekLayout;
+/**
+ * EekLayoutIface:
+ * @apply: virtual function for applying the layout to a keyboard
+ * @get_group: virtual function for getting the current group setting
+ * of the layout
+ * @group_changed: class handler for #EekLayout::group-changed signal
+ * @changed: class handler for #EekLayout::changed signal
+ */
struct _EekLayoutIface
{
/*< private >*/
diff --git a/eek/eek-section.h b/eek/eek-section.h
index 56d71595..3cf3511d 100644
--- a/eek/eek-section.h
+++ b/eek/eek-section.h
@@ -44,6 +44,17 @@ struct _EekSection
EekSectionPrivate *priv;
};
+/**
+ * EekSectionClass:
+ * @set_angle: virtual function for setting rotation angle of the section
+ * @get_angle: virtual function for getting rotation angle of the section
+ * @get_n_rows: virtual function for getting the number of rows in the section
+ * @add_row: virtual function for adding a new row to the section
+ * @get_row: virtual function for accessing a row in the section
+ * @create_key: virtual function for creating key in the section
+ * @find_key_by_keycode: virtual function for accessing a key in the
+ * section by keycode
+ */
struct _EekSectionClass
{
/*< private >*/