libeek: add EekKey#is_pressed.
This commit is contained in:
		@ -72,6 +72,7 @@ struct _EekKeyPrivate
 | 
			
		||||
    EekOutline *outline;
 | 
			
		||||
    gint group;
 | 
			
		||||
    gint level;
 | 
			
		||||
    gboolean is_pressed;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@ -210,8 +211,8 @@ eek_key_real_set_keysym_index (EekKey *self,
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
eek_key_real_get_keysym_index (EekKey *self,
 | 
			
		||||
                                      gint   *group,
 | 
			
		||||
                                      gint   *level)
 | 
			
		||||
                               gint   *group,
 | 
			
		||||
                               gint   *level)
 | 
			
		||||
{
 | 
			
		||||
    EekKeyPrivate *priv = EEK_KEY_GET_PRIVATE(self);
 | 
			
		||||
 | 
			
		||||
@ -223,19 +224,32 @@ eek_key_real_get_keysym_index (EekKey *self,
 | 
			
		||||
        *level = priv->level;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
eek_key_real_pressed (EekKey *key)
 | 
			
		||||
static gboolean
 | 
			
		||||
eek_key_real_is_pressed (EekKey *self)
 | 
			
		||||
{
 | 
			
		||||
    EekKeyPrivate *priv = EEK_KEY_GET_PRIVATE(self);
 | 
			
		||||
    return priv->is_pressed;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
eek_key_real_pressed (EekKey *self)
 | 
			
		||||
{
 | 
			
		||||
    EekKeyPrivate *priv = EEK_KEY_GET_PRIVATE(self);
 | 
			
		||||
 | 
			
		||||
    priv->is_pressed = TRUE;
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    g_debug ("pressed %X", eek_key_get_keycode (key));
 | 
			
		||||
    g_debug ("pressed %X", eek_key_get_keycode (self));
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
eek_key_real_released (EekKey *key)
 | 
			
		||||
eek_key_real_released (EekKey *self)
 | 
			
		||||
{
 | 
			
		||||
    EekKeyPrivate *priv = EEK_KEY_GET_PRIVATE(self);
 | 
			
		||||
 | 
			
		||||
    priv->is_pressed = FALSE;
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    g_debug ("released %X", eek_key_get_keycode (key));
 | 
			
		||||
    g_debug ("released %X", eek_key_get_keycode (self));
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -367,6 +381,7 @@ eek_key_class_init (EekKeyClass *klass)
 | 
			
		||||
    klass->get_outline = eek_key_real_get_outline;
 | 
			
		||||
    klass->set_keysym_index = eek_key_real_set_keysym_index;
 | 
			
		||||
    klass->get_keysym_index = eek_key_real_get_keysym_index;
 | 
			
		||||
    klass->is_pressed = eek_key_real_is_pressed;
 | 
			
		||||
 | 
			
		||||
    gobject_class->set_property = eek_key_set_property;
 | 
			
		||||
    gobject_class->get_property = eek_key_get_property;
 | 
			
		||||
@ -695,3 +710,10 @@ eek_key_get_keysym_index (EekKey *key,
 | 
			
		||||
    g_return_if_fail (EEK_IS_KEY(key));
 | 
			
		||||
    EEK_KEY_GET_CLASS(key)->get_keysym_index (key, group, level);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gboolean
 | 
			
		||||
eek_key_is_pressed (EekKey *key)
 | 
			
		||||
{
 | 
			
		||||
    g_assert (EEK_IS_KEY(key));
 | 
			
		||||
    return EEK_KEY_GET_CLASS(key)->is_pressed (key);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -98,10 +98,15 @@ struct _EekKeyClass
 | 
			
		||||
    void        (* get_keysym_index) (EekKey     *self,
 | 
			
		||||
                                      gint       *group,
 | 
			
		||||
                                      gint       *level);
 | 
			
		||||
    gboolean    (* is_pressed)       (EekKey     *self);
 | 
			
		||||
 | 
			
		||||
    /* signals */
 | 
			
		||||
    void        (* pressed)          (EekKey     *key);
 | 
			
		||||
    void        (* released)         (EekKey     *key);
 | 
			
		||||
 | 
			
		||||
    /*< private >*/
 | 
			
		||||
    /* padding */
 | 
			
		||||
    gpointer pdummy[23];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
GType       eek_key_get_type         (void) G_GNUC_CONST;
 | 
			
		||||
@ -136,6 +141,7 @@ void        eek_key_set_keysym_index (EekKey     *key,
 | 
			
		||||
void        eek_key_get_keysym_index (EekKey     *key,
 | 
			
		||||
                                      gint       *group,
 | 
			
		||||
                                      gint       *level);
 | 
			
		||||
gboolean    eek_key_is_pressed       (EekKey     *key);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
#endif  /* EEK_KEY_H */
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user