Cleanup for sizes

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5091 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
nico 1999-10-27 12:15:44 +00:00
parent a457e2050c
commit 2b3ede32b3

View file

@ -48,9 +48,11 @@
#define _SAVE_PANEL_X_PAD 5 #define _SAVE_PANEL_X_PAD 5
#define _SAVE_PANEL_Y_PAD 4 #define _SAVE_PANEL_Y_PAD 4
#define _SAVE_PANEL_TOP_VIEW_ORIGIN_Y 60 // After loading the save panel, we store in these
#define _SAVE_PANEL_SIZE_WIDTH 280 // variables its size (used when restoring the panel
#define _SAVE_PANEL_SIZE_HEIGHT 350 // after removing an accessory view)
static NSSize _savePanelSize;
static float _savePanelTopViewOriginY;
static NSSavePanel *gnustep_gui_save_panel = nil; static NSSavePanel *gnustep_gui_save_panel = nil;
@ -223,6 +225,7 @@ static NSSavePanel *gnustep_gui_save_panel = nil;
@interface NSSavePanel (PrivateMethods) @interface NSSavePanel (PrivateMethods)
- (id) _initWithoutGModel; - (id) _initWithoutGModel;
- (void) _getOriginalSize;
- (void) _setDefaults; - (void) _setDefaults;
- (void) _setDirectory: (NSString *)path updateBrowser: (BOOL)flag; - (void) _setDirectory: (NSString *)path updateBrowser: (BOOL)flag;
@ -395,6 +398,11 @@ static NSSavePanel *gnustep_gui_save_panel = nil;
return self; return self;
} }
- (void) _getOriginalSize
{
_savePanelSize = [self frame].size;
_savePanelTopViewOriginY = [_topView frame].origin.y;
}
- (void) _setDefaults - (void) _setDefaults
{ {
@ -475,6 +483,7 @@ static NSSavePanel *gnustep_gui_save_panel = nil;
{ {
// if (![GMModel loadIMFile:@"SavePanel" owner:NSApp]) // if (![GMModel loadIMFile:@"SavePanel" owner:NSApp])
[[NSSavePanel alloc] _initWithoutGModel]; [[NSSavePanel alloc] _initWithoutGModel];
[gnustep_gui_save_panel _getOriginalSize];
} }
if (gnustep_gui_save_panel) if (gnustep_gui_save_panel)
[gnustep_gui_save_panel _setDefaults]; [gnustep_gui_save_panel _setDefaults];
@ -497,38 +506,36 @@ static NSSavePanel *gnustep_gui_save_panel = nil;
NSView *contentView = [self contentView]; NSView *contentView = [self contentView];
NSRect addedFrame, bottomFrame, topFrame; NSRect addedFrame, bottomFrame, topFrame;
NSSize contentSize; NSSize contentSize;
NSSize originalContentSize = NSMakeSize (_SAVE_PANEL_SIZE_WIDTH,
_SAVE_PANEL_SIZE_HEIGHT);
NSDebugLLog(@"NSSavePanel", @"NSSavePanel -setAccessoryView"); NSDebugLLog(@"NSSavePanel", @"NSSavePanel -setAccessoryView");
if (aView == _accessoryView) if (aView == _accessoryView)
return; return;
if (_accessoryView) if (_accessoryView)
[_accessoryView removeFromSuperview];
_accessoryView = aView;
if (_accessoryView == nil)
{ {
[_accessoryView removeFromSuperview];
// Restore original size // Restore original size
[self setMinSize: originalContentSize]; [self setMinSize: _savePanelSize];
[_topView setAutoresizingMask: NSViewWidthSizable]; [_topView setAutoresizingMask: NSViewWidthSizable];
[_bottomView setAutoresizingMask: NSViewWidthSizable]; [_bottomView setAutoresizingMask: NSViewWidthSizable];
[self setContentSize: originalContentSize]; [self setContentSize: _savePanelSize];
[_topView setAutoresizingMask: 18]; [_topView setAutoresizingMask: 18];
[_bottomView setAutoresizingMask: 2]; [_bottomView setAutoresizingMask: 2];
// //
[_topView setFrameOrigin: NSMakePoint (0, _SAVE_PANEL_TOP_VIEW_ORIGIN_Y)]; [_topView setFrameOrigin: NSMakePoint (0, _savePanelTopViewOriginY)];
[_topView setNeedsDisplay: YES]; [_topView setNeedsDisplay: YES];
} }
else // we have an _accessoryView
_accessoryView = aView;
if (_accessoryView)
{ {
// //
// Resize ourselves to make room for the accessory view // Resize ourselves to make room for the accessory view
// //
addedFrame = [_accessoryView frame]; addedFrame = [_accessoryView frame];
contentSize = originalContentSize; contentSize = _savePanelSize;
contentSize.height += (addedFrame.size.height + (_SAVE_PANEL_Y_PAD * 2)); contentSize.height += (addedFrame.size.height + (_SAVE_PANEL_Y_PAD * 2));
if ((addedFrame.size.width + (_SAVE_PANEL_X_PAD * 2)) > contentSize.width) if ((addedFrame.size.width + (_SAVE_PANEL_X_PAD * 2)) > contentSize.width)
contentSize.width = (addedFrame.size.width + (_SAVE_PANEL_X_PAD * 2)); contentSize.width = (addedFrame.size.width + (_SAVE_PANEL_X_PAD * 2));