Update the application menu flag for application-wise windows
[hildon] / examples / hildon-note-example.c
index d47a445..95155dc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is a part of hildon examples
  *
- * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
+ * Copyright (C) 2005-2008 Nokia Corporation. All rights reserved.
  *
  * Author: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
  *
 #include                                        <stdlib.h>
 #include                                        <glib.h>
 #include                                        <gtk/gtk.h>
-#include                                        "hildon.h"
+#include                                        <hildon/hildon.h>
 
 static gboolean
-on_information_clicked                          (GtkWidget *widget)
+on_information_clicked                          (GtkWidget *widget, gpointer data)
 {
+    GtkWidget *window = data;
+    gint i;
     HildonNote* note = HILDON_NOTE (hildon_note_new_information (NULL, 
             "This is a really really really long text that should " 
             "get wrapped but never truncated because truncating stuff "
             "automatically is really really bad! Blah blah blah!"));
 
-    gtk_dialog_run (GTK_DIALOG (note));
+    gtk_window_set_transient_for (GTK_WINDOW(note), GTK_WINDOW(window));
+    i = gtk_dialog_run (GTK_DIALOG (note));
+    if (i == GTK_RESPONSE_DELETE_EVENT)
+      g_debug ("%s: GTK_RESPONSE_DELETE_EVENT", __FUNCTION__);
     gtk_object_destroy (GTK_OBJECT (note));
     
     return TRUE;
 }
 
 static gboolean
-on_confirmation_clicked                         (GtkWidget *widget)
+on_confirmation_clicked                         (GtkWidget *widget, gpointer data)
 {
     gint i;
+    GtkWidget *window = data;
     HildonNote* note = HILDON_NOTE (hildon_note_new_confirmation (NULL, 
             "Do you want to confirm?!"));
 
+    gtk_window_set_transient_for (GTK_WINDOW(note), GTK_WINDOW(window));
     i = gtk_dialog_run (GTK_DIALOG (note));
     gtk_object_destroy (GTK_OBJECT (note));
     
     if (i == GTK_RESPONSE_OK)
         g_debug ("Button 'OK' pressed");
+    else if (i == GTK_RESPONSE_DELETE_EVENT)
+        g_debug ("%s: GTK_RESPONSE_DELETE_EVENT", __FUNCTION__);
     else
         g_debug ("Button 'Cancel' pressed");
 
@@ -61,24 +70,31 @@ on_confirmation_clicked                         (GtkWidget *widget)
 }
 
 static gboolean
-on_progress_clicked                             (GtkWidget *widget)
+on_progress_clicked                             (GtkWidget *widget, gpointer data)
 {
+    gint i;
+    GtkWidget *window = data;
     GtkProgressBar *bar = GTK_PROGRESS_BAR (gtk_progress_bar_new ());
     HildonNote *note = HILDON_NOTE (hildon_note_new_cancel_with_progress_bar (NULL, 
                 "Do you want to foo bar?", bar));
 
-    gtk_dialog_run (GTK_DIALOG (note));
+    gtk_window_set_transient_for (GTK_WINDOW(note), GTK_WINDOW(window));
+    i = gtk_dialog_run (GTK_DIALOG (note));
+    if (i == GTK_RESPONSE_DELETE_EVENT)
+      g_debug ("%s: GTK_RESPONSE_DELETE_EVENT", __FUNCTION__);
+    else
+      g_debug ("Button 'Cancel' pressed");
     gtk_object_destroy (GTK_OBJECT (note));
 
     return TRUE;
 }
 
 int
-main                                            (int argc, 
-                                                 char **args)
+main                                            (int argc,
+                                                 char **argv)
 {
-    gtk_init (&argc, &args);
-    
+    hildon_gtk_init (&argc, &argv);
+
     HildonProgram *program = hildon_program_get_instance ();
 
     GtkWidget *window = hildon_window_new ();
@@ -88,13 +104,13 @@ main                                            (int argc,
 
     GtkVBox *vbox = GTK_VBOX (gtk_vbox_new (6, FALSE));
     GtkButton *button1 = GTK_BUTTON (gtk_button_new_with_label ("Information note"));
-    g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (on_information_clicked), NULL);
+    g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (on_information_clicked), window);
 
     GtkButton *button2 = GTK_BUTTON (gtk_button_new_with_label ("Confirmation note"));
-    g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (on_confirmation_clicked), NULL);
+    g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (on_confirmation_clicked), window);
 
     GtkButton *button3 = GTK_BUTTON (gtk_button_new_with_label ("Progress note"));
-    g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (on_progress_clicked), NULL);
+    g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (on_progress_clicked), window);
 
     g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), NULL);