static void ggg_plan_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GggPlanDialog *dialog = GGG_PLAN_DIALOG (object); switch (property_id) { case PROP_PROVIDER: { RestXmlNode *node; node = g_value_get_boxed (value); populate_store (dialog->priv->store, node); gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->combo), 0); node = rest_xml_node_find (node, "name"); if (node && node->content && strlen (node->content) > 0) { char *str; /* TRANSLATORS: placeholder is service provider name, * e.g. "Vodafone" */ str = g_strdup_printf (_("Select your %s 3G Plan"), node->content); gtk_label_set_text (GTK_LABEL (dialog->priv->label), str); g_free (str); } else { gtk_label_set_text (GTK_LABEL (dialog->priv->label), _("Select your 3G Plan")); } } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void row_activated_cb (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, HildonBreadCrumbTrail *bct) { gchar *text = NULL, *new_root; GtkTreeIter iter; GtkTreeModel *model; gboolean is_dir; model = gtk_tree_view_get_model (treeview); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, STRING_COL, &text, IS_DIR_COL, &is_dir, -1); if (is_dir == FALSE) goto out; g_debug ("Clicked treeview row%s", text); new_root = g_strconcat (g_str_equal (current_root, "/")? "" : current_root, "/", text, NULL); gtk_list_store_clear (GTK_LIST_STORE (model)); populate_store (GTK_LIST_STORE (model), new_root); if (g_str_equal (current_root, "/home")) { GtkWidget *image; image = gtk_image_new_from_stock (GTK_STOCK_HOME, GTK_ICON_SIZE_BUTTON); hildon_bread_crumb_trail_push_icon (bct, text, image, new_root, (GDestroyNotify)free_id); } else { g_debug ("Adding %s, new root %s", text, new_root); hildon_bread_crumb_trail_push_text (bct, text, new_root, (GDestroyNotify)free_id); } if (current_root) { g_free (current_root); } current_root = g_strdup (new_root); out: g_free (text); }
static gboolean crumb_clicked_cb (HildonBreadCrumbTrail *bct, gpointer id) { GtkTreeModel *model; gchar *text = (gchar*)id; g_debug ("bread crumb item %s clicked", text); model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)); gtk_list_store_clear (GTK_LIST_STORE (model)); populate_store (GTK_LIST_STORE (model), text); if (current_root) g_free (current_root); current_root = g_strdup (text); return FALSE; }
static void ggg_plan_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GggPlanDialog *dialog = GGG_PLAN_DIALOG (object); switch (property_id) { case PROP_PROVIDER: { RestXmlNode *node; node = g_value_get_boxed (value); populate_store (dialog->priv->store, node); gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->combo), 0); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void ggg_sim_dialog_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GggSimDialog *dialog = GGG_SIM_DIALOG (object); switch (property_id) { case PROP_SIMS: { GHashTable *sims; sims = g_value_get_boxed (value); if (sims) { populate_store (dialog->priv->store, sims); gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->combo), 0); } } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static SyncDialog *sync_dialog_new(void) { SyncDialog *sd; GtkWidget *dialog; GtkWidget *dialog1_vbox; GtkWidget *scrolledwindow2; GtkWidget *treeview2; GtkWidget *dialog1_action_area; GtkWidget *button8; GtkWidget *button7; GtkWidget *button6; GtkWidget *label; GtkWidget *hbox; GtkTreeViewColumn *column; GtkTreeModel *model; GtkListStore *store; GtkCellRenderer *cr_text, *cr_toggle; sd = g_new0(SyncDialog, 1); sd->sna = sync_dialog_netarea_new(); dialog = gtk_dialog_new(); gtk_window_set_title(GTK_WINDOW(dialog), "Network Updater"); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_window_set_icon(GTK_WINDOW(dialog), icon_cache_get_pixbuf("syncmanager.png")); gtk_window_set_default_size(GTK_WINDOW(dialog), 420, 260); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_type_hint(GTK_WINDOW(dialog), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); dialog1_vbox = GTK_DIALOG(dialog)->vbox; gtk_box_set_spacing(GTK_BOX(dialog1_vbox), 5); gtk_container_set_border_width(GTK_CONTAINER(dialog1_vbox), 4); gtk_widget_show(dialog1_vbox); hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(dialog1_vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new(LABEL_SYNC_DEFAULT); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_label_set_use_markup(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(hbox), icon_cache_get_image("syncmanager.png"), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); gtk_widget_show_all(hbox); gtk_box_pack_start(GTK_BOX(dialog1_vbox), sd->sna->vbox, TRUE, TRUE, 0); scrolledwindow2 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_show(scrolledwindow2); gtk_box_pack_start(GTK_BOX(dialog1_vbox), scrolledwindow2, TRUE, TRUE, 0); gtk_widget_set_size_request(scrolledwindow2, -1, 200); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN); store = gtk_list_store_new(3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); model = GTK_TREE_MODEL(store); treeview2 = gtk_tree_view_new_with_model(model); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview2), FALSE); gtk_widget_show(treeview2); gtk_container_add(GTK_CONTAINER(scrolledwindow2), treeview2); column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview2), column); cr_toggle = gtk_cell_renderer_toggle_new(); gtk_tree_view_column_pack_start(column, cr_toggle, FALSE); g_signal_connect(cr_toggle, "toggled", G_CALLBACK(sel_toggle), model); gtk_tree_view_column_add_attribute(column, cr_toggle, "active", 0); cr_text = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, cr_text, TRUE); gtk_tree_view_column_add_attribute(column, cr_text, "markup", 1); populate_store(store); dialog1_action_area = GTK_DIALOG(dialog)->action_area; gtk_widget_show(dialog1_action_area); gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog1_action_area), GTK_BUTTONBOX_END); button8 = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_widget_show(button8); gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button8, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS(button8, GTK_CAN_DEFAULT); button7 = gtk_button_new_with_mnemonic("_Synchronize"); gtk_widget_show(button7); gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button7, GTK_RESPONSE_ACCEPT); GTK_WIDGET_SET_FLAGS(button7, GTK_CAN_DEFAULT); button6 = gtk_button_new_from_stock(GTK_STOCK_CLOSE); g_signal_connect(G_OBJECT(button6), "clicked", (GCallback) close_clicked, NULL); gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button6, GTK_RESPONSE_ACCEPT); GTK_WIDGET_SET_FLAGS(button6, GTK_CAN_DEFAULT); sd->dialog = dialog; sd->button_sync = button7; sd->button_cancel = button8; sd->button_close = button6; sd->scroll_box = scrolledwindow2; sd->label = label; return sd; }
int main (int argc, char **argv) { #if 1 HildonProgram *program; #endif GtkListStore *store; GtkWidget *window, *scrolled_window, *vbox, *bct, *button; GtkCellRenderer *renderer; GtkTreeViewColumn *column; gtk_init (&argc, &argv); /* Main window */ #if 1 program = hildon_program_get_instance (); window = hildon_window_new (); hildon_program_add_window (program, HILDON_WINDOW (window)); #else window = gtk_window_new (GTK_WINDOW_TOPLEVEL); #endif gtk_container_set_border_width (GTK_CONTAINER (window), 2); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); g_signal_connect (window, "delete-event", gtk_main_quit, NULL); vbox = gtk_vbox_new (FALSE, 3); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show (vbox); current_root = g_strdup ("/"); bct = hildon_bread_crumb_trail_new (); g_signal_connect (bct, "crumb-clicked", G_CALLBACK (crumb_clicked_cb), NULL); gtk_box_pack_start (GTK_BOX (vbox), bct, FALSE, FALSE, 0); gtk_widget_show (bct); hildon_bread_crumb_trail_push_text (HILDON_BREAD_CRUMB_TRAIL (bct), "/", g_strdup ("/"), (GDestroyNotify)free_id); /* Treeview */ scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); store = gtk_list_store_new (N_COLS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (store), SORTID_DIRALPHA, sort_iter_compare_func, GINT_TO_POINTER (SORTID_DIRALPHA), NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), SORTID_DIRALPHA, GTK_SORT_ASCENDING); populate_store (store, "/"); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); g_signal_connect (treeview, "row-activated", G_CALLBACK (row_activated_cb), bct); renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes ("Icon", renderer, "pixbuf", ICON_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Name", renderer, "text", STRING_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_container_add (GTK_CONTAINER (scrolled_window), treeview); gtk_widget_show (treeview); gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0); gtk_widget_show (scrolled_window); button = gtk_button_new_with_label ("Clear!"); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (clear_cb), bct); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_widget_show (button); gtk_widget_show (window); gtk_main (); return 0; }