49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
eek - easy embedded keyboard -*- outline -*-
 | 
						|
 | 
						|
*NOTE* This is not usable by now. The code has still a lot of bugs and
 | 
						|
lacks documentation.
 | 
						|
 | 
						|
* Quick look
 | 
						|
 | 
						|
 http://ueno.fedorapeople.org/eek/eek-in-demo.ogv (2MB, Ogg Theora video)
 | 
						|
 | 
						|
* How to test
 | 
						|
 | 
						|
 $ git clone git://github.com/ueno/eek.git
 | 
						|
 $ cd eek
 | 
						|
 $ ./autogen.sh --prefix=/usr --enable-gtk-doc
 | 
						|
 $ make
 | 
						|
 $ ./examples/eek-clutter-xkb-test --geometry=kinesis --symbols=in
 | 
						|
 | 
						|
* API (not fixed)
 | 
						|
 | 
						|
eek provides two different 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, ...)
 | 
						|
 | 
						|
Here is a sample code which utilizes Clutter-based keyboard elements
 | 
						|
and an XKB-based 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");
 | 
						|
 6:
 | 
						|
 7: /* Create a keyboard implemented as ClutterActor. */
 | 
						|
 8: keyboard = eek_clutter_keyboard_new (640, 480);
 | 
						|
 9:
 | 
						|
10: /* Apply the layout to the keyboard. */
 | 
						|
11: eek_keyboard_set_layout (keyboard, layout);
 | 
						|
12: 
 | 
						|
13: clutter_group_add (CLUTTER_GROUP(stage),
 | 
						|
14: 		       eek_clutter_keyboard_get_actor (EEK_CLUTTER_KEYBOARD(keyboard)));
 | 
						|
 | 
						|
Footnotes: 
 | 
						|
[1]  http://en.wikipedia.org/wiki/Builder_pattern
 | 
						|
 |