Pekka Lampila
2007-Oct-14 14:44 UTC
[Swfdec] 3 commits - doc/Makefile.am libswfdec/swfdec_text_field_movie_as.c
doc/Makefile.am | 4 libswfdec/swfdec_text_field_movie_as.c | 304 ++++++++++++++++++++++----------- 2 files changed, 205 insertions(+), 103 deletions(-) New commits: commit 0d49e6e7e7c5b80fd12e3d117593a10848688a89 Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Sun Oct 14 17:43:27 2007 +0300 Update doc/Makefile.am to handle edittext to text_field rename diff --git a/doc/Makefile.am b/doc/Makefile.am index 44bf0e4..bb67895 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -84,8 +84,8 @@ IGNORE_HFILES= \ swfdec_debugger.h \ swfdec_decoder.h \ swfdec_draw.h \ - swfdec_edittext.h \ - swfdec_edittext_movie.h \ + swfdec_text_field.h \ + swfdec_text_field_movie.h \ swfdec_enums.h \ swfdec_event.h \ swfdec_filter.h \ commit a98b5bc4983639dd251429cd2af66f9814b2b845 Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Sun Oct 14 17:33:20 2007 +0300 Fixes to TextField's textColor property diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c index 43599a3..121fefc 100644 --- a/libswfdec/swfdec_text_field_movie_as.c +++ b/libswfdec/swfdec_text_field_movie_as.c @@ -604,10 +604,10 @@ swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx, swfdec_as_value_to_number (cx, &argv[0]); - text->text->embed_fonts = value; - - if (text->text->embed_fonts) + if (!text->text->embed_fonts && value) SWFDEC_FIXME ("Using embed fonts in TextField not supported"); + + text->text->embed_fonts = value; } static void @@ -619,8 +619,7 @@ swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx, SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new), - SWFDEC_AS_STR_color, ret); + SWFDEC_AS_VALUE_SET_NUMBER (ret, text->format_new->color); } // This doesn't work the same way as TextFormat's color setting @@ -631,18 +630,16 @@ swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx, { SwfdecTextFieldMovie *text; int value; - SwfdecAsValue val; SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value); if (value < 0) { - SWFDEC_AS_VALUE_SET_NUMBER (&val, 16777216 + value % 16777216); + value = 16777216 + value % 16777216; } else { - SWFDEC_AS_VALUE_SET_NUMBER (&val, value); + value = value % 16777216; } - swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new), - SWFDEC_AS_STR_color, &val); + text->format_new->color = value; } /* commit 8f251d14ba560f63a5631e992c8c661c8d01b7b0 Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Sun Oct 14 17:22:50 2007 +0300 Reorganize swfdec_text_field_movie_as.c diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c index e21183a..43599a3 100644 --- a/libswfdec/swfdec_text_field_movie_as.c +++ b/libswfdec/swfdec_text_field_movie_as.c @@ -36,6 +36,23 @@ #include "swfdec_internal.h" #include "swfdec_player_internal.h" +// does nothing but calls valueOf +static void +swfdec_text_field_movie_set_readonly (SwfdecAsContext *cx, + SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, + SwfdecAsValue *ret) +{ + SwfdecTextFieldMovie *text; + + SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); + + if (argc > 0) + swfdec_as_value_to_number (cx, &argv[0]); +} + +/* + * Native properties: Text + */ static void swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) @@ -62,6 +79,31 @@ swfdec_text_field_movie_do_set_text (SwfdecAsContext *cx, swfdec_text_field_movie_set_text (text, value, FALSE); } +static void +swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecTextFieldMovie *text; + + SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); + + SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html); +} + +static void +swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecTextFieldMovie *text; + gboolean value; + + SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value); + + swfdec_as_value_to_number (cx, &argv[0]); + + text->text->html = value; +} + static const char * align_to_string (SwfdecTextAlign align) { @@ -361,30 +403,19 @@ swfdec_text_field_movie_set_htmlText (SwfdecAsContext *cx, } static void -swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object, +swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { SwfdecTextFieldMovie *text; SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html); -} - -static void -swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object, - guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) -{ - SwfdecTextFieldMovie *text; - gboolean value; - - SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value); - - swfdec_as_value_to_number (cx, &argv[0]); - - text->text->html = value; + SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display)); } +/* + * Native properties: Input + */ static void swfdec_text_field_movie_get_condenseWhite (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, @@ -412,8 +443,11 @@ swfdec_text_field_movie_set_condenseWhite (SwfdecAsContext *cx, text->condense_white = value; } +/* + * Native properties: Background & border + */ static void -swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx, +swfdec_text_field_movie_get_border (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -421,11 +455,11 @@ swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx, SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts); + SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->border); } static void -swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx, +swfdec_text_field_movie_set_border (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -436,70 +470,15 @@ swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx, swfdec_as_value_to_number (cx, &argv[0]); - text->text->embed_fonts = value; - - if (text->text->embed_fonts) - SWFDEC_FIXME ("Using embed fonts in TextField not supported"); -} - -// does nothing but calls valueOf -static void -swfdec_text_field_movie_set_length (SwfdecAsContext *cx, SwfdecAsObject *object, - guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) -{ - SwfdecTextFieldMovie *text; - - SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - - swfdec_as_value_to_number (cx, &argv[0]); -} - -static void -swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object, - guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) -{ - SwfdecTextFieldMovie *text; - - SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - - SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display)); -} - -static void -swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx, - SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, - SwfdecAsValue *ret) -{ - SwfdecTextFieldMovie *text; - - SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - - swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new), - SWFDEC_AS_STR_color, ret); -} - -// This doesn't work the same way as TextFormat's color setting -static void -swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx, - SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, - SwfdecAsValue *ret) -{ - SwfdecTextFieldMovie *text; - int value; - SwfdecAsValue val; - - SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value); - - if (value < 0) { - SWFDEC_AS_VALUE_SET_NUMBER (&val, 16777216 + value % 16777216); - } else { - SWFDEC_AS_VALUE_SET_NUMBER (&val, value); + if (text->text->border != value) { + text->text->border = value; + swfdec_movie_invalidate (SWFDEC_MOVIE (text)); } - - swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new), - SWFDEC_AS_STR_color, &val); } +/* + * Native properties: Display + */ static void swfdec_text_field_movie_get_autoSize (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, @@ -598,8 +577,11 @@ swfdec_text_field_movie_set_wordWrap (SwfdecAsContext *cx, } } +/* + * Native properties: Format + */ static void -swfdec_text_field_movie_get_border (SwfdecAsContext *cx, +swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -607,11 +589,11 @@ swfdec_text_field_movie_get_border (SwfdecAsContext *cx, SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); - SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->border); + SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts); } static void -swfdec_text_field_movie_set_border (SwfdecAsContext *cx, +swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -622,12 +604,50 @@ swfdec_text_field_movie_set_border (SwfdecAsContext *cx, swfdec_as_value_to_number (cx, &argv[0]); - if (text->text->border != value) { - text->text->border = value; - swfdec_movie_invalidate (SWFDEC_MOVIE (text)); + text->text->embed_fonts = value; + + if (text->text->embed_fonts) + SWFDEC_FIXME ("Using embed fonts in TextField not supported"); +} + +static void +swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx, + SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, + SwfdecAsValue *ret) +{ + SwfdecTextFieldMovie *text; + + SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, ""); + + swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new), + SWFDEC_AS_STR_color, ret); +} + +// This doesn't work the same way as TextFormat's color setting +static void +swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx, + SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, + SwfdecAsValue *ret) +{ + SwfdecTextFieldMovie *text; + int value; + SwfdecAsValue val; + + SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value); + + if (value < 0) { + SWFDEC_AS_VALUE_SET_NUMBER (&val, 16777216 + value % 16777216); + } else { + SWFDEC_AS_VALUE_SET_NUMBER (&val, value); } + + swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new), + SWFDEC_AS_STR_color, &val); } +/* + * Native functions + */ SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat) void swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx, @@ -701,6 +721,9 @@ swfdec_text_field_movie_setTextFormat (SwfdecAsContext *cx, swfdec_text_field_movie_set_text_format (text, format, start_index, end_index); } +/* + * Creating TextFields + */ SWFDEC_AS_NATIVE (104, 200, swfdec_text_field_movie_createTextField) void swfdec_text_field_movie_createTextField (SwfdecAsContext *cx, @@ -823,33 +846,115 @@ swfdec_text_field_movie_init_properties (SwfdecAsContext *cx) return; proto = SWFDEC_AS_VALUE_GET_OBJECT (&val); - swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text, - swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text); + // text + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html, + swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html); swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText, swfdec_text_field_movie_get_htmlText, swfdec_text_field_movie_set_htmlText); - swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html, - swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html); + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length, + swfdec_text_field_movie_get_length, + swfdec_text_field_movie_set_readonly); + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text, + swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text); + + // input swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite, swfdec_text_field_movie_get_condenseWhite, swfdec_text_field_movie_set_condenseWhite); - swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts, - swfdec_text_field_movie_get_embedFonts, - swfdec_text_field_movie_set_embedFonts); - swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length, - swfdec_text_field_movie_get_length, - swfdec_text_field_movie_set_length); - swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor, - swfdec_text_field_movie_get_textColor, - swfdec_text_field_movie_set_textColor); + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_maxChars, + swfdec_text_field_movie_get_maxChars, + swfdec_text_field_movie_set_maxChars);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_multiline, + swfdec_text_field_movie_get_multiline, + swfdec_text_field_movie_set_multiline);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_restrict, + swfdec_text_field_movie_get_restrict, + swfdec_text_field_movie_set_restrict);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_selectable, + swfdec_text_field_movie_get_selectable, + swfdec_text_field_movie_set_selectable);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_type, + swfdec_text_field_movie_get_type, swfdec_text_field_movie_set_type);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_variable, + swfdec_text_field_movie_get_variable, + swfdec_text_field_movie_set_variable);*/ + + // info + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textHeight, + swfdec_text_field_movie_get_textHeight, + swfdec_text_field_movie_set_readonly);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textWidth, + swfdec_text_field_movie_get_textWidth, + swfdec_text_field_movie_set_readonly);*/ + + // border & background + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_background, + swfdec_text_field_movie_get_background, + swfdec_text_field_movie_set_background);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_backgroundColor, + swfdec_text_field_movie_get_backgroundColor, + swfdec_text_field_movie_set_backgroundColor);*/ + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_border, + swfdec_text_field_movie_get_border, swfdec_text_field_movie_set_border); + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_borderColor, + swfdec_text_field_movie_get_borderColor, + swfdec_text_field_movie_set_borderColor);*/ + + // scrolling + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_bottomScroll, + swfdec_text_field_movie_get_bottomScroll, + swfdec_text_field_movie_set_readonly);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_hscroll, + swfdec_text_field_movie_get_hscroll, + swfdec_text_field_movie_set_hscroll);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_maxhscroll, + swfdec_text_field_movie_get_maxhscroll, + swfdec_text_field_movie_set_readonly);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_maxscroll, + swfdec_text_field_movie_get_maxscroll, + swfdec_text_field_movie_set_readonly);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_mouseWheelEnabled, + swfdec_text_field_movie_get_mouseWheelEnabled, + swfdec_text_field_movie_set_mouseWheelEnabled);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_scroll, + swfdec_text_field_movie_get_scroll, swfdec_text_field_movie_set_scroll);*/ + + // display swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize, swfdec_text_field_movie_get_autoSize, swfdec_text_field_movie_set_autoSize); + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_password, + swfdec_text_field_movie_get_password, + swfdec_text_field_movie_set_password);*/ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_wordWrap, swfdec_text_field_movie_get_wordWrap, swfdec_text_field_movie_set_wordWrap); - swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_border, - swfdec_text_field_movie_get_border, swfdec_text_field_movie_set_border); + + // format + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_antiAliasType, + swfdec_text_field_movie_get_antiAliasType, + swfdec_text_field_movie_set_antiAliasType); + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_gridFitType, + swfdec_text_field_movie_get_gridFitType, + swfdec_text_field_movie_set_gridFitType);*/ + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts, + swfdec_text_field_movie_get_embedFonts, + swfdec_text_field_movie_set_embedFonts); + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_sharpness, + swfdec_text_field_movie_get_sharpness, + swfdec_text_field_movie_set_sharpness); + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_thickness, + swfdec_text_field_movie_get_thickness, + swfdec_text_field_movie_set_thickness);*/ + /*swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_styleSheet, + swfdec_text_field_movie_get_styleSheet, + swfdec_text_field_movie_set_styleSheet);*/ + swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor, + swfdec_text_field_movie_get_textColor, + swfdec_text_field_movie_set_textColor); + + // TODO: filters, menu, tabEnabled, tabIndex } SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
Reasonably Related Threads
- 6 commits - libswfdec/swfdec_as_strings.c libswfdec/swfdec_codec_audio.c libswfdec/swfdec_codec_video.c libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field.h libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c
- 9 commits - libswfdec/swfdec_as_strings.c libswfdec/swfdec_html_parser.c libswfdec/swfdec_style_sheet.c libswfdec/swfdec_style_sheet.h libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c libswfdec/swfdec_text_field_movie.h
- 11 commits - libswfdec/swfdec_as_strings.c libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field.h libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c libswfdec/swfdec_text_field_movie.h test/trace
- 10 commits - libswfdec/swfdec_as_strings.c libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c
- 6 commits - libswfdec/swfdec_as_strings.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field.h libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c