Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » Setting the size of an empty Text widget(Doesn't seem to be possible)
Setting the size of an empty Text widget [message #545466] Wed, 07 July 2010 21:22 Go to next message
Mark Leone is currently offline Mark LeoneFriend
Messages: 123
Registered: July 2009
Senior Member
Is there some special incantation required to set the size of an empty Text widget? I'm using a GridLayout, and I tried setting all the obvious parameters on the GridData object: hint = desired size, grab (horiz) = true, align (horiz) = SWT.FILL. No matter what I do, the widget is drawn at a fixed size, about 5 or 6 characters wide.

If I put text into it first, it gets drawn at the size required to hold the text; so I know the layout can handle the size I'm looking for. I also tried calling setSize() on the Text, before or after I apply the layout data. Nothing seems to work.
Re: Setting the size of an empty Text widget [message #545601 is a reply to message #545466] Thu, 08 July 2010 11:40 Go to previous messageGo to next message
Peter Kanzler is currently offline Peter KanzlerFriend
Messages: 9
Registered: July 2009
Junior Member
Hello,

try setting the layout data like this:

Text text = new Text(shell, SWT.BORDER);
GridData textGD = new GridData(GridData.FILL_HORIZONTAL);
text.setLayoutData(textGD);

Works for me. Maybe you have to set textGD.horizontalSpan as well. I
don't know how your layout is set up.

cheers
Peter


On 07.07.10 23:22, Mark Leone wrote:
> Is there some special incantation required to set the size of an empty
> Text widget? I'm using a GridLayout, and I tried setting all the obvious
> parameters on the GridData object: hint = desired size, grab (horiz) =
> true, align (horiz) = SWT.FILL. No matter what I do, the widget is drawn
> at a fixed size, about 5 or 6 characters wide.
>
> If I put text into it first, it gets drawn at the size required to hold
> the text; so I know the layout can handle the size I'm looking for. I
> also tried calling setSize() on the Text, before or after I apply the
> layout data. Nothing seems to work.
>
Re: Setting the size of an empty Text widget [message #545774 is a reply to message #545601] Fri, 09 July 2010 04:43 Go to previous message
Mark Leone is currently offline Mark LeoneFriend
Messages: 123
Registered: July 2009
Senior Member
Thanks for the reply, Peter. I usually use the grid data factory class, in which the following code is equivalent to what you posted.

GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).applyTo(text);


I discovered that the problem was caused by the fact that the Text object in question was being placed in a PageBook. The PageBook API shows that it has its own layout manager implementation, and it doesn't say anything about how to specify layout data for it.

I didn't get a run-time error when I applied the GridData to the Text, which usually happens when I use it with an incompatible layout manager. But I also had tried not applying any layout data to the Text, relying on Text.setSize() to specify the width; and the size setting was ignored in that case as well.

I finally got it to work by creating a Composite to hold the Text. I created the Composite as a child of the PageBook, with no layout data set on it. Then I created and applied a GridLayout to the Composite, added the Text as a child of the Composite, and applied the GridData to the Text as described above. By adding
grab(true, false)
to the method chain on GridDataFactory, and not doing so on any other objects in the row, the Text control now expands to fill all available horizontal space (and contracts accordingly when its parent is made smaller), which is the effect I was aiming for.
Previous Topic:Problem embedding native windows.
Next Topic:Deploying a cross-platform SWT stand-alone application
Goto Forum:
  


Current Time: Thu Apr 25 21:04:55 GMT 2024

Powered by FUDForum. Page generated in 0.03801 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top