NS_MD_BEGIN

bool FloatingActionButton::init(const TapCallback &tapCallback, const TapCallback &longTapCallback) {
	if (!MaterialNode::init()) {
		return false;
	}

	auto l = construct<gesture::Listener>();
	l->setPressCallback([this] (stappler::gesture::Event ev, const stappler::gesture::Press &g) -> bool {
		if (ev == stappler::gesture::Event::Began) {
			return onPressBegin(g.location());
		} else if (ev == stappler::gesture::Event::Activated) {
			onLongPress();
			return true;
		} else if (ev == stappler::gesture::Event::Ended) {
			return onPressEnd();
		} else {
			onPressCancel();
			return true;
		}
	});
	l->setSwallowTouches(false);
	addComponent(l);

	_listener = l;
	_tapCallback = tapCallback;
	_longTapCallback = longTapCallback;

	_drawNode = construct<draw::PathNode>(48.0f * 2, 48.0f * 2, stappler::draw::Format::RGBA8888);
	_drawNode->setAnchorPoint(Vec2(0.5f, 0.5f));
	_drawNode->setPosition(Vec2(0.0f, 0.0f));
	_drawNode->setColor(Color::White);
	_drawNode->setScale(1.0f / stappler::screen::density());
	_drawNode->setAntialiased(true);
	addChild(_drawNode, 31);

	_icon = construct<IconSprite>();
	_icon->setAnchorPoint(Vec2(0.5f, 0.5f));
	_icon->setNormalized(false);
	addChild(_icon, 1);

	_label = construct<Label>(FontType::Caption);
	_label->setAnchorPoint(Vec2(0.5f, 0.5f));
	_label->setOpacity(222);
	addChild(_label, 2);

	setContentSize(Size(48.0f, 48.0));
	setShadowZIndex(5.0f);

	updateEnabled();

	return true;
}
示例#2
0
void TableView::onLongPress()
{
	do
	{
		CC_BREAK_IF(m_startFocusCellIndex < 0);
		auto _item = getCellByIndex(m_startFocusCellIndex);
		CC_BREAK_IF(!_item);
		_item->onLongPress();
		if (m_cellTouchCallfunc)
		{
			m_cellTouchCallfunc(this, _item, m_startFocusCellIndex, TouchType::LONG_PRESS);
		}

	} while (0);
}