Add VisibilityChanged signal.

This commit is contained in:
Daiki Ueno
2011-02-18 18:06:42 +09:00
parent ddfc0422b4
commit e3e3b60f1e
3 changed files with 49 additions and 3 deletions

View File

@ -37,6 +37,7 @@ G_DEFINE_TYPE (EekboardKeyboard, eekboard_keyboard, G_TYPE_DBUS_PROXY);
struct _EekboardKeyboardPrivate
{
EekKeyboard *description;
gboolean visible;
};
static void
@ -46,21 +47,27 @@ eekboard_keyboard_real_g_signal (GDBusProxy *self,
GVariant *parameters)
{
EekboardKeyboard *keyboard = EEKBOARD_KEYBOARD (self);
guint *keycode;
EekboardKeyboardPrivate *priv = EEKBOARD_KEYBOARD_GET_PRIVATE (keyboard);
if (g_strcmp0 (signal_name, "KeyPressed") == 0) {
guint keycode;
g_variant_get (parameters, "(u)", &keycode);
g_signal_emit_by_name (keyboard, "key-pressed", keycode);
return;
}
if (g_strcmp0 (signal_name, "KeyReleased") == 0) {
guint keycode;
g_variant_get (parameters, "(u)", &keycode);
g_signal_emit_by_name (keyboard, "key-released", keycode);
return;
}
if (g_strcmp0 (signal_name, "VisibilityChanged") == 0) {
g_variant_get (parameters, "(b)", &priv->visible);
return;
}
g_return_if_reached ();
}
@ -134,6 +141,7 @@ eekboard_keyboard_init (EekboardKeyboard *self)
priv = self->priv = EEKBOARD_KEYBOARD_GET_PRIVATE(self);
priv->description = NULL;
priv->visible = FALSE;
}
/**
@ -287,3 +295,14 @@ eekboard_keyboard_release_key (EekboardKeyboard *keyboard,
proxy_call_async_ready_cb,
NULL);
}
gboolean
eekboard_keyboard_get_visible (EekboardKeyboard *keyboard)
{
EekboardKeyboardPrivate *priv;
g_assert (EEKBOARD_IS_KEYBOARD(keyboard));
priv = EEKBOARD_KEYBOARD_GET_PRIVATE (keyboard);
return priv->visible;
}

View File

@ -65,6 +65,7 @@ void eekboard_keyboard_press_key (EekboardKeyboard *keyboard,
guint keycode);
void eekboard_keyboard_release_key (EekboardKeyboard *keyboard,
guint keycode);
gboolean eekboard_keyboard_get_visible (EekboardKeyboard *keyboard);
G_END_DECLS
#endif /* EEKBOARD_KEYBOARD_H */