InDesign SDK
20.5
InDesign SDK
Documentation
Bosses
Sample plug-ins
Class Index
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
IChangeManager.h
1
//========================================================================================
2
//
3
// $File$
4
//
5
// Owner: Lonnie Millett
6
//
7
// $Author$
8
//
9
// $DateTime$
10
//
11
// $Revision$
12
//
13
// $Change$
14
//
15
// Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16
//
17
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18
// with the terms of the Adobe license agreement accompanying it. If you have received
19
// this file from a source other than Adobe, then your use, modification, or
20
// distribution of it requires the prior written permission of Adobe.
21
//
22
//========================================================================================
23
24
#ifndef __ICHANGEMANAGER__
25
#define __ICHANGEMANAGER__
26
27
#ifndef __PMTYPES__
28
#include "PMTypes.h"
29
#endif
30
31
#include "IPMUnknown.h"
32
#include "ShuksanID.h"
// IID_ICHANGEMANAGER
33
34
//----------------------------------------------------------------------------------------
35
// Typedefs
36
//----------------------------------------------------------------------------------------
37
38
typedef
int32 DependencyLabels;
39
// The valid range of labels
40
41
//----------------------------------------------------------------------------------------
42
// Constants
43
//----------------------------------------------------------------------------------------
44
45
const
DependencyLabels kNoLabel = 0;
46
47
//----------------------------------------------------------------------------------------
48
// Forward Declarations
49
//----------------------------------------------------------------------------------------
50
class
ISubject
;
51
class
IObserver
;
52
class
IPMUnknown
;
53
class
LazyNotificationData
;
54
//----------------------------------------------------------------------------------------
55
// IChangeManager: Abstract Superclass of change managers
56
//----------------------------------------------------------------------------------------
57
66
class
IChangeManager
:
public
IPMUnknown
67
{
68
public
:
69
enum
{ kDefaultIID = IID_ICHANGEMANAGER };
70
78
virtual
void
AddDependency
(
ISubject
* subject,
IObserver
* observer,
79
const
PMIID
& observerIID,
const
PMIID
& interestedIn,
80
bool
lazy) = 0;
81
91
virtual
void
RemoveDependency
(
ISubject
* subject,
IObserver
* observer,
92
const
PMIID
& observerIID,
const
PMIID
& interestedIn,
93
bool
lazy) = 0;
94
102
virtual
bool16
HasDependency
(
ISubject
* subject,
IObserver
* observer,
103
const
PMIID
& observerIID,
const
PMIID
& interestedIn,
104
bool
lazy) = 0;
105
108
virtual
void
RemoveSubject
(
ISubject
* theSubject) = 0;
109
114
virtual
void
RemoveObserver
(
IObserver
* theObserver,
const
PMIID
& observerIID) = 0;
115
118
virtual
void
RemoveSubject
(
const
UIDRef
& theSubject) = 0;
119
124
virtual
void
RemoveObserver
(
const
UIDRef
& theObserver,
const
PMIID
& observerIID) = 0;
125
135
virtual
void
SubjectChanged
(
ISubject
* subject,
ClassID
theChange,
136
const
PMIID
& interestedIn,
void
* changedBy) = 0;
137
138
//-------------------------------------------------------------------------------
140
141
142
/* Similar to the previous method but this one lets you start the dependency notification
143
part way along the dependecy chain, i.e. with subject's observers but notifying them that
144
it was in fact originalSubject that changed. */
145
virtual
void
SubjectChanged
(
ISubject
* originalSubject,
ISubject
* subject,
146
ClassID
theChange,
const
PMIID
& interestedIn,
void
* changedBy) = 0;
147
148
virtual
void
SubjectModelChanged(
ISubject
* subject,
IDataBase
* model,
149
ClassID
theChange,
const
PMIID
& interestedIn,
150
void
* changedBy,
LazyNotificationData
* data) = 0;
151
152
virtual
void
SubjectModelChanged(
ISubject
* originalSubject,
ISubject
* subject,
IDataBase
* model,
153
ClassID
theChange,
const
PMIID
& interestedIn,
154
void
* changedBy,
LazyNotificationData
* data) = 0;
155
156
virtual
void
LazySubjectChanged(
ISubject
* subject,
const
PMIID
& interestedIn,
157
const
LazyNotificationData
* data) = 0;
158
159
#ifdef DEBUG
160
// returns IID that observer is attached to.
161
virtual
PMIID
IsObserverAttached(
IObserver
* theObserver,
const
PMIID
& observerIID) = 0;
162
virtual
void
Dump() = 0;
163
#endif
164
173
virtual
bool16
CanSendMessage
()
const
= 0;
174
175
protected
:
176
IChangeManager
();
177
179
};
180
181
//----------------------------------------------------------------------------------------
182
// inlines
183
//----------------------------------------------------------------------------------------
184
185
//----------------------------------------------------------------------------------------
186
// IChangeManager constructor
187
//----------------------------------------------------------------------------------------
188
189
inline
IChangeManager::IChangeManager()
190
{
191
}
192
193
194
#endif
tmpdoxygeninput
IChangeManager.h
Generated on Sat Jul 19 2025 02:54:12 for InDesign SDK by
1.8.3.1