[Top][All Lists]
[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);