[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/edit_text_character.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/edit_text_character.cpp |
Date: |
Thu, 21 Sep 2006 13:55:42 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 06/09/21 13:55:41
Modified files:
. : ChangeLog
server : edit_text_character.cpp
Log message:
* server/edit_text_character.cpp (ctor): set textfield variable when
available.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.895&r2=1.896
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.12&r2=1.13
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.895
retrieving revision 1.896
diff -u -b -r1.895 -r1.896
--- ChangeLog 21 Sep 2006 13:54:45 -0000 1.895
+++ ChangeLog 21 Sep 2006 13:55:41 -0000 1.896
@@ -1,5 +1,7 @@
2006-09-21 Sandro Santilli <address@hidden>
+ * server/edit_text_character.cpp (ctor): set textfield variable
+ when available.
* server/sprite_instance.{h,cpp}: added new set_textfield_variable
public method and a lazily-allocated map for textfield variables;
scan textfield variable names in both set_member and get_member.
Index: server/edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/edit_text_character.cpp 21 Sep 2006 10:18:37 -0000 1.12
+++ server/edit_text_character.cpp 21 Sep 2006 13:55:41 -0000 1.13
@@ -11,8 +11,10 @@
#include "edit_text_character.h"
#include "Key.h"
#include "movie_root.h"
+#include "as_environment.h" // for parse_path
#include <algorithm>
+#include <string>
namespace gnash {
@@ -30,15 +32,6 @@
assert(parent);
assert(m_def);
- if ( m_def->get_variable_name() != "" )
- {
- // we should add a character to the parent
- // which would act as a proxy for our 'text'
- // member ( ie: get_text_value() and set_text_value()
- // would set our 'text' member )
- log_warning("EditTextCharacter VariableName support broken");
- }
-
// WARNING! remember to set the font *before* setting text value!
set_font( m_def->get_font() );
@@ -46,6 +39,56 @@
m_dummy_style.push_back(fill_style());
+ //
+ // If this EditText definition contained a VariableName
+ // member, handle it by adding the textfield_variable
+ // to the appropriate sprite
+ //
+ const char* varname = m_def->get_variable_name().c_str();
+ if ( *varname )
+ {
+ // add a text variable to the sprite
+
+ assert(dynamic_cast<sprite_instance*>(parent));
+ sprite_instance* sprite = static_cast<sprite_instance*>(parent);
+
+ // If the variable name can contain path information,
+ // in which case
+ tu_string path, var;
+ if ( as_environment::parse_path(varname, path, var) )
+ {
+ // contains path info
+ character* tgt_char =
sprite->get_environment().find_target(path);
+ assert(dynamic_cast<sprite_instance*>(tgt_char));
+ sprite = static_cast<sprite_instance*>(tgt_char);
+ varname = var.c_str();
+ }
+
+ // check if the VariableName already has a value,
+ // in that case update text value
+ as_value val;
+ if ( sprite->get_member(tu_stringi(varname), &val) )
+ {
+#ifdef DEBUG_DYNTEXT_VARIABLES
+log_msg("target sprite (%p) does have a member named %s", (void*)sprite,
varname);
+#endif
+ set_text_value(val.to_string());
+ }
+#ifdef DEBUG_DYNTEXT_VARIABLES
+ else
+ {
+log_msg("target sprite (%p) does NOT have a member named %s", (void*)sprite,
varname);
+ }
+#endif
+
+ // add this text variable to the target sprite
+ sprite->set_textfield_variable(varname, this);
+
+ log_warning("EditTextCharacter VariableName support TESTING");
+
+ }
+
+
reset_bounding_box(0, 0);
}
- [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp,
Sandro Santilli <=