static VALUE append(VALUE self, VALUE string) { SWFTextField tf; Data_Get_Struct(self, struct SWFTextField_s, tf); SWFTextField_addUTF8String(tf, StringValuePtr(string)); return self; }
EXPORT BOOL WINAPI tf_addUTF8String(void *p1, char *string, int p3, int p4) { unsigned char *out; lstrcpy(funcname, "tf_addUTF8String"); out = toutf8(string); SWFTextField_addUTF8String(mhsp_field, (char *)out); free(out); return 0; }
static void ming_textpara(GVJ_t * job, pointf p, textpara_t * para) { SWFMovie movie = (SWFMovie)(job->context); SWFTextField textfield; SWFDisplayItem item; obj_state_t *obj = job->obj; gvcolor_t pencolor = obj->pencolor; pointf offset; char *font_file_name; char *libdir; static SWFFont font; /* FIXME - hardcoded to a Times-like font */ if (font == NULL) { libdir=gvconfig_libdir(); font_file_name = malloc(strlen(libdir)+strlen(FONT)+2); strcpy(font_file_name, libdir); strcat(font_file_name, "/"); strcat(font_file_name, FONT); font = newSWFFont_fromFile(font_file_name); free(font_file_name); } textfield = newSWFTextField(); SWFTextField_setFont(textfield, (SWFBlock)font); SWFTextField_addChars(textfield, para->str); SWFTextField_addUTF8String(textfield, para->str); SWFTextField_setColor(textfield, pencolor.u.rgba[0], pencolor.u.rgba[1], pencolor.u.rgba[2], pencolor.u.rgba[3]); SWFTextField_setHeight(textfield, para->fontsize); switch (para->just) { case 'r': offset.x = 0.; break; case 'l': offset.x = -para->width; break; case 'n': default: offset.x = -para->width/2.; break; } /* offset to baseline */ offset.y = -para->height + para->fontsize*.4; /* empirically determined */ item = SWFMovie_add(movie, (SWFBlock)textfield); SWFDisplayItem_moveTo(item, p.x + offset.x, p.y + offset.y); }