X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfc.c;h=e15f5a63d660d7d96e484dadcd1dc2d59680a963;hb=fe44431e261dde7a617fa1f01a1e68909bae6a3f;hp=b1b14026ef03bef056c860b515a0bf31e9a6ef16;hpb=58beb064a7369429483e1a3dcd058cbf68074cfc;p=swftools.git diff --git a/src/swfc.c b/src/swfc.c index b1b1402..e15f5a6 100644 --- a/src/swfc.c +++ b/src/swfc.c @@ -498,11 +498,11 @@ void s_buttonput(char*character, char*as, parameters_t p) 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) @@ -692,13 +692,17 @@ int s_getframe() 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;tbbox; - tag = swf_InsertTag(tag, ST_DEFINESHAPE); + tag = swf_InsertTag(tag, ST_DEFINESHAPE3); swf_ShapeNew(&s); ls1 = swf_ShapeAddLineStyle(s,linewidth,&color); if(texture) @@ -826,7 +830,7 @@ void s_circle(char*name, int r, RGBA color, int linewidth, char*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) @@ -889,7 +893,7 @@ void s_textshape(char*name, char*fontname, float size, char*_text) 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) @@ -1017,6 +1021,8 @@ void s_font(char*name, char*filename) 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); @@ -2153,6 +2159,7 @@ static int c_frame(map_t*args) { char*framestr = lu(args, "n"); char*cutstr = lu(args, "cut"); + char*name = lu(args, "name"); int frame; int cut = 0; if(strcmp(cutstr, "no")) @@ -2169,7 +2176,7 @@ static int c_frame(map_t*args) && !(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) @@ -2430,7 +2437,7 @@ static int c_edittext(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"); @@ -2481,7 +2488,7 @@ static struct { char*arguments; } arguments[] = {{"flash", c_flash, "bbox=autocrop background=black version=5 fps=50 name=!default! @compress=default"}, - {"frame", c_frame, "n=1 @cut=no"}, + {"frame", c_frame, "n=1 name= @cut=no"}, // "import" type stuff {"swf", c_swf, "name filename"}, {"shape", c_swf, "name filename"}, @@ -2512,7 +2519,7 @@ static struct { {"show", c_show, "name x=0 y=0 red=+0 green=+0 blue=+0 alpha=+0 luminance= scale= scalex= scaley= pivot= pin= shear= rotate= ratio= above= below= as="}, {"on_press", c_on_press, "position=inside"}, {"on_release", c_on_release, "position=anywhere"}, - {"on_move_in", c_on_move_out, "state=not_pressed"}, + {"on_move_in", c_on_move_in, "state=not_pressed"}, {"on_move_out", c_on_move_out, "state=not_pressed"}, {"on_key", c_on_key, "key=any"},