[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/character.h server/butto...
From: |
Udo Giacomozzi |
Subject: |
[Gnash-commit] gnash ChangeLog server/character.h server/butto... |
Date: |
Thu, 08 Mar 2007 18:40:18 +0000 |
CVSROOT: /cvsroot/gnash
Module name: gnash
Changes by: Udo Giacomozzi <udog> 07/03/08 18:40:18
Modified files:
. : ChangeLog
server : character.h button_character_instance.h
button_character_instance.cpp
Log message:
implement 'enabled' property for buttons
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2582&r2=1.2583
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.h?cvsroot=gnash&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.h?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.cpp?cvsroot=gnash&r1=1.31&r2=1.32
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.2582
retrieving revision 1.2583
diff -u -b -r1.2582 -r1.2583
--- ChangeLog 8 Mar 2007 17:58:33 -0000 1.2582
+++ ChangeLog 8 Mar 2007 18:40:18 -0000 1.2583
@@ -1,3 +1,9 @@
+2007-03-07 Udo Giacomozzi <address@hidden>
+
+ * server/character.h: drop m_enabled since nobody uses it
+ * server/button_character_instance.{h,cpp}: add "enabled" property
+ and receive mouse events only when enabled
+
2007-03-07 Bastiaan Jacques <address@hidden>
* gui/gtk.cpp: Fix GTK/AGG redrawing upon expose events by switching
Index: server/character.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/character.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- server/character.h 8 Mar 2007 11:35:51 -0000 1.54
+++ server/character.h 8 Mar 2007 18:40:18 -0000 1.55
@@ -18,7 +18,7 @@
//
//
-/* $Id: character.h,v 1.54 2007/03/08 11:35:51 strk Exp $ */
+/* $Id: character.h,v 1.55 2007/03/08 18:40:18 udog Exp $ */
#ifndef GNASH_CHARACTER_H
#define GNASH_CHARACTER_H
@@ -73,7 +73,6 @@
matrix m_matrix;
float m_ratio;
uint16_t m_clip_depth;
- bool m_enabled;
Events _event_handlers;
void (*m_display_callback)(void*);
void* m_display_callback_user_ptr;
@@ -191,7 +190,6 @@
m_depth(-1),
m_ratio(0.0f),
m_clip_depth(0),
- m_enabled(true),
m_display_callback(NULL),
m_display_callback_user_ptr(NULL),
m_visible(true),
Index: server/button_character_instance.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/button_character_instance.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/button_character_instance.h 7 Mar 2007 18:42:23 -0000 1.14
+++ server/button_character_instance.h 8 Mar 2007 18:40:18 -0000 1.15
@@ -5,7 +5,7 @@
// SWF buttons. Mouse-sensitive update/display, actions, etc.
-/* $Id: button_character_instance.h,v 1.14 2007/03/07 18:42:23 udog Exp $ */
+/* $Id: button_character_instance.h,v 1.15 2007/03/08 18:40:18 udog Exp $ */
#ifndef GNASH_BUTTON_CHARACTER_INSTANCE_H
#define GNASH_BUTTON_CHARACTER_INSTANCE_H
@@ -119,6 +119,14 @@
virtual float get_height() const;
+ static void enabled_getset(const fn_call& fn);
+
+ bool get_enabled();
+ void set_enabled(bool value);
+
+private:
+ bool m_enabled;
+
};
} // end namespace gnash
Index: server/button_character_instance.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/server/button_character_instance.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- server/button_character_instance.cpp 7 Mar 2007 18:42:23 -0000
1.31
+++ server/button_character_instance.cpp 8 Mar 2007 18:40:18 -0000
1.32
@@ -19,6 +19,8 @@
#include "movie_root.h"
#include "VM.h"
#include "builtin_function.h"
+#include "fn_call.h" // for shared ActionScript getter-setters
+#include "GnashException.h" // for shared ActionScript getter-setters
/** \page buttons Buttons and mouse behaviour
@@ -215,6 +217,11 @@
gettersetter = new builtin_function(&character::onload_getset, NULL);
o.init_property("onLoad", *gettersetter, *gettersetter);
+ //--
+
+ gettersetter = new
builtin_function(&button_character_instance::enabled_getset, NULL);
+ o.init_property("enabled", *gettersetter, *gettersetter);
+
}
button_character_instance::button_character_instance(
@@ -225,7 +232,8 @@
m_def(def),
m_last_mouse_flags(IDLE),
m_mouse_flags(IDLE),
- m_mouse_state(UP)
+ m_mouse_state(UP),
+ m_enabled(true)
{
assert(m_def);
@@ -265,6 +273,46 @@
_vm.getRoot().remove_keypress_listener(this);
}
+
+bool
+button_character_instance::get_enabled()
+{
+ return m_enabled;
+}
+
+void
+button_character_instance::set_enabled(bool value)
+{
+ if (value == m_enabled) return;
+ m_enabled = value;
+
+ // NOTE: no visual change
+}
+
+
+void
+button_character_instance::enabled_getset(const fn_call& fn)
+{
+ button_character_instance* ptr =
+ dynamic_cast<button_character_instance*>(fn.this_ptr);
+
+ if ( ! ptr )
+ {
+ throw ActionException("enabled_getset() called against
non-character instance");
+ }
+
+ if ( fn.nargs == 0 ) // getter
+ {
+ fn.result->set_bool(ptr->get_enabled());
+ }
+ else // setter
+ {
+ ptr->set_enabled(fn.arg(0).to_bool());
+ }
+}
+
+
+
// called from keypress listener only
// (the above line is wrong, it's also called with onConstruct, for instance)
bool
@@ -417,7 +465,7 @@
// Return the topmost entity that the given point covers. NULL if none.
// I.e. check against ourself.
{
- if (get_visible() == false) {
+ if ((get_visible() == false) || (get_enabled() == false)) {
return false;
}