In C, you would use clist->column[i].width, which will give you the width
of the column.  I should add an accessor like this to pygtk along with the
adjustment modifier routines.

James.

--
Email: [EMAIL PROTECTED]
WWW:   http://www.daa.com.au/~james/


On Wed, 23 Jun 1999, Mitch Chapman wrote:

> Hi,
> 
> We're working on adding behaviors to the column-header buttons
> in GtkCList/GtkCTree.  One of the added behaviors is rearranging
> columns using drag and drop.
> 
> When "moving" a column in this manner, I'd like the column widths
> to move along with the column data.  In other words, if the 5th
> column is 100 pixels wide, then when I move it to column 2 it
> should still be 100 pixels wide.
> 
> And there's my problem:  how to find out the width of a column?
> Better still, how to find the width of a column `i' in a list/tree 
> `lt' such that
> 
> w0 = get_column_width(lt, i)
> lt.set_column_width(i, w0)
> wf = get_column_width(lt, i)
> assert (w0 == wf)
> 
> I've tried several methods, and they all fail in various ways to 
> account for the size of the widget's decorations -- the border width
> around the button, the cell spacing within the list/tree, and so on.
> 
> Anybody have any suggestions?  Here's what I've tried:
> 
> 1. Try to get the width of the column header button:
>       button = lt.get_column_widget(i)["parent"]
>       width = button["width"]
> 
>    This usually returns -1.  No dice.
> 
> 2. Try to get the width of the window containing the button:
>       button = lt.get_column_widget(i)["parent"]
>       window = button.get_window()
>       # May fail if button is not realized
>       width = -1
>       if window:
>           width = window.width
> 
>    This gives the width of the window.  But the button *and* its
>    decorations are painted inside the window.  So if I set the 
>    column width based on the window.width, the button gets wider.
> 
> 3. Use the button's requisitioned width:
>       ...
>       width = button.get_child_requisition()[0]
>    This appears to return the last auto-computed width of the
>    column.  But the uesr could have manually resized the columns
>    after the last auto-size, so this isn't what I want either.
> 
> 4. Use the button's allocation width:
>       ...
>       width = button.get_allocation()[2]
>    This appears to be the same as method 2, above.  The only
>    difference is that, if the widget hasn't been realized, this
>    technique returns 1 rather than -1.
> 
> 
> Thanks for help.
> -- 
> Mitch Chapman
> [EMAIL PROTECTED]
> To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]
> 

To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]

Reply via email to