X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=examples%2Fhildon-note-example.c;h=7d0e17cefd126435783955e69bdfd3f6d8b9f77d;hb=d393146fd2fd277b5e28b5b278f6d33d507fd915;hp=398bc5070a93bad774e01a6e05da80b8559ba7b7;hpb=141ec6aaade8f6bb96efe3e7049947e170773881;p=hildon diff --git a/examples/hildon-note-example.c b/examples/hildon-note-example.c index 398bc50..7d0e17c 100644 --- a/examples/hildon-note-example.c +++ b/examples/hildon-note-example.c @@ -1,14 +1,14 @@ /* * 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 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; version 2.1 of - * the License. + * the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -29,39 +29,61 @@ #include "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_dialog_run (GTK_DIALOG (note)); + 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"); + return TRUE; } 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; @@ -82,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);