[gtk+/wip/colorchooser-v2: 51/77] color-widget: use a GtkBox for the custom section
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/colorchooser-v2: 51/77] color-widget: use a GtkBox for the custom section
- Date: Thu, 9 Feb 2012 21:30:36 +0000 (UTC)
commit 53d0ae9c89b8fbb4470428892b45a8b98349bf90
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Wed Feb 8 18:06:50 2012 -0500
color-widget: use a GtkBox for the custom section
Since we only allow a single row there, it's better to just use a
GtkBox, and use :first-child, :last-child and :only-child to style
swatches in there.
gtk/gtkcolorchooserwidget.c | 68 +++++++++++++++---------------------------
1 files changed, 24 insertions(+), 44 deletions(-)
---
diff --git a/gtk/gtkcolorchooserwidget.c b/gtk/gtkcolorchooserwidget.c
index 530eca4..117ddb8 100644
--- a/gtk/gtkcolorchooserwidget.c
+++ b/gtk/gtkcolorchooserwidget.c
@@ -178,15 +178,15 @@ save_custom_colors (GtkColorChooserWidget *cc)
GVariantBuilder builder;
GVariant *variant;
GdkRGBA color;
+ GList *children, *l;
GtkWidget *child;
- gint i;
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(dddd)"));
- i = 1;
- while ((child = gtk_grid_get_child_at (GTK_GRID (cc->priv->custom), i, 0)) != NULL)
+ children = gtk_container_get_children (GTK_CONTAINER (cc->priv->custom));
+ for (l = g_list_nth (children, 1); l != NULL; l = l->next)
{
- i++;
+ child = l->data;
if (gtk_color_swatch_get_rgba (GTK_COLOR_SWATCH (child), &color))
g_variant_builder_add (&builder, "(dddd)",
color.red, color.green, color.blue, color.alpha);
@@ -194,6 +194,8 @@ save_custom_colors (GtkColorChooserWidget *cc)
variant = g_variant_builder_end (&builder);
g_settings_set_value (cc->priv->settings, "custom-colors", variant);
+
+ g_list_free (children);
}
static void
@@ -384,7 +386,7 @@ add_default_palette (GtkColorChooserWidget *cc)
static void
gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
{
- GtkWidget *grid;
+ GtkWidget *box;
GtkWidget *p;
GtkWidget *alignment;
GtkWidget *button;
@@ -403,10 +405,9 @@ gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
add_default_palette (cc);
- cc->priv->custom = grid = gtk_grid_new ();
- g_object_set (grid, "margin-top", 12, NULL);
- gtk_grid_set_column_spacing (GTK_GRID (grid), 4);
- gtk_box_pack_end (GTK_BOX (cc->priv->palette), grid, FALSE, TRUE, 0);
+ cc->priv->custom = box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
+ g_object_set (box, "margin-top", 12, NULL);
+ gtk_box_pack_end (GTK_BOX (cc->priv->palette), box, FALSE, TRUE, 0);
/* translators: label for the custom section in the color chooser */
cc->priv->custom_label = label = gtk_label_new (_("Custom"));
@@ -414,10 +415,9 @@ gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
gtk_box_pack_end (GTK_BOX (cc->priv->palette), label, FALSE, TRUE, 0);
cc->priv->button = button = gtk_color_swatch_new ();
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (button), 10, 10, 10, 10);
connect_button_signals (button, cc);
gtk_color_swatch_set_icon (GTK_COLOR_SWATCH (button), "list-add-symbolic");
- gtk_grid_attach (GTK_GRID (grid), button, 0, 0, 1, 1);
+ gtk_container_add (GTK_CONTAINER (box), button);
cc->priv->settings = g_settings_new_with_path ("org.gtk.Settings.ColorChooser",
"/org/gtk/settings/color-chooser/");
@@ -429,31 +429,16 @@ gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
{
i++;
p = gtk_color_swatch_new ();
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (p), 1, 1, 1, 1);
gtk_color_swatch_set_rgba (GTK_COLOR_SWATCH (p), &color);
gtk_color_swatch_set_can_drop (GTK_COLOR_SWATCH (p), TRUE);
connect_custom_signals (p, cc);
- gtk_grid_attach (GTK_GRID (grid), p, i, 0, 1, 1);
+ gtk_container_add (GTK_CONTAINER (box), p);
if (i == 8)
break;
}
g_variant_unref (variant);
- if (i > 0)
- {
- if (gtk_widget_get_direction (GTK_WIDGET (cc)) == GTK_TEXT_DIR_LTR)
- {
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (p), 1, 10, 10, 1);
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (button), 10, 1, 1, 10);
- }
- else
- {
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (button), 1, 10, 10, 1);
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (p), 10, 1, 1, 10);
- }
- }
-
cc->priv->editor = gtk_color_editor_new ();
alignment = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_container_add (GTK_CONTAINER (cc), alignment);
@@ -607,29 +592,24 @@ add_custom_color (GtkColorChooserWidget *cc,
{
GtkWidget *last;
GtkWidget *p;
+ GList *children;
- last = gtk_grid_get_child_at (GTK_GRID (cc->priv->custom), 8, 0);
- if (last)
+ children = gtk_container_get_children (GTK_CONTAINER (cc->priv->custom));
+ if (g_list_length (children) == 8)
{
- gtk_container_remove (GTK_CONTAINER (cc->priv->custom), last);
- last = gtk_grid_get_child_at (GTK_GRID (cc->priv->custom), 7, 0);
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (last), 1, 10, 10, 1);
+ last = g_list_last (children)->data;
+ gtk_widget_destroy (last);
}
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (cc->priv->button), 10, 1, 1, 10);
+ g_list_free (children);
p = gtk_color_swatch_new ();
gtk_color_swatch_set_rgba (GTK_COLOR_SWATCH (p), color);
gtk_color_swatch_set_can_drop (GTK_COLOR_SWATCH (p), TRUE);
connect_custom_signals (p, cc);
- if (gtk_grid_get_child_at (GTK_GRID (cc->priv->custom), 1, 0) != NULL)
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (p), 1, 1, 1, 1);
- else
- gtk_color_swatch_set_corner_radii (GTK_COLOR_SWATCH (p), 1, 10, 10, 1);
-
- gtk_grid_insert_next_to (GTK_GRID (cc->priv->custom), cc->priv->button, GTK_POS_RIGHT);
- gtk_grid_attach (GTK_GRID (cc->priv->custom), p, 1, 0, 1, 1);
+ gtk_container_add (GTK_CONTAINER (cc->priv->custom), p);
+ gtk_box_reorder_child (GTK_BOX (cc->priv->custom), p, 1);
gtk_widget_show (p);
select_swatch (cc, GTK_COLOR_SWATCH (p));
@@ -644,17 +624,17 @@ gtk_color_chooser_widget_set_rgba (GtkColorChooser *chooser,
GList *children, *l;
GList *palettes, *p;
GtkColorSwatch *swatch;
- GtkWidget *grid;
+ GtkWidget *w;
GdkRGBA c;
palettes = gtk_container_get_children (GTK_CONTAINER (cc->priv->palette));
for (p = palettes; p; p = p->next)
{
- grid = p->data;
- if (!GTK_IS_GRID (grid))
+ w = p->data;
+ if (!GTK_IS_GRID (w) && !GTK_IS_BOX (w))
continue;
- children = gtk_container_get_children (GTK_CONTAINER (grid));
+ children = gtk_container_get_children (GTK_CONTAINER (w));
for (l = children; l; l = l->next)
{
swatch = l->data;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]