version 2.8
GVSpecialKey Struct Reference

Detailed Description

A GVKeyTable is a set of definitions that define how the keyboard lays out its keys. A GVKeyTable consists of a number of GVKeySets and a special key table.

A GVKeySet is a set of keys that make up the currently visible keyboard. Special keys in the GVKeySet can be used to switch between GVKeySets within the GVKeyTable. An example is a shift key which switches between the GVKeySet of lower case keys and the GVKeySet of upper case keys. GVKeySet number 0 is special in that it is the default GVKeySet when the keyboard is first displayed.

A GVKeySet is made up of GVKeyRow's. Each GVKeyRow describes the keys on one row of the keyboard.

Each GVKeyRow covers a number of key columns. Different rows can have different numbers of columns. eg. 'Q' -> 'P' has 10 keys while 'A' to 'L' has 9. Additionally each key can cover more than one column position eg a wide space bar.

Each GVKeyRow is just a string. Each character is the caption for one key. Using the same character for two or more adjacent keys merges the keys into one big key covering multiple key columns. Characters \001 to \037 (1 to 31) are special keys. How to handle and draw those is described by the special key structure array. Special keys do things like changing keysets, returning characters less than 32, have multiple character keycaps.

Note: keycaps from the special key table with a single character from 1 to 31 in them may invoke special drawn symbols eg. character 13 may cause a special symbol to be drawn for the enter key. Other than those characters which are drawn as symbols by the keyboard draw function, all other characters for keycaps are drawn using the current widget font.

Special keycaps handled by the standard draw: \001 (1) - Shift (up arrow) \002 (2) - Shift locked (up arrow - bold) \010 (8) - Tab (right arrow) \011 (9) - BackSpace (left arrow) \015 (13) - Carriage Return (hooked left arrow)

Definition at line 52 of file gwin_keyboard_layout.h.

#include <gwin_keyboard_layout.h>