diff --git a/eek/eek-gtk-keyboard.c b/eek/eek-gtk-keyboard.c index 5bc947da..d3926364 100644 --- a/eek/eek-gtk-keyboard.c +++ b/eek/eek-gtk-keyboard.c @@ -32,12 +32,13 @@ #include #include -#include "eek-gtk-keyboard.h" #include "eek-renderer.h" #include "eek-keyboard.h" #include "eek-section.h" #include "eek-key.h" -#include "eek-symbol.h" +#include "src/symbol.h" + +#include "eek-gtk-keyboard.h" enum { PROP_0, @@ -313,8 +314,8 @@ eek_gtk_keyboard_real_query_tooltip (GtkWidget *widget, (gdouble)x, (gdouble)y); if (key) { - EekSymbol *symbol = eek_key_get_symbol_at_index(key, 0, priv->keyboard->level); - const gchar *text = eek_symbol_get_tooltip (symbol); + //struct squeek_symbol *symbol = eek_key_get_symbol_at_index(key, 0, priv->keyboard->level); + const gchar *text = NULL; // FIXME if (text) { gtk_tooltip_set_text (tooltip, text); return TRUE; diff --git a/eek/eek-key.c b/eek/eek-key.c index d3128666..cadb8ac4 100644 --- a/eek/eek-key.c +++ b/eek/eek-key.c @@ -29,10 +29,11 @@ #include -#include "eek-key.h" #include "eek-section.h" #include "eek-keyboard.h" -#include "eek-symbol.h" +#include "src/symbol.h" + +#include "eek-key.h" enum { PROP_0, diff --git a/eek/eek-keyboard.c b/eek/eek-keyboard.c index 21658b29..20c68ed1 100644 --- a/eek/eek-keyboard.c +++ b/eek/eek-keyboard.c @@ -30,14 +30,15 @@ #include "config.h" #include -#include "eek-keyboard.h" #include "eek-marshalers.h" #include "eek-section.h" #include "eek-key.h" -#include "eek-symbol.h" #include "eek-enumtypes.h" #include "eekboard/key-emitter.h" #include "keymap.h" +#include "src/symbol.h" + +#include "eek-keyboard.h" enum { PROP_0, diff --git a/eek/eek-keysym.c b/eek/eek-keysym.c index 0c877ff2..807c8beb 100644 --- a/eek/eek-keysym.c +++ b/eek/eek-keysym.c @@ -25,11 +25,7 @@ #include "config.h" -#include -#include - #include "eek-keysym.h" -#include "eek-serializable.h" /* modifier keys */ #define EEK_KEYSYM_Shift_L 0xffe1 @@ -59,175 +55,6 @@ typedef struct _EekKeysymEntry EekKeysymEntry; #include "eek-unicode-keysym-entries.h" #include "eek-xkeysym-keysym-entries.h" - -static gchar * -unichar_to_utf8 (gunichar uc) -{ - if (g_unichar_isgraph (uc)) { - gchar *buf; - gint len; - - len = g_unichar_to_utf8 (uc, NULL); - buf = g_malloc0 (len + 1); - g_unichar_to_utf8 (uc, buf); - return buf; - } - return g_strdup (""); -} - -static int -keysym_entry_compare_by_xkeysym (const void *key0, const void *key1) -{ - const EekKeysymEntry *entry0 = key0, *entry1 = key1; - return (gint) (entry0->xkeysym - entry1->xkeysym); -} - -static EekKeysymEntry * -find_keysym_entry_by_xkeysym (guint xkeysym, - const EekKeysymEntry *entries, - gint num_entries) -{ - EekKeysymEntry key; - - key.xkeysym = xkeysym; - return bsearch (&key, entries, num_entries, sizeof (EekKeysymEntry), - keysym_entry_compare_by_xkeysym); -} - -static gboolean -get_unichar (guint xkeysym, gunichar *uc) { - /* Check for Latin-1 characters (1:1 mapping) */ - if ((xkeysym >= 0x0020 && xkeysym <= 0x007e) || - (xkeysym >= 0x00a0 && xkeysym <= 0x00ff)) { - *uc = xkeysym; - return TRUE; - } - - /* Also check for directly encoded 24-bit UCS characters: - */ - if ((xkeysym & 0xff000000) == 0x01000000) { - *uc = xkeysym & 0x00ffffff; - return TRUE; - } - - return FALSE; -} - -G_INLINE_FUNC EekModifierType -get_modifier_mask (guint xkeysym) -{ - switch (xkeysym) { - case EEK_KEYSYM_Shift_L: - case EEK_KEYSYM_Shift_R: - case EEK_KEYSYM_Caps_Lock: - case EEK_KEYSYM_Shift_Lock: - return EEK_SHIFT_MASK; - case EEK_KEYSYM_ISO_Level3_Shift: - return EEK_BUTTON1_MASK; - case EEK_KEYSYM_Control_L: - case EEK_KEYSYM_Control_R: - return EEK_CONTROL_MASK; - case EEK_KEYSYM_Alt_L: - case EEK_KEYSYM_Alt_R: - return EEK_MOD1_MASK; - case EEK_KEYSYM_Meta_L: - case EEK_KEYSYM_Meta_R: - return EEK_META_MASK; - case EEK_KEYSYM_Super_L: - case EEK_KEYSYM_Super_R: - return EEK_SUPER_MASK; - case EEK_KEYSYM_Hyper_L: - case EEK_KEYSYM_Hyper_R: - return EEK_HYPER_MASK; - } - return 0; -} - -/** - * eek_keysym_new_with_modifier: - * @xkeysym: an X keysym value - * @modifier_mask: modifier assigned to @xkeysym - * - * Create an #EekKeysym with given X keysym value @xkeysym and - * modifier @modifier_mask. - */ -EekSymbol *eek_keysym_new_with_modifier(guint xkeysym, - EekModifierType modifier_mask) -{ - EekKeysymEntry *special_entry, *xkeysym_entry, *unicode_entry, - *unichar_entry; - gchar *name, *label; - gunichar uc; - - special_entry = - find_keysym_entry_by_xkeysym (xkeysym, - special_keysym_entries, - G_N_ELEMENTS(special_keysym_entries)); - xkeysym_entry = - find_keysym_entry_by_xkeysym (xkeysym, - xkeysym_keysym_entries, - G_N_ELEMENTS(xkeysym_keysym_entries)); - unicode_entry = - find_keysym_entry_by_xkeysym (xkeysym, - unicode_keysym_entries, - G_N_ELEMENTS(unicode_keysym_entries)); - unichar_entry = NULL; - if (get_unichar (xkeysym, &uc)) { - unichar_entry = g_slice_new (EekKeysymEntry); - unichar_entry->xkeysym = xkeysym; - unichar_entry->name = unichar_to_utf8 (uc); - } - - name = NULL; - if (xkeysym_entry) { - name = g_strdup (xkeysym_entry->name); - } else if (unichar_entry) { - name = g_strdup (unichar_entry->name); - } else if (unicode_entry) { - name = g_strdup (unicode_entry->name); - } else { - name = g_strdup (""); - } - - /* label */ - if (special_entry) - label = g_strdup (special_entry->name); - else if (unichar_entry) - label = g_strdup (unichar_entry->name); - else if (unicode_entry) - label = g_strdup (unicode_entry->name); - else - label = g_strdup (name); - - EekSymbol *keysym = eek_symbol_new(name); - eek_symbol_set_label(keysym, label); - eek_symbol_set_modifier_mask(keysym, modifier_mask); - - g_free (name); - g_free (label); - - if (unichar_entry) { - g_free ((gpointer) unichar_entry->name); - g_slice_free (EekKeysymEntry, unichar_entry); - } - - keysym->xkeysym = xkeysym; - - return keysym; -} - -/** - * eek_keysym_new: - * @xkeysym: an X keysym value - * - * Create an #EekKeysym with given X keysym value @xkeysym. - */ -EekSymbol* -eek_keysym_new (guint xkeysym) -{ - return eek_keysym_new_with_modifier (xkeysym, get_modifier_mask (xkeysym)); -} - guint32 eek_keysym_from_name (const gchar *name) { @@ -238,37 +65,3 @@ eek_keysym_from_name (const gchar *name) } return 0; } - -/** - * eek_keysym_new_from_name: - * @name: an X keysym name - * - * Create an #EekKeysym with an X keysym value looked up by @name. - */ -EekSymbol* -eek_keysym_new_from_name (const gchar *name) -{ - guint32 xkeysym = eek_keysym_from_name(name); - if (xkeysym != 0) { - return eek_keysym_new(xkeysym); - } - - EekSymbol *ret = eek_symbol_new(name); - eek_symbol_set_label(ret, name); - return ret; -} - -/** - * eek_keysym_get_xkeysym: - * @keysym: an #EekKeysym - * - * Get an X keysym value associated with @keysym - */ -guint -eek_keysym_get_xkeysym (EekSymbol *keysym) -{ - if (keysym->xkeysym == 0) { - g_warning("Symbol %s was expected to have a valid keysym", keysym->name); - } - return keysym->xkeysym; -} diff --git a/eek/eek-keysym.h b/eek/eek-keysym.h index e849dd43..3056a165 100644 --- a/eek/eek-keysym.h +++ b/eek/eek-keysym.h @@ -25,26 +25,8 @@ #ifndef EEK_KEYSYM_H #define EEK_KEYSYM_H 1 -#include -#include "eek-symbol.h" - -G_BEGIN_DECLS - -/** - * EEK_INVALID_KEYSYM: - * - * Pseudo keysym used for error reporting. - */ -#define EEK_INVALID_KEYSYM (0) - -EekSymbol *eek_keysym_new (guint xkeysym); -guint eek_keysym_get_xkeysym (EekSymbol *keysym); +#include "glib.h" guint32 eek_keysym_from_name (const gchar *name); -EekSymbol *eek_keysym_new_from_name (const gchar *name); -EekSymbol *eek_keysym_new_with_modifier (guint xkeysym, - EekModifierType modifier_mask); - -G_END_DECLS #endif /* EEK_KEYSYM_H */ diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c index aff548f0..1e777814 100644 --- a/eek/eek-renderer.c +++ b/eek/eek-renderer.c @@ -23,10 +23,11 @@ #include #include #include -#include #include "eek-key.h" #include "eek-section.h" +#include "src/symbol.h" + #include "eek-renderer.h" enum { diff --git a/eek/eek-renderer.h b/eek/eek-renderer.h index 902464c9..536d41c0 100644 --- a/eek/eek-renderer.h +++ b/eek/eek-renderer.h @@ -21,9 +21,10 @@ #ifndef EEK_RENDERER_H #define EEK_RENDERER_H 1 +#include #include + #include "eek-keyboard.h" -#include "eek-keysym.h" #include "eek-types.h" G_BEGIN_DECLS diff --git a/eek/eek-section.c b/eek/eek-section.c index a1521ee6..54da8801 100644 --- a/eek/eek-section.c +++ b/eek/eek-section.c @@ -32,9 +32,9 @@ #include #include "eek-keyboard.h" -#include "eek-section.h" #include "eek-key.h" -#include "eek-symbol.h" + +#include "eek-section.h" enum { PROP_0, diff --git a/eek/eek-symbol.h b/eek/eek-symbol.h deleted file mode 100644 index c520599a..00000000 --- a/eek/eek-symbol.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2011 Daiki Ueno - * Copyright (C) 2011 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - -#if !defined(__EEK_H_INSIDE__) && !defined(EEK_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef EEK_SYMBOL_H -#define EEK_SYMBOL_H 1 - -#include "eek-types.h" -#include "src/symbol.h" - - -G_BEGIN_DECLS - -/** - * EekSymbolCategory: - * @EEK_SYMBOL_CATEGORY_LETTER: the symbol represents an alphabet letter - * @EEK_SYMBOL_CATEGORY_FUNCTION: the symbol represents a function - * @EEK_SYMBOL_CATEGORY_KEYNAME: the symbol does not have meaning but - * have a name - * @EEK_SYMBOL_CATEGORY_USER0: reserved for future use - * @EEK_SYMBOL_CATEGORY_USER1: reserved for future use - * @EEK_SYMBOL_CATEGORY_USER2: reserved for future use - * @EEK_SYMBOL_CATEGORY_USER3: reserved for future use - * @EEK_SYMBOL_CATEGORY_USER4: reserved for future use - * @EEK_SYMBOL_CATEGORY_UNKNOWN: used for error reporting - * @EEK_SYMBOL_CATEGORY_LAST: the last symbol category - * - * Category of the key symbols. - */ -typedef enum { - EEK_SYMBOL_CATEGORY_LETTER, - EEK_SYMBOL_CATEGORY_FUNCTION, - EEK_SYMBOL_CATEGORY_KEYNAME, - EEK_SYMBOL_CATEGORY_USER0, - EEK_SYMBOL_CATEGORY_USER1, - EEK_SYMBOL_CATEGORY_USER2, - EEK_SYMBOL_CATEGORY_USER3, - EEK_SYMBOL_CATEGORY_USER4, - EEK_SYMBOL_CATEGORY_UNKNOWN, - EEK_SYMBOL_CATEGORY_LAST = EEK_SYMBOL_CATEGORY_UNKNOWN -} EekSymbolCategory; - - -typedef struct _EekSymbol -{ - /// Canonical name of the symbol - gchar *name; - /// Text used to display the symbol - gchar *label; - EekSymbolCategory category; - EekModifierType modifier_mask; - /// Icon name used to render the symbol - gchar *icon_name; - /// Tooltip text - gchar *tooltip; - - // May not be present - guint xkeysym; - gchar *text; -} EekSymbol; - -EekSymbol *eek_symbol_new (const gchar *name); -void eek_symbol_free (EekSymbol *symbol); -void eek_symbol_set_name (EekSymbol *symbol, - const gchar *name); -const gchar *eek_symbol_get_name (EekSymbol *symbol); -void eek_symbol_set_label (EekSymbol *symbol, - const gchar *label); -const gchar *eek_symbol_get_label (EekSymbol *symbol); -void eek_symbol_set_category (EekSymbol *symbol, - EekSymbolCategory category); -EekSymbolCategory eek_symbol_get_category (EekSymbol *symbol); -EekModifierType eek_symbol_get_modifier_mask (EekSymbol *symbol); -void eek_symbol_set_modifier_mask (EekSymbol *symbol, - EekModifierType mask); -void eek_symbol_set_icon_name (EekSymbol *symbol, - const gchar *icon_name); -const gchar *eek_symbol_get_icon_name (EekSymbol *symbol); -void eek_symbol_set_tooltip (EekSymbol *symbol, - const gchar *tooltip); -const gchar * eek_symbol_get_tooltip (EekSymbol *symbol); - -const gchar *eek_symbol_category_get_name (EekSymbolCategory category); -EekSymbolCategory eek_symbol_category_from_name (const gchar *name); - -G_END_DECLS - -#endif /* EEK_SYMBOL_H */ diff --git a/eek/eek-xml-layout.c b/eek/eek-xml-layout.c index 47ccfa40..1d6a194e 100644 --- a/eek/eek-xml-layout.c +++ b/eek/eek-xml-layout.c @@ -27,16 +27,15 @@ #include #include -#include "eek-xml-layout.h" #include "eek-keyboard.h" #include "eek-section.h" #include "eek-key.h" -#include "eek-keysym.h" -#include "eek-text.h" #include "src/symbol.h" #include "squeekboard-resources.h" +#include "eek-xml-layout.h" + enum { PROP_0, PROP_ID, diff --git a/eek/eek.h b/eek/eek.h index 8a27a445..6f0abcb4 100644 --- a/eek/eek.h +++ b/eek/eek.h @@ -26,9 +26,7 @@ #include "eek-section.h" #include "eek-key.h" #include "eek-layout.h" -#include "eek-symbol.h" #include "eek-keysym.h" -#include "eek-text.h" #include "eek-serializable.h" void eek_init (void); diff --git a/eek/meson.build b/eek/meson.build index 851710b4..9e3880d6 100644 --- a/eek/meson.build +++ b/eek/meson.build @@ -1,7 +1,6 @@ gnome = import('gnome') enum_headers = [ - 'eek-symbol.h', 'eek-types.h', ] diff --git a/eekboard/key-emitter.c b/eekboard/key-emitter.c index 4f7dd1d1..1151886c 100644 --- a/eekboard/key-emitter.c +++ b/eekboard/key-emitter.c @@ -22,6 +22,7 @@ #include "eekboard/key-emitter.h" #include +#include #include "eekboard/eekboard-context-service.h" diff --git a/src/meson.build b/src/meson.build index 09e96754..9ffe478b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -27,8 +27,6 @@ sources = [ '../eek/eek-renderer.c', '../eek/eek-section.c', '../eek/eek-serializable.c', - '../eek/eek-symbol.c', - '../eek/eek-text.c', '../eek/eek-types.c', '../eek/eek-xml-layout.c', '../eek/layersurface.c',