Drop keyboard
This commit is contained in:
@ -40,7 +40,6 @@
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_KEYBOARD,
|
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -328,31 +327,13 @@ eek_gtk_keyboard_real_query_tooltip (GtkWidget *widget,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
eek_gtk_keyboard_set_keyboard (EekGtkKeyboard *self,
|
|
||||||
LevelKeyboard *keyboard)
|
|
||||||
{
|
|
||||||
EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
|
|
||||||
|
|
||||||
if (priv->keyboard == keyboard)
|
|
||||||
return;
|
|
||||||
|
|
||||||
priv->keyboard = keyboard;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
eek_gtk_keyboard_set_property (GObject *object,
|
eek_gtk_keyboard_set_property (GObject *object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
const GValue *value,
|
const GValue *value,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
LevelKeyboard *keyboard;
|
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_KEYBOARD:
|
|
||||||
keyboard = g_value_get_object (value);
|
|
||||||
eek_gtk_keyboard_set_keyboard (EEK_GTK_KEYBOARD(object), keyboard);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -391,7 +372,6 @@ eek_gtk_keyboard_class_init (EekGtkKeyboardClass *klass)
|
|||||||
{
|
{
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||||
GParamSpec *pspec;
|
|
||||||
|
|
||||||
widget_class->realize = eek_gtk_keyboard_real_realize;
|
widget_class->realize = eek_gtk_keyboard_real_realize;
|
||||||
widget_class->unmap = eek_gtk_keyboard_real_unmap;
|
widget_class->unmap = eek_gtk_keyboard_real_unmap;
|
||||||
@ -409,15 +389,6 @@ eek_gtk_keyboard_class_init (EekGtkKeyboardClass *klass)
|
|||||||
|
|
||||||
gobject_class->set_property = eek_gtk_keyboard_set_property;
|
gobject_class->set_property = eek_gtk_keyboard_set_property;
|
||||||
gobject_class->dispose = eek_gtk_keyboard_dispose;
|
gobject_class->dispose = eek_gtk_keyboard_dispose;
|
||||||
|
|
||||||
pspec = g_param_spec_object ("keyboard",
|
|
||||||
"Keyboard",
|
|
||||||
"Keyboard",
|
|
||||||
EEK_TYPE_KEYBOARD,
|
|
||||||
G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE);
|
|
||||||
g_object_class_install_property (gobject_class,
|
|
||||||
PROP_KEYBOARD,
|
|
||||||
pspec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
@ -38,38 +38,6 @@
|
|||||||
|
|
||||||
#include "eek-keyboard.h"
|
#include "eek-keyboard.h"
|
||||||
|
|
||||||
enum {
|
|
||||||
PROP_0,
|
|
||||||
PROP_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
KEY_RELEASED,
|
|
||||||
KEY_LOCKED,
|
|
||||||
KEY_UNLOCKED,
|
|
||||||
LAST_SIGNAL
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
VIEW_LETTERS_LOWER,
|
|
||||||
VIEW_LETTERS_UPPER,
|
|
||||||
VIEW_NUMBERS,
|
|
||||||
VIEW_SYMBOLS
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EEK_KEYBOARD_GET_PRIVATE(obj) \
|
|
||||||
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), EEK_TYPE_KEYBOARD, EekKeyboardPrivate))
|
|
||||||
|
|
||||||
struct _EekKeyboardPrivate
|
|
||||||
{
|
|
||||||
char dummy; // won't run otherwise
|
|
||||||
};
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (EekKeyboard, eek_keyboard, EEK_TYPE_ELEMENT);
|
|
||||||
|
|
||||||
G_DEFINE_BOXED_TYPE(EekModifierKey, eek_modifier_key,
|
|
||||||
eek_modifier_key_copy, eek_modifier_key_free);
|
|
||||||
|
|
||||||
EekModifierKey *
|
EekModifierKey *
|
||||||
eek_modifier_key_copy (EekModifierKey *modkey)
|
eek_modifier_key_copy (EekModifierKey *modkey)
|
||||||
{
|
{
|
||||||
@ -82,40 +50,6 @@ eek_modifier_key_free (EekModifierKey *modkey)
|
|||||||
g_slice_free (EekModifierKey, modkey);
|
g_slice_free (EekModifierKey, modkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct squeek_row *
|
|
||||||
eek_keyboard_real_create_row (EekKeyboard *self)
|
|
||||||
{
|
|
||||||
struct squeek_row *row = squeek_row_new(0);
|
|
||||||
g_ptr_array_add(self->rows, row);
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
eek_keyboard_set_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
switch (prop_id) {
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
eek_keyboard_get_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
switch (prop_id) {
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Updates the state of locked keys based on the key that was activated
|
/// Updates the state of locked keys based on the key that was activated
|
||||||
/// FIXME: make independent of what the key are named,
|
/// FIXME: make independent of what the key are named,
|
||||||
/// and instead refer to the contained symbols
|
/// and instead refer to the contained symbols
|
||||||
@ -221,18 +155,6 @@ void eek_keyboard_release_button(LevelKeyboard *keyboard,
|
|||||||
emit_key_activated(keyboard->manager, keyboard, keycode, FALSE, timestamp);
|
emit_key_activated(keyboard->manager, keyboard, keycode, FALSE, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
eek_keyboard_dispose (GObject *object)
|
|
||||||
{
|
|
||||||
G_OBJECT_CLASS (eek_keyboard_parent_class)->dispose (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
eek_keyboard_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
G_OBJECT_CLASS (eek_keyboard_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
void level_keyboard_deinit(LevelKeyboard *self) {
|
void level_keyboard_deinit(LevelKeyboard *self) {
|
||||||
g_hash_table_destroy (self->names);
|
g_hash_table_destroy (self->names);
|
||||||
for (guint i = 0; i < self->outline_array->len; i++) {
|
for (guint i = 0; i < self->outline_array->len; i++) {
|
||||||
@ -253,30 +175,6 @@ void level_keyboard_free(LevelKeyboard *self) {
|
|||||||
g_free(self);
|
g_free(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
eek_keyboard_class_init (EekKeyboardClass *klass)
|
|
||||||
{
|
|
||||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
|
||||||
|
|
||||||
/* signals */
|
|
||||||
gobject_class->get_property = eek_keyboard_get_property;
|
|
||||||
gobject_class->set_property = eek_keyboard_set_property;
|
|
||||||
gobject_class->dispose = eek_keyboard_dispose;
|
|
||||||
gobject_class->finalize = eek_keyboard_finalize;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
eek_keyboard_init (EekKeyboard *self)
|
|
||||||
{
|
|
||||||
self->rows = g_ptr_array_new();
|
|
||||||
}
|
|
||||||
|
|
||||||
void eek_keyboard_foreach (EekKeyboard *keyboard,
|
|
||||||
GFunc func,
|
|
||||||
gpointer user_data) {
|
|
||||||
g_ptr_array_foreach(keyboard->rows, func, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void level_keyboard_init(LevelKeyboard *self) {
|
void level_keyboard_init(LevelKeyboard *self) {
|
||||||
self->outline_array = g_array_new (FALSE, TRUE, sizeof (EekOutline));
|
self->outline_array = g_array_new (FALSE, TRUE, sizeof (EekOutline));
|
||||||
}
|
}
|
||||||
@ -307,26 +205,6 @@ eek_keyboard_find_button_by_name (LevelKeyboard *keyboard,
|
|||||||
return g_hash_table_lookup (keyboard->names, name);
|
return g_hash_table_lookup (keyboard->names, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* eek_keyboard_get_size:
|
|
||||||
* @keyboard: an #EekKeyboard
|
|
||||||
* @width: width of @keyboard
|
|
||||||
* @height: height of @keyboard
|
|
||||||
*
|
|
||||||
* Get the size of @keyboard.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
eek_keyboard_get_size (EekKeyboard *keyboard,
|
|
||||||
gdouble *width,
|
|
||||||
gdouble *height)
|
|
||||||
{
|
|
||||||
EekBounds bounds;
|
|
||||||
|
|
||||||
eek_element_get_bounds (EEK_ELEMENT(keyboard), &bounds);
|
|
||||||
*width = bounds.width;
|
|
||||||
*height = bounds.height;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* eek_keyboard_get_outline:
|
* eek_keyboard_get_outline:
|
||||||
* @keyboard: an #EekKeyboard
|
* @keyboard: an #EekKeyboard
|
||||||
|
|||||||
@ -33,69 +33,6 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define EEK_TYPE_KEYBOARD (eek_keyboard_get_type())
|
|
||||||
#define EEK_KEYBOARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EEK_TYPE_KEYBOARD, EekKeyboard))
|
|
||||||
#define EEK_KEYBOARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EEK_TYPE_KEYBOARD, EekKeyboardClass))
|
|
||||||
#define EEK_IS_KEYBOARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EEK_TYPE_KEYBOARD))
|
|
||||||
#define EEK_IS_KEYBOARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EEK_TYPE_KEYBOARD))
|
|
||||||
#define EEK_KEYBOARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EEK_TYPE_KEYBOARD, EekKeyboardClass))
|
|
||||||
|
|
||||||
typedef struct _EekKeyboardClass EekKeyboardClass;
|
|
||||||
typedef struct _EekKeyboardPrivate EekKeyboardPrivate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* EekKeyboard:
|
|
||||||
*
|
|
||||||
* Contains the graphical representation of the rows of buttons.
|
|
||||||
*/
|
|
||||||
struct _EekKeyboard
|
|
||||||
{
|
|
||||||
/*< private >*/
|
|
||||||
EekElement parent;
|
|
||||||
|
|
||||||
EekKeyboardPrivate *priv;
|
|
||||||
GPtrArray *rows; // struct squeek_row*
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _EekKeyboard EekKeyboard;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* EekKeyboardClass:
|
|
||||||
* @create_section: virtual function for creating a section
|
|
||||||
* @find_key_by_name: virtual function for finding a key in the
|
|
||||||
* keyboard by name
|
|
||||||
* @key_pressed: class handler for #EekKeyboard::key-pressed signal
|
|
||||||
* @key_released: class handler for #EekKeyboard::key-released signal
|
|
||||||
* @key_locked: class handler for #EekKeyboard::key-locked signal
|
|
||||||
* @key_unlocked: class handler for #EekKeyboard::key-unlocked signal
|
|
||||||
* @key_cancelled: class handler for #EekKeyboard::key-cancelled signal
|
|
||||||
*/
|
|
||||||
struct _EekKeyboardClass
|
|
||||||
{
|
|
||||||
/*< private >*/
|
|
||||||
EekElementClass parent_class;
|
|
||||||
|
|
||||||
/* obsolete members moved to EekElement */
|
|
||||||
gpointer set_symbol_index;
|
|
||||||
gpointer get_symbol_index;
|
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
/* obsolete members moved to EekElement */
|
|
||||||
gpointer symbol_index_changed;
|
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
/* padding */
|
|
||||||
gpointer pdummy[21];
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* EekModifierKey:
|
|
||||||
* @modifiers: an #EekModifierType which @key triggers
|
|
||||||
* @key: an #EekKey
|
|
||||||
*
|
|
||||||
* Entry which associates modifier mask to a key. This is returned by
|
|
||||||
* eek_keyboard_get_locked_keys().
|
|
||||||
*/
|
|
||||||
struct _EekModifierKey {
|
struct _EekModifierKey {
|
||||||
/*< public >*/
|
/*< public >*/
|
||||||
EekModifierType modifiers;
|
EekModifierType modifiers;
|
||||||
@ -124,17 +61,6 @@ struct _LevelKeyboard {
|
|||||||
};
|
};
|
||||||
typedef struct _LevelKeyboard LevelKeyboard;
|
typedef struct _LevelKeyboard LevelKeyboard;
|
||||||
|
|
||||||
GType eek_keyboard_get_type
|
|
||||||
(void) G_GNUC_CONST;
|
|
||||||
void eek_keyboard_get_size
|
|
||||||
(EekKeyboard *keyboard,
|
|
||||||
gdouble *width,
|
|
||||||
gdouble *height);
|
|
||||||
void eek_keyboard_set_size
|
|
||||||
(EekKeyboard *keyboard,
|
|
||||||
gdouble width,
|
|
||||||
gdouble height);
|
|
||||||
|
|
||||||
struct squeek_row *eek_keyboard_get_row(struct squeek_view *view,
|
struct squeek_row *eek_keyboard_get_row(struct squeek_view *view,
|
||||||
struct squeek_button *button);
|
struct squeek_button *button);
|
||||||
struct squeek_button *eek_keyboard_find_button_by_name(LevelKeyboard *keyboard,
|
struct squeek_button *eek_keyboard_find_button_by_name(LevelKeyboard *keyboard,
|
||||||
@ -163,18 +89,10 @@ void eek_keyboard_release_button(LevelKeyboard *keyboard, struct squeek_button *
|
|||||||
gchar * eek_keyboard_get_keymap
|
gchar * eek_keyboard_get_keymap
|
||||||
(LevelKeyboard *keyboard);
|
(LevelKeyboard *keyboard);
|
||||||
|
|
||||||
void eek_keyboard_foreach (EekKeyboard *keyboard,
|
|
||||||
GFunc func,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
struct squeek_view *level_keyboard_current(LevelKeyboard *keyboard);
|
struct squeek_view *level_keyboard_current(LevelKeyboard *keyboard);
|
||||||
LevelKeyboard *level_keyboard_new(EekboardContextService *manager, struct squeek_view *views[], GHashTable *name_button_hash);
|
LevelKeyboard *level_keyboard_new(EekboardContextService *manager, struct squeek_view *views[], GHashTable *name_button_hash);
|
||||||
void level_keyboard_deinit(LevelKeyboard *self);
|
void level_keyboard_deinit(LevelKeyboard *self);
|
||||||
void level_keyboard_free(LevelKeyboard *self);
|
void level_keyboard_free(LevelKeyboard *self);
|
||||||
|
|
||||||
struct squeek_row *
|
|
||||||
eek_keyboard_real_create_row (EekKeyboard *self);
|
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif /* EEK_KEYBOARD_H */
|
#endif /* EEK_KEYBOARD_H */
|
||||||
|
|||||||
@ -431,10 +431,9 @@ eekboard_context_service_class_init (EekboardContextServiceClass *klass)
|
|||||||
*
|
*
|
||||||
* An #EekKeyboard currently active in this context.
|
* An #EekKeyboard currently active in this context.
|
||||||
*/
|
*/
|
||||||
pspec = g_param_spec_object ("keyboard",
|
pspec = g_param_spec_pointer("keyboard",
|
||||||
"Keyboard",
|
"Keyboard",
|
||||||
"Keyboard",
|
"Keyboard",
|
||||||
EEK_TYPE_KEYBOARD,
|
|
||||||
G_PARAM_READWRITE);
|
G_PARAM_READWRITE);
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_KEYBOARD,
|
PROP_KEYBOARD,
|
||||||
|
|||||||
Reference in New Issue
Block a user