]> Pileus Git - ~andy/gtk/blobdiff - demos/gtk-demo/dialog.c
Deprecate widget flag: GTK_WIDGET_VISIBLE
[~andy/gtk] / demos / gtk-demo / dialog.c
index 0bcbb0103a68e800bdab36b1c145d95c5f2524b0..301ee2f59200d5ca5b912fd2e6c5cd8ec29dbcd2 100644 (file)
@@ -1,16 +1,17 @@
 /* Dialog and Message Boxes
  *
- * The Dialog Box widgets are used to pop up a transient window for user feedback.
+ * Dialog widgets are used to pop up a transient window for user feedback.
  */
 
 #include <gtk/gtk.h>
 
-GtkWidget *window = NULL;
-GtkWidget *entry1 = NULL;
-GtkWidget *entry2 = NULL;
+static GtkWidget *window = NULL;
+static GtkWidget *entry1 = NULL;
+static GtkWidget *entry2 = NULL;
 
 static void
-message_dialog_clicked (GtkButton *button, gpointer user_data)
+message_dialog_clicked (GtkButton *button,
+                       gpointer   user_data)
 {
   GtkWidget *dialog;
   static gint i = 1;
@@ -20,15 +21,17 @@ message_dialog_clicked (GtkButton *button, gpointer user_data)
                                   GTK_MESSAGE_INFO,
                                   GTK_BUTTONS_OK,
                                   "This message box has been popped up the following\n"
-                                  "number of times:\n\n"
-                                  "%d", i);
+                                  "number of times:");
+  gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+                                            "%d", i);
   gtk_dialog_run (GTK_DIALOG (dialog));
   gtk_widget_destroy (dialog);
   i++;
 }
 
 static void
-interactive_dialog_clicked (GtkButton *button, gpointer user_data)
+interactive_dialog_clicked (GtkButton *button,
+                           gpointer   user_data)
 {
   GtkWidget *dialog;
   GtkWidget *hbox;
@@ -36,13 +39,16 @@ interactive_dialog_clicked (GtkButton *button, gpointer user_data)
   GtkWidget *table;
   GtkWidget *local_entry1;
   GtkWidget *local_entry2;
+  GtkWidget *label;
   gint response;
 
   dialog = gtk_dialog_new_with_buttons ("Interactive Dialog",
                                        GTK_WINDOW (window),
                                        GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       GTK_STOCK_BUTTON_OK,
+                                       GTK_STOCK_OK,
                                        GTK_RESPONSE_OK,
+                                        "_Non-stock Button",
+                                        GTK_RESPONSE_CANCEL,
                                        NULL);
 
   hbox = gtk_hbox_new (FALSE, 8);
@@ -56,18 +62,25 @@ interactive_dialog_clicked (GtkButton *button, gpointer user_data)
   gtk_table_set_row_spacings (GTK_TABLE (table), 4);
   gtk_table_set_col_spacings (GTK_TABLE (table), 4);
   gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0);
-  gtk_table_attach_defaults (GTK_TABLE (table), gtk_label_new ("Entry 1"),
+  label = gtk_label_new_with_mnemonic ("_Entry 1");
+  gtk_table_attach_defaults (GTK_TABLE (table),
+                            label,
                             0, 1, 0, 1);
-  gtk_table_attach_defaults (GTK_TABLE (table), gtk_label_new ("Entry 2"),
-                            0, 1, 1, 2);
-
   local_entry1 = gtk_entry_new ();
   gtk_entry_set_text (GTK_ENTRY (local_entry1), gtk_entry_get_text (GTK_ENTRY (entry1)));
   gtk_table_attach_defaults (GTK_TABLE (table), local_entry1, 1, 2, 0, 1);
+  gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry1);
+
+  label = gtk_label_new_with_mnemonic ("E_ntry 2");
+  gtk_table_attach_defaults (GTK_TABLE (table),
+                            label,
+                            0, 1, 1, 2);
+
   local_entry2 = gtk_entry_new ();
   gtk_entry_set_text (GTK_ENTRY (local_entry2), gtk_entry_get_text (GTK_ENTRY (entry2)));
   gtk_table_attach_defaults (GTK_TABLE (table), local_entry2, 1, 2, 1, 2);
-    
+  gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry2);
+  
   gtk_widget_show_all (hbox);
   response = gtk_dialog_run (GTK_DIALOG (dialog));
 
@@ -81,7 +94,7 @@ interactive_dialog_clicked (GtkButton *button, gpointer user_data)
 }
 
 GtkWidget *
-do_dialog (void)
+do_dialog (GtkWidget *do_widget)
 {
   GtkWidget *frame;
   GtkWidget *vbox;
@@ -89,13 +102,16 @@ do_dialog (void)
   GtkWidget *hbox;
   GtkWidget *button;
   GtkWidget *table;
-
+  GtkWidget *label;
+  
   if (!window)
     {
       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), "Dialogs");
 
-      gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (gtk_widget_destroyed), &window);
+      g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
       gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 
       frame = gtk_frame_new ("Dialogs");
@@ -108,9 +124,9 @@ do_dialog (void)
       /* Standard message dialog */
       hbox = gtk_hbox_new (FALSE, 8);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
-      button = gtk_button_new_with_label ("Message Dialog");
-      gtk_signal_connect (GTK_OBJECT (button), "clicked",
-                         GTK_SIGNAL_FUNC (message_dialog_clicked), NULL);
+      button = gtk_button_new_with_mnemonic ("_Message Dialog");
+      g_signal_connect (button, "clicked",
+                       G_CALLBACK (message_dialog_clicked), NULL);
       gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
 
       gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, FALSE, 0);
@@ -120,9 +136,9 @@ do_dialog (void)
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
       vbox2 = gtk_vbox_new (FALSE, 0);
 
-      button = gtk_button_new_with_label ("Interactive Dialog");
-      gtk_signal_connect (GTK_OBJECT (button), "clicked",
-                         GTK_SIGNAL_FUNC (interactive_dialog_clicked), NULL);
+      button = gtk_button_new_with_mnemonic ("_Interactive Dialog");
+      g_signal_connect (button, "clicked",
+                       G_CALLBACK (interactive_dialog_clicked), NULL);
       gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0);
       gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
 
@@ -130,21 +146,33 @@ do_dialog (void)
       gtk_table_set_row_spacings (GTK_TABLE (table), 4);
       gtk_table_set_col_spacings (GTK_TABLE (table), 4);
       gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0);
-      gtk_table_attach_defaults (GTK_TABLE (table), gtk_label_new ("Entry 1"), 0, 1, 0, 1);
-      gtk_table_attach_defaults (GTK_TABLE (table), gtk_label_new ("Entry 2"), 0, 1, 1, 2);
+
+      label = gtk_label_new_with_mnemonic ("_Entry 1");
+      gtk_table_attach_defaults (GTK_TABLE (table),
+                                label,
+                                0, 1, 0, 1);
 
       entry1 = gtk_entry_new ();
       gtk_table_attach_defaults (GTK_TABLE (table), entry1, 1, 2, 0, 1);
+      gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry1);
+
+      label = gtk_label_new_with_mnemonic ("E_ntry 2");
+      
+      gtk_table_attach_defaults (GTK_TABLE (table),
+                                label,
+                                0, 1, 1, 2);
+
       entry2 = gtk_entry_new ();
       gtk_table_attach_defaults (GTK_TABLE (table), entry2, 1, 2, 1, 2);
+      gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry2);
     }
 
-  if (!GTK_WIDGET_VISIBLE (window))
+  if (!gtk_widget_get_visible (window))
     {
       gtk_widget_show_all (window);
     }
   else
-    {    
+    {   
       gtk_widget_destroy (window);
       window = NULL;
     }