eekkey: Moved state to KeyState
This commit is contained in:
@ -31,6 +31,7 @@
|
||||
|
||||
#include "eek-section.h"
|
||||
#include "eek-keyboard.h"
|
||||
#include "src/keyboard.h"
|
||||
#include "src/symbol.h"
|
||||
|
||||
#include "eek-key.h"
|
||||
@ -53,9 +54,8 @@ static guint signals[LAST_SIGNAL] = { 0, };
|
||||
typedef struct _EekKeyPrivate
|
||||
{
|
||||
guint keycode;
|
||||
struct squeek_symbols *symbols;
|
||||
gulong oref; // UI outline reference
|
||||
gboolean is_pressed;
|
||||
struct squeek_key *state;
|
||||
gboolean is_locked;
|
||||
} EekKeyPrivate;
|
||||
|
||||
@ -89,7 +89,7 @@ eek_key_finalize (GObject *object)
|
||||
EekKey *self = EEK_KEY (object);
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (self);
|
||||
|
||||
squeek_symbols_free (priv->symbols);
|
||||
squeek_key_free (priv->state);
|
||||
|
||||
G_OBJECT_CLASS (eek_key_parent_class)->finalize (object);
|
||||
}
|
||||
@ -211,7 +211,7 @@ static void
|
||||
eek_key_init (EekKey *self)
|
||||
{
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (self);
|
||||
priv->symbols = squeek_symbols_new ();
|
||||
priv->state = squeek_key_new (0);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -253,23 +253,6 @@ eek_key_get_keycode (EekKey *key)
|
||||
return priv->keycode;
|
||||
}
|
||||
|
||||
/**
|
||||
* eek_key_get_symbol_matrix:
|
||||
* @key: an #EekKey
|
||||
*
|
||||
* Get the symbol matrix of @key.
|
||||
* Returns: (transfer none): #EekSymbolMatrix or %NULL
|
||||
*/
|
||||
struct squeek_symbols *
|
||||
eek_key_get_symbol_matrix (EekKey *key)
|
||||
{
|
||||
g_return_val_if_fail (EEK_IS_KEY(key), NULL);
|
||||
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
|
||||
return priv->symbols;
|
||||
}
|
||||
|
||||
/**
|
||||
* eek_key_get_symbol_at_index:
|
||||
* @key: an #EekKey
|
||||
@ -286,8 +269,8 @@ eek_key_get_symbol_at_index (EekKey *key,
|
||||
gint group,
|
||||
guint level)
|
||||
{
|
||||
struct squeek_symbols *symbols = eek_key_get_symbol_matrix(key);
|
||||
return squeek_symbols_get(symbols, level);
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
return squeek_key_get_symbol(priv->state, level);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -341,7 +324,7 @@ eek_key_is_pressed (EekKey *key)
|
||||
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
|
||||
return priv->is_pressed;
|
||||
return (bool)squeek_key_is_pressed(priv->state);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -366,5 +349,10 @@ void eek_key_set_pressed(EekKey *key, gboolean value)
|
||||
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
|
||||
priv->is_pressed = value;
|
||||
squeek_key_set_pressed(priv->state, value);
|
||||
}
|
||||
|
||||
struct squeek_key *eek_key_get_state(EekKey *key) {
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
return priv->state;
|
||||
}
|
||||
|
||||
@ -58,8 +58,7 @@ GType eek_key_get_type (void) G_GNUC_CONST;
|
||||
void eek_key_set_keycode (EekKey *key,
|
||||
guint keycode);
|
||||
guint eek_key_get_keycode (EekKey *key);
|
||||
struct squeek_symbols *
|
||||
eek_key_get_symbol_matrix (EekKey *key);
|
||||
struct squeek_key *eek_key_get_state(EekKey *key);
|
||||
struct squeek_symbol *eek_key_get_symbol_at_index (EekKey *key,
|
||||
gint group,
|
||||
guint level);
|
||||
|
||||
@ -763,7 +763,7 @@ eek_keyboard_get_keymap(EekKeyboard *keyboard)
|
||||
// FIXME: free
|
||||
const char *key_str = squeek_key_to_keymap_entry(
|
||||
(char*)key_name,
|
||||
eek_key_get_symbol_matrix(key)
|
||||
eek_key_get_state(key)
|
||||
);
|
||||
current = symbols;
|
||||
symbols = g_strconcat(current, key_str, NULL);
|
||||
|
||||
@ -86,10 +86,6 @@ static void render_key (EekRenderer *self,
|
||||
cairo_t *cr,
|
||||
EekKey *key, guint level,
|
||||
gboolean active);
|
||||
static void on_symbol_index_changed (EekKeyboard *keyboard,
|
||||
gint group,
|
||||
gint level,
|
||||
gpointer user_data);
|
||||
|
||||
struct _CreateKeyboardSurfaceCallbackData {
|
||||
cairo_t *cr;
|
||||
@ -715,16 +711,6 @@ invalidate (EekRenderer *renderer)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
on_symbol_index_changed (EekKeyboard *keyboard,
|
||||
gint group,
|
||||
gint level,
|
||||
gpointer user_data)
|
||||
{
|
||||
EekRenderer *renderer = user_data;
|
||||
invalidate (renderer);
|
||||
}
|
||||
|
||||
EekRenderer *
|
||||
eek_renderer_new (EekKeyboard *keyboard,
|
||||
PangoContext *pcontext,
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
#include "eek-keyboard.h"
|
||||
#include "eek-section.h"
|
||||
#include "eek-key.h"
|
||||
#include "src/keyboard.h"
|
||||
#include "src/symbol.h"
|
||||
|
||||
#include "squeekboard-resources.h"
|
||||
@ -748,8 +749,8 @@ symbols_end_element_callback (GMarkupParseContext *pcontext,
|
||||
g_strcmp0 (element_name, "keysym") == 0 ||
|
||||
g_strcmp0 (element_name, "text") == 0) {
|
||||
|
||||
squeek_symbols_add(
|
||||
eek_key_get_symbol_matrix(data->key),
|
||||
squeek_key_add_symbol(
|
||||
eek_key_get_state(data->key),
|
||||
element_name,
|
||||
text,
|
||||
data->keyval,
|
||||
|
||||
Reference in New Issue
Block a user