Merged [13645] and [13646]: Fixed one of the longest-standing Adium bugs: The Color...
[adiumx.git] / Source / AIDockController.h
blob6f7fc7cc1962e2cb45eeda736b83e7bafa4c8edd
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.
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.
17 #define Dock_IconWillChange @"Dock_IconWillChange"
18 #define Dock_IconDidChange @"Dock_IconDidChange"
20 #define KEY_ACTIVE_DOCK_ICON @"Dock Icon"
21 #define FOLDER_DOCK_ICONS @"Dock Icons"
23 @protocol AITextEntryView;
25 @class AIIconState;
27 typedef enum {
28 BOUNCE_NONE = 0,
29 BOUNCE_ONCE,
30 BOUNCE_REPEAT,
31 BOUNCE_DELAY5,
32 BOUNCE_DELAY10,
33 BOUNCE_DELAY15,
34 BOUNCE_DELAY30,
35 BOUNCE_DELAY60
36 } DOCK_BEHAVIOR;
38 @protocol AIFlashObserver;
40 @interface AIDockController: NSObject <AIFlashObserver> {
41 IBOutlet AIAdium *adium;
43 NSTimer *animationTimer;
44 NSTimer *bounceTimer;
46 NSMutableDictionary *availableIconStateDict;
47 NSMutableDictionary *availableDynamicIconStateDict;
48 NSMutableArray *activeIconStateArray;
49 AIIconState *currentIconState;
51 int currentAttentionRequest;
53 BOOL observingFlash;
54 BOOL needsDisplay;
56 NSTimeInterval currentBounceInterval;
59 //Icon animation & states
60 - (void)setIconStateNamed:(NSString *)inName;
61 - (void)removeIconStateNamed:(NSString *)inName;
62 - (void)setIconState:(AIIconState *)iconState named:(NSString *)inName;
63 - (float)dockIconScale;
65 //Special access to icon pack loading
66 - (NSArray *)availableDockIconPacks;
67 - (BOOL)currentIconSupportsIconStateNamed:(NSString *)inName;;
68 - (NSMutableDictionary *)iconPackAtPath:(NSString *)folderPath;
69 - (AIIconState *)previewStateForIconPackAtPath:(NSString *)folderPath;
71 //Bouncing & behavior
72 - (void)performBehavior:(DOCK_BEHAVIOR)behavior;
73 - (NSString *)descriptionForBehavior:(DOCK_BEHAVIOR)behavior;
75 //Private
76 - (void)initController;
77 - (void)closeController;
79 @end