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