From 62ef9da57bb7640d824c55a544d844fb18016aae Mon Sep 17 00:00:00 2001 From: horwitz Date: Sun, 10 Feb 2008 21:00:48 +0000 Subject: [PATCH] Core:Add:Add support for customizable background color to xmlconfig. git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@856 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/src/graphics.c | 4 ++++ navit/src/layout.c | 4 +++- navit/src/layout.h | 7 ++++--- navit/src/navit.dtd | 1 + navit/src/navit.xml | 4 ++-- navit/src/xmlconfig.c | 4 +++- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/navit/src/graphics.c b/navit/src/graphics.c index dc2e631..125b5c2 100644 --- a/navit/src/graphics.c +++ b/navit/src/graphics.c @@ -548,6 +548,10 @@ void graphics_displaylist_draw(struct graphics *gra, struct displaylist *displaylist, struct transformation *trans, GList *layouts) { int order=transform_get_order(trans); + // FIXME find a better place to set the background color + graphics_gc_set_background(gra->gc[0], ((struct layout *)layouts->data)->color); + graphics_gc_set_foreground(gra->gc[0], ((struct layout *)layouts->data)->color); + gra->meth.background_gc(gra->priv, gra->gc[0]->priv); gra->meth.draw_mode(gra->priv, draw_mode_begin); xdisplay_draw(displaylist->dl, gra, layouts, order); gra->meth.draw_mode(gra->priv, draw_mode_end); diff --git a/navit/src/layout.c b/navit/src/layout.c index b47dad4..3acec7e 100644 --- a/navit/src/layout.c +++ b/navit/src/layout.c @@ -2,12 +2,14 @@ #include #include "layout.h" -struct layout * layout_new(const char *name) +struct layout * layout_new(const char *name, struct color *color) { struct layout *l; l = g_new0(struct layout, 1); l->name = g_strdup(name); + l->color = g_new0(struct color,1); + *(l->color) = *color; return l; } diff --git a/navit/src/layout.h b/navit/src/layout.h index ddf90ba..fcf60d5 100644 --- a/navit/src/layout.h +++ b/navit/src/layout.h @@ -37,18 +37,19 @@ struct itemtype { GList *elements; }; +struct color; + struct layer { char *name; int details; GList *itemtypes; }; -struct layout { char *name; GList *layers; }; +struct layout { char *name; struct color *color; GList *layers; }; /* prototypes */ enum item_type; -struct color; struct element; struct itemtype; struct layer; struct layout; -struct layout *layout_new(const char *name); +struct layout *layout_new(const char *name, struct color *color); struct layer *layer_new(const char *name, int details); void layout_add_layer(struct layout *layout, struct layer *layer); struct itemtype *itemtype_new(int order_min, int order_max); diff --git a/navit/src/navit.dtd b/navit/src/navit.dtd index 374e0d9..3102dcf 100644 --- a/navit/src/navit.dtd +++ b/navit/src/navit.dtd @@ -54,6 +54,7 @@ + diff --git a/navit/src/navit.xml b/navit/src/navit.xml index 1dda0ad..e933a9d 100644 --- a/navit/src/navit.xml +++ b/navit/src/navit.xml @@ -70,7 +70,7 @@ Change to your home coordinates. - + @@ -998,7 +998,7 @@ Change to your home coordinates. - + diff --git a/navit/src/xmlconfig.c b/navit/src/xmlconfig.c index 1a8e3b9..f3e7688 100644 --- a/navit/src/xmlconfig.c +++ b/navit/src/xmlconfig.c @@ -437,10 +437,12 @@ static int xmlconfig_layout(struct xmlstate *state) { const char *name=find_attribute(state, "name", 1); + struct color color = {0xffff, 0xefef, 0xb7b7, 0xffff}; if (! name) return 0; - state->element_object = layout_new(name); + find_color(state, 1, &color); + state->element_object = layout_new(name, &color); if (! state->element_object) return 0; navit_add_layout(state->parent->element_object, state->element_object); -- 2.7.4