X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmodules%2Fswftext.c;h=411ab9d829d4aa18911a9bad050fd092ce8a9674;hb=138f9803b5b4d091a6ac75487a21858a5bbbcb9f;hp=80fa15f9a9d624266bdd04bf2a2ef4ffb695e006;hpb=7075e92fd4d0164cf16e5f023f984364242307fd;p=swftools.git diff --git a/lib/modules/swftext.c b/lib/modules/swftext.c index 80fa15f..411ab9d 100644 --- a/lib/modules/swftext.c +++ b/lib/modules/swftext.c @@ -107,16 +107,17 @@ int swf_FontExtract_DefineFontInfo(int id,SWFFONT * f,TAG * t) swf_SaveTagPos(t); swf_SetTagPos(t,0); - if(f->version>1) { - // DefineFont2 doesn't have FontInfo fields - fprintf(stderr, "fixme: FontInfo field for DefineFont2 encountered\n"); - return -1; - } fid = swf_GetU16(t); if (fid==id) { U8 l = swf_GetU8(t); int i; + + if(f->version>1) { + // DefineFont2 doesn't have FontInfo fields + fprintf(stderr, "fixme: FontInfo field for DefineFont2 encountered\n"); + return -1; + } if (l) { if (f->name) free(f->name); @@ -165,7 +166,7 @@ int swf_FontExtract_DefineFont2(int id,SWFFONT * font,TAG * tag) font->version=2; fid = swf_GetU16(tag); if(id && id!=fid) - return; + return id; font->id = fid; flags1 = swf_GetU8(tag); flags2 = swf_GetU8(tag); //reserved flags @@ -303,8 +304,10 @@ int swf_FontExtract_DefineTextCallback(int id,SWFFONT * f,TAG * t,int jobs, glyph = swf_GetBits(t,gbits); adv = swf_GetBits(t,abits); if (id==fid) // mitlesen ? - { int code = f->glyph2ascii[glyph]; - if (jobs&FEDTJ_PRINT) printf("%c",code); + if (jobs&FEDTJ_PRINT) { + { int code = f->glyph2ascii[glyph]; + printf("%c",code); + } if (jobs&FEDTJ_MODIFY) /*if (!f->glyph[code].advance)*/ f->glyph[glyph].advance = adv; } @@ -842,3 +845,40 @@ void swf_WriteFont(SWFFONT*font, char* filename) } +void swf_SetEditText(TAG*tag, U16 flags, SRECT r, char*text, RGBA*color, + int maxlength, U16 font, U16 height, EditTextLayout*layout, char*variable) +{ + swf_SetRect(tag,&r); + swf_ResetWriteBits(tag); + + flags &= ~(ET_HASTEXT|ET_HASTEXTCOLOR|ET_HASMAXLENGTH|ET_HASFONT|ET_HASLAYOUT); + if(text) flags |= ET_HASTEXT; + if(color) flags |= ET_HASTEXTCOLOR; + if(maxlength) flags |= ET_HASMAXLENGTH; + if(font) flags |= ET_HASFONT; + if(layout) flags |= ET_HASLAYOUT; + + swf_SetBits(tag, flags, 16); + + if(flags & ET_HASFONT) { + swf_SetU16(tag, font); //font + swf_SetU16(tag, height); //fontheight + } + if(flags & ET_HASTEXTCOLOR) { + swf_SetRGBA(tag, color); + } + if(flags & ET_HASMAXLENGTH) { + swf_SetU16(tag, maxlength); //maxlength + } + if(flags & ET_HASLAYOUT) { + swf_SetU8(tag,layout->align); //align + swf_SetU16(tag,layout->leftmargin); //left margin + swf_SetU16(tag,layout->rightmargin); //right margin + swf_SetU16(tag,layout->indent); //indent + swf_SetU16(tag,layout->leading); //leading + } + swf_SetString(tag, variable); + if(flags & ET_HASTEXT) + swf_SetString(tag,text); +} +