gnash-commit
[Top][All Lists]
Advanced

[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;
        }
 




reply via email to

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