void AGOSEngine_Feeble::animateSprites() { VgaSprite *vsp; VgaPointersEntry *vpe; if (_paletteFlag == 2) _paletteFlag = 1; if (_scrollCount) { scrollEvent(); } if (getBitFlag(84)) { animateSpritesByY(); return; } vsp = _vgaSprites; while (vsp->id) { vsp->windowNum &= ~0x8000; vpe = &_vgaBufferPointers[vsp->zoneNum]; _curVgaFile1 = vpe->vgaFile1; _curVgaFile2 = vpe->vgaFile2; _curSfxFile = vpe->sfxFile; _windowNum = vsp->windowNum; _vgaCurSpriteId = vsp->id; _vgaCurSpritePriority = vsp->priority; drawImage_init(vsp->image, vsp->palette, vsp->x, vsp->y, vsp->flags); vsp++; } _displayFlag++; }
void VScrollBarSpriteBase::setPosision(double posision){ if (m_isInCallBack) return; if (posision<0) posision=0; else if (posision>1) posision=1; if (m_posision!=posision){ m_posision=posision; scrollEvent(); changed(); } }
void GestureController::DragGesture::handleDrag(const GdkEvent* event, double x, double y) { ASSERT(m_inDrag); GUniquePtr<GdkEvent> scrollEvent(gdk_event_new(GDK_SCROLL)); scrollEvent->scroll.time = event->touch.time; scrollEvent->scroll.x = m_start.x(); scrollEvent->scroll.y = m_start.y(); scrollEvent->scroll.x_root = event->touch.x_root; scrollEvent->scroll.y_root = event->touch.y_root; scrollEvent->scroll.direction = GDK_SCROLL_SMOOTH; scrollEvent->scroll.delta_x = (m_offset.x() - x) / Scrollbar::pixelsPerLineStep(); scrollEvent->scroll.delta_y = (m_offset.y() - y) / Scrollbar::pixelsPerLineStep(); scrollEvent->scroll.state = event->touch.state; m_page.handleWheelEvent(NativeWebWheelEvent(scrollEvent.get())); }
void AGOSEngine::processVgaEvents() { VgaTimerEntry *vte = _vgaTimerList; _vgaTickCounter++; while (vte->delay) { vte->delay -= _vgaBaseDelay; if (vte->delay <= 0) { uint16 curZoneNum = vte->zoneNum; uint16 curSprite = vte->id; const byte *script_ptr = vte->codePtr; switch (vte->type) { case ANIMATE_INT: vte->delay = (getGameType() == GType_SIMON2) ? 5 : _frameCount; animateSprites(); vte++; break; case ANIMATE_EVENT: _nextVgaTimerToProcess = vte + 1; deleteVgaEvent(vte); animateEvent(script_ptr, curZoneNum, curSprite); vte = _nextVgaTimerToProcess; break; case SCROLL_EVENT: _nextVgaTimerToProcess = vte + 1; deleteVgaEvent(vte); scrollEvent(); vte = _nextVgaTimerToProcess; break; case PLAYER_DAMAGE_EVENT: playerDamageEvent(vte, curZoneNum); vte = _nextVgaTimerToProcess; break; case MONSTER_DAMAGE_EVENT: monsterDamageEvent(vte, curZoneNum); vte = _nextVgaTimerToProcess; break; default: error("processVgaEvents: Unknown event type %d", vte->type); } } else { vte++; } } }
bool Screen::scrollCallbackEvent(double x, double y) { mLastInteraction = glfwGetTime(); try { if (mFocusPath.size() > 1) { const Window *window = dynamic_cast<Window *>(mFocusPath[mFocusPath.size() - 2]); if (window && window->modal()) { if (!window->contains(mMousePos)) return false; } } return scrollEvent(mMousePos, Vector2f(x, y)); } catch (const std::exception &e) { std::cerr << "Caught exception in event handler: " << e.what() << std::endl; abort(); } return false; }
void WindowEventHandler::handleEvent(WindowEvent & event) { if (!event.window()) return; switch (event.type()) { case WindowEvent::Resize: resizeEvent(static_cast<ResizeEvent&>(event)); break; case WindowEvent::FrameBufferResize: framebufferResizeEvent(static_cast<ResizeEvent&>(event)); break; case WindowEvent::Move: moveEvent(static_cast<MoveEvent&>(event)); break; case WindowEvent::Paint: paintEvent(static_cast<PaintEvent&>(event)); break; case WindowEvent::KeyPress: keyPressEvent(static_cast<KeyEvent&>(event)); break; case WindowEvent::KeyRelease: keyReleaseEvent(static_cast<KeyEvent&>(event)); break; case WindowEvent::MousePress: mousePressEvent(static_cast<MouseEvent&>(event)); break; case WindowEvent::MouseRelease: mouseReleaseEvent(static_cast<MouseEvent&>(event)); break; case WindowEvent::MouseMove: mouseMoveEvent(static_cast<MouseEvent&>(event)); break; case WindowEvent::MouseEnter: break; case WindowEvent::MouseLeave: break; case WindowEvent::Scroll: scrollEvent(static_cast<ScrollEvent&>(event)); break; case WindowEvent::Focus: focusEvent(static_cast<FocusEvent&>(event)); break; case WindowEvent::Iconify: iconifyEvent(static_cast<IconifyEvent&>(event)); break; case WindowEvent::Timer: timerEvent(static_cast<TimerEvent&>(event)); break; default: break; } }
void Window::checkForMessages(){ while (XPending(disp)!=0) { XEvent event; XNextEvent(disp, &event); static int oldx = -1; static int oldy = -1; static int mouseState = 0; static bool mouseInside = true; switch(event.type){ case ClientMessage: if(event.xclient.data.l[0] == wmDelete) stop(); else{ std::cout << "HRM" << std::endl; } break; case ConfigureNotify: client_width = window_width = event.xconfigure.width; client_height = window_height = event.xconfigure.height; resizeEvent(); break; case ResizeRequest: client_width = window_width = event.xresizerequest.width; client_height = window_height = event.xresizerequest.height; resizeEvent(); break; case KeyPress: //KeyPress { KeySym sym = XKeycodeToKeysym(disp,event.xkey.keycode,0); KEY key = translateKEY(sym); break; } case KeyRelease: //KeyReleas std::cout << "Key Release" << std::endl; break; case ButtonPress: //Mouse oldx = event.xbutton.x; oldy = event.xbutton.y; switch(event.xbutton.button){ case Button1: mousePressEvent(LEFT_BUTTON,event.xbutton.x,event.xbutton.y); mouseState++; break; case Button2: mousePressEvent(MIDDLE_BUTTON,event.xbutton.x,event.xbutton.y); mouseState++; break; case Button3: mousePressEvent(RIGHT_BUTTON,event.xbutton.x,event.xbutton.y); mouseState++; break; case Button4: scrollEvent(1); break; case Button5: scrollEvent(-1); break; } break; case ButtonRelease://Mouse switch(event.xbutton.button){ case Button1: mouseReleaseEvent(LEFT_BUTTON,event.xbutton.x,event.xbutton.y); mouseState--; break; case Button2: mouseReleaseEvent(MIDDLE_BUTTON,event.xbutton.x,event.xbutton.y); mouseState--; break; case Button3: mouseReleaseEvent(RIGHT_BUTTON,event.xbutton.x,event.xbutton.y); mouseState--; break; } break; case MotionNotify: //Mouse if(!mouseInside) break; if(mouseState){ int x = event.xbutton.x; int y = event.xbutton.y; int dx = x - oldx; int dy = y - oldy; oldx = x; oldy = y; mousemotionEvent(dx,dy); }else{ int x = event.xbutton.x; int y = event.xbutton.y; int dx = x - oldx; int dy = y - oldy; oldx = x; oldy = y; passiveMousemotionEvent(dx,dy); } break; case LeaveNotify: mouseInside = false; break; case EnterNotify: mouseInside = true; break; default: std::cout << "Unhandled event: " << event.type << std::endl; } } }