InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CursorSpec.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Dave Burnard
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 __CursorSpec__
25 #define __CursorSpec__
26 
27 #include "PMTypes.h"
28 #include "PMString.h"
29 #include "GetPlugIn.h"
30 #include "IPlugIn.h"
31 #include "CursorDefs.h"
32 
40 typedef void (*CreateCursorBitmapProc)(uchar* bitmapBuffer,uint32* width, uint32* height, bool16 *hasAlpha, bool16 hiRes);
41 
46 {
47  public:
48  typedef object_type data_type;
49 
51  CursorSpec() : fID(kCrsrNone), fPlugInID(kInvalidPlugin),fCustomCursorBitmapCallback(nil), fDynamicBitmap(kFalse)
52  {
53  }
54 
56  CursorSpec(CreateCursorBitmapProc customDrawCallback,CursorID id) :
57  fCustomCursorBitmapCallback(customDrawCallback),
58  fDynamicBitmap(kFalse),
59  fID(id),
60  fPlugInID(kInvalidPlugin)
61  {
62  }
63 
65  CursorSpec(CursorID id) : fID(id), fPlugInID(kInvalidPlugin),fCustomCursorBitmapCallback(nil), fDynamicBitmap(kFalse)
66  {
67  }
68 
70  CursorSpec(const PluginID& plugInId, CursorID id) :
71  fPlugInID(plugInId), fID(id),fCustomCursorBitmapCallback(nil), fDynamicBitmap(kFalse)
72  {
73  }
74 
76  CursorSpec(const IDFile& resFile, CursorID id) :
77  fResourceFile(resFile), fID(id), fPlugInID(kInvalidPlugin),fCustomCursorBitmapCallback(nil), fDynamicBitmap(kFalse)
78  {
79  }
80 
82  CursorSpec(const CursorSpec& spec) :
83  fPlugInID(spec.fPlugInID), fID(spec.fID), fResourceFile(spec.fResourceFile),
84  fCustomCursorBitmapCallback(spec.fCustomCursorBitmapCallback), fDynamicBitmap(spec.fDynamicBitmap)
85  {
86  }
87 
94  CursorSpec(const PluginID& plugInId, const IDFile& resFile, CursorID id,CreateCursorBitmapProc customDrawCallback, bool32 bDynamicBitmap = kFalse) :
95  fPlugInID(plugInId), fID(id), fResourceFile(resFile),fCustomCursorBitmapCallback(customDrawCallback),fDynamicBitmap(bDynamicBitmap)
96  {
97  }
98 
101  {
102  if (this != &spec)
103  {
104  fID = spec.fID;
105  fPlugInID = spec.fPlugInID;
106  fResourceFile = spec.fResourceFile;
107  fCustomCursorBitmapCallback = spec.fCustomCursorBitmapCallback;
108  fDynamicBitmap = spec.fDynamicBitmap;
109  }
110  return *this;
111  }
112 
114  bool operator==(const CursorSpec& spec) const
115  {
116  if (this == &spec)
117  return kTrue;
118  else if ((fID == spec.fID) && (fPlugInID == spec.fPlugInID) && (fCustomCursorBitmapCallback == spec.fCustomCursorBitmapCallback)
119  && (fDynamicBitmap == spec.fDynamicBitmap))
120  return kTrue;
121  else
122  return kFalse;
123  }
124 
126  PluginID GetPlugInID() const { return fPlugInID; }
128  IDFile GetResourceFile() const { return fResourceFile; }
130  CursorID GetID() const { return fID; }
132  CreateCursorBitmapProc GetCustomBitmapCreationProc() const { return fCustomCursorBitmapCallback; }
134  bool32 GetDynamicCallback() const { return fDynamicBitmap; }
135 
136  private:
137  CursorID fID;
138  PluginID fPlugInID;
139  IDFile fResourceFile;
140  CreateCursorBitmapProc fCustomCursorBitmapCallback;
141  bool32 fDynamicBitmap;
142 };
143 
148 #define PluginCursorSpec(cursorID) CursorSpec(GetPlugIn()->GetPluginID(), cursorID)
149 
150 #endif