Exemplo n.º 1
0
static GtkWidget *
create_scroll_widget (void)
{
  GtkWidget *scroll;

  scroll = hildon_pannable_area_new ();

  return scroll;
}
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);
    }
}
Exemplo n.º 3
0
ZLGtkOptionsDialog::ZLGtkOptionsDialog(const ZLResource &resource, shared_ptr<ZLRunnable> applyAction) : ZLOptionsDialog(resource, applyAction) {
	myDialog = createGtkDialog(caption());
	gtk_widget_set_size_request(GTK_WIDGET(myDialog), 800, 800);

	std::string okString = gtkButtonName(ZLDialogManager::OK_BUTTON);
	std::string cancelString = gtkButtonName(ZLDialogManager::CANCEL_BUTTON);
	gtk_dialog_add_button(myDialog, okString.c_str(), GTK_RESPONSE_ACCEPT);
	gtk_dialog_add_button(myDialog, cancelString.c_str(), GTK_RESPONSE_REJECT);

  /*
	myNotebook = GTK_NOTEBOOK(gtk_notebook_new());

	gtk_container_set_border_width(GTK_CONTAINER(myNotebook), 8);
	gtk_box_pack_start(GTK_BOX(myDialog->vbox), GTK_WIDGET(myNotebook), TRUE, TRUE, 0);
  */
  GtkWidget *area = hildon_pannable_area_new();
  myNotebook = gtk_vbox_new(false, 0);
  hildon_pannable_area_add_with_viewport(HILDON_PANNABLE_AREA(area), myNotebook);
	gtk_container_add(GTK_CONTAINER(myDialog->vbox), area);

	gtk_widget_show_all(GTK_WIDGET(area));
}
Exemplo n.º 4
0
static void
eom_detail_window_init(EomDetailWindow *self)
{
    GtkWidget *panarea;
    GtkWidget *clabel, *rlabel;
    GtkWidget *vbox;

    add_menu(self);

    panarea = hildon_pannable_area_new();
    g_object_set(G_OBJECT(panarea),
                 "mov-mode", HILDON_MOVEMENT_MODE_VERT,
                 NULL);
    gtk_container_add(GTK_CONTAINER(self), panarea);

    self->volsbox = gtk_hbox_new(TRUE, 5);
    hildon_pannable_area_add_with_viewport(HILDON_PANNABLE_AREA(panarea),
                                           self->volsbox);

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(self->volsbox), vbox, TRUE, TRUE, 0);

    clabel = gtk_label_new("Collected:");
    gtk_misc_set_alignment(GTK_MISC(clabel), 0.0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox), clabel, FALSE, FALSE, 0);

    self->ctable = gtk_table_new(0, 0, TRUE);
    gtk_box_pack_start(GTK_BOX(vbox), self->ctable, FALSE, FALSE, 0);

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(self->volsbox), vbox, TRUE, TRUE, 0);

    rlabel = gtk_label_new("Read:");
    gtk_misc_set_alignment(GTK_MISC(rlabel), 0.0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox), rlabel, FALSE, FALSE, 0);

    self->rtable = gtk_table_new(0, 0, TRUE);
    gtk_box_pack_start(GTK_BOX(vbox), self->rtable, FALSE, FALSE, 0);
}
Exemplo n.º 5
0
Arquivo: ui.c Projeto: senko/mawire
GtkWidget *
show_results_window (gchar *query, GList *results,
  GCallback selected_cb)
{
  GtkWidget *win;
  GtkWidget *pannable;
  GtkWidget *view;
  GtkListStore *model;
  GtkWidget *aa;
  GtkWidget *n_results_label;
  GtkTreePath *exact_match = NULL;
  gchar *query_icase;
  gint n_results;
  gchar *tmp;

  query_icase = g_utf8_casefold (query, -1);
  n_results = g_list_length (results);

  DEBUG ("Showing %d results for: %s", n_results, query);

  win = hildon_stackable_window_new ();
  gtk_window_set_title (GTK_WINDOW (win), "Search results");

  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);

  view = create_tree_view (&model);

  aa = hildon_tree_view_get_action_area_box (GTK_TREE_VIEW (view));
  hildon_tree_view_set_action_area_visible (GTK_TREE_VIEW (view), TRUE);

  tmp = g_strdup_printf ("Found %s%d articles about %s",
      (n_results == 500) ? "more than " : "",
      n_results, query);

  n_results_label = gtk_label_new (tmp);
  g_free (tmp);

  gtk_container_add (GTK_CONTAINER (aa), n_results_label);
  gtk_container_add (GTK_CONTAINER (win), pannable);
  gtk_container_add (GTK_CONTAINER (pannable), view);

  g_signal_connect (G_OBJECT (view), "row-activated",
      G_CALLBACK (row_activated_cb), selected_cb);

  while (results)
    {
      GtkTreeIter iter;
      tmp = results->data;
      gchar *tmp_icase = g_utf8_casefold (tmp, -1);

      gtk_list_store_insert_with_values (model, &iter, -1, 0, tmp, -1);

      if (!g_utf8_collate (tmp_icase, query_icase))
          exact_match = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter);

      results = g_list_remove (results, tmp);
      g_free (tmp);
      g_free (tmp_icase);
    }

  /* if there's exact match in the results, we want to scroll
   * to it so the user doesn't need to scroll potentially huge
   * list to find it. */
  if (exact_match)
    {
      gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (view), exact_match,
          NULL, FALSE, 0.0, 0.0);
      gtk_tree_path_free (exact_match);
      exact_match = NULL;
    }

  gtk_widget_show_all (win);
  return win;
}
Exemplo n.º 6
0
Arquivo: ui.c Projeto: 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;
}