InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IFormFieldUtils.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Tim Wright
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 __IFormFieldUtils_h__
25 #define __IFormFieldUtils_h__
26 
27 #include "AGMImageAccessor.h"
28 #include "FormFieldTypes.h"
29 #include "K2Pair.h"
30 #include "K2Vector.h"
31 #include "FormFieldID.h"
32 #include "Utils.h"
33 
34 //=============================================================================
35 
36 class IDocument;
37 class IHierarchy;
38 class IFormFieldFactory;
39 class ISpread;
42 class IAppearanceList;
44 
48 {
49 public:
50  enum { kDefaultIID = IID_IFORMFIELDUTILS };
51 
54 
56  virtual bool16 CanPlaceInAnnotation(const UIDList *inItems) const = 0;
57 
59  virtual bool16 CanEditItems(const UIDList *inItems) const = 0;
60 
62  virtual bool16 CanEditFormItems(const UIDList *inItems) const = 0;
63 
65  virtual bool16 CanDeleteState(Form::AppearanceState inState) const = 0;
66 
68  virtual bool16 IsNormalState(Form::AppearanceState inState) const = 0;
69 
71  virtual bool16 IsOnState(Form::AppearanceState inState) const = 0;
72 
74  virtual bool16 IsOffState(Form::AppearanceState inState) const = 0;
75 
77  virtual bool16 IsDefinedState(Form::AppearanceState inState) const = 0;
78 
80  virtual PMString GetDefinedStateName(Form::AppearanceState inState) const = 0;
81 
87  virtual ErrorCode ProcessChangeStateCmd(const UIDRef& inItemRef, Form::AppearanceState inState ) const = 0;
88 
95  virtual UIDRef CreateFormPageItem (const UIDRef& inParent, const PMRect& inBounds, ClassID inFormFieldBoss ) const = 0;
96 
106  virtual ErrorCode AddFormFieldContent ( UIDRef& inFormField ) const = 0;
107 
109  virtual IFormFieldFactory* QueryFormFieldFactory (ClassID inFactoryBoss) const = 0;
110 
112  virtual ErrorCode SetAppearanceState(UIDRef& inPageItem, Form::AppearanceState inState) const = 0;
113 
119  virtual Form::AppearanceState GetChildAppearanceState( IPMUnknown* inPageItem, UIDRef* outAppearanceParent, Form::AppearanceState* outActiveState ) const = 0;
120 
125  virtual void AddFormFieldAttributes(IGraphicStyleAttributeBossList* inSrcList, IApplyMultAttributesCmdData* inApplyAttributesCmdData, const PMString& inStyleName) const = 0;
126 
131  virtual PMString GetDefaultStateName(const IAppearanceList* inAppearanceList, Form::AppearanceState inState) const = 0;
132 
137  virtual PMString GetDuplicateName(const IAppearanceList* inAppearanceList, Form::AppearanceState inState ) const = 0;
138 
144  enum NumberingStartValue { kStartNumberingWithStateNumber = -2, kStartNumberingWithNextStateNumber = -1, kStartNumberingWithOne = 1, kStartNumberingWithTwo = 2 };
145  enum UniqueNamePolicy { kDoesNotNeedToEndInANumber, kMustEndInANumber };
146  virtual void MakeNameUniqueInAppearanceList( const IAppearanceList* inAppearanceList, PMString& inName, NumberingStartValue inStartValue, UniqueNamePolicy inNamePolicy = kDoesNotNeedToEndInANumber) const = 0;
147 
154  virtual PMString GetTargetName( const IPMUnknown* inItem, const ClassID& inStartingAncestorType ) const = 0;
155 
160  virtual bool16 CanPlaceInState(const UIDList& inItems, const ClassID& inTargetClass) const = 0;
161 
166  virtual bool16 CanCreateFromItems(const UIDList& inItems, const ClassID& inTargetClass) const = 0;
167 
171  virtual UIDList GetAllFormItemsOfTypeInDocument(const UIDRef& docRef, const ClassID& classID) const = 0;
172 
176  virtual ErrorCode ResetAllMultiStateObjects(const UIDRef& docRef) const = 0;
177 
181  virtual ErrorCode ResetAllButtons(const UIDRef& docRef) const = 0;
182 
187  virtual UIDRef GetStateWrappingGroup(const UIDRef& inItemRef, Form::AppearanceState inState) const = 0;
188 
194  virtual bool16 IsItemOnlyInActiveStates(const UIDRef& inItemRef, UID* outTopmostHidingAncestor = nil) const = 0;
195 
200  virtual UIDStatePairs GetStatesForItem(const UIDRef& inItemRef) const = 0;
201 
205  virtual void SetStatesSoThatItemIsActive(const UIDRef& inItemRef) const = 0;
206 
209  virtual void SelectActiveState(const UIDList& inItems) const = 0;
210 
211  //These are to help identify casting (the use of which should be minimized)
212  inline int32 StateToIndex(Form::AppearanceState inState) const { return (int32)inState; }
213  inline Form::AppearanceState IndexToState(int32 inIndex) const { return Form::AppearanceState(inIndex); }
214 
215  //The following are general page item utils that happened to be used by forms...
216 
221  virtual UID GetSpreadUID(IHierarchy* inPageItemHier) const = 0;
222 
227  virtual void GetPageUIDs(IHierarchy* inPageItemHier, UIDList* outPageUIDs) const = 0;
228 
237  virtual bool16 IsOnPage(ISpread* inSpread, int32 inPagePos, UIDList* ioPageItems, UID inPageItemUID) const = 0;
238 
244  virtual void GetDescendents( IHierarchy* inHierarchy, const PMIID& inInterfaceID, UIDList *outResultList ) const = 0;
245 
251  virtual void GetDescendents( const UIDList& inUIDList, const PMIID& inInterfaceID, UIDList *outResultList ) const = 0;
252 
258  virtual UIDList ExtractPageItemsWithIID(const UIDList& inUIDList, PMIID inIID) const = 0;
259 
265  virtual bool16 GetFirstAncestorOfClass( const IPMUnknown* inItem, const ClassID& inClassToFind, UIDRef& outItemRef ) const = 0;
266 
273  enum {kFixUpList = kTrue, kDontFixUpList = kFalse };
274  virtual ErrorCode UngroupSingleItemGroups(UIDList& inOutItems, bool16 fixUpItemList = kDontFixUpList) const = 0;
275 
281  virtual ErrorCode ChangeHierarchyPreservingTransform(UIDRef inItemToChange, UID inNewParent) const = 0;
282 
291  virtual ErrorCode GetAppearanceThumbnail(UIDRef inAppearanceItemRef, Form::AppearanceState inState, int32 inMaxWidth, int32 inMaxHeight, AGMImageAccessor** pOutAGMImage) const = 0;
292 
297  virtual bool16 HasButtonOrFormField(const UIDList& inItems, const ClassID& inTargetClass) const = 0;
298 
304  virtual void TakeActionOnMissingFontFormAdornment(ILayoutSelectionSuite * iLayoutSelectionSuite, UIDRef item, bool16 shiftKeyDown, bool16 altOptionKeyDown) = 0;
305 
308  virtual bool DoesHaveFontAttribute(const UIDRef& uidRef) = 0;
309 
314  virtual ErrorCode SetFontFamilyAttrCmd(const UIDList& uidList,const PMString& fontFamilyName) const = 0;
315 
318  virtual ErrorCode SetFontFamilyAttr(const UIDList& uidList, const PMString& fontFamilyName) const = 0;
319 
324  virtual ErrorCode SetFontFamilyUIDAttrCmd(const UIDList& uidList, const UID& fontUID) const = 0;
325 
329  virtual ErrorCode SetFontFamilyUIDAttr(const UIDList& uidList, const UID& fontUID) const = 0;
330 
335  virtual ErrorCode SetFontStyleAttributeCmd(const UIDList& uidList, const PMString& fontStyleName) const = 0;
336 
340  virtual ErrorCode SetFontStyleAttribute(const UIDList& uidList, const PMString& fontStyleName) const = 0;
341 
345  virtual bool16 GetFontFamilyUIDAttr(const UIDRef& uidRef, UID& FontUID) const = 0;
346 
350  virtual bool16 GetFontStyleAttribute(const UIDRef& uidRef, PMString& fontStyleName) const = 0;
351 };
352 
353 /* This is the preamble that appears on all default predefined apprearances that signals
354  that the name should be translated. */
355 #define kPredefinedAppearanceNamePreamble "$$$/PredefinedAppearanceName/"
356 
357 
358 //=============================================================================
359 
360 #endif // __IFormFieldUtils_h__