JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkIconView_gtk_1icon_1view_1set_1item_1orientation ( JNIEnv* env, jclass cls, jlong _self, jint _orientation ) { GtkIconView* self; GtkOrientation orientation; // convert parameter self self = (GtkIconView*) _self; // convert parameter orientation orientation = (GtkOrientation) _orientation; // call function gtk_icon_view_set_item_orientation(self, orientation); // cleanup parameter self // cleanup parameter orientation }
static void orientation_changed (GtkComboBox *combo, GtkIconView *iconview) { GtkOrientation orientation = gtk_combo_box_get_active (combo); gtk_icon_view_set_item_orientation (iconview, orientation); }
static void fcitx_main_window_init(FcitxMainWindow* self) { GtkWidget* vbox = gtk_vbox_new(FALSE, 0); GtkWidget* hbox = gtk_hbox_new(FALSE, 0); self->pagestore = _fcitx_main_window_create_model(); self->pageview = gtk_icon_view_new_with_model(GTK_TREE_MODEL(self->pagestore)); gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(self->pageview), PAGE_LIST_ICON); gtk_icon_view_set_text_column(GTK_ICON_VIEW(self->pageview), PAGE_LIST_NAME); #if GTK_CHECK_VERSION(2, 22, 0) gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(self->pageview), GTK_ORIENTATION_VERTICAL); #endif _fcitx_main_window_add_im_page(self); _fcitx_main_window_add_config_file_page(self); _fcitx_main_window_add_addon_page(self); gtk_widget_set_size_request(GTK_WIDGET(self), -1, 500); self->vbox = gtk_vbox_new(FALSE, 0); self->pagelabel = gtk_label_new(""); gtk_label_set_use_markup(GTK_LABEL(self->pagelabel), true); gtk_misc_set_alignment(GTK_MISC(self->pagelabel), 0, 0.5); gtk_box_pack_start(GTK_BOX(self->vbox), self->pagelabel, FALSE, FALSE, 14); GtkWidget* scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_NEVER); gtk_container_add(GTK_CONTAINER(scrolledwindow), self->pageview); gtk_box_pack_start(GTK_BOX(hbox), scrolledwindow, FALSE, TRUE, 4); gtk_box_pack_start(GTK_BOX(hbox), self->vbox, TRUE, TRUE, 8); gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 8); gtk_container_add(GTK_CONTAINER(self), vbox); gtk_icon_view_set_selection_mode(GTK_ICON_VIEW(self->pageview), GTK_SELECTION_SINGLE); gtk_icon_view_set_item_padding(GTK_ICON_VIEW(self->pageview), 0); gtk_icon_view_set_margin(GTK_ICON_VIEW(self->pageview), 0); gtk_icon_view_set_column_spacing(GTK_ICON_VIEW(self->pageview), 0); gtk_icon_view_set_row_spacing(GTK_ICON_VIEW(self->pageview), 0); gtk_icon_view_set_item_width(GTK_ICON_VIEW(self->pageview), 96); g_signal_connect_swapped(G_OBJECT(self), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(self->pageview), "selection-changed", G_CALLBACK(_fcitx_main_window_selection_changed_cb), self); GtkTreePath* path = gtk_tree_model_get_path(GTK_TREE_MODEL(self->pagestore), &self->impage->iter); gtk_icon_view_select_path(GTK_ICON_VIEW(self->pageview), path); gtk_tree_path_free(path); gtk_window_set_icon_name(GTK_WINDOW(self), "fcitx-configtool"); gtk_window_set_title(GTK_WINDOW(self), _("Fcitx Config")); }
static void budgie_media_view_init(BudgieMediaView *self) { GtkWidget *icon_view, *scroll; /* Set up our icon view */ icon_view = gtk_icon_view_new(); self->icon_view = icon_view; scroll = gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scroll), icon_view); gtk_container_add(GTK_CONTAINER(self), scroll); /* Relevant columns */ gtk_icon_view_set_markup_column(GTK_ICON_VIEW(icon_view), ALBUM_TITLE); gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(icon_view), ALBUM_PIXBUF); gtk_icon_view_set_item_width(GTK_ICON_VIEW(icon_view), 200); gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(icon_view), GTK_ORIENTATION_HORIZONTAL); }
static GtkWidget * simple_iconview (void) { GtkTreeModel *model; GtkWidget *iconview; GtkCellArea *area; GtkCellRenderer *renderer; iconview = gtk_icon_view_new (); gtk_widget_show (iconview); model = simple_list_model (); gtk_icon_view_set_model (GTK_ICON_VIEW (iconview), model); gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (iconview), GTK_ORIENTATION_HORIZONTAL); area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (iconview)); cell_1 = renderer = gtk_cell_renderer_text_new (); gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, FALSE, FALSE); gtk_cell_area_attribute_connect (area, renderer, "text", SIMPLE_COLUMN_NAME); cell_2 = renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (G_OBJECT (renderer), "xalign", 0.0F, NULL); gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, TRUE, FALSE, FALSE); gtk_cell_area_attribute_connect (area, renderer, "icon-name", SIMPLE_COLUMN_ICON); cell_3 = renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "wrap-mode", PANGO_WRAP_WORD, "wrap-width", 215, NULL); gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, TRUE, FALSE); gtk_cell_area_attribute_connect (area, renderer, "text", SIMPLE_COLUMN_DESCRIPTION); return iconview; }
static GtkWidget * focus_iconview (gboolean color_bg, GtkCellRenderer **focus, GtkCellRenderer **sibling) { GtkTreeModel *model; GtkWidget *iconview; GtkCellArea *area; GtkCellRenderer *renderer, *toggle; iconview = gtk_icon_view_new (); gtk_widget_show (iconview); model = focus_list_model (); gtk_icon_view_set_model (GTK_ICON_VIEW (iconview), model); gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (iconview), GTK_ORIENTATION_HORIZONTAL); area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (iconview)); renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL); gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, TRUE, FALSE, FALSE); gtk_cell_area_attribute_connect (area, renderer, "text", FOCUS_COLUMN_NAME); if (color_bg) g_object_set (G_OBJECT (renderer), "cell-background", "red", NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (cell_edited), iconview); toggle = renderer = gtk_cell_renderer_toggle_new (); g_object_set (G_OBJECT (renderer), "xalign", 0.0F, NULL); gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, TRUE, FALSE); gtk_cell_area_attribute_connect (area, renderer, "active", FOCUS_COLUMN_CHECK); if (color_bg) g_object_set (G_OBJECT (renderer), "cell-background", "green", NULL); if (focus) *focus = renderer; g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (cell_toggled), iconview); renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "wrap-mode", PANGO_WRAP_WORD, "wrap-width", 150, NULL); if (color_bg) g_object_set (G_OBJECT (renderer), "cell-background", "blue", NULL); if (sibling) *sibling = renderer; gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, TRUE, FALSE); gtk_cell_area_attribute_connect (area, renderer, "text", FOCUS_COLUMN_STATIC_TEXT); gtk_cell_area_add_focus_sibling (area, toggle, renderer); return iconview; }
GtkWidget * do_iconview_edit (GtkWidget *do_widget) { if (!window) { GtkWidget *icon_view; GtkListStore *store; GtkCellRenderer *renderer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Editing and Drag-and-Drop"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); g_object_unref (store); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_SINGLE); gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (icon_view), GTK_ORIENTATION_HORIZONTAL); gtk_icon_view_set_columns (GTK_ICON_VIEW (icon_view), 2); gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (icon_view), renderer, set_cell_color, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (edited), icon_view); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (icon_view), renderer, "text", COL_TEXT, NULL); gtk_container_add (GTK_CONTAINER (window), icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; }