[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [nebula-dev] computeSize in Control | 
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