Browse Source

Events will not be passed to forms / containers / controls that are not visible.
Controls no longer perform useless "am I enabled?" check when handling events.
Fixes the test app so that the virtual gamepad is disabled when not in use.

Adam Blake 13 years ago
parent
commit
95732ac4f4

+ 0 - 3
gameplay/src/Button.cpp

@@ -41,9 +41,6 @@ Button* Button::create(Theme::Style* style, Properties* properties)
 
 
 bool Button::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 bool Button::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {
 {
-    if (!isEnabled())
-        return false;
-
     switch (evt)
     switch (evt)
     {
     {
     case Touch::TOUCH_PRESS:
     case Touch::TOUCH_PRESS:

+ 0 - 5
gameplay/src/CheckBox.cpp

@@ -76,11 +76,6 @@ void CheckBox::addListener(Control::Listener* listener, int eventFlags)
 
 
 bool CheckBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 bool CheckBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {
 {
-    if (!isEnabled())
-    {
-        return false;
-    }
-
     switch (evt)
     switch (evt)
     {
     {
     case Touch::TOUCH_RELEASE:
     case Touch::TOUCH_RELEASE:

+ 4 - 4
gameplay/src/Container.cpp

@@ -608,7 +608,7 @@ bool Container::keyEvent(Keyboard::KeyEvent evt, int key)
     {
     {
         Control* control = *it;
         Control* control = *it;
         GP_ASSERT(control);
         GP_ASSERT(control);
-        if (!control->isEnabled())
+        if (!control->isEnabled() || !control->isVisible())
         {
         {
             continue;
             continue;
         }
         }
@@ -1024,7 +1024,7 @@ bool Container::mouseEventScroll(Mouse::MouseEvent evt, int x, int y, int wheelD
 
 
 bool Container::pointerEvent(bool mouse, char evt, int x, int y, int data)
 bool Container::pointerEvent(bool mouse, char evt, int x, int y, int data)
 {
 {
-    if (!isEnabled())
+    if (!isEnabled() || !isVisible())
     {
     {
         return false;
         return false;
     }
     }
@@ -1051,7 +1051,7 @@ bool Container::pointerEvent(bool mouse, char evt, int x, int y, int data)
     {
     {
         Control* control = *it;
         Control* control = *it;
         GP_ASSERT(control);
         GP_ASSERT(control);
-        if (!control->isEnabled())
+        if (!control->isEnabled() || !control->isVisible())
         {
         {
             continue;
             continue;
         }
         }
@@ -1085,7 +1085,7 @@ bool Container::pointerEvent(bool mouse, char evt, int x, int y, int data)
         }
         }
     }
     }
 
 
-    if (!isEnabled())
+    if (!isEnabled() || !isVisible())
     {
     {
         release();
         release();
         return (_consumeInputEvents | eventConsumed);
         return (_consumeInputEvents | eventConsumed);

+ 0 - 8
gameplay/src/Control.cpp

@@ -760,9 +760,6 @@ void Control::addSpecificListener(Control::Listener* listener, Listener::EventTy
 
 
 bool Control::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 bool Control::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {
 {
-    if (!isEnabled())
-        return false;
-
     switch (evt)
     switch (evt)
     {
     {
     case Touch::TOUCH_PRESS:
     case Touch::TOUCH_PRESS:
@@ -816,11 +813,6 @@ bool Control::keyEvent(Keyboard::KeyEvent evt, int key)
 
 
 bool Control::mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheelDelta)
 bool Control::mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheelDelta)
 {
 {
-    if (!isEnabled())
-    {
-        return false;
-    }
-
     // By default, mouse events are either interpreted as touch events or ignored.
     // By default, mouse events are either interpreted as touch events or ignored.
     switch (evt)
     switch (evt)
     {
     {

+ 3 - 3
gameplay/src/Form.cpp

@@ -590,7 +590,7 @@ bool Form::touchEventInternal(Touch::TouchEvent evt, int x, int y, unsigned int
         Form* form = __forms[i];
         Form* form = __forms[i];
         GP_ASSERT(form);
         GP_ASSERT(form);
 
 
-        if (form->isEnabled())
+        if (form->isEnabled() && form->isVisible())
         {
         {
             if (form->_node)
             if (form->_node)
             {
             {
@@ -636,7 +636,7 @@ bool Form::keyEventInternal(Keyboard::KeyEvent evt, int key)
     {
     {
         Form* form = __forms[i];
         Form* form = __forms[i];
         GP_ASSERT(form);
         GP_ASSERT(form);
-        if (form->isEnabled())
+        if (form->isEnabled() && form->isVisible())
         {
         {
             if (form->keyEvent(evt, key))
             if (form->keyEvent(evt, key))
                 return true;
                 return true;
@@ -654,7 +654,7 @@ bool Form::mouseEventInternal(Mouse::MouseEvent evt, int x, int y, int wheelDelt
         Form* form = __forms[i];
         Form* form = __forms[i];
         GP_ASSERT(form);
         GP_ASSERT(form);
 
 
-        if (form->isEnabled())
+        if (form->isEnabled() && form->isVisible())
         {
         {
             if (form->_node)
             if (form->_node)
             {
             {

+ 5 - 2
gameplay/src/Gamepad.cpp

@@ -225,9 +225,12 @@ const char* Gamepad::getProductString() const
 
 
 void Gamepad::update(float elapsedTime)
 void Gamepad::update(float elapsedTime)
 {
 {
-    if (_form && _form->isEnabled())
+    if (_form)
     {
     {
-        _form->update(elapsedTime);
+        if (_form->isEnabled())
+        {
+            _form->update(elapsedTime);
+        }
     }
     }
     else
     else
     {
     {

+ 0 - 5
gameplay/src/RadioButton.cpp

@@ -91,11 +91,6 @@ void RadioButton::addListener(Control::Listener* listener, int eventFlags)
 
 
 bool RadioButton::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 bool RadioButton::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {
 {
-    if (!isEnabled())
-    {
-        return false;
-    }
-
     switch (evt)
     switch (evt)
     {
     {
     case Touch::TOUCH_RELEASE:
     case Touch::TOUCH_RELEASE:

+ 0 - 10
gameplay/src/Slider.cpp

@@ -105,11 +105,6 @@ void Slider::addListener(Control::Listener* listener, int eventFlags)
 
 
 bool Slider::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 bool Slider::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {
 {
-    if (!isEnabled())
-    {
-        return false;
-    }
-
     switch (evt)
     switch (evt)
     {
     {
     case Touch::TOUCH_PRESS:
     case Touch::TOUCH_PRESS:
@@ -213,11 +208,6 @@ bool Slider::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contac
 
 
 bool Slider::mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheelDelta)
 bool Slider::mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheelDelta)
 {
 {
-    if (!isEnabled())
-    {
-        return false;
-    }
-
     switch (evt)
     switch (evt)
     {
     {
         case Mouse::MOUSE_PRESS_LEFT_BUTTON:
         case Mouse::MOUSE_PRESS_LEFT_BUTTON:

+ 0 - 5
gameplay/src/TextBox.cpp

@@ -49,11 +49,6 @@ void TextBox::addListener(Control::Listener* listener, int eventFlags)
 
 
 bool TextBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 bool TextBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {   
 {   
-    if (!isEnabled())
-    {
-        return false;
-    }
-
     switch (evt)
     switch (evt)
     {
     {
     case Touch::TOUCH_PRESS: 
     case Touch::TOUCH_PRESS: