GtkWidget * show_main_window (GCallback installed_db_cb, GCallback custom_db_cb, GCallback about_cb, GCallback search_clicked_cb, GCallback random_clicked_cb) { GtkWidget *window; GtkWidget *search_btn; GtkWidget *random_btn; GtkWidget *label; GtkWidget *image; GtkWidget *vbox; GtkWidget *hbox; window = hildon_stackable_window_new (); g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL); hildon_window_set_app_menu (HILDON_WINDOW (window), HILDON_APP_MENU (create_app_menu (window, installed_db_cb, custom_db_cb, about_cb))); vbox = gtk_vbox_new (FALSE, 0); hbox = gtk_hbox_new (TRUE, 10); label = gtk_label_new ("Mawire, the offline Wikipedia reader"); g_object_set (G_OBJECT (label), "wrap", TRUE, NULL); image = gtk_image_new_from_file (MAIN_WINDOW_IMAGE); gtk_box_pack_start (GTK_BOX (vbox), image, TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 5); search_btn = hildon_button_new_with_text ( HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL, "Search", NULL); random_btn = hildon_button_new_with_text ( HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL, "Random", NULL); gtk_box_pack_start (GTK_BOX (hbox), search_btn, TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), random_btn, TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, FALSE, 5); gtk_container_add (GTK_CONTAINER (window), vbox); g_signal_connect (G_OBJECT (search_btn), "clicked", G_CALLBACK (search_clicked_cb), window); g_signal_connect (G_OBJECT (random_btn), "clicked", G_CALLBACK (random_clicked_cb), window); return window; }
static void aw_window_add_tree_view (GtkContainer *container, GtkWidget *child) { GtkWidget *alignment, *pa; GSList *filters, *items; HildonAppMenu *menu; gtk_widget_push_composite_child (); alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0); gtk_container_add (container, alignment); pa = hildon_pannable_area_new (); gtk_container_add (GTK_CONTAINER (alignment), pa); g_object_set (pa, "hscrollbar-policy", GTK_POLICY_NEVER, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, "mov-mode", HILDON_MOVEMENT_MODE_VERT, NULL); g_signal_connect (hildon_pannable_area_get_vadjustment (HILDON_PANNABLE_AREA (pa)), "changed", G_CALLBACK (aw_window_vadjustment_changed_cb), alignment); gtk_widget_pop_composite_child (); gtk_container_add (GTK_CONTAINER (pa), child); filters = aw_tree_view_get_filters (AW_TREE_VIEW (child)); items = aw_tree_view_get_menu_items (AW_TREE_VIEW (child)); if (filters || items) { menu = HILDON_APP_MENU (hildon_app_menu_new ()); while (filters) { hildon_app_menu_add_filter (menu, filters->data); filters = filters->next; } while (items) { hildon_app_menu_append (menu, items->data); items = items->next; } hildon_window_set_app_menu (HILDON_WINDOW (container), menu); } }
int main (int argc, char **argv) { GtkWidget *win; GtkWidget *label; GtkWidget *label2; GtkBox *vbox; HildonAppMenu *menu; GtkAccelGroup *accel; hildon_gtk_init (&argc, &argv); label = gtk_label_new ("This is an example of the\nHildonAppMenu widget.\n\n" "Click on the titlebar\nto pop up the menu."); label2 = gtk_label_new ("No menu option has been selected yet."); accel = gtk_accel_group_new (); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_CENTER); vbox = GTK_BOX (gtk_vbox_new (FALSE, 10)); win = hildon_stackable_window_new (); menu = create_menu (label2, accel); hildon_window_set_app_menu (HILDON_WINDOW (win), menu); gtk_window_add_accel_group (GTK_WINDOW (win), accel); g_object_unref (accel); gtk_box_pack_start (vbox, label, TRUE, TRUE, 0); gtk_box_pack_start (vbox, label2, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (win), 20); gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox)); g_signal_connect (win, "delete_event", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show_all (win); gtk_main (); return 0; }
ZLGtkApplicationWindow::ZLGtkApplicationWindow(ZLApplication *application) : ZLApplicationWindow(application), KeyActionOnReleaseNotOnPressOption(ZLCategoryKey::CONFIG, "KeyAction", "OnRelease", false), myFullScreen(false) { myProgram = HILDON_PROGRAM(hildon_program_get_instance()); g_set_application_name(""); myWindow = HILDON_WINDOW(hildon_stackable_window_new()); ((ZLMaemoCommunicationManager&)ZLCommunicationManager::Instance()).init(); myMenu = HILDON_APP_MENU(hildon_app_menu_new()); hildon_window_set_app_menu(myWindow, myMenu); hildon_program_add_window(myProgram, myWindow); gtk_widget_show_all(GTK_WIDGET(myWindow)); myViewWidget = 0; ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myWindow), "delete_event", GTK_SIGNAL_FUNC(applicationQuit), this); ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myWindow), "key_press_event", GTK_SIGNAL_FUNC(handleKeyPress), this); ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myWindow), "key_release_event", GTK_SIGNAL_FUNC(handleKeyRelease), this); }