while(1) {
if(*s==',' || *s==0) {
- if(!strncmp(o,"idle",s-o)) mybutton.records[0]=r;
- else if(!strncmp(o,"shape",s-o)) mybutton.records[0]=r;
- else if(!strncmp(o,"hover",s-o)) mybutton.records[1]=r;
- else if(!strncmp(o,"pressed",s-o)) mybutton.records[2]=r;
- else if(!strncmp(o,"area",s-o)) mybutton.records[3]=r;
+ if(!strncmp(o,"idle",s-o)) {mybutton.records[0]=r;o=s+1;}
+ else if(!strncmp(o,"shape",s-o)) {mybutton.records[0]=r;o=s+1;}
+ else if(!strncmp(o,"hover",s-o)) {mybutton.records[1]=r;o=s+1;}
+ else if(!strncmp(o,"pressed",s-o)) {mybutton.records[2]=r;o=s+1;}
+ else if(!strncmp(o,"area",s-o)) {mybutton.records[3]=r;o=s+1;}
else syntaxerror("unknown \"as\" argument: \"%s\"", strdup_n(o,s-o));
}
if(!*s)
return currentframe;
}
-void s_frame(int nr, int cut)
+void s_frame(int nr, int cut, char*name)
{
int t;
TAG*now = tag;
for(t=currentframe;t<nr;t++) {
tag = swf_InsertTag(tag, ST_SHOWFRAME);
+ if(t==nr-1 && name && *name) {
+ tag = swf_InsertTag(tag, ST_FRAMELABEL);
+ swf_SetString(tag, name);
+ }
}
if(cut) {
r2.ymin = 0;
r2.xmax = width;
r2.ymax = height;
- tag = swf_InsertTag(tag, ST_DEFINESHAPE);
+ tag = swf_InsertTag(tag, ST_DEFINESHAPE3);
swf_ShapeNew(&s);
ls1 = swf_ShapeAddLineStyle(s,linewidth,&color);
}
r2 = outline->bbox;
- tag = swf_InsertTag(tag, ST_DEFINESHAPE);
+ tag = swf_InsertTag(tag, ST_DEFINESHAPE3);
swf_ShapeNew(&s);
ls1 = swf_ShapeAddLineStyle(s,linewidth,&color);
if(texture)
r2.xmax = 2*r;
r2.ymax = 2*r;
- tag = swf_InsertTag(tag, ST_DEFINESHAPE);
+ tag = swf_InsertTag(tag, ST_DEFINESHAPE3);
swf_ShapeNew(&s);
ls1 = swf_ShapeAddLineStyle(s,linewidth,&color);
if(texture)
void s_text(char*name, char*fontname, char*text, int size, RGBA color)
{
SRECT r;
-
+ MATRIX _m,*m=0;
SWFFONT*font;
font = dictionary_lookup(&fonts, fontname);
if(!font)
s_box(name, 0, 0, black, 20, 0);
return;
}
- r = swf_SetDefineText(tag, font, &color, text, size, 0);
+ r = swf_SetDefineText(tag, font, &color, text, size);
s_addcharacter(name, id, tag, r);
incrementid();
font->layout = 0;
swf_FontCreateLayout(font);
}
+ /* just in case this thing is used in .edittext later on */
+ swf_FontPrepareForEditText(font);
font->id = id;
tag = swf_InsertTag(tag, ST_DEFINEFONT2);
TAG* s;
int level = 0;
U16 cutout[] = {ST_SETBACKGROUNDCOLOR, ST_PROTECT, ST_FREEALL, ST_REFLEX};
- f = open(filename,O_RDONLY);
+ f = open(filename,O_RDONLY|O_BINARY);
if (f<0) {
warning("Couldn't open file \"%s\": %s", filename, strerror(errno));
s_box(name, 0, 0, black, 20, 0);
{
char*framestr = lu(args, "n");
char*cutstr = lu(args, "cut");
+ char*name = lu(args, "name");
int frame;
int cut = 0;
if(strcmp(cutstr, "no"))
&& !(frame==0 && s_getframe()==frame)) // equality is o.k. for frame 0
syntaxerror("frame expression must be >%d (is:%s)", s_getframe(), framestr);
}
- s_frame(frame, cut);
+ s_frame(frame, cut, name);
return 0;
}
static int c_primitive(map_t*args)
//"name font size width height text="" color=black maxlength=0 variable="" @password=0 @wordwrap=0 @multiline=0 @html=0 @noselect=0 @readonly=0"},
char*name = lu(args, "name");
char*font = lu(args, "font");
- int size = (int)(100*20*parsePercent(lu(args, "size")));
+ int size = (int)(1024*parsePercent(lu(args, "size")));
int width = parseTwip(lu(args, "width"));
int height = parseTwip(lu(args, "height"));
char*text = lu(args, "text");
char*arguments;
} arguments[] =
{{"flash", c_flash, "bbox=autocrop background=black version=5 fps=50 name=!default! @compress=default"},
- {"frame", c_frame, "n=<plus>1 @cut=no"},
+ {"frame", c_frame, "n=<plus>1 name= @cut=no"},
// "import" type stuff
{"swf", c_swf, "name filename"},
{"shape", c_swf, "name filename"},