gnash-commit
[Top][All Lists]
Advanced

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

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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/MovieClipLoader.cpp serv...
Date: Sat, 01 Jul 2006 20:44:10 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/07/01 20:44:10

Modified files:
        .              : ChangeLog 
        server         : MovieClipLoader.cpp action.cpp 
                         as_environment.cpp as_environment.h button.cpp 
                         button.h character.h character_def.cpp 
                         character_def.h edit_text_character.cpp 
                         edit_text_character.h 
                         edit_text_character_def.cpp 
                         edit_text_character_def.h generic_character.h 
                         sprite_definition.cpp sprite_definition.h 
                         sprite_instance.cpp sprite_instance.h 

Log message:
                Characters's parents are now characters (not sprite_instances).
                This is required to have child characters for buttons and
                edit_text and other characters (see Vitaly's patch for bug 
#16969
                for reference).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.456&r2=1.457
http://cvs.savannah.gnu.org/viewcvs/gnash/server/MovieClipLoader.cpp?cvsroot=gnash&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/gnash/server/action.cpp?cvsroot=gnash&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.h?cvsroot=gnash&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button.cpp?cvsroot=gnash&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button.h?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.h?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character_def.cpp?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character_def.h?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.h?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character_def.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character_def.h?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/generic_character.h?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_definition.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_definition.h?cvsroot=gnash&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.9&r2=1.10

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.456
retrieving revision 1.457
diff -u -b -r1.456 -r1.457
--- ChangeLog   1 Jul 2006 13:25:33 -0000       1.456
+++ ChangeLog   1 Jul 2006 20:44:09 -0000       1.457
@@ -1,5 +1,21 @@
 2006-07-01 Vitaly Alexeev <address@hidden>
 
+       * server/MovieClipLoader.cpp, server/action.cpp,
+       server/as_environment.cpp, server/as_environment.h,
+       server/button.cpp, server/button.h, server/character.h,
+       server/character_def.cpp, server/character_def.h,
+       server/edit_text_character.cpp, server/edit_text_character.h,
+       server/edit_text_character_def.cpp, server/edit_text_character_def.h,
+       server/generic_character.h, server/sprite_definition.cpp,
+       server/sprite_definition.h, server/sprite_instance.cpp,
+       server/sprite_instance.h:
+       Characters's parents are now characters (not sprite_instances).
+       This is required to have child characters for buttons and
+       edit_text and other characters (see Vitaly's patch for bug #16969
+       for reference).
+
+2006-07-01 Vitaly Alexeev <address@hidden>
+
        * server\button.cpp:  fixed bug #16969
 
 2006-07-01 Sandro Santilli <address@hidden>

Index: server/MovieClipLoader.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/MovieClipLoader.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- server/MovieClipLoader.cpp  28 Jun 2006 23:27:44 -0000      1.24
+++ server/MovieClipLoader.cpp  1 Jul 2006 20:44:10 -0000       1.25
@@ -224,6 +224,7 @@
        assert(ptr);
   
        tu_string tu_url = fn.arg(0).to_string(); 
+#if 0
        as_object *target_object = fn.arg(1).to_object();
        if ( ! target_object )
        {
@@ -247,6 +248,19 @@
        // Get a pointer to target's sprite parent (for URL resolution)
        sprite_instance* parent = target->get_parent();
        assert(parent);
+#endif
+
+       sprite_instance* target = fn.env->find_target(fn.arg(1));
+       if ( ! target )
+       {
+               log_error("Could not find target %s", fn.arg(1).to_string());
+               fn.result->set_bool(false);
+               return;
+       }
+
+       // Get a pointer to target's sprite parent (for URL resolution)
+       character* parent = target->get_parent();
+       assert(parent);
 
        //
        // Extract root movie URL 

Index: server/action.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/action.cpp,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- server/action.cpp   29 Jun 2006 23:02:39 -0000      1.91
+++ server/action.cpp   1 Jul 2006 20:44:10 -0000       1.92
@@ -221,13 +221,14 @@
                float ratio = tar->get_ratio();
                uint16_t clip_depth = tar->get_clip_depth();
 
-               sprite_instance* parent = tar->get_parent();
-               movie* new_movie = extern_movie->get_root_movie();
+               character* parent = tar->get_parent();
+               sprite_instance* newsprite = extern_movie->get_root_movie();
 
                assert(parent != NULL);
+               assert(newsprite);
 
-               assert(dynamic_cast<sprite_instance*>(new_movie));
-               sprite_instance* newsprite = 
static_cast<sprite_instance*>(new_movie);
+               //assert(dynamic_cast<sprite_instance*>(new_movie));
+               //sprite_instance* newsprite = 
static_cast<sprite_instance*>(new_movie);
                newsprite->set_parent(parent);
        
            parent->replace_display_object(

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/as_environment.cpp   1 Jul 2006 10:39:16 -0000       1.8
+++ server/as_environment.cpp   1 Jul 2006 20:44:10 -0000       1.9
@@ -380,9 +380,6 @@
     return true;
 }
 
-// Find the sprite/movie represented by the given value. The
-// value might be a reference to the object itself, or a
-// string giving a relative path name to the object.
 sprite_instance*
 as_environment::find_target(const as_value& val) const
 {

Index: server/as_environment.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- server/as_environment.h     1 Jul 2006 10:39:16 -0000       1.10
+++ server/as_environment.h     1 Jul 2006 20:44:10 -0000       1.11
@@ -216,7 +216,14 @@
        /// not dangerous.
        as_value* local_register_ptr(unsigned int reg);
 
+       /// Find the sprite/movie referenced by the given path.
        sprite_instance*        find_target(const tu_string& path) const;
+
+       /// \brief
+       /// Find the sprite/movie represented by the given value.
+       //
+       /// The value might be a reference to the object itself, or a
+       /// string giving a relative path name to the object.
        sprite_instance*        find_target(const as_value& val) const;
 
        /// Dump content of the stack using the log_msg function

Index: server/button.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/button.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- server/button.cpp   1 Jul 2006 13:20:43 -0000       1.17
+++ server/button.cpp   1 Jul 2006 20:44:10 -0000       1.18
@@ -292,7 +292,7 @@
        e_mouse_state m_mouse_state;
 
        button_character_instance(button_character_definition* def,
-                       sprite_instance* parent, int id)
+                       character* parent, int id)
                :
                character(parent, id),
                m_def(def),
@@ -322,7 +322,8 @@
                        const cxform&   cx = 
m_def->m_button_records[r].m_button_cxform;
 
                        // Vitaly: hack, FIXME
-                       smart_ptr<character> ch = 
bdef->m_character_def->create_character_instance((sprite_instance*)this, id);
+                       //smart_ptr<character> ch = 
bdef->m_character_def->create_character_instance((sprite_instance*)this, id);
+                       smart_ptr<character> ch = 
bdef->m_character_def->create_character_instance(this, id);
                        //smart_ptr<character> ch = 
bdef->m_character_def->create_character_instance(parent /*must be this*/, id);
                        m_record_character[r] = ch;
                        ch->set_matrix(mat);
@@ -998,7 +999,7 @@
 
 character*
 button_character_definition::create_character_instance(
-               sprite_instance* parent, int id)
+               character* parent, int id)
 {
        character* ch = new button_character_instance(this, parent, id);
        return ch;

Index: server/button.h
===================================================================
RCS file: /sources/gnash/gnash/server/button.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/button.h     28 Jun 2006 23:27:44 -0000      1.7
+++ server/button.h     1 Jul 2006 20:44:10 -0000       1.8
@@ -143,7 +143,7 @@
        virtual ~button_character_definition();
 
        /// Create a mutable instance of our definition.
-       character* create_character_instance(sprite_instance* parent, int id);
+       character* create_character_instance(character* parent, int id);
 
        void    read(stream* in, int tag_type, movie_definition* m);
 };

Index: server/character.h
===================================================================
RCS file: /sources/gnash/gnash/server/character.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/character.h  30 Jun 2006 10:49:56 -0000      1.6
+++ server/character.h  1 Jul 2006 20:44:10 -0000       1.7
@@ -85,14 +85,14 @@
 
        bool m_visible;
 
-       sprite_instance* m_parent;
+       character* m_parent;
 
        /// Implement mouse-dragging for this movie.
        void do_mouse_drag();
 
 public:
 
-    character(sprite_instance* parent, int id)
+    character(character* parent, int id)
        :
        m_id(id),
        m_depth(-1),
@@ -111,9 +111,9 @@
 
     // Accessors for basic display info.
     int        get_id() const { return m_id; }
-    sprite_instance* get_parent() const { return m_parent; }
+    character* get_parent() const { return m_parent; }
     // for extern movie
-    void set_parent(sprite_instance* parent) { m_parent = parent; }
+    void set_parent(character* parent) { m_parent = parent; }
     int        get_depth() const { return m_depth; }
     void       set_depth(int d) { m_depth = d; }
     const matrix&      get_matrix() const { return m_matrix; }

Index: server/character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/character_def.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/character_def.cpp    28 Jun 2006 23:27:44 -0000      1.2
+++ server/character_def.cpp    1 Jul 2006 20:44:10 -0000       1.3
@@ -47,7 +47,7 @@
 {
 
 character*
-character_def::create_character_instance(sprite_instance* parent, int id)
+character_def::create_character_instance(character* parent, int id)
 {
        return new generic_character(this, parent, id);
 }

Index: server/character_def.h
===================================================================
RCS file: /sources/gnash/gnash/server/character_def.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/character_def.h      29 Jun 2006 19:15:00 -0000      1.6
+++ server/character_def.h      1 Jul 2006 20:44:10 -0000       1.7
@@ -49,7 +49,7 @@
 namespace gnash {
        class character;
        struct cache_options;
-       class sprite_instance;
+       //class sprite_instance;
 };
 
 namespace gnash {
@@ -97,7 +97,7 @@
        //
        /// default is to make a generic_character
        ///
-       virtual character* create_character_instance(sprite_instance* parent,
+       virtual character* create_character_instance(character* parent,
                        int id);
        
        // From resource interface.

Index: server/edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/edit_text_character.cpp      28 Jun 2006 23:27:44 -0000      1.4
+++ server/edit_text_character.cpp      1 Jul 2006 20:44:10 -0000       1.5
@@ -15,7 +15,7 @@
 
 namespace gnash {
 
-edit_text_character::edit_text_character(sprite_instance* parent,
+edit_text_character::edit_text_character(character* parent,
                edit_text_character_def* def, int id)
        :
        character(parent, id),

Index: server/edit_text_character.h
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/edit_text_character.h        28 Jun 2006 23:27:44 -0000      1.4
+++ server/edit_text_character.h        1 Jul 2006 20:44:10 -0000       1.5
@@ -50,7 +50,7 @@
 namespace gnash {
        struct text_character_def; 
        struct text_glyph_record; 
-       class sprite_instance;
+       //class sprite_instance;
 }
 
 namespace gnash {
@@ -62,7 +62,7 @@
 public:
 
        edit_text_character(
-                       sprite_instance* parent,
+                       character* parent,
                        edit_text_character_def* def,
                        int id);
 

Index: server/edit_text_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character_def.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/edit_text_character_def.cpp  28 Jun 2006 23:27:44 -0000      1.6
+++ server/edit_text_character_def.cpp  1 Jul 2006 20:44:10 -0000       1.7
@@ -112,7 +112,7 @@
 }
 
 character*
-edit_text_character_def::create_character_instance(sprite_instance* parent,
+edit_text_character_def::create_character_instance(character* parent,
                int id)
 {
        // Resolve the font, if possible

Index: server/edit_text_character_def.h
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character_def.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/edit_text_character_def.h    28 Jun 2006 23:27:44 -0000      1.6
+++ server/edit_text_character_def.h    1 Jul 2006 20:44:10 -0000       1.7
@@ -113,7 +113,7 @@
        float height() const { return m_rect.height(); }
 
        /// Create an instance of this character
-       character* create_character_instance(sprite_instance* parent, int id);
+       character* create_character_instance(character* parent, int id);
 
        /// Initialize from SWF input stream (tag 37)
        void read(stream* in, int tag_type, movie_definition* m);

Index: server/generic_character.h
===================================================================
RCS file: /sources/gnash/gnash/server/generic_character.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/generic_character.h  28 Jun 2006 23:27:44 -0000      1.4
+++ server/generic_character.h  1 Jul 2006 20:44:10 -0000       1.5
@@ -62,7 +62,7 @@
 
 public:
 
-    generic_character(character_def* def, sprite_instance* parent, int id)
+    generic_character(character_def* def, character* parent, int id)
        :
        character(parent, id),
        m_def(def)

Index: server/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_definition.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/sprite_definition.cpp        28 Jun 2006 23:27:44 -0000      1.7
+++ server/sprite_definition.cpp        1 Jul 2006 20:44:10 -0000       1.8
@@ -59,7 +59,7 @@
 namespace gnash {
 
 character*
-sprite_definition::create_character_instance(sprite_instance* parent,
+sprite_definition::create_character_instance(character* parent,
                int id)
 {
        sprite_instance* si = new sprite_instance(this,

Index: server/sprite_definition.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_definition.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/sprite_definition.h  28 Jun 2006 23:27:44 -0000      1.9
+++ server/sprite_definition.h  1 Jul 2006 20:44:10 -0000       1.10
@@ -239,7 +239,7 @@
        //
        // overloads from character_def
        virtual character* create_character_instance(
-               sprite_instance* parent, int id);
+               character* parent, int id);
 
 
        virtual void    add_execute_tag(execute_tag* c)

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/sprite_instance.cpp  1 Jul 2006 10:00:29 -0000       1.16
+++ server/sprite_instance.cpp  1 Jul 2006 20:44:10 -0000       1.17
@@ -364,7 +364,7 @@
 
 sprite_instance::sprite_instance(
                movie_definition* def, movie_root* r,
-               sprite_instance* parent, int id)
+               character* parent, int id)
        :
        character(parent, id),
        m_mouse_state(UP),
@@ -864,7 +864,10 @@
        }
        else if (name == "..")
        {
-           return get_parent();
+               character* parent = get_parent();
+               assert(dynamic_cast<sprite_instance*>(parent));
+               return static_cast<sprite_instance*>(parent);
+           //return get_parent();
        }
        else if (name == "_level0"
             || name == "_root")
@@ -1676,33 +1679,6 @@
                return ch; // might be NULL
        }
 
-#if 0 // rewritten to use the visitor pattern
-    int i, n = m_display_list.get_character_count();
-               
-    for (i = n - 1; i >= 0; i--)
-       {
-           character* ch = m_display_list.get_character(i);
-                       
-           if (ch != NULL && ch->get_visible())
-               {
-                   movie*      te = ch->get_topmost_mouse_entity(p.m_x, p.m_y);
-                   if (te)
-                       {
-                           // The containing entity that 1) is closest to root 
and 2) can
-                           // handle mouse events takes precedence.
-                           if (can_handle_mouse_event()) {
-                               return this;
-                           } else {
-                               return te;
-                           }
-                       }
-               }
-       }
-
-    return NULL;
-
-#endif // 0
-
 }
 
 bool

Index: server/sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/sprite_instance.h    28 Jun 2006 23:27:44 -0000      1.9
+++ server/sprite_instance.h    1 Jul 2006 20:44:10 -0000       1.10
@@ -68,7 +68,7 @@
 public:
 
        sprite_instance(movie_definition* def,
-               movie_root* r, sprite_instance* parent, int id);
+               movie_root* r, character* parent, int id);
 
        virtual ~sprite_instance();
 




reply via email to

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