Use GObject instead of guint to represent keysyms.
This commit is contained in:
		@ -58,10 +58,10 @@ struct _EekRendererPrivate
 | 
			
		||||
struct {
 | 
			
		||||
    gint category;
 | 
			
		||||
    gdouble scale;
 | 
			
		||||
} keysym_category_scale_factors[EEK_KEYSYM_CATEGORY_LAST] = {
 | 
			
		||||
    { EEK_KEYSYM_CATEGORY_LETTER, 1.0 },
 | 
			
		||||
    { EEK_KEYSYM_CATEGORY_FUNCTION, 0.5 },
 | 
			
		||||
    { EEK_KEYSYM_CATEGORY_KEYNAME, 0.5 }
 | 
			
		||||
} symbol_category_scale_factors[EEK_SYMBOL_CATEGORY_LAST] = {
 | 
			
		||||
    { EEK_SYMBOL_CATEGORY_LETTER, 1.0 },
 | 
			
		||||
    { EEK_SYMBOL_CATEGORY_FUNCTION, 0.5 },
 | 
			
		||||
    { EEK_SYMBOL_CATEGORY_KEYNAME, 0.5 }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* eek-keyboard-drawing.c */
 | 
			
		||||
@ -78,7 +78,7 @@ static void invalidate                         (EekRenderer *renderer);
 | 
			
		||||
static void render_key                         (EekRenderer *self,
 | 
			
		||||
                                                cairo_t     *cr,
 | 
			
		||||
                                                EekKey      *key);
 | 
			
		||||
static void on_keysym_index_changed            (EekKeyboard *keyboard,
 | 
			
		||||
static void on_symbol_index_changed            (EekKeyboard *keyboard,
 | 
			
		||||
                                                gint         group,
 | 
			
		||||
                                                gint         level,
 | 
			
		||||
                                                gpointer     user_data);
 | 
			
		||||
@ -269,16 +269,16 @@ calculate_font_size_key_callback (EekElement *element, gpointer user_data)
 | 
			
		||||
    PangoRectangle extents = { 0, };
 | 
			
		||||
    PangoLayout *layout;
 | 
			
		||||
    gdouble size;
 | 
			
		||||
    guint keysym;
 | 
			
		||||
    EekSymbol *symbol;
 | 
			
		||||
    EekBounds bounds;
 | 
			
		||||
    gchar *label;
 | 
			
		||||
 | 
			
		||||
    keysym = eek_key_get_keysym (EEK_KEY(element));
 | 
			
		||||
    if (keysym == EEK_INVALID_KEYSYM ||
 | 
			
		||||
        eek_keysym_get_category (keysym) != EEK_KEYSYM_CATEGORY_LETTER)
 | 
			
		||||
    symbol = eek_key_get_symbol (EEK_KEY(element));
 | 
			
		||||
    if (!symbol ||
 | 
			
		||||
        eek_symbol_get_category (symbol) != EEK_SYMBOL_CATEGORY_LETTER)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    label = eek_keysym_to_string (keysym);
 | 
			
		||||
    label = eek_symbol_get_label (symbol);
 | 
			
		||||
    if (!label)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
@ -434,23 +434,23 @@ eek_renderer_real_render_key_label (EekRenderer *self,
 | 
			
		||||
                                    EekKey      *key)
 | 
			
		||||
{
 | 
			
		||||
    EekRendererPrivate *priv = EEK_RENDERER_GET_PRIVATE(self);
 | 
			
		||||
    guint keysym;
 | 
			
		||||
    EekKeysymCategory category;
 | 
			
		||||
    EekSymbol *symbol;
 | 
			
		||||
    EekSymbolCategory category;
 | 
			
		||||
    gchar *label;
 | 
			
		||||
    EekBounds bounds;
 | 
			
		||||
    PangoFontDescription *font;
 | 
			
		||||
    gdouble size, scale;
 | 
			
		||||
    gint i;
 | 
			
		||||
 | 
			
		||||
    keysym = eek_key_get_keysym (key);
 | 
			
		||||
    if (keysym == EEK_INVALID_KEYSYM)
 | 
			
		||||
    symbol = eek_key_get_symbol (key);
 | 
			
		||||
    if (!symbol)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    category = eek_keysym_get_category (keysym);
 | 
			
		||||
    if (category == EEK_KEYSYM_CATEGORY_UNKNOWN)
 | 
			
		||||
    category = eek_symbol_get_category (symbol);
 | 
			
		||||
    if (category == EEK_SYMBOL_CATEGORY_UNKNOWN)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    label = eek_keysym_to_string (keysym);
 | 
			
		||||
    label = eek_symbol_get_label (symbol);
 | 
			
		||||
    if (!label)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
@ -470,9 +470,9 @@ eek_renderer_real_render_key_label (EekRenderer *self,
 | 
			
		||||
 | 
			
		||||
    font = pango_font_description_copy (priv->font);
 | 
			
		||||
    size = pango_font_description_get_size (font);
 | 
			
		||||
    for (i = 0; i < G_N_ELEMENTS(keysym_category_scale_factors); i++)
 | 
			
		||||
        if (keysym_category_scale_factors[i].category == category) {
 | 
			
		||||
            size *= keysym_category_scale_factors[i].scale;
 | 
			
		||||
    for (i = 0; i < G_N_ELEMENTS(symbol_category_scale_factors); i++)
 | 
			
		||||
        if (symbol_category_scale_factors[i].category == category) {
 | 
			
		||||
            size *= symbol_category_scale_factors[i].scale;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    pango_font_description_set_size (font, size * priv->scale * scale);
 | 
			
		||||
@ -536,8 +536,8 @@ eek_renderer_set_property (GObject      *object,
 | 
			
		||||
        priv->keyboard = g_value_get_object (value);
 | 
			
		||||
        g_object_ref (priv->keyboard);
 | 
			
		||||
 | 
			
		||||
        g_signal_connect (priv->keyboard, "keysym-index-changed",
 | 
			
		||||
                          G_CALLBACK(on_keysym_index_changed),
 | 
			
		||||
        g_signal_connect (priv->keyboard, "symbol-index-changed",
 | 
			
		||||
                          G_CALLBACK(on_symbol_index_changed),
 | 
			
		||||
                          object);
 | 
			
		||||
        break;
 | 
			
		||||
    case PROP_PCONTEXT:
 | 
			
		||||
@ -655,7 +655,7 @@ invalidate (EekRenderer *renderer)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
on_keysym_index_changed (EekKeyboard *keyboard,
 | 
			
		||||
on_symbol_index_changed (EekKeyboard *keyboard,
 | 
			
		||||
                         gint         group,
 | 
			
		||||
                         gint         level,
 | 
			
		||||
                         gpointer     user_data)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user