GtkFileChooser preview widget

2015-12-14 Thread Franco Broi
Hi

I'm trying to add a preview widget that is a drawing area for cairo to
my file chooser but have encountered a couple of problems.

I have attached a configure-event signal to the drawing-area to redraw
when the widget resizes but this is causing problems on initialisation,
I get the following error:

Gtk-WARNING **: GtkDrawingArea 0x1700340 is mapped but visible=1 
child_visible=1 parent GtkBox 0x1c1eba0 mapped=0

I believe this is coming from a call to
gtk_file_chooser_set_preview_widget_active(w, FALSE) which is required
to prevent the file chooser from displaying an empty box for the preview
widget when the file chooser first starts.

After the initial error, the file chooser behaves correctly.

Below are the configure-event and update-preview callbacks. Any idea
what I'm doing wrong?

Cheers,
Franco

static cairo_surface_t *colour_scheme_preview_surface;

static gboolean
colour_scheme_update_preview_cb(GtkWidget *widget, gpointer data) {

gboolean preview = FALSE;

char *filename = 
gtk_file_chooser_get_preview_filename(GTK_FILE_CHOOSER(widget));

if(filename){
if(pegasus_colour_bar_init(DS_PREVIEW, colour_scheme_preview_surface, 
filename)){
preview = TRUE;
gtk_widget_queue_draw(GTK_WIDGET(data));
}
free(filename);
}

gtk_file_chooser_set_preview_widget_active(GTK_FILE_CHOOSER(widget), 
preview);

return FALSE;
}

static gboolean
colour_scheme_configure_event_cb(GtkWidget *widget, GdkEventConfigure *event, 
gpointer data) {

if(colour_scheme_preview_surface) 
cairo_surface_destroy(colour_scheme_preview_surface);

gint width, height;
width = gtk_widget_get_allocated_width(widget);
height = gtk_widget_get_allocated_height(widget);

colour_scheme_preview_surface = cairo_image_surface_create 
(CAIRO_FORMAT_ARGB32, width, height);

colour_scheme_update_preview_cb(GTK_WIDGET(data), widget);

return FALSE;
}


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


gtktreeview: Why does gtktreeview retrieve all columns although 99% are not visible? (psppire)

2015-12-14 Thread Friedrich Beckmann
Hi,

i currently work on psppire http://savannah.gnu.org/projects/pspp/ and want to 
use gtktreeview for a large number of columns (2000) and rows (1). I use 
only a kind of fake tree model while the actual rendering and data retrieval is 
done via gtk_tree_view_column_set_cell_data_func. I noticed that during redraw 
all columns are actually retrieved but only for the visible rows. Here is a log 
showing the access pattern:

(here columns 0 to 1995)
render_data_cell: row: 6, column: 1996
render_data_cell: row: 6, column: 1997
render_data_cell: row: 6, column: 1998
render_data_cell: row: 6, column: 1999
render_data_cell: row: 6, column: 0
render_data_cell: row: 6, column: 1
render_data_cell: row: 6, column: 2
render_data_cell: row: 6, column: 3
render_data_cell: row: 6, column: 4
render_data_cell: row: 6, column: 5
render_data_cell: row: 6, column: 6
render_data_cell: row: 6, column: 7
render_data_cell: row: 6, column: 8
render_data_cell: row: 6, column: 9
render_data_cell: row: 6, column: 10
render_data_cell: row: 6, column: 11
render_data_cell: row: 6, column: 12
render_data_cell: row: 6, column: 13
render_data_cell: row: 6, column: 14
render_data_cell: row: 6, column: 15

Only columns 0 to 15 are visible in the window. Is there any specific reason 
why 2000 columns are retrieved when only 16 are visible? I configured the 
columns as GTK_TREE_VIEW_COLUMN_FIXED. The treeview has the fixed-height mode 
activated. I use gtk3 18.5 on macports. Is there a configuration of the columns 
or the treeview that would prevent this?

The code is here: 
http://git.savannah.gnu.org/cgit/pspp.git/tree/src/ui/gui/psppire-data-sheet.c?h=treeview#n244

Friedrich






___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list