[Top][All Lists]
[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();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/MovieClipLoader.cpp serv...,
Sandro Santilli <=