gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...
Date: Mon, 27 Nov 2006 02:12:59 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/11/27 02:12:59

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp as_object.h 

Log message:
                * server/sprite_instance.cpp (attachMovieClipInterface):
                  only activate the methods available for the target SWF
                  version. Added stubs for getURL, startDrag, stopDrag
                  and attachAudio.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1780&r2=1.1781
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.88&r2=1.89
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.22&r2=1.23

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1780
retrieving revision 1.1781
diff -u -b -r1.1780 -r1.1781
--- ChangeLog   27 Nov 2006 01:42:06 -0000      1.1780
+++ ChangeLog   27 Nov 2006 02:12:59 -0000      1.1781
@@ -1,5 +1,9 @@
 2006-11-26 Sandro Santilli <address@hidden>
 
+       * server/sprite_instance.cpp (attachMovieClipInterface):
+         only activate the methods available for the target SWF
+         version. Added stubs for getURL, startDrag, stopDrag
+         and attachAudio.
        * testsuite/misc-ming.all/ming_utils.c (get_dejagnu_actions):
          don't "visualize" expected successes.
        * server/vm/ASHandlers.cpp (ActionTypeOf):

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- server/sprite_instance.cpp  25 Nov 2006 16:30:04 -0000      1.88
+++ server/sprite_instance.cpp  27 Nov 2006 02:12:59 -0000      1.89
@@ -207,6 +207,14 @@
        return;
 }
 
+// attachAudio(id:Object) : Void
+static void sprite_attach_audio(const fn_call& fn)
+{
+       log_error("MovieClip.attachAudio() unimplemented -- "
+               "returning undefined");
+       fn.result->set_undefined();
+}
+
 //createEmptyMovieClip(name:String, depth:Number) : MovieClip
 static void sprite_create_empty_movieclip(const fn_call& fn)
 {
@@ -742,6 +750,28 @@
        fn.result->set_double(static_cast<double>(nextdepth));
 }
 
+// getURL(url:String, [window:String], [method:String]) : Void
+static void
+sprite_getURL(const fn_call& fn)
+{
+       log_error("FIXME: MovieClip.getURL() not implemented yet");
+}
+
+// startDrag([lockCenter:Boolean], [left:Number], [top:Number],
+//     [right:Number], [bottom:Number]) : Void`
+static void
+sprite_startDrag(const fn_call& fn)
+{
+       log_error("FIXME: MovieClip.startDrag() not implemented yet");
+}
+
+// stopDrag() : Void
+static void
+sprite_stopDrag(const fn_call& /*fn*/)
+{
+       log_error("FIXME: MovieClip.stopDrag() not implemented yet");
+}
+
 static void
 movieclip_ctor(const fn_call& fn)
 {
@@ -752,8 +782,10 @@
 static void
 attachMovieClipInterface(as_object& o)
 {
-       int target_version = VM::get().getSWFVersion();
+       int target_version = o.getVM().getSWFVersion();
 
+       // SWF5 or higher
+       o.set_member("attachMovie", &sprite_attach_movie);
        o.set_member("play", &sprite_play);
        o.set_member("stop", &sprite_stop);
        o.set_member("gotoAndStop", &sprite_goto_and_stop);
@@ -764,32 +796,26 @@
        o.set_member("getBytesTotal", &sprite_get_bytes_total);
        o.set_member("loadMovie", &sprite_load_movie);
        o.set_member("hitTest", &sprite_hit_test);
-       o.set_member("createTextField", &sprite_create_text_field);
        o.set_member("duplicateMovieClip", &sprite_duplicate_movieclip);
        o.set_member("swapDepths", &sprite_swap_depths);
-       o.set_member("getDepth", &sprite_get_depth);
-       o.set_member("createEmptyMovieClip", &sprite_create_empty_movieclip);
        o.set_member("removeMovieClip", &sprite_remove_movieclip);
+       o.set_member("startDrag", &sprite_startDrag);
+       o.set_member("stopDrag", &sprite_stopDrag);
+       o.set_member("getURL", &sprite_getURL);
+       if ( target_version  < 6 ) return;
 
-       if ( target_version  >= 5 )
-       {
-               o.set_member("attachMovie", &sprite_attach_movie);
-       }
+       // SWF6 or higher
+       o.set_member("attachAudio", &sprite_attach_audio);
+       o.set_member("createTextField", &sprite_create_text_field);
+       o.set_member("getDepth", &sprite_get_depth);
+       o.set_member("createEmptyMovieClip", &sprite_create_empty_movieclip);
+       if ( target_version  < 7 ) return;
 
-       // The following interfaces should only
-       // be available when target SWF version is equal
-       // or above 7
-       if ( target_version  >= 7 )
-       {
-               o.set_member("getNextHighestDepth",
-                       &sprite_getNextHighestDepth);
-       }
+       // SWF7 or higher
+       o.set_member("getNextHighestDepth", &sprite_getNextHighestDepth);
+       if ( target_version  < 8 ) return;
 
-       // @TODO
-       //o.set_member("startDrag", &sprite_start_drag);
-       //o.set_member("stopDrag", &sprite_stop_drag);
-       //o.set_member("getURL", &sprite_get_url);
-       // ... many more, see MovieClip class ...
+       // TODO: many more methods, see MovieClip class ...
 
 }
 

Index: server/as_object.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- server/as_object.h  27 Nov 2006 00:49:54 -0000      1.22
+++ server/as_object.h  27 Nov 2006 02:12:59 -0000      1.23
@@ -73,6 +73,8 @@
        ///
        Property* findProperty(const std::string& name);
 
+public:
+
        /// \brief
        /// Return a reference to the Virtual Machine that created
        /// this object. 
@@ -80,7 +82,6 @@
                return _vm;
        }
 
-public:
 
        /// Dump all properties using log_msg
        //




reply via email to

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