Merge pull request #4103 from luisparravicini/issue-2882

[ci skip]added | operator for Control::EventType
This commit is contained in:
minggo 2013-11-07 18:59:33 -08:00
commit 109adaf337
4 changed files with 27 additions and 1 deletions

View File

@ -326,4 +326,9 @@ bool Control::hasVisibleParents() const
}
return true;
}
Control::EventType operator|(Control::EventType a, Control::EventType b) {
return static_cast<Control::EventType>(static_cast<int>(a) | static_cast<int>(b));
}
NS_CC_EXT_END

View File

@ -262,6 +262,8 @@ protected:
CC_SYNTHESIZE_READONLY(State, _state, State);
};
Control::EventType operator|(Control::EventType a, Control::EventType b);
// end of GUI group
/// @}
/// @}

View File

@ -110,6 +110,7 @@ ControlButton *ControlButtonTest_HelloVariableSize::standardButtonWithTitle(cons
ControlButtonTest_Event::ControlButtonTest_Event()
: _displayValueLabel(NULL)
, _displayBitmaskLabel(NULL)
{
}
@ -117,6 +118,7 @@ ControlButtonTest_Event::ControlButtonTest_Event()
ControlButtonTest_Event::~ControlButtonTest_Event()
{
CC_SAFE_RELEASE_NULL(_displayValueLabel);
CC_SAFE_RELEASE_NULL(_displayBitmaskLabel);
}
bool ControlButtonTest_Event::init()
@ -131,6 +133,12 @@ bool ControlButtonTest_Event::init()
_displayValueLabel->setPosition(Point(screenSize.width / 2.0f, screenSize.height / 2.0f));
addChild(_displayValueLabel, 1);
setDisplayBitmaskLabel(LabelTTF::create("No bitmask event", "Marker Felt", 24));
_displayBitmaskLabel->setAnchorPoint(Point(0.5f, -1));
Point bitmaskLabelPos = _displayValueLabel->getPosition() - Point(0, _displayBitmaskLabel->getBoundingBox().size.height);
_displayBitmaskLabel->setPosition(bitmaskLabelPos);
addChild(_displayBitmaskLabel, 1);
// Add the button
auto backgroundButton = Scale9Sprite::create("extensions/button.png");
auto backgroundHighlightedButton = Scale9Sprite::create("extensions/buttonHighlighted.png");
@ -162,11 +170,20 @@ bool ControlButtonTest_Event::init()
controlButton->addTargetWithActionForControlEvents(this, cccontrol_selector(ControlButtonTest_Event::touchUpInsideAction), Control::EventType::TOUCH_UP_INSIDE);
controlButton->addTargetWithActionForControlEvents(this, cccontrol_selector(ControlButtonTest_Event::touchUpOutsideAction), Control::EventType::TOUCH_UP_OUTSIDE);
controlButton->addTargetWithActionForControlEvents(this, cccontrol_selector(ControlButtonTest_Event::touchCancelAction), Control::EventType::TOUCH_CANCEL);
// test for issue 2882
controlButton->addTargetWithActionForControlEvents(this, cccontrol_selector(ControlButtonTest_Event::touchBitmaskAction),
Control::EventType::TOUCH_DOWN | Control::EventType::DRAG_INSIDE | Control::EventType::DRAG_OUTSIDE | Control::EventType::DRAG_ENTER | Control::EventType::DRAG_EXIT | Control::EventType::TOUCH_UP_INSIDE | Control::EventType::TOUCH_UP_OUTSIDE | Control::EventType::TOUCH_CANCEL | Control::EventType::VALUE_CHANGED);
return true;
}
return false;
}
void ControlButtonTest_Event::touchBitmaskAction(Object *senderz, Control::EventType controlEvent)
{
_displayBitmaskLabel->setString(String::createWithFormat("using bitmask (%d)", controlEvent)->getCString());
}
void ControlButtonTest_Event::touchDownAction(Object *senderz, Control::EventType controlEvent)
{
_displayValueLabel->setString(String::createWithFormat("Touch Down")->getCString());

View File

@ -54,8 +54,10 @@ public:
void touchUpInsideAction(Object *sender, Control::EventType controlEvent);
void touchUpOutsideAction(Object *sender, Control::EventType controlEvent);
void touchCancelAction(Object *sender, Control::EventType controlEvent);
void touchBitmaskAction(Object *sender, Control::EventType controlEvent);
protected:
CC_SYNTHESIZE_RETAIN(LabelTTF *, _displayValueLabel, DisplayValueLabel)
CC_SYNTHESIZE_RETAIN(LabelTTF *, _displayBitmaskLabel, DisplayBitmaskLabel)
CONTROL_SCENE_CREATE_FUNC(ControlButtonTest_Event)
};