diff --git a/ChangeLog b/ChangeLog index 2371d595f..7c4e441ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-07-14 01:17 Gregory John Casamento + + * Headers/Additions/GNUstepGUI/GSNibCompatibility.h: + * Source/GSNibCompatibility.m: Added method initWithWindow:.. to + initialize the template from an actual window instance. + 2006-07-10 00:12 Gregory John Casamento * Source/NSSplitView.m: Keyed encoding changes in initWithCoder: diff --git a/Headers/Additions/GNUstepGUI/GSNibCompatibility.h b/Headers/Additions/GNUstepGUI/GSNibCompatibility.h index 36e636103..d30718750 100644 --- a/Headers/Additions/GNUstepGUI/GSNibCompatibility.h +++ b/Headers/Additions/GNUstepGUI/GSNibCompatibility.h @@ -105,6 +105,13 @@ typedef struct _GSWindowTemplateFlags NSString *_autosaveName; Class _baseWindowClass; } +- (id) initWithWindow: (NSWindow *)window + className: (NSString *)windowClass + isDefferred: (BOOL) deferred + isOneShot: (BOOL) oneShot + isVisible: (BOOL) visible + wantsToBeColor: (BOOL) wantsToBeColor + autoPositionMask: (int) autoPositionMask; - (void) setBackingStoreType: (NSBackingStoreType)type; - (NSBackingStoreType) backingStoreType; - (void) setDeferred: (BOOL)flag; diff --git a/Source/GSNibCompatibility.m b/Source/GSNibCompatibility.m index 886058a40..e50e6f130 100644 --- a/Source/GSNibCompatibility.m +++ b/Source/GSNibCompatibility.m @@ -75,6 +75,48 @@ static BOOL _isInInterfaceBuilder = NO; [super dealloc]; } +- (id) initWithWindow: (NSWindow *)window + className: (NSString *)windowClass + isDefferred: (BOOL) deferred + isOneShot: (BOOL) oneShot + isVisible: (BOOL) visible + wantsToBeColor: (BOOL) wantsToBeColor + autoPositionMask: (int) autoPositionMask +{ + if((self = [super init]) != nil) + { + if(window != nil) + { + // object members + ASSIGN(_title, [window title]); + ASSIGN(_viewClass, NSStringFromClass([[window contentView] class])); + ASSIGN(_windowClass, windowClass); + ASSIGN(_view, [window contentView]); + ASSIGN(_autosaveName, [window frameAutosaveName]); + + // style & size + _windowStyle = [window styleMask]; + _backingStoreType = [window backingType]; + _maxSize = [window maxSize]; + _minSize = [window minSize]; + _windowRect = [window frame]; + _screenRect = [[NSScreen mainScreen] frame]; + + // flags + _flags.isHiddenOnDeactivate = [window hidesOnDeactivate]; + _flags.isNotReleasedOnClose = (![window isReleasedWhenClosed]); + _flags.isDeferred = deferred; + _flags.isOneShot = oneShot; + _flags.isVisible = visible; + _flags.wantsToBeColor = wantsToBeColor; + _flags.dynamicDepthLimit = [window hasDynamicDepthLimit]; + _flags.autoPositionMask = autoPositionMask; + _flags.savePosition = YES; // not yet implemented. + } + } + return self; +} + - (id) initWithCoder: (NSCoder *)coder { if ([coder allowsKeyedCoding])