* 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:
Fred Kiefer 2014-05-03 18:32:20 +00:00
parent 1e9799efeb
commit dcb4ac58f2
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>
* Headers/Additions/GNUstepGUI/GSXibElement.h

View file

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

View file

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