git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
147179f
)
added externallinkfunction parameter
author
kramm
<kramm>
Sun, 16 Apr 2006 13:36:01 +0000
(13:36 +0000)
committer
kramm
<kramm>
Sun, 16 Apr 2006 13:36:01 +0000
(13:36 +0000)
lib/devices/swf.c
patch
|
blob
|
history
diff --git
a/lib/devices/swf.c
b/lib/devices/swf.c
index
6f3f6f0
..
51a1123
100644
(file)
--- a/
lib/devices/swf.c
+++ b/
lib/devices/swf.c
@@
-88,6
+88,7
@@
typedef struct _swfoutput_internal
double config_caplinewidth;
char* config_linktarget;
char*config_internallinkfunction;
double config_caplinewidth;
char* config_linktarget;
char*config_internallinkfunction;
+ char*config_externallinkfunction;
SWF* swf;
SWF* swf;
@@
-231,6
+232,7
@@
static swfoutput_internal* init_internal_struct()
i->config_caplinewidth=1;
i->config_linktarget=0;
i->config_internallinkfunction=0;
i->config_caplinewidth=1;
i->config_linktarget=0;
i->config_internallinkfunction=0;
+ i->config_externallinkfunction=0;
i->config_linkcolor.r = i->config_linkcolor.g = i->config_linkcolor.b = 255;
i->config_linkcolor.a = 0x40;
i->config_linkcolor.r = i->config_linkcolor.g = i->config_linkcolor.b = 255;
i->config_linkcolor.a = 0x40;
@@
-1398,20
+1400,25
@@
void swf_drawlink(gfxdevice_t*dev, gfxline_t*points, char*url)
}
void swfoutput_linktourl(gfxdevice_t*dev, char*url, gfxline_t*points)
{
}
void swfoutput_linktourl(gfxdevice_t*dev, char*url, gfxline_t*points)
{
- ActionTAG* actions;
+ ActionTAG* actions = 0;
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
if(i->shapeid>=0)
endshape(dev);
if(i->textid>=0)
endtext(dev);
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
if(i->shapeid>=0)
endshape(dev);
if(i->textid>=0)
endtext(dev);
-
- if(!i->config_linktarget) {
+
+ if(i->config_externallinkfunction) {
+ actions = action_PushString(actions, url); //parameter
+ actions = action_PushInt(actions, 1); //number of parameters (1)
+ actions = action_PushString(actions, i->config_externallinkfunction); //function name
+ actions = action_CallFunction(actions);
+ } else if(!i->config_linktarget) {
if(!i->config_opennewwindow)
if(!i->config_opennewwindow)
- actions = action_GetUrl(0, url, "_parent");
+ actions = action_GetUrl(actions, url, "_parent");
else
else
- actions = action_GetUrl(0, url, "_this");
+ actions = action_GetUrl(actions, url, "_this");
} else {
} else {
- actions = action_GetUrl(0, url, i->config_linktarget);
+ actions = action_GetUrl(actions, url, i->config_linktarget);
}
actions = action_End(actions);
}
actions = action_End(actions);
@@
-1719,6
+1726,8
@@
int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value)
i->config_bboxvars = atoi(value);
} else if(!strcmp(name, "internallinkfunction")) {
i->config_internallinkfunction = strdup(value);
i->config_bboxvars = atoi(value);
} else if(!strcmp(name, "internallinkfunction")) {
i->config_internallinkfunction = strdup(value);
+ } else if(!strcmp(name, "externallinkfunction")) {
+ i->config_externallinkfunction = strdup(value);
} else if(!strcmp(name, "disable_polygon_conversion")) {
i->config_disable_polygon_conversion = atoi(value);
} else if(!strcmp(name, "insertstop")) {
} else if(!strcmp(name, "disable_polygon_conversion")) {
i->config_disable_polygon_conversion = atoi(value);
} else if(!strcmp(name, "insertstop")) {