//
//  $Id$
//
//  SPWindowAdditions.m
//  sequel-pro
//
//  Created by Stuart Connolly (stuconnolly.com) on Dec 10, 2008
//  Copyright (c) 2008 Stuart Connolly. All rights reserved.
//
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
//  More info at <http://code.google.com/p/sequel-pro/>

#import "SPWindowAdditions.h"

@implementation NSWindow (SPWindowAdditions)

// -------------------------------------------------------------------------------
// toolbarHeight
//
// Returns the height of the currently visible toolbar.
// -------------------------------------------------------------------------------
- (float)toolbarHeight
{
    NSRect windowFrame;
	float toolbarHeight = 0.0;
	
    if (([self toolbar]) && ([[self toolbar] isVisible])) {
        windowFrame = [NSWindow contentRectForFrameRect:[self frame] styleMask:[self styleMask]];
        
		toolbarHeight = NSHeight(windowFrame) - NSHeight([[self contentView] frame]);
    }
	
    return toolbarHeight;
}

// -------------------------------------------------------------------------------
// resizeForContentView:titleBarVisible
//
// Resizes this window to the size of the supplied view.
// -------------------------------------------------------------------------------
- (void)resizeForContentView:(NSView *)view titleBarVisible:(BOOL)visible
{	
	NSSize viewSize = [view frame].size;
	NSRect frame	= [self frame];
	
	if ((viewSize.height) < [self contentMinSize].height) {
		viewSize.height = [self contentMinSize].height;
	}
	
	float newHeight = (viewSize.height + [self toolbarHeight]);
	
	// If the title bar is visible add 22 pixels to new height of window.
	if (visible) { 
        newHeight += 22; 
    }
	
	frame.origin.y += frame.size.height - newHeight;
	
	frame.size.height = newHeight;
	frame.size.width  = viewSize.width; 
	
	[self setFrame:frame display:YES animate:YES];
}

@end