Bumping to version 1.0.1, which uses the latest ITKit. This resolves GrowlITTSW bug #4.
[GrowlITTSW.git] / GrowlPlugin.h
1 //
2 //  GrowlPlugin.h
3 //  Growl
4 //
5 //  Created by Mac-arena the Bored Zo on 2005-06-01.
6 //  Copyright 2005-2006 The Growl Project. All rights reserved.
7 //
8
9 #import <Cocoa/Cocoa.h>
10
11 @class NSPreferencePane;
12
13 /*!     @class  GrowlPlugin
14  *      @abstract       The base plug-in class.
15  *      @discussion     All Growl plug-in instances are a kind of this class, including
16  *       display plug-ins, which are kinds of <code>GrowlDisplayPlugin</code>.
17  */
18 @interface GrowlPlugin : NSObject {
19         NSString *pluginName, *pluginAuthor, *pluginVersion, *pluginDesc;
20         NSBundle *pluginBundle;
21         NSString *pluginPathname;
22
23         NSPreferencePane *preferencePane;
24         NSString             *prefDomain;
25 }
26
27 /*!
28  * @method initWithName:author:version:pathname:
29  * @abstract Designated initializer.
30  * @param name The name of the plugin.
31  * @param author The author of the plugin.
32  * @param version The version of the plugin.
33  * @param pathname The pathname of the plugin.
34  * @result An initialized GrowlPlugin object.
35  */
36 - (id) initWithName:(NSString *)name author:(NSString *)author version:(NSString *)version pathname:(NSString *)pathname;
37
38 /*!
39  * @method initWithBundle:
40  * @abstract Initializer for plug-ins in bundles. The name, author, version, and pathname will be obtained from the bundle.
41  * @result An initialized GrowlPlugin object.
42  */
43 - (id) initWithBundle:(NSBundle *)bundle;
44
45
46 /*!
47  * @method name
48  * @abstract Returns the name of the receiver.
49  */
50 - (NSString *) name;
51
52 /*!
53  * @method author
54  * @abstract Returns the author of the receiver.
55  */
56 - (NSString *) author;
57
58 /*!
59  * @method pluginDescription
60  * @abstract Returns the description of the receiver.
61  */
62 - (NSString *) pluginDescription;
63
64 /*!
65  * @method version
66  * @abstract Returns the version of the receiver.
67  */
68 - (NSString *) version;
69
70 /*!
71  * @method bundle
72  * @abstract Returns the bundle of the receiver.
73  */
74 - (NSBundle *) bundle;
75
76 /*!
77  * @method pathname
78  * @abstract Returns the pathname of the receiver.
79  */
80 - (NSString *) pathname;
81
82 /*!
83 * @method pathname
84  * @abstract Returns the string used to access the preference domain of the receiver.
85  */
86 - (NSString *) prefDomain;
87
88
89 /*!     @method preferencePane
90  *      @abstract       Return an <code>NSPreferencePane</code> instance that manages
91  *       the plugin's preferences.
92  *      @discussion     Your plug-in should put the controls for its preferences in
93  *       this preference pane.
94  *
95  *       Currently, the size of the preference pane's view should be 354 pixels by
96  *       289 pixels, but you should set the springs of the view and its subviews
97  *       under the assumption that it can be resized horizontally and vertically to
98  *       any size.
99  *
100  *       The default implementation of this method returns <code>nil</code>.
101  *      @result The preference pane. Can be <code>nil</code>.
102  */
103 - (NSPreferencePane *) preferencePane;
104
105 @end