コード例 #1
0
ファイル: ui.c プロジェクト: 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;
}
コード例 #2
0
ファイル: popup-dialog.c プロジェクト: hasselmm/awui
GtkWidget *
aw_popup_dialog_append (AwPopupDialog         *dialog,
                        const char            *title,
                        const char            *details,
                        AwPopupDialogCallback  callback,
                        gpointer               user_data)
{
  GtkWidget *button, *content_area;
  GClosure  *closure;

  g_return_val_if_fail (AW_IS_POPUP_DIALOG (dialog), NULL);

  button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
                                        HILDON_SIZE_FINGER_HEIGHT,
                                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
                                        title, details);

  closure = g_cclosure_new (G_CALLBACK (callback), user_data, NULL);
  g_closure_set_marshal (closure, aw_cclosure_marshal_BOOLEAN__VOID);

  g_signal_connect_data (button, "clicked",
                         G_CALLBACK (aw_popup_dialog_clicked_cb),
                         closure, (GClosureNotify) g_closure_unref, 0);

  content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
  gtk_container_add (GTK_CONTAINER (content_area), button);
  gtk_widget_show (button);

  return button;
}
コード例 #3
0
ファイル: wizard.c プロジェクト: ajf8/moflow900
void motorway_list_handler(GHashTable *table, int *res, gpointer *data)
{
  if (*res != NO_ASYNC)
   gdk_threads_enter();
  
  GtkWidget *window = GTK_WIDGET( hildon_window_new() );
  gtk_signal_connect(GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (wizard_delete_event), NULL);
  gtk_window_set_title(GTK_WINDOW(window), "Pick a motorway");

  if (table == NULL)
  {
    moflow_error_dialog(*res, NULL, GTK_BUTTONS_OK);
    main_exit(1);
  }
  
  GtkWidget *hbox = gtk_hbox_new(FALSE, 2);
  GtkWidget *vbox = gtk_vbox_new(FALSE, 2);
  GtkWidget *selector = hildon_touch_selector_new_text();
  
  GList *sortedList = g_list_sort(g_hash_table_get_keys(table), (GCompareFunc)motorwaycmp);
  for (GList *li = sortedList; li != NULL; li = g_list_next(li))
  {
    gchar *key = (gchar*)li->data;
    hildon_touch_selector_append_text(HILDON_TOUCH_SELECTOR(selector), key);
  }
  g_list_free(sortedList);
  gtk_box_pack_start(GTK_BOX(vbox), selector, TRUE, TRUE, 2);

  GtkWidget *button = hildon_button_new_with_text(HILDON_SIZE_AUTO_WIDTH, HILDON_BUTTON_ARRANGEMENT_VERTICAL, "Go!", NULL);
  gtk_widget_set_sensitive(button, FALSE);
  g_signal_connect(G_OBJECT(selector), "changed", G_CALLBACK(selection_changed), button);
  g_object_set_data(G_OBJECT(button), "motorwayTable", table);
  g_object_set_data(G_OBJECT(button), "motorwaySelector", selector);
  gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(motorway_select_cb), NULL);
  gtk_widget_set_size_request(button, -1, 70);
  gtk_box_pack_end(GTK_BOX(vbox), button, FALSE, FALSE, 2);
  gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 2);
  
  GtkWidget *logo = gtk_image_new_from_file("/usr/share/pixmaps/moflow/motorway.png");
  gtk_box_pack_end(GTK_BOX(hbox), logo, FALSE, FALSE, 20);
  
  gtk_container_add(GTK_CONTAINER(window), hbox);
  gtk_widget_show_all(window);

  if (*res != NO_ASYNC)
    gdk_threads_leave();
}
コード例 #4
0
ファイル: ui.c プロジェクト: senko/mawire
GtkWidget *
show_article_window (gchar *title, gchar *text)
{
  GtkWidget *win;
  GtkWidget *pannable;
  GtkWidget *vbox;
  GtkWidget *title_label;
  GtkWidget *text_box;
  GtkTextBuffer *buffer;
  GtkWidget *more;
  gchar *pango;

  win = hildon_stackable_window_new ();
  gtk_window_set_title (GTK_WINDOW (win), title);

  g_signal_connect (G_OBJECT (win), "delete-event",
      G_CALLBACK (gtk_widget_destroy), win);

  pannable = hildon_pannable_area_new ();

  g_object_set (pannable,
      "mov-mode", HILDON_MOVEMENT_MODE_VERT,
      "hscrollbar-policy", GTK_POLICY_NEVER,
      NULL);

  pango = g_markup_printf_escaped ("<span size='xx-large'>%s</span>", title);
  title_label = gtk_label_new (NULL);
  gtk_label_set_markup (GTK_LABEL (title_label), pango);
  gtk_misc_set_alignment (GTK_MISC (title_label), 0.0, 0.5);
  g_object_set (G_OBJECT (title_label), "wrap", TRUE, NULL);

  text_box = hildon_text_view_new ();
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_box), GTK_WRAP_WORD_CHAR);
  g_object_set (text_box, "editable", FALSE, NULL);
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_box));

  gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD,
      NULL);
  gtk_text_buffer_create_tag (buffer, "emph", "style", PANGO_STYLE_ITALIC,
      NULL);

  insert_text (buffer, text);
  vbox = gtk_vbox_new (FALSE, 10);

  gtk_box_pack_start (GTK_BOX (vbox), title_label, FALSE, FALSE, 10);
  gtk_box_pack_start (GTK_BOX (vbox), text_box, TRUE, TRUE, 0);

  more = hildon_button_new_with_text (
      HILDON_SIZE_FINGER_HEIGHT,
      HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
      "Read complete article on Wikipedia", NULL);
  gtk_box_pack_start (GTK_BOX (vbox), more, FALSE, FALSE, 0);

  gtk_container_add (GTK_CONTAINER (win), pannable);
  hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (pannable),
      vbox);

  g_signal_connect (G_OBJECT (more), "clicked",
      G_CALLBACK (open_in_browser), g_strdup (title)); /* FIXME: memleak! */

  gtk_widget_show_all (win);
  return win;
}