Embed keycode as <key id="key<keycode>"> in the XML output.
This commit is contained in:
@ -64,7 +64,6 @@ struct _ParseCallbackData {
|
|||||||
gint num_columns;
|
gint num_columns;
|
||||||
EekOrientation orientation;
|
EekOrientation orientation;
|
||||||
GSList *points;
|
GSList *points;
|
||||||
guint keycode;
|
|
||||||
GSList *symbols;
|
GSList *symbols;
|
||||||
gint groups, levels;
|
gint groups, levels;
|
||||||
EekOutline outline;
|
EekOutline outline;
|
||||||
@ -205,6 +204,8 @@ start_element_callback (GMarkupParseContext *pcontext,
|
|||||||
data->key = eek_section_create_key (data->section, column, row);
|
data->key = eek_section_create_key (data->section, column, row);
|
||||||
if (name)
|
if (name)
|
||||||
eek_element_set_name (EEK_ELEMENT(data->key), name);
|
eek_element_set_name (EEK_ELEMENT(data->key), name);
|
||||||
|
if (id && g_str_has_prefix (id, "key"))
|
||||||
|
eek_key_set_keycode (data->key, strtoul (id + 3, NULL, 10));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,10 +270,11 @@ end_element_callback (GMarkupParseContext *pcontext,
|
|||||||
} else
|
} else
|
||||||
matrix->data[i] = NULL;
|
matrix->data[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
eek_key_set_symbol_matrix (data->key, matrix);
|
|
||||||
g_slist_free (data->symbols);
|
g_slist_free (data->symbols);
|
||||||
data->symbols = NULL;
|
data->symbols = NULL;
|
||||||
|
|
||||||
|
eek_key_set_symbol_matrix (data->key, matrix);
|
||||||
|
eek_symbol_matrix_free (matrix);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -374,15 +376,11 @@ end_element_callback (GMarkupParseContext *pcontext,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_strcmp0 (element_name, "keycode") == 0) {
|
|
||||||
eek_key_set_keycode (data->key, strtoul (text, NULL, 10));
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_strcmp0 (element_name, "keysym") == 0) {
|
if (g_strcmp0 (element_name, "keysym") == 0) {
|
||||||
data->symbols =
|
gchar *name = g_strdup (text);
|
||||||
g_slist_prepend (data->symbols,
|
data->symbols = g_slist_prepend (data->symbols,
|
||||||
eek_keysym_new_from_name (g_strdup (text)));
|
eek_keysym_new_from_name (name));
|
||||||
|
g_free (name);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -78,17 +78,20 @@ output_key_callback (EekElement *element, gpointer user_data)
|
|||||||
gint i, num_symbols;
|
gint i, num_symbols;
|
||||||
EekSymbolMatrix *matrix;
|
EekSymbolMatrix *matrix;
|
||||||
gint column, row;
|
gint column, row;
|
||||||
|
guint keycode = eek_key_get_keycode (EEK_KEY(element));
|
||||||
|
|
||||||
eek_key_get_index (EEK_KEY(element), &column, &row);
|
eek_key_get_index (EEK_KEY(element), &column, &row);
|
||||||
g_string_append_indent (data->output, data->indent);
|
g_string_append_indent (data->output, data->indent);
|
||||||
if (eek_element_get_name (element))
|
if (eek_element_get_name (element))
|
||||||
g_string_markup_printf (data->output,
|
g_string_markup_printf (data->output,
|
||||||
"<key column=\"%d\" row=\"%d\" name=\"%s\">\n",
|
"<key id=\"key%u\" column=\"%d\" row=\"%d\" "
|
||||||
column, row, eek_element_get_name (element));
|
"name=\"%s\">\n",
|
||||||
|
keycode, column, row,
|
||||||
|
eek_element_get_name (element));
|
||||||
else
|
else
|
||||||
g_string_markup_printf (data->output,
|
g_string_markup_printf (data->output,
|
||||||
"<key column=\"%d\" row=\"%d\">\n",
|
"<key id=\"key%d\" column=\"%d\" row=\"%d\">\n",
|
||||||
column, row);
|
keycode, column, row);
|
||||||
|
|
||||||
eek_element_get_bounds (element, &bounds);
|
eek_element_get_bounds (element, &bounds);
|
||||||
g_string_append_indent (data->output, data->indent + 1);
|
g_string_append_indent (data->output, data->indent + 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user