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: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog server/button_character_instanc...
Date: Mon, 12 Mar 2007 19:45:52 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   07/03/12 19:45:52

Modified files:
        .              : ChangeLog 
        server         : button_character_instance.cpp 
                         button_character_instance.h character.h 
                         edit_text_character.h sprite_instance.cpp 
                         sprite_instance.h 

Log message:
        implement instance names for buttons and text fields

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2614&r2=1.2615
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.cpp?cvsroot=gnash&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.h?cvsroot=gnash&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.h?cvsroot=gnash&r1=1.56&r2=1.57
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.h?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.194&r2=1.195
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.76&r2=1.77

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.2614
retrieving revision 1.2615
diff -u -b -r1.2614 -r1.2615
--- ChangeLog   12 Mar 2007 18:51:58 -0000      1.2614
+++ ChangeLog   12 Mar 2007 19:45:51 -0000      1.2615
@@ -1,3 +1,16 @@
+2007-03-12 Udo Giacomozzi <address@hidden>
+
+       * server/character.h: introduce wantsInstanceName() to provide
+         a clean way to tell which objects need an instance name       
+       * server/button_character_instance.{h,cpp}: Give childs a name;
+         implement get_relative_target() for buttons; define that
+               buttons should get instance names       
+       * server/edit_text_character.h: text fields need instance names
+    too
+       * server/sprite_instance.{h,cpp}: implement and use 
+         wantInstancename()
+                                
+
 2007-03-12 Sandro Santilli <address@hidden>
 
        * server/as_prop_flags.h: add equality and inequality operators.

Index: server/button_character_instance.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/server/button_character_instance.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- server/button_character_instance.cpp        8 Mar 2007 18:40:18 -0000       
1.32
+++ server/button_character_instance.cpp        12 Mar 2007 19:45:51 -0000      
1.33
@@ -253,7 +253,15 @@
                m_record_character[r] = ch;
                ch->set_matrix(mat);
                ch->set_cxform(cx);
+               ch->set_parent(this);
+               
+               if (ch->get_name().empty() && ch->wantsInstanceName()) {
+                       std::string instance_name = 
getNextUnnamedInstanceName();
+                       ch->set_name(instance_name.c_str());
+               }
+
                ch->restart();
+               
        }
 
        // check up presence KeyPress events
@@ -822,6 +830,28 @@
        return 0.0;
 }
 
+character*
+button_character_instance::get_relative_target(const std::string& name)
+{
+       character* ch = get_relative_target_common(name);
+
+       if ( ! ch )
+       {
+               int size = m_record_character.size();
+               
+               // See if we have a match on the button records list
+               // TODO: Should we scan only currently visible characters 
+               // (get_active_characters) ?? 
+               for (int i=0; i<size; i++) {
+                       character* child = m_record_character[i].get();
+                       if (child->get_name() == name)
+                               return child;
+               }
+       }
+
+       return ch; // possibly NULL
+}
+
 } // end of namespace gnash
 
 

Index: server/button_character_instance.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/button_character_instance.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- server/button_character_instance.h  8 Mar 2007 18:40:18 -0000       1.15
+++ server/button_character_instance.h  12 Mar 2007 19:45:52 -0000      1.16
@@ -5,7 +5,7 @@
 
 // SWF buttons.  Mouse-sensitive update/display, actions, etc.
 
-/* $Id: button_character_instance.h,v 1.15 2007/03/08 18:40:18 udog Exp $ */
+/* $Id: button_character_instance.h,v 1.16 2007/03/12 19:45:52 udog Exp $ */
 
 #ifndef GNASH_BUTTON_CHARACTER_INSTANCE_H
 #define GNASH_BUTTON_CHARACTER_INSTANCE_H
@@ -101,6 +101,14 @@
        ///
        virtual character* get_topmost_mouse_entity(float x, float y);
 
+       virtual bool wantsInstanceName()
+       {
+               return true; // buttons can be referenced 
+       }
+       
+       /// Overridden to look in button records for a match
+       virtual character* get_relative_target(const std::string& name);
+
        virtual void    on_button_event(const event_id& event);
 
        void restart_characters(int condition);

Index: server/character.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/character.h,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- server/character.h  9 Mar 2007 10:18:49 -0000       1.56
+++ server/character.h  12 Mar 2007 19:45:52 -0000      1.57
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: character.h,v 1.56 2007/03/09 10:18:49 strk Exp $ */
+/* $Id: character.h,v 1.57 2007/03/12 19:45:52 udog Exp $ */
 
 #ifndef GNASH_CHARACTER_H
 #define GNASH_CHARACTER_H
@@ -230,6 +230,7 @@
        /// the character has no parent.
        character* get_parent() const
        {
+printf("[%p] m_parent.get() = %p\n", this, m_parent.get());
                        return m_parent.get();
        }
 
@@ -561,6 +562,13 @@
                return NULL;
        }
 
+       /// Returns true when the object (type) should get a instance name even 
+       /// if none is provided manually.
+       virtual bool wantsInstanceName()
+       {
+               return false; 
+       }
+
        /// @}
 
        /// \brief

Index: server/edit_text_character.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/edit_text_character.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- server/edit_text_character.h        28 Feb 2007 17:25:26 -0000      1.23
+++ server/edit_text_character.h        12 Mar 2007 19:45:52 -0000      1.24
@@ -52,6 +52,12 @@
 
        virtual bool can_handle_mouse_event() const { return true; }
        virtual character* get_topmost_mouse_entity(float x, float y);  
+       
+       virtual bool wantsInstanceName()
+       {
+               return true; // text fields can be referenced 
+       }       
+               
        virtual bool on_event(const event_id& id);      
 
        const char* get_variable_name() const

Index: server/sprite_instance.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -b -r1.194 -r1.195
--- server/sprite_instance.cpp  10 Mar 2007 13:32:32 -0000      1.194
+++ server/sprite_instance.cpp  12 Mar 2007 19:45:52 -0000      1.195
@@ -3110,7 +3110,7 @@
        {
                ch->set_name(name);
        }
-       else if ( ch->to_movie() )
+       else if ( ch->wantsInstanceName() )
        {
                // MovieClip instances *need* a name, to properly setup
                // an as_value for them (values are kept by "target path"

Index: server/sprite_instance.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -b -r1.76 -r1.77
--- server/sprite_instance.h    9 Mar 2007 10:18:49 -0000       1.76
+++ server/sprite_instance.h    12 Mar 2007 19:45:52 -0000      1.77
@@ -17,7 +17,7 @@
 // 
 //
 
-/* $Id: sprite_instance.h,v 1.76 2007/03/09 10:18:49 strk Exp $ */
+/* $Id: sprite_instance.h,v 1.77 2007/03/12 19:45:52 udog Exp $ */
 
 // Stateful live Sprite instance
 
@@ -228,6 +228,11 @@
        /// none.  Coords are in parent's frame.
        virtual character* get_topmost_mouse_entity(float x, float y);
 
+       virtual bool wantsInstanceName()
+       {
+               return true; // sprites can be referenced 
+       }
+
        virtual void    advance(float delta_time);
        //virtual void  advance_root(float delta_time);
        virtual void    advance_sprite(float delta_time);




reply via email to

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