mirror of https://github.com/snes9xgit/snes9x.git
80 lines
2.2 KiB
Objective-C
80 lines
2.2 KiB
Objective-C
/*****************************************************************************\
|
|
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
|
|
This file is licensed under the Snes9x License.
|
|
For further information, consult the LICENSE file in the root directory.
|
|
\*****************************************************************************/
|
|
|
|
/***********************************************************************************
|
|
SNES9X for Mac OS (c) Copyright John Stiles
|
|
|
|
Snes9x for Mac OS X
|
|
|
|
(c) Copyright 2001 - 2011 zones
|
|
(c) Copyright 2002 - 2005 107
|
|
(c) Copyright 2002 PB1400c
|
|
(c) Copyright 2004 Alexander and Sander
|
|
(c) Copyright 2004 - 2005 Steven Seeger
|
|
(c) Copyright 2005 Ryan Vogt
|
|
(c) Copyright 2019 - 2021 Michael Donald Buckley
|
|
***********************************************************************************/
|
|
|
|
#import "S9xPreferencesTabViewController.h"
|
|
|
|
@interface S9xPreferencesTabViewController ()
|
|
|
|
@end
|
|
|
|
@implementation S9xPreferencesTabViewController
|
|
{
|
|
BOOL _didHide;
|
|
}
|
|
|
|
- (void)tabView:(NSTabView *)tabView willSelectTabViewItem:(NSTabViewItem *)tabViewItem
|
|
{
|
|
[super tabView:tabView willSelectTabViewItem:tabViewItem];
|
|
|
|
NSTabViewItem *currentTabViewItem = tabView.selectedTabViewItem;
|
|
|
|
if ( currentTabViewItem == nil || currentTabViewItem == tabViewItem )
|
|
{
|
|
return;
|
|
}
|
|
|
|
currentTabViewItem.view.hidden = YES;
|
|
tabViewItem.view.hidden = YES;
|
|
_didHide = YES;
|
|
|
|
NSWindow *window = self.view.window;
|
|
NSSize tabViewSize = tabViewItem.view.fittingSize;
|
|
NSSize newWindowSize = [window frameRectForContentRect:(CGRect){CGPointZero, tabViewSize}].size;
|
|
|
|
NSRect windowFrame = window.frame;
|
|
windowFrame.origin.y += windowFrame.size.height;
|
|
windowFrame.origin.y -= newWindowSize.height;
|
|
windowFrame.size = newWindowSize;
|
|
|
|
if ( self.isViewLoaded )
|
|
{
|
|
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context)
|
|
{
|
|
[self.view.window.animator setFrame:windowFrame display:YES];
|
|
} completionHandler:^
|
|
{
|
|
tabViewItem.view.hidden = NO;
|
|
}];
|
|
}
|
|
}
|
|
|
|
- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
|
|
{
|
|
[super tabView:tabView didSelectTabViewItem:tabViewItem];
|
|
|
|
if ( _didHide )
|
|
{
|
|
tabViewItem.view.hidden = YES;
|
|
_didHide = NO;
|
|
}
|
|
}
|
|
|
|
@end
|