[maemo-commits] [maemo-commits] r9769 - in projects/haf/branches/hildon-libs/hildon-1: . examples src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Feb 9 11:37:10 EET 2007
- Previous message: [maemo-commits] r9768 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Next message: [maemo-commits] r9770 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mdk Date: 2007-02-09 11:37:08 +0200 (Fri, 09 Feb 2007) New Revision: 9769 Added: projects/haf/branches/hildon-libs/hildon-1/examples/hildon-toolbar-example.c Modified: projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2 projects/haf/branches/hildon-libs/hildon-1/examples/Makefile.am projects/haf/branches/hildon-libs/hildon-1/src/hildon-window.c Log: Adding a toolbar example. Making the add/remove toolbar documentation in HildonWindow a bit more verbose about the visibility and memory management. Modified: projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2 =================================================================== --- projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2 2007-02-08 21:23:52 UTC (rev 9768) +++ projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2 2007-02-09 09:37:08 UTC (rev 9769) @@ -1,3 +1,11 @@ +2007-02-09 Michael Dominic Kostrzewa <michael.kostrzewa at nokia.com> + + * examples/Makefile.am: + * examples/hildon-toolbar-example.c: + * src/hildon-window.c: Adding a toolbar example. Making the add/remove + toolbar documentation in HildonWindow a bit more verbose about + visibility and memory management. + 2007-02-08 Michael Dominic Kostrzewa <michael.kostrzewa at nokia.com> * examples/Makefile.am: Modified: projects/haf/branches/hildon-libs/hildon-1/examples/Makefile.am =================================================================== --- projects/haf/branches/hildon-libs/hildon-1/examples/Makefile.am 2007-02-08 21:23:52 UTC (rev 9768) +++ projects/haf/branches/hildon-libs/hildon-1/examples/Makefile.am 2007-02-09 09:37:08 UTC (rev 9769) @@ -19,7 +19,8 @@ hildon-set-password-dialog-example \ hildon-window-menu-example \ hildon-window-cmn-menu-example \ - hildon-vvolumebar-example + hildon-vvolumebar-example \ + hildon-toolbar-example # HIldon window hildon_window_example_LDADD = $(HILDON_OBJ_LIBS) @@ -116,4 +117,9 @@ hildon_vvolumebar_example_CFLAGS = $(HILDON_OBJ_CFLAGS) hildon_vvolumebar_example_SOURCES = hildon-vvolumebar-example.c +# Hildon toolbar example +hildon_toolbar_example_LDADD = $(HILDON_OBJ_LIBS) +hildon_toolbar_example_CFLAGS = $(HILDON_OBJ_CFLAGS) +hildon_toolbar_example_SOURCES = hildon-toolbar-example.c + endif Added: projects/haf/branches/hildon-libs/hildon-1/examples/hildon-toolbar-example.c =================================================================== --- projects/haf/branches/hildon-libs/hildon-1/examples/hildon-toolbar-example.c 2007-02-08 21:23:52 UTC (rev 9768) +++ projects/haf/branches/hildon-libs/hildon-1/examples/hildon-toolbar-example.c 2007-02-09 09:37:08 UTC (rev 9769) @@ -0,0 +1,128 @@ +/* + * This file is a part of hildon examples + * + * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved. + * + * Author: Michael Dominic Kostrzewa <michael.kostrzewa at nokia.com> + * + * 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. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include <stdio.h> +#include <stdlib.h> +#include <glib.h> +#include <gtk/gtk.h> +#include "hildon.h" + +gboolean has_toolbar = FALSE; + +HildonWindow* window = NULL; + +GtkToolbar* toolbar = NULL; + +static gboolean +on_add_clicked (GtkWidget *widget) +{ + if (has_toolbar) + hildon_banner_show_information (widget, NULL, "Toolbar already added"); + else { + hildon_window_add_toolbar (window, toolbar); + has_toolbar = TRUE; + } + + return TRUE; +} + +static gboolean +on_remove_clicked (GtkWidget *widget) +{ + if (! has_toolbar) + hildon_banner_show_information (widget, NULL, "No toolbar added"); + else { + g_object_ref (toolbar); + hildon_window_remove_toolbar (window, toolbar); + has_toolbar = FALSE; + } + + return TRUE; +} + +static gboolean +on_show_clicked (GtkWidget *widget) +{ + if (! has_toolbar) + hildon_banner_show_information (widget, NULL, "No toolbar added"); + else + gtk_widget_show_all (GTK_WIDGET (toolbar)); + + return TRUE; +} + +static gboolean +on_hide_clicked (GtkWidget *widget) +{ + if (! has_toolbar) + hildon_banner_show_information (widget, NULL, "No toolbar added"); + else + gtk_widget_hide_all (GTK_WIDGET (toolbar)); + + return TRUE; +} + +int +main (int argc, + char **args) +{ + gtk_init (&argc, &args); + + HildonProgram *program = hildon_program_get_instance (); + + window = HILDON_WINDOW (hildon_window_new ()); + hildon_program_add_window (program, window); + toolbar = GTK_TOOLBAR (hildon_find_toolbar_new ("Find")); + + gtk_container_set_border_width (GTK_CONTAINER (window), 6); + + GtkVBox *vbox = GTK_VBOX (gtk_vbox_new (6, FALSE)); + + GtkButton *button1 = GTK_BUTTON (gtk_button_new_with_label ("Add toolbar")); + g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (on_add_clicked), NULL); + + GtkButton *button2 = GTK_BUTTON (gtk_button_new_with_label ("Remove toolbar")); + g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (on_remove_clicked), NULL); + + GtkButton *button3 = GTK_BUTTON (gtk_button_new_with_label ("Show toolbar")); + g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (on_show_clicked), NULL); + + GtkButton *button4 = GTK_BUTTON (gtk_button_new_with_label ("Hide toolbar")); + g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (on_hide_clicked), NULL); + + g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), NULL); + + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (button1), TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (button2), TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (button3), TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (button4), TRUE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (vbox)); + + gtk_widget_show_all (GTK_WIDGET (window)); + + gtk_main (); + return 0; +} + + Modified: projects/haf/branches/hildon-libs/hildon-1/src/hildon-window.c =================================================================== --- projects/haf/branches/hildon-libs/hildon-1/src/hildon-window.c 2007-02-08 21:23:52 UTC (rev 9768) +++ projects/haf/branches/hildon-libs/hildon-1/src/hildon-window.c 2007-02-09 09:37:08 UTC (rev 9769) @@ -1670,7 +1670,10 @@ * @self: A @HildonWindow * @toolbar: A #GtkToolbar to add to the HildonWindow * - * Adds a toolbar to the window. + * Adds a toolbar to the window. Note that the toolbar is not automatically + * shown. You need to call #gtk_widget_show_all on it to make it visible. + * It's also possible to hide the toolbar (without removing it) by calling + * #gtk_widget_hide_all. **/ void hildon_window_add_toolbar (HildonWindow *self, @@ -1697,7 +1700,9 @@ * @self: A @HildonWindow * @toolbar: A #GtkToolbar to remove from the HildonWindow * - * Removes a toolbar from the window. + * Removes a toolbar from the window. Note that this decreases the refference + * count on the widget. If you want to keep the toolbar alive call #g_object_ref + * before calling this function. **/ void hildon_window_remove_toolbar (HildonWindow *self,
- Previous message: [maemo-commits] r9768 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Next message: [maemo-commits] r9770 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]