/* * This file is part of Maemo Examples * * Copyright (C) 2005 Nokia Corporation. * * * This software 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; either version 2.1 of * the License, or (at your option) any later version. * * This software 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 software; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * */ #include #include #include /* Application UI data struct */ typedef struct _AppData AppData; struct _AppData { HildonProgram *program; HildonWindow *window; }; void callback_file_details(GtkWidget * widget, AppData * data) { HildonFileDetailsDialog *dialog; GtkWidget *label = NULL; gint result; /* Create dialog */ dialog = HILDON_FILE_DETAILS_DIALOG (hildon_file_details_dialog_new(GTK_WINDOW(data->window), TEXT_FILE)); /* Set the dialog to show tabs */ g_object_set(dialog, "show-tabs", TRUE, NULL); /* Create some content to additional tab */ label = gtk_label_new(g_strdup_printf ("Name of this \nfile really is:\n%s", TEXT_FILE) ); /* Add content to additional tab label */ g_object_set(dialog, "additional-tab", label, NULL); /* Change tab label */ g_object_set(dialog, "additional-tab-label", "More Info", NULL); /* Show the dialog */ gtk_widget_show_all(GTK_WIDGET(dialog)); /* Wait for user to select OK or CANCEL */ result = gtk_dialog_run(GTK_DIALOG(dialog)); /* Close the dialog */ gtk_widget_destroy(GTK_WIDGET(dialog)); } int main(int argc, char *argv[]) { /* Create needed variables */ HildonProgram *program; HildonWindow *window; GtkWidget *button; GtkWidget *vbox; /* Initialize the GTK. */ gtk_init(&argc, &argv); /* Create the hildon program and setup the title */ program = HILDON_PROGRAM(hildon_program_get_instance()); g_set_application_name("Hello maemo!"); /* Create HildonWindow and set it to HildonProgram */ window = HILDON_WINDOW(hildon_window_new()); hildon_program_add_window(program, window); /* Create AppData */ AppData *appdata; appdata = g_new0(AppData, 1); appdata->program = program; appdata->window = window; /* Create buttons and add it to main view */ vbox = gtk_vbox_new(TRUE, 5); /* Test */ button = gtk_button_new_with_label("File Details"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(callback_file_details), appdata); gtk_container_add(GTK_CONTAINER(vbox), button); /* Add VBox to AppView */ gtk_container_add(GTK_CONTAINER(window), vbox); /* Connect signal to X in the upper corner */ g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL); /* Begin the main application */ gtk_widget_show_all(GTK_WIDGET(window)); gtk_main(); /* Exit */ return 0; }