42 virtual ~LinkAction() {}
45 virtual GBool isOk() = 0;
48 virtual LinkActionKind getKind() = 0;
51 static LinkAction *parseDest(Object *obj);
54 static LinkAction *parseAction(Object *obj, GString *baseURI = NULL);
58 static GString *getFileSpecName(Object *fileSpecObj);
83 LinkDest *copy() { return new LinkDest( this); }
86 GBool isOk() { return ok; }
89 LinkDestKind getKind() { return kind; }
90 GBool isPageRef() { return pageIsRef; }
91 int getPageNum() { return pageNum; }
92 Ref getPageRef() { return pageRef; }
93 double getLeft() { return left; }
94 double getBottom() { return bottom; }
95 double getRight() { return right; }
96 double getTop() { return top; }
97 double getZoom() { return zoom; }
98 GBool getChangeLeft() { return changeLeft; }
99 GBool getChangeTop() { return changeTop; }
100 GBool getChangeZoom() { return changeZoom; }
113 GBool changeLeft, changeTop;
117 LinkDest(LinkDest *dest);
124class LinkGoTo: public LinkAction {
128 LinkGoTo(Object *destObj);
134 virtual GBool isOk() { return dest || namedDest; }
137 virtual LinkActionKind getKind() { return actionGoTo; }
138 LinkDest *getDest() { return dest; }
139 GString *getNamedDest() { return namedDest; }
153class LinkGoToR: public LinkAction {
158 LinkGoToR(Object *fileSpecObj, Object *destObj);
161 virtual ~LinkGoToR();
164 virtual GBool isOk() { return fileName && (dest || namedDest); }
167 virtual LinkActionKind getKind() { return actionGoToR; }
168 GString *getFileName() { return fileName; }
169 LinkDest *getDest() { return dest; }
170 GString *getNamedDest() { return namedDest; }
185class LinkLaunch: public LinkAction {
189 LinkLaunch(Object *actionObj);
192 virtual ~LinkLaunch();
195 virtual GBool isOk() { return fileName != NULL; }
198 virtual LinkActionKind getKind() { return actionLaunch; }
199 GString *getFileName() { return fileName; }
200 GString *getParams() { return params; }
212class LinkURI: public LinkAction {
216 LinkURI(Object *uriObj, GString *baseURI);
222 virtual GBool isOk() { return uri != NULL; }
225 virtual LinkActionKind getKind() { return actionURI; }
226 GString *getURI() { return uri; }
237class LinkNamed: public LinkAction {
241 LinkNamed(Object *nameObj);
243 virtual ~LinkNamed();
245 virtual GBool isOk() { return name != NULL; }
247 virtual LinkActionKind getKind() { return actionNamed; }
248 GString *getName() { return name; }
259class LinkMovie: public LinkAction {
262 LinkMovie(Object *annotObj, Object *titleObj);
264 virtual ~LinkMovie();
266 virtual GBool isOk() { return annotRef.num >= 0 || title != NULL; }
268 virtual LinkActionKind getKind() { return actionMovie; }
269 GBool hasAnnotRef() { return annotRef.num >= 0; }
270 Ref *getAnnotRef() { return &annotRef; }
271 GString *getTitle() { return title; }
283class LinkUnknown: public LinkAction {
287 LinkUnknown( char *actionA);
290 virtual ~LinkUnknown();
293 virtual GBool isOk() { return action != NULL; }
296 virtual LinkActionKind getKind() { return actionUnknown; }
297 GString *getAction() { return action; }
312 Link(Dict *dict, GString *baseURI);
318 GBool isOk() { return ok; }
321 GBool inRect( double x, double y)
322 { return x1 <= x && x <= x2 && y1 <= y && y <= y2; }
325 LinkAction *getAction() { return action; }
328 void getBorder( double *xa1, double *ya1, double *xa2, double *ya2,
330 { *xa1 = x1; *ya1 = y1; *xa2 = x2; *ya2 = y2; *wa = borderW; }
349 Links(Object *annots, GString *baseURI);
355 int getNumLinks() { return numLinks; }
356 Link *getLink( int i) { return links[i]; }
360 LinkAction *find( double x, double y);
363 GBool onLink( double x, double y);
|