summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorJiří Techet <techet@gmail.com>2013-04-08 23:28:34 +0200
committerJiří Techet <techet@gmail.com>2013-04-08 23:28:34 +0200
commit07e60ba32b2cfab45024464ce7ffebf5aba11ee4 (patch)
treebd9e75e6c2add9b242bfedbbebfe50e280a2ca5e /demos
parent9a1bb96d4d9000277535ad57ebd0695eb16f68ad (diff)
downloadlibchamplain-07e60ba32b2cfab45024464ce7ffebf5aba11ee4.tar.gz
Use GdkRGBA and friends plus GdkGrid
Diffstat (limited to 'demos')
-rw-r--r--demos/local-rendering.c105
1 files changed, 56 insertions, 49 deletions
diff --git a/demos/local-rendering.c b/demos/local-rendering.c
index 37ca179..51b2ee4 100644
--- a/demos/local-rendering.c
+++ b/demos/local-rendering.c
@@ -31,6 +31,12 @@
#define COL_ID 0
#define COL_NAME 1
+#if !GTK_CHECK_VERSION(3,4,0)
+ #define GTK_COLOR_CHOOSER(x) GTK_COLOR_BUTTON(x)
+ #define gtk_color_chooser_set_rgba(chooser, color) gtk_color_button_set_rgba (chooser, color);
+ #define gtk_color_chooser_get_rgba(chooser, color) gtk_color_button_get_rgba (chooser, color);
+#endif
+
guint map_index = 0;
guint rules_index = 0;
static const char *maps[] = { "schaffhausen.osm", "las_palmas.osm" };
@@ -63,23 +69,24 @@ on_destroy (GtkWidget *widget, gpointer data)
static void
-color_gdk_to_clutter (const GdkColor *gdk_color,
+color_gdk_to_clutter (const GdkRGBA *gdk_color,
ClutterColor *clutter_color)
{
- clutter_color->red = CLAMP (((gdk_color->red / 65535.0) * 255), 0, 255);
- clutter_color->green = CLAMP (((gdk_color->green / 65535.0) * 255), 0, 255);
- clutter_color->blue = CLAMP (((gdk_color->blue / 65535.0) * 255), 0, 255);
- clutter_color->alpha = 255;
+ clutter_color->red = CLAMP ((gdk_color->red * 255), 0, 255);
+ clutter_color->green = CLAMP ((gdk_color->green * 255), 0, 255);
+ clutter_color->blue = CLAMP ((gdk_color->blue * 255), 0, 255);
+ clutter_color->alpha = CLAMP ((gdk_color->alpha * 255), 0, 255);
}
static void
color_clutter_to_gdk (const ClutterColor *clutter_color,
- GdkColor *gdk_color)
+ GdkRGBA *gdk_color)
{
- gdk_color->red = ((guint16) clutter_color->red) << 8;
- gdk_color->green = ((guint16) clutter_color->green) << 8;
- gdk_color->blue = ((guint16) clutter_color->blue) << 8;
+ gdk_color->red = clutter_color->red / 255.0;
+ gdk_color->green = clutter_color->green / 255.0;
+ gdk_color->blue = clutter_color->blue / 255.0;
+ gdk_color->alpha = clutter_color->alpha / 255.0;
}
@@ -141,7 +148,7 @@ load_rules_into_gui (ChamplainView *view)
GList *ids, *ptr;
GtkTreeModel *store;
GtkTreeIter iter;
- GdkColor gdk_color;
+ GdkRGBA gdk_color;
ClutterColor *clutter_color;
ChamplainMemphisRenderer *renderer;
@@ -153,7 +160,7 @@ load_rules_into_gui (ChamplainView *view)
color_clutter_to_gdk (clutter_color, &gdk_color);
clutter_color_free (clutter_color);
- gtk_color_button_set_color (GTK_COLOR_BUTTON (bg_button), &gdk_color);
+ gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (bg_button), &gdk_color);
store = gtk_tree_view_get_model (GTK_TREE_VIEW (rules_tree_view));
gtk_list_store_clear (GTK_LIST_STORE (store));
@@ -184,43 +191,43 @@ static void
rule_apply_cb (GtkWidget *widget, ChamplainMemphisRenderer *renderer)
{
ChamplainMemphisRule *rule = current_rule;
- GdkColor color;
+ GdkRGBA color;
if (rule->polygon)
{
- gtk_color_button_get_color (GTK_COLOR_BUTTON (polycolor), &color);
- rule->polygon->color_red = color.red >> 8;
- rule->polygon->color_green = color.green >> 8;
- rule->polygon->color_blue = color.blue >> 8;
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (polycolor), &color);
+ rule->polygon->color_red = color.red * 255;
+ rule->polygon->color_green = color.green * 255;
+ rule->polygon->color_blue = color.blue * 255;
rule->polygon->z_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (polyminz));
rule->polygon->z_max = gtk_spin_button_get_value (GTK_SPIN_BUTTON (polymaxz));
}
if (rule->line)
{
- gtk_color_button_get_color (GTK_COLOR_BUTTON (linecolor), &color);
- rule->line->color_red = color.red >> 8;
- rule->line->color_green = color.green >> 8;
- rule->line->color_blue = color.blue >> 8;
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (linecolor), &color);
+ rule->line->color_red = color.red * 255;
+ rule->line->color_green = color.green * 255;
+ rule->line->color_blue = color.blue * 255;
rule->line->size = gtk_spin_button_get_value (GTK_SPIN_BUTTON (linesize));
rule->line->z_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (lineminz));
rule->line->z_max = gtk_spin_button_get_value (GTK_SPIN_BUTTON (linemaxz));
}
if (rule->border)
{
- gtk_color_button_get_color (GTK_COLOR_BUTTON (bordercolor), &color);
- rule->border->color_red = color.red >> 8;
- rule->border->color_green = color.green >> 8;
- rule->border->color_blue = color.blue >> 8;
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (bordercolor), &color);
+ rule->border->color_red = color.red * 255;
+ rule->border->color_green = color.green * 255;
+ rule->border->color_blue = color.blue * 255;
rule->border->size = gtk_spin_button_get_value (GTK_SPIN_BUTTON (bordersize));
rule->border->z_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (borderminz));
rule->border->z_max = gtk_spin_button_get_value (GTK_SPIN_BUTTON (bordermaxz));
}
if (rule->text)
{
- gtk_color_button_get_color (GTK_COLOR_BUTTON (textcolor), &color);
- rule->text->color_red = color.red >> 8;
- rule->text->color_green = color.green >> 8;
- rule->text->color_blue = color.blue >> 8;
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (textcolor), &color);
+ rule->text->color_red = color.red * 255;
+ rule->text->color_green = color.green * 255;
+ rule->text->color_blue = color.blue * 255;
rule->text->size = gtk_spin_button_get_value (GTK_SPIN_BUTTON (textsize));
rule->text->z_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (textminz));
rule->text->z_max = gtk_spin_button_get_value (GTK_SPIN_BUTTON (textmaxz));
@@ -235,14 +242,14 @@ GtkWidget *
gtk_memphis_prop_new (gint type, ChamplainMemphisRuleAttr *attr)
{
GtkWidget *hbox, *cb, *sb1, *sb2, *sb3;
- GdkColor gcolor;
+ GdkRGBA gcolor;
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gcolor.red = ((guint16) attr->color_red) << 8;
- gcolor.green = ((guint16) attr->color_green) << 8;
- gcolor.blue = ((guint16) attr->color_blue) << 8;
- cb = gtk_color_button_new_with_color (&gcolor);
+ gcolor.red = attr->color_red / 255.0;
+ gcolor.green = attr->color_green / 255.0;
+ gcolor.blue = attr->color_blue / 255.0;
+ cb = gtk_color_button_new_with_rgba (&gcolor);
gtk_box_pack_start (GTK_BOX (hbox), cb, FALSE, FALSE, 0);
if (type != 0)
@@ -294,7 +301,7 @@ static void
create_rule_edit_window (ChamplainMemphisRule *rule, gchar *id,
ChamplainMemphisRenderer *renderer)
{
- GtkWidget *label, *table, *props, *button;
+ GtkWidget *label, *grid, *props, *button;
current_rule = rule;
@@ -308,9 +315,9 @@ create_rule_edit_window (ChamplainMemphisRule *rule, gchar *id,
g_signal_connect (G_OBJECT (rule_edit_window), "destroy",
G_CALLBACK (rule_window_close_cb), NULL);
- table = gtk_table_new (6, 2, FALSE);
- gtk_table_set_col_spacings (GTK_TABLE (table), 8);
- gtk_table_set_row_spacings (GTK_TABLE (table), 8);
+ grid = gtk_grid_new (); //6,2
+ gtk_grid_set_column_spacing (GTK_GRID (grid), 8);
+ gtk_grid_set_row_spacing (GTK_GRID (grid), 8);
label = gtk_label_new (NULL);
if (rule->type == CHAMPLAIN_MEMPHIS_RULE_TYPE_WAY)
@@ -322,35 +329,35 @@ create_rule_edit_window (ChamplainMemphisRule *rule, gchar *id,
else
gtk_label_set_markup (GTK_LABEL (label), "<b>Unknown type</b>");
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 2, 0, 1);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 2, 1);
if (rule->polygon != NULL)
{
label = gtk_label_new ("Polygon: ");
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 1, 2);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);
props = gtk_memphis_prop_new (0, rule->polygon);
- gtk_table_attach_defaults (GTK_TABLE (table), props, 1, 2, 1, 2);
+ gtk_grid_attach (GTK_GRID (grid), props, 1, 1, 1, 1);
}
if (rule->line != NULL)
{
label = gtk_label_new ("Line: ");
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 2, 1, 1);
props = gtk_memphis_prop_new (1, rule->line);
- gtk_table_attach_defaults (GTK_TABLE (table), props, 1, 2, 2, 3);
+ gtk_grid_attach (GTK_GRID (grid), props, 1, 2, 1, 1);
}
if (rule->border != NULL)
{
label = gtk_label_new ("Border: ");
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 3, 4);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 3, 1, 1);
props = gtk_memphis_prop_new (2, rule->border);
- gtk_table_attach_defaults (GTK_TABLE (table), props, 1, 2, 3, 4);
+ gtk_grid_attach (GTK_GRID (grid), props, 1, 3, 1, 1);
}
if (rule->text != NULL)
{
label = gtk_label_new ("Text: ");
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 4, 5);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 4, 1, 1);
props = gtk_memphis_prop_new (3, rule->text);
- gtk_table_attach_defaults (GTK_TABLE (table), props, 1, 2, 4, 5);
+ gtk_grid_attach (GTK_GRID (grid), props, 1, 4, 1, 1);
}
GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
@@ -365,7 +372,7 @@ create_rule_edit_window (ChamplainMemphisRule *rule, gchar *id,
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
GtkWidget *mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_pack_start (GTK_BOX (mainbox), table, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (mainbox), grid, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (mainbox), vbox, FALSE, FALSE, 0);
gtk_container_add (GTK_CONTAINER (rule_edit_window), mainbox);
@@ -407,9 +414,9 @@ request_osm_data_cb (GtkWidget *widget, ChamplainView *view)
void
bg_color_set_cb (GtkColorButton *widget, ChamplainView *view)
{
- GdkColor gdk_color;
+ GdkRGBA gdk_color;
- gtk_color_button_get_color (widget, &gdk_color);
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &gdk_color);
if (strncmp (champlain_map_source_get_id (tile_source), "memphis", 7) == 0)
{