gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/button_character_instanc...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/button_character_instanc...
Date: Mon, 31 Mar 2008 23:48:33 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/03/31 23:48:33

Modified files:
        .              : ChangeLog 
        server         : button_character_instance.cpp 
                         button_character_instance.h namedStrings.cpp 
                         namedStrings.h 
        server/asobj   : ClassHierarchy.cpp 
        testsuite/actionscript.all: Global.as 

Log message:
        "classify" Button.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6130&r2=1.6131
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.cpp?cvsroot=gnash&r1=1.82&r2=1.83
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.h?cvsroot=gnash&r1=1.35&r2=1.36
http://cvs.savannah.gnu.org/viewcvs/gnash/server/namedStrings.cpp?cvsroot=gnash&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/gnash/server/namedStrings.h?cvsroot=gnash&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/ClassHierarchy.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Global.as?cvsroot=gnash&r1=1.50&r2=1.51

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6130
retrieving revision 1.6131
diff -u -b -r1.6130 -r1.6131
--- ChangeLog   31 Mar 2008 23:18:32 -0000      1.6130
+++ ChangeLog   31 Mar 2008 23:48:31 -0000      1.6131
@@ -1,5 +1,14 @@
 2008-03-31 Sandro Santilli <address@hidden>
 
+       * server/button_character_instance.{cpp,h}: have buttons
+         share prototype.
+       * server/namedStrings.{cpp,h}: add CLASS_BUTTON
+       * server/asobj/ClassHierarchy.cpp: register Button as a global class.
+       * testsuite/actionscript.all/Global.as: test that Button exists and
+         is a function.
+
+2008-03-31 Sandro Santilli <address@hidden>
+
        * server/as_object.{cpp,h}: const-correct setPropFlags (sorry
          for big rebuild).
        * server/asobj/Number.cpp: add missing properties, make all Number

Index: server/button_character_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/button_character_instance.cpp,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- server/button_character_instance.cpp        6 Mar 2008 15:29:56 -0000       
1.82
+++ server/button_character_instance.cpp        31 Mar 2008 23:48:32 -0000      
1.83
@@ -36,6 +36,7 @@
 #include "GnashException.h" // for shared ActionScript getter-setters
 #include "ExecutableCode.h"
 #include "namedStrings.h"
+#include "Object.h" // for getObjectInterface
 
 /** \page buttons Buttons and mouse behaviour
 
@@ -167,6 +168,9 @@
 
 namespace gnash {
 
+// Forward declarations
+static as_object* getButtonInterface();
+
 /// A couple of typedefs to make code neater
 typedef button_character_instance Button;
 typedef boost::intrusive_ptr<Button> ButtonPtr;
@@ -244,7 +248,7 @@
 {
        assert(m_def);
 
-       attachButtonInterface(*this);
+       set_prototype(getButtonInterface());
 
        // check up presence Key events
        // TODO: use a service of button_character_def, not this hard-coded 
thing here
@@ -952,6 +956,43 @@
        return m_def->getSWFVersion();
 }
 
+static as_object*
+getButtonInterface()
+{
+  static boost::intrusive_ptr<as_object> proto;
+  if ( proto == NULL )
+  {
+    proto = new as_object(getObjectInterface());
+    VM::get().addStatic(proto.get());
+
+    attachButtonInterface(*proto);
+  }
+  return proto.get();
+}
+
+static as_value
+button_ctor(const fn_call& /* fn */)
+{
+  boost::intrusive_ptr<as_object> clip = new as_object(getButtonInterface());
+  return as_value(clip.get());
+}
+
+void
+button_class_init(as_object& global)
+{
+  // This is going to be the global Button "class"/"function"
+  static boost::intrusive_ptr<builtin_function> cl=NULL;
+
+  if ( cl == NULL )
+  {
+    cl=new builtin_function(&button_ctor, getButtonInterface());
+    VM::get().addStatic(cl.get());
+  }
+
+  // Register _global.MovieClip
+  global.init_member("Button", cl.get());
+}
+
 } // end of namespace gnash
 
 

Index: server/button_character_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/button_character_instance.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- server/button_character_instance.h  27 Mar 2008 10:50:14 -0000      1.35
+++ server/button_character_instance.h  31 Mar 2008 23:48:32 -0000      1.36
@@ -198,6 +198,9 @@
 
 };
 
+/// Initialize the global Button class
+void button_class_init(as_object& global);
+
 }      // end namespace gnash
 
 

Index: server/namedStrings.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/namedStrings.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/namedStrings.cpp     6 Feb 2008 10:18:31 -0000       1.12
+++ server/namedStrings.cpp     31 Mar 2008 23:48:32 -0000      1.13
@@ -131,6 +131,7 @@
 //     string_table::svt( "Stage", NSV::CLASS_STAGE ), // Identical to 
PROP_iSTAGE
        string_table::svt( "MovieClip", NSV::CLASS_MOVIE_CLIP ),
        string_table::svt( "TextField", NSV::CLASS_TEXT_FIELD ),
+       string_table::svt( "Button", NSV::CLASS_BUTTON ),
        string_table::svt( "Math", NSV::CLASS_MATH ),
        string_table::svt( "Boolean", NSV::CLASS_BOOLEAN ),
        string_table::svt( "Color", NSV::CLASS_COLOR ),

Index: server/namedStrings.h
===================================================================
RCS file: /sources/gnash/gnash/server/namedStrings.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/namedStrings.h       6 Feb 2008 10:18:31 -0000       1.13
+++ server/namedStrings.h       31 Mar 2008 23:48:32 -0000      1.14
@@ -153,6 +153,7 @@
                CLASS_SYSTEM,
                CLASS_MOVIE_CLIP,
                CLASS_TEXT_FIELD,
+               CLASS_BUTTON,
                CLASS_MATH,
                CLASS_BOOLEAN,
                CLASS_COLOR,

Index: server/asobj/ClassHierarchy.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/ClassHierarchy.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/asobj/ClassHierarchy.cpp     31 Mar 2008 22:12:05 -0000      1.11
+++ server/asobj/ClassHierarchy.cpp     31 Mar 2008 23:48:32 -0000      1.12
@@ -20,6 +20,7 @@
 #include "as_prop_flags.h"
 #include "as_value.h"
 #include "as_function.h" // for function_class_init
+#include "button_character_instance.h"
 #include "array.h"
 #include "AsBroadcaster.h"
 #include "Boolean.h"
@@ -275,6 +276,7 @@
        { textfield_class_init, NSV::CLASS_TEXT_FIELD, 0, NSV::NS_FLASH_TEXT, 3 
},
        { math_class_init, NSV::CLASS_MATH, 0, NS_GLOBAL, 4 },
        { boolean_class_init, NSV::CLASS_BOOLEAN, NSV::CLASS_OBJECT, NS_GLOBAL, 
5 },
+       { button_class_init, NSV::CLASS_BUTTON, NSV::CLASS_OBJECT, NS_GLOBAL, 5 
},
        { color_class_init, NSV::CLASS_COLOR, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
        { selection_class_init, NSV::CLASS_SELECTION, NSV::CLASS_OBJECT, 
NS_UNKNOWN, 5 },
        { sound_class_init, NSV::CLASS_SOUND, NSV::CLASS_OBJECT, 
NSV::NS_FLASH_MEDIA, 5 },

Index: testsuite/actionscript.all/Global.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Global.as,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- testsuite/actionscript.all/Global.as        26 Mar 2008 17:02:24 -0000      
1.50
+++ testsuite/actionscript.all/Global.as        31 Mar 2008 23:48:33 -0000      
1.51
@@ -22,9 +22,11 @@
 // execute it like this gnash -1 -r 0 -v out.swf
 
 
-rcsid="$Id: Global.as,v 1.50 2008/03/26 17:02:24 bwy Exp $";
+rcsid="$Id: Global.as,v 1.51 2008/03/31 23:48:33 strk Exp $";
 #include "check.as"
 
+check_equals(typeof(Button), 'function'); // random check
+
 #if OUTPUT_VERSION > 5
 check_equals(typeof(_global.updateAfterEvent), 'function');
 check( ! _global.hasOwnProperty('updateAfterEvent') );
@@ -463,15 +465,15 @@
 //------------------------------------------------------------
 
 #if OUTPUT_VERSION == 5
-       check_totals(152); // SWF5
+       check_totals(153); // SWF5
 #else
 # if OUTPUT_VERSION == 6
-       check_totals(186); // SWF6
+       check_totals(187); // SWF6
 # else
 #  if OUTPUT_VERSION == 7
-       check_totals(168); // SWF7
+       check_totals(169); // SWF7
 #  else
-       check_totals(155); // SWF8+
+       check_totals(156); // SWF8+
 #  endif
 # endif
 #endif




reply via email to

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