gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/trunk r11202: Construct a MovieClip when a


From: Benjamin Wolsey
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11202: Construct a MovieClip when asked to; passes some tests in as3compile.all.
Date: Fri, 03 Jul 2009 12:25:04 +0200
User-agent: Bazaar (1.13.1)

------------------------------------------------------------
revno: 11202
committer: Benjamin Wolsey <address@hidden>
branch nick: trunk
timestamp: Fri 2009-07-03 12:25:04 +0200
message:
  Construct a MovieClip when asked to; passes some tests in as3compile.all.
  
  Add all flash.text AS3 classes to ClassHierarchy except TextColor, which
  isn't stubbed and conflicts with TextFormat.textColor anyway.
modified:
  libcore/asobj/Global.cpp
  libcore/asobj/flash/display/MovieClip_as.cpp
  libcore/movie_root.h
  libcore/namedStrings.cpp
  libcore/namedStrings.h
  testsuite/as3compile.all/MovieClip.as
    ------------------------------------------------------------
    revno: 11200.1.6
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Fri 2009-07-03 10:44:41 +0200
    message:
      Allow AS3 creation of MovieClips.
    modified:
      libcore/asobj/flash/display/MovieClip_as.cpp
      libcore/movie_root.h
    ------------------------------------------------------------
    revno: 11200.1.7
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Fri 2009-07-03 11:10:38 +0200
    message:
      Add all text classes to ClassHierarchy.
    modified:
      libcore/asobj/Global.cpp
      libcore/namedStrings.cpp
      libcore/namedStrings.h
=== modified file 'libcore/asobj/Global.cpp'
--- a/libcore/asobj/Global.cpp  2009-07-02 10:09:21 +0000
+++ b/libcore/asobj/Global.cpp  2009-07-03 09:10:38 +0000
@@ -59,6 +59,19 @@
 #include "flash/system/System_as.h"
 #include "flash/text/TextSnapshot_as.h"
 #include "flash/text/TextFieldAutoSize_as.h"
+#include "flash/text/Font_as.h"
+#include "flash/text/FontStyle_as.h"
+#include "flash/text/AntiAliasType_as.h"
+#include "flash/text/CSMSettings_as.h"
+#include "flash/text/GridFitType_as.h"
+#include "flash/text/StaticText_as.h"
+#include "flash/text/StyleSheet_as.h"
+#include "flash/text/TextColorType_as.h"
+#include "flash/text/TextDisplayMode_as.h"
+#include "flash/text/TextFieldType_as.h"
+#include "flash/text/TextFormatAlign_as.h"
+#include "flash/text/TextLineMetrics_as.h"
+#include "flash/text/TextRenderer_as.h"
 #include "flash/xml/XMLDocument_as.h"
 #include "flash/xml/XMLNode_as.h"
 #include "MovieClipLoader.h"
@@ -415,7 +428,40 @@
            NSV::NS_FLASH_TEXT, 5))
         (N(TextSnapshot_as::init, NSV::CLASS_TEXT_SNAPSHOT, NSV::CLASS_OBJECT,
            NSV::NS_FLASH_TEXT, 5))
-        
+        (N(textfieldautosize_class_init, NSV::CLASS_TEXTFIELDAUTOSIZE,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(font_class_init, NSV::CLASS_FONT, NSV::CLASS_OBJECT,
+           NSV::NS_FLASH_TEXT, 5))
+        (N(fontstyle_class_init, NSV::CLASS_FONTSTYLE, NSV::CLASS_OBJECT,
+           NSV::NS_FLASH_TEXT, 5))
+        (N(antialiastype_class_init, NSV::CLASS_ANTIALIASTYPE,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(csmsettings_class_init, NSV::CLASS_CSMTEXTSETTINGS,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(gridfittype_class_init, NSV::CLASS_GRIDFITTYPE,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(statictext_class_init, NSV::CLASS_STATICTEXT,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(stylesheet_class_init, NSV::CLASS_STYLESHEET,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+#if 0
+        // This one isn't stubbed for some reason.
+        (N(textcolor_class_init, NSV::CLASS_TEXTCOLOR,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+#endif
+        (N(textcolortype_class_init, NSV::CLASS_TEXTCOLORTYPE,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(textdisplaymode_class_init, NSV::CLASS_TEXTDISPLAYMODE,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(textfieldtype_class_init, NSV::CLASS_TEXTFIELDTYPE,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(textformatalign_class_init, NSV::CLASS_TEXTFORMATALIGN,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(textlinemetrics_class_init, NSV::CLASS_TEXTLINEMETRICS,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+        (N(textrenderer_class_init, NSV::CLASS_TEXTRENDERER,
+           NSV::CLASS_OBJECT, NSV::NS_FLASH_TEXT, 5))
+
         // Media classes
         (N(Sound_as::init, NSV::CLASS_SOUND, NSV::CLASS_OBJECT,
            NSV::NS_FLASH_MEDIA, 5))

=== modified file 'libcore/asobj/flash/display/MovieClip_as.cpp'
--- a/libcore/asobj/flash/display/MovieClip_as.cpp      2009-06-18 10:49:01 
+0000
+++ b/libcore/asobj/flash/display/MovieClip_as.cpp      2009-07-03 08:44:41 
+0000
@@ -2637,9 +2637,11 @@
 {
     assert(isAS3(fn));
 
-    log_unimpl("AVM2 MovieClip ctor");
+    // TODO: currently it's necessary to have a top-level movie to initialize
+    // a MovieClip.
+    Movie* m = fn.getVM().getRoot().topLevelMovie();
 
-    return as_value();
+    return new MovieClip(0, m, 0, -1);
 }
 
 

=== modified file 'libcore/movie_root.h'
--- a/libcore/movie_root.h      2009-06-16 08:29:25 +0000
+++ b/libcore/movie_root.h      2009-07-03 08:44:41 +0000
@@ -308,6 +308,16 @@
         return *_rootMovie;
     }
 
+    /// Creating new MovieClips needs this for now.
+    //
+    /// TODO: create MovieClips without this and drop. It's deliberately
+    /// different from getRootMovie() so it doesn't end up getting used
+    /// in the same way.
+    Movie* topLevelMovie() const
+    {
+        return _rootMovie.get();
+    }
+
     /// Return the current nominal frame rate for the Stage.
     //
     /// This is dependent on the Movie set as root movie.

=== modified file 'libcore/namedStrings.cpp'
--- a/libcore/namedStrings.cpp  2009-07-02 09:40:13 +0000
+++ b/libcore/namedStrings.cpp  2009-07-03 10:25:04 +0000
@@ -159,6 +159,19 @@
        string_table::svt( "_ymouse", NSV::PROP_uYMOUSE ),
        string_table::svt( "_yscale", NSV::PROP_uYSCALE ),
        string_table::svt( "System", NSV::CLASS_SYSTEM ),
+       string_table::svt( "AntiAliasType", NSV::CLASS_ANTIALIASTYPE ),
+       string_table::svt( "CSMTextSettings", NSV::CLASS_CSMTEXTSETTINGS ),
+       string_table::svt( "Font", NSV::CLASS_FONT),
+       string_table::svt( "FontStyle", NSV::CLASS_FONTSTYLE),
+       string_table::svt( "GridFitType", NSV::CLASS_GRIDFITTYPE),
+       string_table::svt( "StaticText", NSV::CLASS_STATICTEXT),
+       string_table::svt( "StyleSheet", NSV::CLASS_STYLESHEET),
+       string_table::svt( "TextColorType", NSV::CLASS_TEXTCOLORTYPE),
+       string_table::svt( "TextDisplayMode", NSV::CLASS_TEXTDISPLAYMODE),
+       string_table::svt( "TextFieldType", NSV::CLASS_TEXTFIELDTYPE),
+       string_table::svt( "TextFormatAlign", NSV::CLASS_TEXTFORMATALIGN),
+       string_table::svt( "TextLineMetrics", NSV::CLASS_TEXTLINEMETRICS),
+       string_table::svt( "TextRenderer", NSV::CLASS_TEXTRENDERER),
 //     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 ),

=== modified file 'libcore/namedStrings.h'
--- a/libcore/namedStrings.h    2009-07-02 09:40:13 +0000
+++ b/libcore/namedStrings.h    2009-07-03 10:25:04 +0000
@@ -50,6 +50,7 @@
 
 enum NamedStrings {
         CLASS_ACCESSIBILITY = 1,
+        CLASS_ANTIALIASTYPE,
         CLASS_ARRAY,
         CLASS_AS_BROADCASTER,
         CLASS_BOOLEAN,
@@ -58,13 +59,17 @@
         CLASS_COLOR,
         CLASS_CONTEXTMENU,
         CLASS_CUSTOM_ACTIONS,
+        CLASS_CSMTEXTSETTINGS,
         CLASS_DATE,
         CLASS_DISPLAYOBJECT,
         CLASS_DISPLAYOBJECTCONTAINER,
         CLASS_ERROR,
         CLASS_EVENT,
         CLASS_EVENTDISPATCHER,
+        CLASS_FONT,
+        CLASS_FONTSTYLE,
         CLASS_FUNCTION,
+        CLASS_GRIDFITTYPE,
         CLASS_INT,
         CLASS_INTERACTIVEOBJECT,
         CLASS_KEY,
@@ -86,13 +91,21 @@
         CLASS_SOUND,
         CLASS_SPRITE,
         CLASS_STAGE,
+        CLASS_STATICTEXT,
         PROP_iSTAGE = CLASS_STAGE,
         CLASS_STRING,
+        CLASS_STYLESHEET,
         CLASS_SYSTEM,
+        CLASS_TEXTCOLORTYPE,
+        CLASS_TEXTDISPLAYMODE,
         CLASS_TEXT_FIELD,
+        CLASS_TEXTFIELDTYPE,
         CLASS_TEXT_FORMAT,
+        CLASS_TEXTFORMATALIGN,
         CLASS_TEXT_SNAPSHOT,
         CLASS_TEXTFIELDAUTOSIZE,
+        CLASS_TEXTLINEMETRICS,
+        CLASS_TEXTRENDERER,
         CLASS_VIDEO,
         CLASS_XML,
         CLASS_XMLNODE,

=== modified file 'testsuite/as3compile.all/MovieClip.as'
--- a/testsuite/as3compile.all/MovieClip.as     2009-06-18 11:16:57 +0000
+++ b/testsuite/as3compile.all/MovieClip.as     2009-07-03 10:25:04 +0000
@@ -126,15 +126,15 @@
             check(!m.hasOwnProperty("attachAudio"));
 
             // Check type of MovieClip properties. Inherited properties should
-           // be dealt with elsewhere.
-            xcheck_equals(typeof(m.nextFrame), "function");
-            xcheck_equals(typeof(m.prevFrame), "function");
-            xcheck_equals(typeof(m.gotoAndStop), "function");
-            xcheck_equals(typeof(m.nextScene), "function");
-            xcheck_equals(typeof(m.prevScene), "function");
-            xcheck_equals(typeof(m.play), "function");
-            xcheck_equals(typeof(m.stop), "function");
-            xcheck_equals(typeof(m.addFrameScript), "function");
+            // be dealt with elsewhere.
+            check_equals(typeof(m.nextFrame), "function");
+            check_equals(typeof(m.prevFrame), "function");
+            check_equals(typeof(m.gotoAndStop), "function");
+            check_equals(typeof(m.nextScene), "function");
+            check_equals(typeof(m.prevScene), "function");
+            check_equals(typeof(m.play), "function");
+            check_equals(typeof(m.stop), "function");
+            check_equals(typeof(m.addFrameScript), "function");
             xcheck_equals(typeof(m.framesLoaded), "number");
             xcheck_equals(typeof(m.totalFrames), "number");
             xcheck_equals(typeof(m.currentFrame), "number");


reply via email to

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