2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
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.
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 #import <Adium/AIObject.h>
18 #import <Adium/AIStatusControllerProtocol.h>
19 #import <Adium/AIContactControllerProtocol.h>
21 @
class AIStatus
, AIService
, AdiumIdleManager
, AIStatusGroup
;
23 @interface AIStatusController
: AIObject
<AIStatusController
, AIListObjectObserver
> {
25 AIStatusGroup
*_rootStateGroup
;
26 NSMutableSet
*_flatStatusSet
;
27 NSMutableArray
*builtInStateArray
;
29 AIStatus
*offlineStatusState
; //Shared state used to symbolize the offline 'status'
31 AIStatus
*_activeStatusState
; //Cached active status state
32 NSMutableSet
*_allActiveStatusStates
; //Cached all active status states
33 NSMutableDictionary
*statusDictsByServiceCodeUniqueID
[STATUS_TYPES_COUNT
];
34 NSMutableSet
*builtInStatusTypes
[STATUS_TYPES_COUNT
];
36 NSMutableSet
*accountsToConnect
;
37 BOOL isProcessingGlobalChange
;
40 NSMutableArray
*stateMenuPluginsArray
;
41 NSMutableDictionary
*stateMenuItemArraysDict
;
43 int activeStatusUpdateDelays
;
44 int statusMenuRebuildDelays
;
46 NSArray
*_sortedFullStateArray
;
47 NSArray
*_flatStateArray
;
49 NSMutableSet
*stateMenuItemsNeedingUpdating
;
51 AdiumIdleManager
*idleManager
;