~inkscape.dev/inkscape-devlibs/devlibs-gtk3

« back to all changes in this revision

Viewing changes to share/gtk-2.0/demo/pickers.c

  • Committer: JazzyNico
  • Date: 2013-01-21 10:11:05 UTC
  • Revision ID: nicoduf@yahoo.fr-20130121101105-i8d8slkq9ng4olx8
Adding gtk2 libraries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Pickers 
 
2
 *
 
3
 * These widgets are mainly intended for use in preference dialogs.
 
4
 * They allow to select colors, fonts, files and directories.
 
5
 */
 
6
 
 
7
#include <gtk/gtk.h>
 
8
 
 
9
GtkWidget *
 
10
do_pickers (GtkWidget *do_widget)
 
11
{
 
12
  static GtkWidget *window = NULL;
 
13
  GtkWidget *table, *label, *picker;
 
14
 
 
15
  if (!window)
 
16
  {
 
17
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 
18
    gtk_window_set_screen (GTK_WINDOW (window),
 
19
                           gtk_widget_get_screen (do_widget));
 
20
    gtk_window_set_title (GTK_WINDOW (window), "Pickers");
 
21
   
 
22
    g_signal_connect (window, "destroy",
 
23
                      G_CALLBACK (gtk_widget_destroyed),
 
24
                      &window);
 
25
    
 
26
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
27
 
 
28
    table = gtk_table_new (4, 2, FALSE);    
 
29
    gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
 
30
    gtk_table_set_row_spacings (GTK_TABLE (table), 3);
 
31
    gtk_container_add (GTK_CONTAINER (window), table);
 
32
 
 
33
    gtk_container_set_border_width (GTK_CONTAINER (table), 10);
 
34
 
 
35
    label = gtk_label_new ("Color:");
 
36
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 
37
    picker = gtk_color_button_new ();
 
38
    gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 0, 1);
 
39
    gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 0, 1);
 
40
 
 
41
    label = gtk_label_new ("Font:");
 
42
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 
43
    picker = gtk_font_button_new ();
 
44
    gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 1, 2);
 
45
    gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 1, 2);
 
46
 
 
47
    label = gtk_label_new ("File:");
 
48
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 
49
    picker = gtk_file_chooser_button_new ("Pick a File", 
 
50
                                          GTK_FILE_CHOOSER_ACTION_OPEN);
 
51
    gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
 
52
    gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 2, 3);
 
53
 
 
54
    label = gtk_label_new ("Folder:");
 
55
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 
56
    picker = gtk_file_chooser_button_new ("Pick a Folder", 
 
57
                                          GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
 
58
    gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 3, 4);
 
59
    gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 3, 4);
 
60
  }
 
61
 
 
62
  if (!gtk_widget_get_visible (window))
 
63
    {
 
64
      gtk_widget_show_all (window);
 
65
    }
 
66
  else
 
67
    {    
 
68
      gtk_widget_destroy (window);
 
69
      window = NULL;
 
70
    }
 
71
 
 
72
  return window;
 
73
}