Added `-[NSArray validateAsPropertyList]` and `-[NSDictionary validateAsPropertyList...
[adiumx.git] / Plugins / Emoticons / AIEmoticonPackPreviewController.m
blobff95323e87db15953fb37f4b4a108f670278256d
1 /* 
2  * Adium is the legal property of its developers, whose names are listed in the copyright file included
3  * with this source distribution.
4  * 
5  * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6  * General Public License as published by the Free Software Foundation; either version 2 of the License,
7  * or (at your option) any later version.
8  * 
9  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
11  * Public License for more details.
12  * 
13  * You should have received a copy of the GNU General Public License along with this program; if not,
14  * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
15  */
17 #import "AIEmoticonPackPreviewController.h"
18 #import "AIEmoticonPackPreviewView.h"
19 #import "AIEmoticonPack.h"
20 #import "AIEmoticonController.h"
21 #import "AIEmoticonPreferences.h"
23 @interface AIEmoticonPackPreviewController (PRIVATE)
24 - (id)initForPack:(AIEmoticonPack *)inPack preferences:(AIEmoticonPreferences *)inPreferences;
25 @end
27 @implementation AIEmoticonPackPreviewController
29 + (id)previewControllerForPack:(AIEmoticonPack *)inPack preferences:(AIEmoticonPreferences *)inPreferences
31         return [[[self alloc] initForPack:inPack preferences:inPreferences] autorelease];
34 - (id)initForPack:(AIEmoticonPack *)inPack preferences:(AIEmoticonPreferences *)inPreferences
36         if ((self = [super init])) {
37                 emoticonPack = [inPack retain];
38                 preferences = [inPreferences retain];
40                 [NSBundle loadNibNamed:@"EmoticonPackPreview" owner:self];
41         }
42         
43         return self;
46 - (void)dealloc
48         [emoticonPack release];
49         [preferences release];
50         
51         /* It seems like we should be releasing previewView here.  Doing so leads to a double release when the view is
52          * removed its superview, though.. no idea what's going wrong, but it's not a leak... it's just weird. -eds */
53         //[previewView release];
55         [super dealloc];
58 - (IBAction)togglePack:(id)sender
60         [[adium emoticonController] setEmoticonPack:emoticonPack enabled:![emoticonPack isEnabled]];
61         [preferences toggledPackController:self];
64 - (void)awakeFromNib
66         [checkBox_enablePack setState:[emoticonPack isEnabled]];
67         [previewView setEmoticonPack:emoticonPack];
70 - (NSView *)view
72         return previewView;
75 - (AIEmoticonPack *)emoticonPack
77         return emoticonPack;    
80 @end