Exemplo n.º 1
0
Arquivo: ui.c Projeto: senko/mawire
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;
}
Exemplo n.º 2
0
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);
}