The computeSize method should report the minimum size needed by the control. Expanding the control to fill available space is the responsibility of the container control, using layout data hints.
-Matthew On May 10, 2012 8:25 AM, "Hallvard Trætteberg" <[email protected]> wrote: > Hi, > > I have been looking at implementing computeSize in GeoMap, so it "grabs" > more space than the minimum when there are no constraints. I test it by > creating an anonymous subclass in GeoMapViewer's constructor. First I tried > > public GeoMapViewer(Composite parent, int flags) { > this(new GeoMap(parent, flags) { > @Override > public Point computeSize(int wHint, int hHint, > boolean changed) { > int w = (wHint != SWT.DEFAULT ? wHint : > Integer.MAX_VALUE); > int h = (hHint != SWT.DEFAULT ? hHint : > Integer.MAX_VALUE); > return new Point(w, h); > } > }); > } > > The idea is to indicate that ideally GeoMap wants as much space as > possible. I was pretty surprised that the wish for Integer.MAX_VALUE width > and height was granted, in the sense that getSize() reported these > dimensions not that the layout actually gave it that much space. This gave > problems in the paint method, so I reduced the value from Integer.MAX_VALUE > to 256 * 8. > > Two question: > - (how) can the computeSize method say that it wants as much as possible, > but can accept nothing? > - why isn't the size returned by getSize() actually reduced to the visible > size instead of the value asked for by computeSize? > > Hallvard > ______________________________**_________________ > nebula-dev mailing list > [email protected] > https://dev.eclipse.org/**mailman/listinfo/nebula-dev<https://dev.eclipse.org/mailman/listinfo/nebula-dev> >
_______________________________________________ nebula-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/nebula-dev
