diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2018-08-20 21:12:06 -0400 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2018-08-20 21:12:06 -0400 |
commit | 63e87c2d0c9d263f14c77b68f85c67d46ece82a9 (patch) | |
tree | 6260365cbf7d24f37d27669e8538227fcb72e243 /gtk+-mingw/share/gtk-3.0/demo/colorsel.c | |
parent | a4460f6d9453bbd7e584937686449cef3e19f052 (diff) |
Diffstat (limited to 'gtk+-mingw/share/gtk-3.0/demo/colorsel.c')
-rw-r--r-- | gtk+-mingw/share/gtk-3.0/demo/colorsel.c | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/gtk+-mingw/share/gtk-3.0/demo/colorsel.c b/gtk+-mingw/share/gtk-3.0/demo/colorsel.c deleted file mode 100644 index 73042f9..0000000 --- a/gtk+-mingw/share/gtk-3.0/demo/colorsel.c +++ /dev/null @@ -1,133 +0,0 @@ -/* Color Chooser - * - * A GtkColorChooser lets the user choose a color. There are several - * implementations of the GtkColorChooser interface in GTK+. The - * GtkColorChooserDialog is a prebuilt dialog containing a - * GtkColorChooserWidget. - */ - -#include <gtk/gtk.h> - -static GtkWidget *window = NULL; -static GtkWidget *da; -static GdkRGBA color; -static GtkWidget *frame; - -/* draw callback for the drawing area - */ -static gboolean -draw_callback (GtkWidget *widget, - cairo_t *cr, - gpointer data) -{ - GtkStyleContext *context; - GdkRGBA rgba; - - context = gtk_widget_get_style_context (widget); - gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &rgba); - gdk_cairo_set_source_rgba (cr, &rgba); - cairo_paint (cr); - - return TRUE; -} - -static void -response_cb (GtkDialog *dialog, - gint response_id, - gpointer user_data) -{ - if (response_id == GTK_RESPONSE_OK) - { - gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color); - gtk_widget_override_background_color (da, 0, &color); - } - - gtk_widget_hide (GTK_WIDGET (dialog)); -} - -static void -change_color_callback (GtkWidget *button, - gpointer data) -{ - GtkWidget *dialog; - - dialog = gtk_color_chooser_dialog_new ("Changing color", GTK_WINDOW (window)); - gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color); - - g_signal_connect (dialog, - "response", - G_CALLBACK (response_cb), - NULL); - - gtk_widget_show_all (dialog); -} - -GtkWidget * -do_colorsel (GtkWidget *do_widget) -{ - GtkWidget *vbox; - GtkWidget *button; - - if (!window) - { - color.red = 0; - color.blue = 1; - color.green = 0; - color.alpha = 1; - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (do_widget)); - gtk_window_set_title (GTK_WINDOW (window), "Color Chooser"); - - g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), &window); - - gtk_container_set_border_width (GTK_CONTAINER (window), 8); - - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); - gtk_container_add (GTK_CONTAINER (window), vbox); - - /* - * Create the color swatch area - */ - - - frame = gtk_frame_new (NULL); - gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); - gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); - - da = gtk_drawing_area_new (); - - g_signal_connect (da, "draw", G_CALLBACK (draw_callback), NULL); - - /* set a minimum size */ - gtk_widget_set_size_request (da, 200, 200); - /* set the color */ - gtk_widget_override_background_color (da, 0, &color); - - gtk_container_add (GTK_CONTAINER (frame), da); - - button = gtk_button_new_with_mnemonic ("_Change the above color"); - gtk_widget_set_halign (button, GTK_ALIGN_END); - gtk_widget_set_valign (button, GTK_ALIGN_CENTER); - - gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - - g_signal_connect (button, "clicked", - G_CALLBACK (change_color_callback), NULL); - } - - if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } - else - { - gtk_widget_destroy (window); - window = NULL; - } - - return window; -} |