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]