* Source/NSWindow.m: (-setFrame:): Revert last change.

* Source/NSWindow.m: (-encodeWithCoder:, -initWithCoder:): Use
  content min/max size instead of min/max size.
* Source/NSWindow.m: (+initialize): Increase version number to 3.
* Source/GSNibLoading.m (NSWindowTemplate -encodeWithCoder:,
  -initWithCoder:): Use NSWindowContentMinSize/NSWindowContentMaxSize
  instead of NSMinSize/NSMaxSize.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37828 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2014-05-03 18:32:20 +00:00
parent 80247e6982
commit fc150231a2
3 changed files with 65 additions and 29 deletions

View file

@ -1,3 +1,13 @@
2014-05-03 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSWindow.m: (-setFrame:): Revert last change.
* Source/NSWindow.m: (-encodeWithCoder:, -initWithCoder:): Use
content min/max size instead of min/max size.
* Source/NSWindow.m: (+initialize): Increase version number to 3.
* Source/GSNibLoading.m (NSWindowTemplate -encodeWithCoder:,
-initWithCoder:): Use NSWindowContentMinSize/NSWindowContentMaxSize
instead of NSMinSize/NSMaxSize.
2014-04-16 17:28-EDT Gregory John Casamento <greg.casamento@gmail.com> 2014-04-16 17:28-EDT Gregory John Casamento <greg.casamento@gmail.com>
* Headers/Additions/GNUstepGUI/GSXibElement.h * Headers/Additions/GNUstepGUI/GSXibElement.h

View file

@ -311,8 +311,10 @@ static BOOL _isInInterfaceBuilder = NO;
// style & size // style & size
_windowStyle = [window styleMask]; _windowStyle = [window styleMask];
_backingStoreType = [window backingType]; _backingStoreType = [window backingType];
_maxSize = [window maxSize]; //_maxSize = [window maxSize];
_minSize = [window minSize]; //_minSize = [window minSize];
_maxSize = [window contentMaxSize];
_minSize = [window contentMinSize];
_windowRect = [window frame]; _windowRect = [window frame];
_screenRect = [[NSScreen mainScreen] frame]; _screenRect = [[NSScreen mainScreen] frame];
@ -360,18 +362,37 @@ static BOOL _isInInterfaceBuilder = NO;
unsigned long flags = [coder decodeIntForKey: @"NSWTFlags"]; unsigned long flags = [coder decodeIntForKey: @"NSWTFlags"];
memcpy((void *)&_flags,(void *)&flags,sizeof(struct _GSWindowTemplateFlags)); memcpy((void *)&_flags,(void *)&flags,sizeof(struct _GSWindowTemplateFlags));
} }
if ([coder containsValueForKey: @"NSMinSize"])
if ([coder containsValueForKey: @"NSWindowContentMinSize"])
{ {
_minSize = [coder decodeSizeForKey: @"NSMinSize"]; _minSize = [coder decodeSizeForKey: @"NSWindowContentMinSize"];
} }
if ([coder containsValueForKey: @"NSMaxSize"]) else if ([coder containsValueForKey: @"NSMinSize"])
{ {
_maxSize = [coder decodeSizeForKey: @"NSMaxSize"]; NSRect rect = NSZeroRect;
rect.size = [coder decodeSizeForKey: @"NSMinSize"];
rect = [NSWindow contentRectForFrameRect: rect
styleMask: _windowStyle];
_minSize = rect.size;
}
if ([coder containsValueForKey: @"NSWindowContentMaxSize"])
{
_maxSize = [coder decodeSizeForKey: @"NSWindowContentMaxSize"];
}
else if ([coder containsValueForKey: @"NSMaxSize"])
{
NSRect rect = NSZeroRect;
rect.size = [coder decodeSizeForKey: @"NSMaxSize"];
rect = [NSWindow contentRectForFrameRect: rect
styleMask: _windowStyle];
_maxSize = rect.size;
} }
else else
{ {
_maxSize = NSMakeSize (10e4, 10e4); _maxSize = NSMakeSize (10e4, 10e4);
} }
if ([coder containsValueForKey: @"NSWindowRect"]) if ([coder containsValueForKey: @"NSWindowRect"])
{ {
_windowRect = [coder decodeRectForKey: @"NSWindowRect"]; _windowRect = [coder decodeRectForKey: @"NSWindowRect"];
@ -412,8 +433,8 @@ static BOOL _isInInterfaceBuilder = NO;
[aCoder encodeInt: _backingStoreType forKey: @"NSWindowBacking"]; [aCoder encodeInt: _backingStoreType forKey: @"NSWindowBacking"];
[aCoder encodeObject: _view forKey: @"NSWindowView"]; [aCoder encodeObject: _view forKey: @"NSWindowView"];
[aCoder encodeInt: flags forKey: @"NSWTFlags"]; [aCoder encodeInt: flags forKey: @"NSWTFlags"];
[aCoder encodeSize: _minSize forKey: @"NSMinSize"]; [aCoder encodeSize: _minSize forKey: @"NSWindowContentMinSize"];
[aCoder encodeSize: _maxSize forKey: @"NSMaxSize"]; [aCoder encodeSize: _maxSize forKey: @"NSWindowContentMaxSize"];
[aCoder encodeRect: rect forKey: @"NSWindowRect"]; [aCoder encodeRect: rect forKey: @"NSWindowRect"];
[aCoder encodeObject: _title forKey: @"NSWindowTitle"]; [aCoder encodeObject: _title forKey: @"NSWindowTitle"];
[aCoder encodeObject: _autosaveName forKey: @"NSFrameAutosaveName"]; [aCoder encodeObject: _autosaveName forKey: @"NSFrameAutosaveName"];
@ -465,8 +486,8 @@ static BOOL _isInInterfaceBuilder = NO;
// reset attributes... // reset attributes...
[_realObject setContentView: _view]; [_realObject setContentView: _view];
[_realObject setMinSize: _minSize]; //[_realObject setMinSize: _minSize];
[_realObject setMaxSize: _maxSize]; //[_realObject setMaxSize: _maxSize];
[_realObject setTitle: _title]; [_realObject setTitle: _title];
if ([_viewClass isKindOfClass: [NSToolbar class]]) if ([_viewClass isKindOfClass: [NSToolbar class]])
@ -474,6 +495,9 @@ static BOOL _isInInterfaceBuilder = NO;
// FIXME: No idea what is going on here // FIXME: No idea what is going on here
[_realObject setToolbar: (NSToolbar*)_viewClass]; [_realObject setToolbar: (NSToolbar*)_viewClass];
} }
[_realObject setContentMinSize: _minSize];
[_realObject setContentMaxSize: _maxSize];
[_view _fixSubviews]; [_view _fixSubviews];

View file

@ -682,7 +682,7 @@ static NSNotificationCenter *nc = nil;
{ {
if (self == [NSWindow class]) if (self == [NSWindow class])
{ {
[self setVersion: 2]; [self setVersion: 3];
ccSel = @selector(_checkCursorRectangles:forEvent:); ccSel = @selector(_checkCursorRectangles:forEvent:);
ctSel = @selector(_checkTrackingRectangles:forEvent:); ctSel = @selector(_checkTrackingRectangles:forEvent:);
ccImp = [self instanceMethodForSelector: ccSel]; ccImp = [self instanceMethodForSelector: ccSel];
@ -2174,18 +2174,7 @@ titleWithRepresentedFilename(NSString *representedFilename)
} }
if (_maximumSize.height > 0 && frameRect.size.height > _maximumSize.height) if (_maximumSize.height > 0 && frameRect.size.height > _maximumSize.height)
{ {
NSInterfaceStyle style = frameRect.size.height = _maximumSize.height;
NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", nil);
if (style != NSWindows95InterfaceStyle)
{
frameRect.size.height = _maximumSize.height;
}
else
{
float menuHeight = [[GSTheme theme] menuHeightForWindow:self];
frameRect.size.height = _maximumSize.height + menuHeight;
}
} }
if (frameRect.size.width < _minimumSize.width) if (frameRect.size.width < _minimumSize.width)
{ {
@ -5437,8 +5426,10 @@ current key view.<br />
[aCoder encodeObject: _miniaturizedTitle]; [aCoder encodeObject: _miniaturizedTitle];
[aCoder encodeObject: _windowTitle]; [aCoder encodeObject: _windowTitle];
[aCoder encodeSize: _minimumSize]; // [aCoder encodeSize: _minimumSize];
[aCoder encodeSize: _maximumSize]; // [aCoder encodeSize: _maximumSize];
[aCoder encodeSize: [self contentMinSize]];
[aCoder encodeSize: [self contentMaxSize]];
[aCoder encodeValueOfObjCType: @encode(NSInteger) at: &_windowLevel]; [aCoder encodeValueOfObjCType: @encode(NSInteger) at: &_windowLevel];
@ -5491,6 +5482,7 @@ current key view.<br />
NSBackingStoreType aBacking; NSBackingStoreType aBacking;
NSInteger level; NSInteger level;
id obj; id obj;
int version = [aDecoder versionForClassName: @"NSWindow"];
aRect = [aDecoder decodeRect]; aRect = [aDecoder decodeRect];
[aDecoder decodeValueOfObjCType: @encode(NSUInteger) [aDecoder decodeValueOfObjCType: @encode(NSUInteger)
@ -5517,10 +5509,20 @@ current key view.<br />
obj = [aDecoder decodeObject]; obj = [aDecoder decodeObject];
[self setTitle: obj]; [self setTitle: obj];
aSize = [aDecoder decodeSize]; if (version < 3)
[self setMinSize: aSize]; {
aSize = [aDecoder decodeSize]; aSize = [aDecoder decodeSize];
[self setMaxSize: aSize]; [self setMinSize: aSize];
aSize = [aDecoder decodeSize];
[self setMaxSize: aSize];
}
else
{
aSize = [aDecoder decodeSize];
[self setContentMinSize: aSize];
aSize = [aDecoder decodeSize];
[self setContentMaxSize: aSize];
}
[aDecoder decodeValueOfObjCType: @encode(NSInteger) [aDecoder decodeValueOfObjCType: @encode(NSInteger)
at: &level]; at: &level];