On Mon, May 14, 2012 at 10:29 PM, James Steward
<jamesstew...@optusnet.com.au> wrote:
> On 15/05/12 11:56, Tristan Van Berkom wrote:
>>
>> Are you using GTK+ 3 ?
>>
>
> Still on GTK+ 2.0.
>
>
>> If so, use GtkGrid instead... possibly just that will fix things for you.
>>
>> Short of that, if I understand correctly, you have a target
>> state/configuration
>> of a GtkTable (or GtkGrid), if you construct the table in the target
>> configuration
>> from scratch, I take it things work as you want... but dont work properly
>> after performing some kind of a transformation to reach your target
>> state...
>>
>
> That's about it.
>
>> ... perhaps it's worth trying an extra call to gtk_widget_queue_resize()
>> after modifying your table.
>>
>
>
> I'm trying that.   I have signals connected thus;
>
>    g_signal_connect(G_OBJECT(p->canvas), "expose-event",
>             G_CALLBACK(&plot_expose_event), p);
>
>    g_signal_connect(G_OBJECT(p->canvas), "select-item",
>             G_CALLBACK(&plot_select_event), p);
>
> and get the plot_select_event() routine to calculate and set new canvas
> sizes with
>
> gtk_plot_canvas_set_size(GTK_PLOT_CANVAS(p->canvas), width, height);
>
> then call gtk_widget_queue_resize(GTK_WIDGET(p->table));
>
> This causes plot_expose_event() to get called, which calls
> gtk_plot_canvas_paint(GTK_PLOT_CANVAS(canvas));
>
> But the table rows seem to expand to the largest canvas and don't seem to
> take on variable heights.
>
> Feel I've been around and around the mulberry bush on this ;-)


Hard to say whats going on here, I wonder who is responding
to the size requests for these items which are getting drawn.

It seems you connect to a signal to draw on a widget, which
means the content is not the widget, so probably you need
to also connect a signal to override the size request of the
said widget you intend painting onto ?

Perhaps you are using forced size requests to accomplish
this (using gtk_widget_set_size_request() or such), and
have somehow mixed up the size requests while swapping
your content onto new rows/columns ?

Other than that, child 'expand' properties will be considered
by the GtkTable (if all children can expand, then it's quite
possible that after reaching a large window size the content
will be evenly  spread).

Cheers,
        -Tristan

> Regards,
> James.
>
>
> On Mon, May 14, 2012 at 9:21 PM, James Steward
>>
>> <jamesstew...@optusnet.com.au>  wrote:
>>
>>>
>>> Hi,
>>>
>>> I have an application with a tabbed view.  On two tabs I have a table,
>>> one
>>> is a 2x2 table, the other a 3x1 table (3 rows).
>>>
>>> In each cell is a canvas that has a gtk plot.
>>>
>>> I want to be able to click one of the plots in the 3x1 table and change
>>> the
>>> canvas size to 2/3 the original, with the other two canvases being 1/6
>>> the
>>> original size.
>>>
>>> After redrawing and resizing and mucking about, I can't get the table
>>> rows
>>> to be different sizes, accommodating the different sized canvases
>>> properly,
>>> even though I have gtk_table_set_homogeneous (table, FALSE);
>>>
>>> Any clues how to do this?
>>>
>>> Regards,
>>> James.
>>> _______________________________________________
>>> gtk-app-devel-list mailing list
>>> gtk-app-devel-list@gnome.org
>>> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>>>
>>
>>
>
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to