[Project_owners] Grids
Onno Ekker
o.e.ekker at gmail.com
Thu Jul 3 13:35:39 PDT 2008
Eric H. Jung wrote:
> Onno wrote:
>> I have in my xul two grids with two columns each, both in a seperate
>> groupbox. I'd like both columns of both grids to have the same width,
>> but I can't seem to find the width of the current columns.
>> ....
>> Is it possible at all to get and set these widths?
>> Is there another way to calculate the width of the label?
>> Or should I get the length of the label's values and then set width to x
>> em?
>>
>
> Assuming your XUL is of this structure, try this:
>
> <grid><columns id=cols1"><column/><column/></columns><rows><row ... /></rows></grid>
> <grid><columns id=cols2"><column/><column/></columns><rows><row ...
> /></rows></grid>
>
> /* Set widths of columns of 2nd grid to widths of columns of first grid. Untested */
> var cols1=document.getElementById("cols1"),
> cols2=document.getElementById("cols2");
>
> for (var i=0, sz=cols1.childNodes.length; i<sz; i++) {
> var width = document.defaultView.getComputedStyle(cols1.childNodes[i], "width").width); /* might be a cleaner way */
> dump("width of col " + i + " " + width);
> cols2.childNodes[i].setAttribute("style", "width: " + width); /* overwrites other styles if they exist! */
> }
>
>
This works like a charm, now. Next problem is that resizing both columns
leaves my window too small, so that needs resizing too now. I can
probably find it's current size and add the differences to that too in
much the same way.
Onno
More information about the Project_owners
mailing list