On Tuesday 27 January 2004 1:25 am, Steve Wampler wrote: > On Mon, 2004-01-26 at 08:42, Steve Wampler wrote: > > On Mon, Jan 26, 2004 at 08:29:58AM -0700, Steve Wampler wrote: > > > Does anyone have any code for figuring out the 'size' (x,y bounds) > > > of a string before it is displayed in a component? > > > > Ah, reading the "Graphics Programming in Icon", I've found > > the WAttrib("ascent"), WAttrib("descent"), and WAttrib("leading") > > calls. That should be sufficent, along with TextWidth() to > > do the above. > > Ok, apparently I lied. Nothing is easy, even > after finding WAttrib(w, "height") and > WAttrib(w, "leading")... > > TextWidth() and WAttrib() require the window as > a parameter - but apparently there is no window > associated with a _Dialog while it is being setup() > (window value is &null), so I can't get use the > above after all... > > Now, I *think* I can get around this by estimating > the width using the 'width' (maximum character width) > of the font, but how do I get the font during > _Dialog setup()? > > Is there another way? > > Thanks! > Steve
Hi Steve This is possible by use of a temporary "hidden" window. If "s" is the string to be displayed in "label", you could override the component_setup() in the dialog to do the following :- method component_setup() local win, width # Setup the label and other components self.setup() win := (WOpen ! (["canvas=hidden"] ||| self.attribs)) | fatal("couldn't open window") width := TextWidth(win, s) WClose(win) label.set_label(s) set_attribs("size=" || (width + 50) || ",140") end Hope this helps, R ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Unicon-group mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/unicon-group