// // $Id$ // // SPFontPreviewTextField.m // sequel-pro // // This is a heavily modified version of JVFontPreviewField from // the Colloquy Project <http://colloquy.info/> // // 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 "SPFontPreviewTextField.h" @implementation SPFontPreviewTextField - (void)setFont:(NSFont *)font { if (!font) return; if (_actualFont) [_actualFont release]; _actualFont = [font retain]; [super setFont:[[NSFontManager sharedFontManager] convertFont:font toSize:11.0f]]; NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:[_actualFont displayName]]; NSMutableParagraphStyle *paraStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [paraStyle setMinimumLineHeight:NSHeight([self bounds])]; [paraStyle setMaximumLineHeight:NSHeight([self bounds])]; [text addAttribute:NSParagraphStyleAttributeName value:paraStyle range:NSMakeRange(0, [text length])]; [self setObjectValue:text]; [text release]; [paraStyle release]; } #pragma mark - - (void)dealloc { if (_actualFont) [_actualFont release], _actualFont = nil; [super dealloc]; } @end