Add XML layout engine (WIP).

This commit is contained in:
Daiki Ueno
2011-01-26 19:24:06 +09:00
parent 0dd37a39b9
commit d29e83e5f6
8 changed files with 65 additions and 28 deletions

View File

@ -35,8 +35,17 @@ libeek_public_headers = \
$(srcdir)/eek-key.h \
$(srcdir)/eek-types.h \
$(srcdir)/eek-keysym.h \
$(srcdir)/eek-xml.h \
$(srcdir)/eek.h
libeek_private_headers = \
$(srcdir)/eek-renderer.h \
$(srcdir)/eek-xml-layout.h \
$(srcdir)/eek-special-keysym-labels.h \
$(srcdir)/eek-unicode-keysym-labels.h \
$(srcdir)/eek-keyname-keysym-labels.h \
$(srcdir)/eek-marshallers.h
libeek_sources = \
$(srcdir)/eek-layout.c \
$(srcdir)/eek-element.c \
@ -46,6 +55,8 @@ libeek_sources = \
$(srcdir)/eek-key.c \
$(srcdir)/eek-types.c \
$(srcdir)/eek-keysym.c \
$(srcdir)/eek-xml.c \
$(srcdir)/eek-xml-layout.c \
$(srcdir)/eek-renderer.c \
$(srcdir)/eek-keyboard-drawing.c
@ -62,13 +73,6 @@ libeek_marshallers_sources = \
$(srcdir)/eek-marshallers.c \
$(srcdir)/eek-marshallers.h
libeek_private_headers = \
$(srcdir)/eek-renderer.h \
$(srcdir)/eek-special-keysym-labels.h \
$(srcdir)/eek-unicode-keysym-labels.h \
$(srcdir)/eek-keyname-keysym-labels.h \
$(srcdir)/eek-marshallers.h
BUILT_SOURCES = \
$(libeek_keysym_sources) \
$(libeek_marshallers_sources)
@ -77,8 +81,8 @@ libeek_la_SOURCES = \
$(libeek_sources) \
$(srcdir)/eek-marshallers.c
libeek_la_CFLAGS = $(GOBJECT2_CFLAGS) $(PANGOCAIRO_CFLAGS)
libeek_la_LIBADD = $(GOBJECT2_LIBS) $(PANGOCAIRO_LIBS) -lm
libeek_la_CFLAGS = $(GIO2_CFLAGS) $(PANGOCAIRO_CFLAGS)
libeek_la_LIBADD = $(GIO2_LIBS) $(PANGOCAIRO_LIBS) -lm
if HAVE_CLUTTER
libeek_clutter_public_headers = \
@ -198,7 +202,7 @@ if HAVE_INTROSPECTION
Eek@EEK_LIBRARY_SUFFIX@.gir: libeek.la
Eek@EEK_LIBRARY_SUFFIX_U@_gir_SCANNERFLAGS = --strip-prefix=Eek --pkg=glib-2.0
Eek@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GLib-2.0 GObject-2.0
Eek@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0
Eek@EEK_LIBRARY_SUFFIX_U@_gir_CFLAGS = $(libeek_la_CFLAGS)
Eek@EEK_LIBRARY_SUFFIX_U@_gir_LIBS = libeek.la
Eek@EEK_LIBRARY_SUFFIX_U@_gir_FILES = $(libeek_sources) $(libeek_public_headers)

View File

@ -83,9 +83,12 @@ validate (const gchar *element_name,
{
gint i;
gchar *element_path;
GSList *head;
head = g_slist_prepend (element_stack, element_name);
element_path = join_element_names (head);
g_slist_free1 (head);
element_stack = g_slist_prepend (element_stack, element_name);
element_path = join_element_names (element_stack);
for (i = 0; i < G_N_ELEMENTS(valid_path_list); i++) {
if (*valid_path_list[i] == '@')
continue;
@ -163,11 +166,11 @@ end_element_callback (GMarkupParseContext *pcontext,
GError **error)
{
ParseCallbackData *data = user_data;
GSList *head = data->element_stack;
g_free (data->element_stack->data);
data->element_stack = g_slist_remove_link (data->element_stack,
data->element_stack);
g_slist_free1 (data->element_stack);
g_free (head->data);
data->element_stack = g_slist_next (data->element_stack);
g_slist_free1 (head);
}
static void

View File

@ -25,5 +25,6 @@
#include "eek-key.h"
#include "eek-layout.h"
#include "eek-keysym.h"
#include "eek-xml.h"
#endif /* EEK_H */