----- Original Message ----
> From: Onno Ekker <[EMAIL PROTECTED]>
> To: [email protected]
> Sent: Wednesday, July 2, 2008 5:18:48 PM
> Subject: [Project_owners] Grids
>
> Hi,
>
> 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.
>
> nodelist = document.getElementsByTagName('row');
> for (var i = 0; i < nodelist.length; i++) {
> var width1 = nodelist[i].firstChild.boxObject.width; dump(width1);
> var width2 = nodelist[i].lastChild.boxObject.width; dump(width2);
> }
>
> width1 and width2 are always 0.
>
> 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! */
}
Eric
_______________________________________________
Project_owners mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/project_owners