InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IHyperlinkTable.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Brendan O'Shea
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 __IHyperlinkTable__
25 #define __IHyperlinkTable__
26 
27 #include "IPMUnknown.h"
28 #include "HyperlinkID.h"
29 #include <map>
30 
31 class UIDList;
32 
33 typedef std::map< int32, UID> UniqueKeyToUIDMap;
34 
60 {
61 public:
62  enum { kDefaultIID = IID_IHYPERLINKTABLE };
63 
65  typedef enum {
78 
84  virtual void InvalidateNameCache(IHyperlinkTable::WhichCache whichCache) = 0;
85 
88  virtual bool16 HasExternalDestination() const = 0;
89 
93  virtual void SetHasExternalDestination(bool16 fHasExternDest) = 0;
94 
95  //----------------------------------------------------------------------------------------------//
96  // Sources:
97  //----------------------------------------------------------------------------------------------//
98 
102  virtual void AddHyperlinkSource(const UID hyperlinkSource) = 0;
103 
108  virtual void RemoveHyperlinkSource(const UID hyperlinkSource) = 0;
109 
114  virtual int32 GetHyperlinkSourceCount() const = 0;
115 
120  virtual UID GetNthHyperlinkSource(int32 hyperlinkIndex) const = 0;
121 
126  virtual int32 GetHyperlinkSourceIndex(const UID hyperlinkSourceUID) const = 0;
127 
132  virtual void GenerateNewHyperlinkSourceName(PMString* pName) = 0;
133 
134  //----------------------------------------------------------------------------------------------//
135  // Destinations (a.k.a. target; a.k.a. anchor):
136  //----------------------------------------------------------------------------------------------//
137 
141  virtual void AddHyperlinkDestination(const UID hyperlinkDestination) = 0;
142 
146  virtual void RemoveHyperlinkDestination(int32 hyperlinkDestinationKey) = 0;
147 
152  virtual void SwapHyperlinkDestinations(int32 destKey1, int32 destKey2) = 0;
153 
158  virtual int32 GetHyperlinkDestinationCount() const = 0;
159 
164  virtual bool16 IsValidHyperlinkDestinationKey(int32 hyperlinkDestinationKey) const = 0;
165 
170  virtual UID GetHyperlinkDestinationWithKey(int32 hyperlinkKey) const = 0;
171 
176  virtual void GenerateNewHyperlinkDestinationName(PMString* pName) = 0;
177 
180  virtual UniqueKeyToUIDMap::const_iterator GetDestinationKeyToUIDMapBeginIter() const = 0;
181 
184  virtual UniqueKeyToUIDMap::const_iterator GetDestinationKeyToUIDMapEndIter() const = 0;
185 
188  virtual UniqueKeyToUIDMap::const_reverse_iterator GetDestinationKeyToUIDMapRBeginIter() const = 0;
189 
192  virtual UniqueKeyToUIDMap::const_reverse_iterator GetDestinationKeyToUIDMapREndIter() const = 0;
193 
194  //----------------------------------------------------------------------------------------------//
195  // Hyperlinks:
196  //----------------------------------------------------------------------------------------------//
197 
201  virtual void AddHyperlink(const UID hyperlink) = 0;
202 
207  virtual UID RemoveHyperlink(const UID hyperlinkUID) = 0;
208 
213  virtual void MoveHyperlink(const UID hyperlink, const UID moveBefore) = 0;
214 
219  virtual UID GetNthHyperlink(int32 hyperlinkIndex) const = 0;
220 
225  virtual int32 GetHyperlinkWithUID(const UID hyperlink) const = 0;
226 
231  virtual int32 GetHyperlinkCount() const = 0;
232 
237  virtual void GenerateNewHyperlinkName(PMString* pName) = 0;
238 
243  virtual UID GetHyperlinkOfSource(UIDRef sourceUIDRef) const = 0;
244 
245  //----------------------------------------------------------------------------------------------//
246  // Bookmarks:
247  //----------------------------------------------------------------------------------------------//
248 
252  virtual void AddBookmark(const UID bookmark) = 0;
253 
257  virtual void RemoveBookmark(const UID bookmarkUID) = 0;
258 
263  virtual void MoveBookmark(const UID bookmark, int32 newLoc) = 0;
264 
269  virtual UID GetNthBookmark(int32 bookmarkIndex) const = 0;
270 
275  virtual int32 GetBookmarkWithUID(const UID bookmark) const = 0;
276 
282  virtual int32 GetBookmarkCount() const = 0;
283 
288  virtual void GenerateNewHyperlinkBookmarkName(PMString* pName) = 0;
289 
290  //----------------------------------------------------------------------------------------------//
291  // XRef formats:
292  //----------------------------------------------------------------------------------------------//
293 
297  virtual void AddXRefFormat(const UID xRefFormat) = 0;
298 
304  virtual bool16 RemoveXRefFormat(const UID xRefFormat) = 0;
305 
309  virtual int32 GetXRefFormatCount() const = 0;
310 
315  virtual UID GetNthXRefFormat(int32 formatIndex) const = 0;
316 
321  virtual int32 GetXRefFormatIndex(const UID xRefFormatUID) const = 0;
322 
327  virtual bool16 HasXRefFormatName(const PMString& name) = 0;
328 
333  virtual UID GetXRefFormatOfName(const PMString& name) = 0;
334 
339  virtual void GenerateNewXRefFormatName(PMString* pName) = 0;
340 };
341 
342 
343 #endif // __IHyperlinkTable__
344