static void cheese_thumb_view_constructed (GObject *object) { CheeseThumbView *thumb_view = CHEESE_THUMB_VIEW (object); CheeseThumbViewPrivate *priv = cheese_thumb_view_get_instance_private (thumb_view); G_OBJECT_CLASS (cheese_thumb_view_parent_class)->constructed (object); gtk_icon_view_set_model (GTK_ICON_VIEW (thumb_view), GTK_TREE_MODEL (priv->store)); gtk_widget_set_size_request (GTK_WIDGET (thumb_view), THUMB_VIEW_MINIMUM_WIDTH, THUMB_VIEW_MINIMUM_HEIGHT); gtk_icon_view_set_margin (GTK_ICON_VIEW (thumb_view), 0); gtk_icon_view_set_row_spacing (GTK_ICON_VIEW (thumb_view), 0); gtk_icon_view_set_column_spacing (GTK_ICON_VIEW (thumb_view), 0); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (thumb_view), 0); gtk_icon_view_set_columns (GTK_ICON_VIEW (thumb_view), -1); gtk_icon_view_enable_model_drag_source (GTK_ICON_VIEW (thumb_view), GDK_BUTTON1_MASK, target_table, G_N_ELEMENTS (target_table), GDK_ACTION_COPY); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (thumb_view), GTK_SELECTION_MULTIPLE); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->store), THUMBNAIL_BASENAME_URL_COLUMN, GTK_SORT_ASCENDING); cheese_thumb_view_fill (thumb_view); cheese_thumb_view_set_vertical (thumb_view, FALSE); }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkIconView_gtk_1icon_1view_1set_1margin ( JNIEnv* env, jclass cls, jlong _self, jint _margin ) { GtkIconView* self; gint margin; // convert parameter self self = (GtkIconView*) _self; // convert parameter margin margin = (gint) _margin; // call function gtk_icon_view_set_margin(self, margin); // cleanup parameter self // cleanup parameter margin }
/** * Crée le GtkIconView * * \param nom de l'icône * * \return le GtkIconView rempli avec l'icône sélectionnée au premier plan * * */ GtkWidget * gsb_select_icon_create_icon_view ( gchar * name_icon ) { GtkTreePath * tree_path; /* construct the GtkIconView */ icon_view = gtk_icon_view_new (); gtk_icon_view_set_margin ( GTK_ICON_VIEW ( icon_view ), 0 ); gtk_icon_view_set_spacing (GTK_ICON_VIEW ( icon_view ), 0 ); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW ( icon_view ), GTK_SELECTION_SINGLE ); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW ( icon_view ), PIXBUF_COLUMN); gtk_icon_view_set_text_column (GTK_ICON_VIEW ( icon_view ), TEXT_COLUMN); /* remplissage et positionnement initial du curseur dans le GtkIconView */ tree_path = gsb_select_icon_fill_icon_view ( name_icon ); gtk_icon_view_select_path ( GTK_ICON_VIEW ( icon_view ), tree_path ); gtk_icon_view_set_cursor (GTK_ICON_VIEW ( icon_view ), tree_path, NULL, TRUE); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW ( icon_view ), tree_path, TRUE, 0.5, 0 ); return icon_view; }
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")); }
GtkWidget * create_icon_view(void) { GtkListStore *list_store; GtkWidget *widget; assert(list_store); list_store = gtk_list_store_new(N_COLS, G_TYPE_STRING, GDK_TYPE_PIXBUF); widget = gtk_icon_view_new_with_model(GTK_TREE_MODEL(list_store)); gtk_icon_view_set_text_column(GTK_ICON_VIEW(widget), COL_NAME); gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(widget), COL_ICON); gtk_icon_view_set_selection_mode(GTK_ICON_VIEW(widget), GTK_SELECTION_MULTIPLE); gtk_icon_view_set_margin(GTK_ICON_VIEW(widget), 4); gtk_icon_view_set_spacing(GTK_ICON_VIEW(widget), 5); gtk_icon_view_set_item_width(GTK_ICON_VIEW(widget), 80); g_signal_connect(G_OBJECT(widget), "item-activated", G_CALLBACK(handle_icon_view_item_activated), NULL); return widget; }
static void gwy_app_file_chooser_add_preview(GwyAppFileChooser *chooser) { GwyContainer *settings; GtkListStore *store; GtkIconView *preview; GtkCellLayout *layout; GtkCellRenderer *renderer; GtkTooltips *tips; GtkWidget *scwin, *vbox, *button, *toolbar; gboolean setting; gint w; scwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); store = gtk_list_store_new(2, G_TYPE_STRING, GDK_TYPE_PIXBUF); chooser->preview = gtk_icon_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); preview = GTK_ICON_VIEW(chooser->preview); layout = GTK_CELL_LAYOUT(preview); gtk_icon_view_set_columns(preview, 1); renderer = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start(layout, renderer, FALSE); gtk_cell_layout_add_attribute(layout, renderer, "pixbuf", COLUMN_PIXBUF); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "wrap-mode", PANGO_WRAP_WORD_CHAR, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); gtk_cell_layout_pack_start(layout, renderer, FALSE); gtk_cell_layout_add_attribute(layout, renderer, "markup", COLUMN_FILEINFO); chooser->renderer_fileinfo = G_OBJECT(renderer); gtk_icon_view_set_selection_mode(preview, GTK_SELECTION_NONE); /* In Gtk+ 2.14 and older, things work. 2.16 adds some padding that * breaks everything. And this padding together with the usual margin * meaks too much white space so we have to get rid of the margin in 2.16+. */ if (gtk_major_version == 2 && gtk_minor_version <= 14) { gtk_icon_view_set_item_width(preview, TMS_NORMAL_THUMB_SIZE); w = TMS_NORMAL_THUMB_SIZE + 2*gtk_icon_view_get_margin(preview); } else { gtk_icon_view_set_margin(preview, 0); gtk_icon_view_set_item_width(preview, PADDED_THUMBNAIL_SIZE); w = PADDED_THUMBNAIL_SIZE; } gtk_widget_set_size_request(chooser->preview, w, -1); gtk_container_add(GTK_CONTAINER(scwin), chooser->preview); vbox = gtk_vbox_new(FALSE, 2); chooser->preview_filename = gtk_label_new(NULL); gtk_misc_set_alignment(GTK_MISC(chooser->preview_filename), 0.0, 0.5); gtk_label_set_single_line_mode(GTK_LABEL(chooser->preview_filename), TRUE); gtk_label_set_ellipsize(GTK_LABEL(chooser->preview_filename), PANGO_ELLIPSIZE_END); gtk_box_pack_start(GTK_BOX(vbox), chooser->preview_filename, FALSE, FALSE, 0); chooser->preview_type = gtk_label_new(NULL); gtk_misc_set_alignment(GTK_MISC(chooser->preview_type), 0.0, 0.5); gtk_label_set_single_line_mode(GTK_LABEL(chooser->preview_type), TRUE); gtk_label_set_ellipsize(GTK_LABEL(chooser->preview_type), PANGO_ELLIPSIZE_END); gtk_box_pack_start(GTK_BOX(vbox), chooser->preview_type, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), scwin, TRUE, TRUE, 0); toolbar = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); settings = gwy_app_settings_get(); tips = gwy_app_get_tooltips(); setting = FALSE; gwy_container_gis_boolean_by_name(settings, "/app/file/preview/plane-level", &setting); button = gtk_toggle_button_new(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), setting); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); gtk_tooltips_set_tip(tips, button, _("Plane-level previewed data"), NULL); gtk_container_add(GTK_CONTAINER(button), gtk_image_new_from_stock(GWY_STOCK_LEVEL, GTK_ICON_SIZE_SMALL_TOOLBAR)); gtk_box_pack_start(GTK_BOX(toolbar), button, FALSE, FALSE, 0); g_signal_connect_swapped(button, "toggled", G_CALLBACK(plane_level_changed), chooser); setting = FALSE; gwy_container_gis_boolean_by_name(settings, "/app/file/preview/row-level", &setting); button = gtk_toggle_button_new(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), setting); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); gtk_tooltips_set_tip(tips, button, _("Row-level previewed data"), NULL); gtk_container_add(GTK_CONTAINER(button), gtk_image_new_from_stock(GWY_STOCK_LINE_LEVEL, GTK_ICON_SIZE_SMALL_TOOLBAR)); gtk_box_pack_start(GTK_BOX(toolbar), button, FALSE, FALSE, 0); g_signal_connect_swapped(button, "toggled", G_CALLBACK(row_level_changed), chooser); gtk_widget_show_all(vbox); gtk_file_chooser_set_preview_widget(GTK_FILE_CHOOSER(chooser), vbox); gtk_file_chooser_set_use_preview_label(GTK_FILE_CHOOSER(chooser), FALSE); g_signal_connect(chooser, "update-preview", G_CALLBACK(gwy_app_file_chooser_update_preview), NULL); toolbar = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); }