gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ...


From: Benjamin Wolsey
Subject: [Gnash-commit] gnash ChangeLog server/edit_text_character.cpp ...
Date: Tue, 06 May 2008 11:21:02 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Benjamin Wolsey <bwy>   08/05/06 11:21:02

Modified files:
        .              : ChangeLog 
        server         : edit_text_character.cpp 
        server/asobj   : TextFormat.cpp 
        testsuite/actionscript.all: TextFormat.as 

Log message:
                * server/asobj/TextFormat.cpp: use LOG_ONCE more, fix return
                  values for bullet (not implemented). Use a switch for variable
                  nargs.
                * server/edit_text_character.cpp: use LOG_ONCE.
                * testsuite/actionscript.all/TextFormat.as: bullet returns
                  correct values.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6523&r2=1.6524
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.181&r2=1.182
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/TextFormat.cpp?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/TextFormat.as?cvsroot=gnash&r1=1.3&r2=1.4

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6523
retrieving revision 1.6524
diff -u -b -r1.6523 -r1.6524
--- ChangeLog   6 May 2008 11:16:23 -0000       1.6523
+++ ChangeLog   6 May 2008 11:21:00 -0000       1.6524
@@ -1,5 +1,14 @@
 2008-05-06 Benjamin Wolsey <address@hidden>
 
+       * server/asobj/TextFormat.cpp: use LOG_ONCE more, fix return
+         values for bullet (not implemented). Use a switch for variable
+         nargs.
+       * server/edit_text_character.cpp: use LOG_ONCE.
+       * testsuite/actionscript.all/TextFormat.as: bullet returns
+         correct values.
+
+2008-05-06 Benjamin Wolsey <address@hidden>
+
        * server/namedStrings{h,cpp}, server/asobj/ClassHierarchy.cpp:
          support loading TextFormat on demand.
        * server/asobj/Global.cpp: load TextFormat on demand, use LOG_ONCE,

Index: server/edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.181
retrieving revision 1.182
diff -u -b -r1.181 -r1.182
--- server/edit_text_character.cpp      29 Apr 2008 17:22:43 -0000      1.181
+++ server/edit_text_character.cpp      6 May 2008 11:21:01 -0000       1.182
@@ -155,11 +155,7 @@
        boost::intrusive_ptr<edit_text_character> text = 
ensureType<edit_text_character>(fn.this_ptr);
        UNUSED(text);
 
-       static bool warned = false;
-       if ( ! warned ) {
-               log_unimpl("TextField.getNewTextFormat()");
-               warned = true;
-       }
+       LOG_ONCE(log_unimpl("TextField.getNewTextFormat()"));
 
        return as_value();
 }

Index: server/asobj/TextFormat.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/TextFormat.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/asobj/TextFormat.cpp 6 May 2008 08:59:01 -0000       1.14
+++ server/asobj/TextFormat.cpp 6 May 2008 11:21:02 -0000       1.15
@@ -108,20 +108,48 @@
        //GNASH_REPORT_FUNCTION;
 
        boost::intrusive_ptr<TextFormat> tf = new TextFormat;
-       if ( fn.nargs > 0  ) {  tf->fontSet(fn.arg(0).to_string());
-       if ( fn.nargs > 1  ) {  
tf->sizeSet(PIXELS_TO_TWIPS(fn.arg(1).to_int()));
-       if ( fn.nargs > 2  ) {  rgba col; col.parseRGB(fn.arg(2).to_int()); 
tf->colorSet(col); 
-       if ( fn.nargs > 3  ) {  tf->boldSet(fn.arg(3).to_bool()); 
-       if ( fn.nargs > 4  ) {  tf->italicedSet(fn.arg(4).to_bool()); 
-       if ( fn.nargs > 5  ) {  tf->underlinedSet(fn.arg(5).to_bool()); 
-       if ( fn.nargs > 6  ) {  tf->urlSet(fn.arg(6).to_string()); 
-       if ( fn.nargs > 7  ) {  tf->targetSet(fn.arg(7).to_string()); 
-       if ( fn.nargs > 8  ) {  tf->alignSet(fn.arg(8).to_string());
-       if ( fn.nargs > 9  ) {  
tf->leftMarginSet(PIXELS_TO_TWIPS(fn.arg(9).to_int()));
-       if ( fn.nargs > 10 ) {  
tf->rightMarginSet(PIXELS_TO_TWIPS(fn.arg(10).to_int()));
-       if ( fn.nargs > 11 ) {  
tf->indentSet(PIXELS_TO_TWIPS(fn.arg(11).to_int()));
-       if ( fn.nargs > 12 ) {  
tf->leadingSet(PIXELS_TO_TWIPS(fn.arg(12).to_int()));
-       }}}}}}}}}}}}}
+       
+       const unsigned int args = fn.nargs;
+       
+       switch (args)
+       {
+           default:
+               log_error(_("Too many args (%d) passed to TextFormat"), args);
+           case 13:
+               tf->leadingSet(PIXELS_TO_TWIPS(fn.arg(12).to_int()));
+           case 12:
+               tf->indentSet(PIXELS_TO_TWIPS(fn.arg(11).to_int()));
+           case 11:
+               tf->rightMarginSet(PIXELS_TO_TWIPS(fn.arg(10).to_int()));
+           case 10:
+               tf->leftMarginSet(PIXELS_TO_TWIPS(fn.arg(9).to_int()));
+           case 9:
+               tf->alignSet(fn.arg(8).to_string());
+           case 8:
+               tf->targetSet(fn.arg(7).to_string());
+           case 7:
+               tf->urlSet(fn.arg(6).to_string());
+           case 6:
+               tf->underlinedSet(fn.arg(5).to_bool());
+           case 5:
+               tf->italicedSet(fn.arg(4).to_bool());
+           case 4:
+               tf->boldSet(fn.arg(3).to_bool());
+           case 3:
+           {
+               rgba col;
+               col.parseRGB(fn.arg(2).to_int());
+               tf->colorSet(col);
+           }
+           case 2:
+               tf->sizeSet(PIXELS_TO_TWIPS(fn.arg(1).to_int()));
+           case 1:
+               tf->fontSet(fn.arg(0).to_string());
+               break;
+           case 0:
+               // What happens here?
+               break;
+       }
 
        return as_value(tf.get());
 }
@@ -134,10 +162,27 @@
 }
 
 as_value
-TextFormat::bullet_getset(const fn_call& /*fn*/)
+TextFormat::bullet_getset(const fn_call& fn)
 {
-       LOG_ONCE( log_unimpl("TextField.bullet") );
-       return as_value();
+    // Has the right return values, but not properly implemented
+       LOG_ONCE( log_unimpl("TextFormat.bullet") );
+
+       boost::intrusive_ptr<TextFormat> ptr = 
ensureType<TextFormat>(fn.this_ptr);
+
+       as_value ret;
+
+       if ( fn.nargs == 0 ) // getter
+       {
+               if ( ptr->bulletDefined() ) ret.set_bool(ptr->bullet());
+               else ret.set_null();
+       }
+       else // setter
+       {
+           // Boolean
+               ptr->bulletSet(fn.arg(0).to_bool());
+       }
+
+       return ret;
 }
 
 as_value

Index: testsuite/actionscript.all/TextFormat.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/TextFormat.as,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- testsuite/actionscript.all/TextFormat.as    11 Apr 2008 12:08:39 -0000      
1.3
+++ testsuite/actionscript.all/TextFormat.as    6 May 2008 11:21:02 -0000       
1.4
@@ -20,7 +20,7 @@
 // compile this test case with Ming makeswf, and then
 // execute it like this gnash -1 -r 0 -v out.swf
 
-rcsid="$Id: TextFormat.as,v 1.3 2008/04/11 12:08:39 strk Exp $";
+rcsid="$Id: TextFormat.as,v 1.4 2008/05/06 11:21:02 bwy Exp $";
 
 #include "check.as"
 
@@ -60,7 +60,7 @@
 // are all of the 'null' type.
 xcheck_equals(typeof(tfObj.display), 'string');
 xcheck_equals(tfObj.display, 'block');
-xcheck_equals(typeof(tfObj.bullet), 'null');
+check_equals(typeof(tfObj.bullet), 'null');
 xcheck_equals(typeof(tfObj.tabStops), 'null');
 check_equals(typeof(tfObj.blockIndent), 'null');
 check_equals(typeof(tfObj.leading), 'null');
@@ -82,7 +82,7 @@
 tfObj = new TextFormat("fname", 2, 30, true, false, true, 'http', 'tgt', 
'cEnter', '23', '32', 12, 4);
 xcheck_equals(typeof(tfObj.display), 'string');
 xcheck_equals(tfObj.display, 'block');
-xcheck_equals(typeof(tfObj.bullet), 'null');
+check_equals(typeof(tfObj.bullet), 'null');
 xcheck_equals(typeof(tfObj.tabStops), 'null');
 check_equals(typeof(tfObj.blockIndent), 'null');
 check_equals(tfObj.leading, 4);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]