void Catoms3DBlockCode::processLocalEvent(EventPtr pev) { MessagePtr message; stringstream info; //cout << "event #" << pev->id << ":" << pev->eventType << endl; switch (pev->eventType) { case EVENT_NI_RECEIVE: { message = (std::static_pointer_cast<NetworkInterfaceReceiveEvent>(pev))->message; // search message id in eventFuncMap multimap<int,eventFunc>::iterator im = eventFuncMap.find(message->type); if (im!=eventFuncMap.end()) { P2PNetworkInterface *recv_interface = message->destinationInterface; (*im).second(this,message,recv_interface); } else { OUTPUT << "ERROR: message Id #"<< message->type << " unknown!" << endl; } } break; case EVENT_ADD_NEIGHBOR: { OUTPUT << "ADD_NEIGHBOR" << endl; //startup(); } break; case EVENT_TAP: { int face = (std::static_pointer_cast<TapEvent>(pev))->tappedFace; onTap(face); } break; case EVENT_ROTATION3D_END: { #ifdef verbose info.str(""); info << "rec.: EVENT_MOTION_END"; scheduler->trace(info.str(),hostBlock->blockId); #endif Catoms3DBlock*c3d = (Catoms3DBlock*)hostBlock; c3d->setPositionAndOrientation(c3d->position,c3d->orientationCode); onMotionEnd(); } break; } }
bool GalleryScroll::init(const ImageCallback &cb, const std::vector<std::string> &vec, size_t selected) { if (!Node::init()) { return false; } _imageCallback = cb; _overscrollTop = construct<Overscroll>(Overscroll::Top); _overscrollTop->setColor(material::Color::Grey_500); addChild(_overscrollTop, maxOf<int>() - 2); _overscrollBottom = construct<Overscroll>(Overscroll::Bottom); _overscrollBottom->setColor(material::Color::Grey_500); addChild(_overscrollBottom, maxOf<int>() - 2); _overscrollLeft = construct<Overscroll>(Overscroll::Left); _overscrollLeft->setColor(material::Color::Grey_500); addChild(_overscrollLeft, maxOf<int>() - 2); _overscrollRight = construct<Overscroll>(Overscroll::Right); _overscrollRight->setColor(material::Color::Grey_500); addChild(_overscrollRight, maxOf<int>() - 2); auto l = Rc<gesture::Listener>::create(); l->setTouchFilter([this] (const Vec2 &loc, const gesture::Listener::DefaultTouchFilter &f) { return f(loc); }); l->setTapCallback([this] (gesture::Event ev, const gesture::Tap &t) { if (_actionCallback) { _actionCallback(t.count==1?Tap:DoubleTap); } return onTap(t.location(), t.count); }); l->setSwipeCallback([this] (gesture::Event ev, const gesture::Swipe &s) { auto density = screen::density(); if (ev == stappler::gesture::Event::Began) { if (_actionCallback) { _actionCallback(Swipe); } return onSwipeBegin(s.location()); } else if (ev == stappler::gesture::Event::Activated) { return onSwipe(cocos2d::Vec2(s.delta.x / density, s.delta.y / density)); } else if (ev == stappler::gesture::Event::Ended) { return onSwipeEnd(cocos2d::Vec2(s.velocity.x / density, s.velocity.y / density)); } return true; }); l->setPinchCallback([this] (stappler::gesture::Event ev, const stappler::gesture::Pinch &p) { if (ev == stappler::gesture::Event::Began) { if (_actionCallback) { _actionCallback(Pinch); } _hasPinch = true; } else if (ev == stappler::gesture::Event::Activated) { _hasPinch = false; return onPinch(p.location(), p.scale, p.velocity, false); } else if (ev == stappler::gesture::Event::Ended || ev == stappler::gesture::Event::Cancelled) { _hasPinch = false; return onPinch(p.location(), p.scale, p.velocity, true); } return true; }); addComponent(l); _gestureListener = l; _images = vec; reset(selected); return true; }