Hello all,
I have discovered an incompatibility between Cocoa and GNUstep regarding
the resize of an NSTabView. My application works on both Cocoa and
GNUstep, but on GNUstep the UI elements are aligned at the bottom of the
NSTabViewItem (its view) and on Cocoa at the top (which is what I
prefer). I tried to figure out what happens behind the scenes. When I
resize the tabView on Cocoa I get
2004-08-20 12:17:54.097 SmartClient[2411] <GSTabView: 0x23ddc70>
setFrame {{212.897, 10}, {273.103, 540}}
2004-08-20 12:17:54.098 SmartClient[2411] <GSGrid: 0x1c10e0> setFrame
{{10, 33}, {253, 94}}
2004-08-20 12:17:54.098 SmartClient[2411] <GSGrid: 0x1c10e0> setFrame
{{10, 33}, {253.103, 494}}
2004-08-20 12:17:54.098 SmartClient[2411] <GSTabView: 0x23ddc70>
setFrame {{212.897, 10}, {273.103, 540}}
GSTabView is a NSTabView subclass. GSGrid is a sublclass of NSView and
set as the view of the tabViewItem. I am not sure where the second line
comes from but you can see that the height of the GSGrid (NSTabViewItem
view) is close to the height of the tabView which is what I would expect.
On GNUstep I get the following:
2004-08-20 12:36:33.000 SmartClient[11685] <GSTabView: 363078> setFrame
{x=217.5; y=10; width=254.5; height=683}
2004-08-20 12:36:33.000 SmartClient[11685] <GSGrid: 39cec0> setFrame
{x=0.5; y=1; width=253.5; height=102}
2004-08-20 12:36:36.000 SmartClient[11685] <GSTabView: 363078> setFrame
{x=218; y=10; width=255; height=683}
2004-08-20 12:36:36.000 SmartClient[11685] <GSGrid: 39cec0> setFrame
{x=0.5; y=1; width=254; height=99}
That's something I don't understand. The height of the subview
(NSTabViewItem view) does not follow the height of the NSTabView. It
remains constant at about 100 pixel. I am still not sure whether this
behaviour is caused by my sublcasses or by the NSTabView implementation
of GNUstep, but since the same code behaves differently on both systems
I guess its probably the NSTabView implementation. Can anybody with
insights on NSTabView comment this? Is there any reason why the innards
of the NSTableView should not follow the NSTabView frame?