* @color: the new color
*
* Sets the color.
+ *
+ * Since: 3.4
*/
void
gtk_color_chooser_set_rgba (GtkColorChooser *chooser,
* %FALSE for columns
* @colors_per_line: the number of colors to show in each row/column
* @n_colors: the total number of elements in @colors
- * @colors: (array length=n_colors): the colors of the palette
+ * @colors: (allow-none) (array length=n_colors): the colors of the palette, or %NULL
*
* Adds a palette to the color chooser. If @horizontal is %TRUE,
* the colors are grouped in rows, with @colors_per_line colors
* Calling this function is called for the first time has the
* side effect of removing the default color and gray palettes
* from the color chooser.
+ *
+ * If @colors is %NULL, removes all previously added palettes.
+ *
+ * Since: 3.4
*/
void
gtk_color_chooser_add_palette (GtkColorChooser *chooser,
const GdkRGBA *color);
GDK_AVAILABLE_IN_3_4
gboolean gtk_color_chooser_get_use_alpha (GtkColorChooser *chooser);
+
GDK_AVAILABLE_IN_3_4
void gtk_color_chooser_set_use_alpha (GtkColorChooser *chooser,
gboolean use_alpha);
scale_round (color->blue, 100));
}
+static void
+remove_palette (GtkColorChooserWidget *cc)
+{
+ GList *children, *l;
+ GtkWidget *widget;
+
+ children = gtk_container_get_children (GTK_CONTAINER (cc->priv->palette));
+ for (l = children; l; l = l->next)
+ {
+ widget = l->data;
+ if (widget == cc->priv->custom_label || widget == cc->priv->custom)
+ continue;
+ gtk_container_remove (GTK_CONTAINER (cc->priv->palette), widget);
+ }
+ g_list_free (children);
+}
static void
add_palette (GtkColorChooserWidget *cc,
gint i;
gint left, right;
+ if (colors == NULL)
+ {
+ remove_palette (cc);
+ return;
+ }
+
grid = gtk_grid_new ();
gtk_widget_set_margin_bottom (grid, 12);
gtk_grid_set_row_spacing (GTK_GRID (grid), 2);
static void
remove_default_palette (GtkColorChooserWidget *cc)
{
- GList *children, *l;
- GtkWidget *widget;
-
if (!cc->priv->has_default_palette)
return;
- children = gtk_container_get_children (GTK_CONTAINER (cc->priv->palette));
- for (l = children; l; l = l->next)
- {
- widget = l->data;
- if (widget == cc->priv->custom_label || widget == cc->priv->custom)
- continue;
- gtk_container_remove (GTK_CONTAINER (cc->priv->palette), widget);
- }
- g_list_free (children);
-
+ remove_palette (cc);
cc->priv->has_default_palette = FALSE;
}
9, 9*9,
colors);
}
+ else if (g_strcmp0 (argv[i], "--no-palette") == 0)
+ {
+ gtk_color_chooser_add_palette (GTK_COLOR_CHOOSER (dialog),
+ FALSE, 0, NULL, 0);
+ }
}
g_signal_connect (dialog, "notify::color", G_CALLBACK (color_changed), NULL);