void CPausedContainer::HandlePointerEventL(const TPointerEvent& aPointerEvent) { CCoeControl::HandlePointerEventL(aPointerEvent); // 检查按钮是否都处于正常显示状态 if (!IsButtonNormalDisplay()) { return; } switch (aPointerEvent.iType) { case TPointerEvent::EButton1Down: { HandleButtonDown(aPointerEvent.iPosition); break; } case TPointerEvent::EButton1Up: { HandleButtonUp(aPointerEvent.iPosition); break; } default: { break; } } }
/** ** Handle interactive input event. */ local void DoEvent(SDL_Event* event) { switch( event->type ) { case SDL_MOUSEBUTTONDOWN: DebugLevel3("\tbutton press %d\n",event->button.button); HandleButtonDown(event->button.button); break; case SDL_MOUSEBUTTONUP: DebugLevel3("\tbutton release %d\n",event->button.button); HandleButtonUp(event->button.button); break; // FIXME SDL: check if this is only usefull for the cursor // if this is the case we don't need this. case SDL_MOUSEMOTION: DebugLevel3("\tmotion notify %d,%d\n",event->motion.x,event->motion.y); HandleMouseMove(event->motion.x,event->motion.y); if (TheUI.WarpX != -1 || TheUI.WarpY != -1) { int xw; int yw; xw = TheUI.WarpX; yw = TheUI.WarpY; TheUI.WarpX = -1; TheUI.WarpY = -1; SDL_WarpMouse(xw,yw); } MustRedraw|=RedrawCursor; break; case SDL_ACTIVEEVENT: DebugLevel3("\tFocus changed\n"); if( !event->active.state ) { CursorOn=-1; } break; case SDL_KEYDOWN: DebugLevel3("\tKey press\n"); SdlHandleKey(&event->key.keysym); break; case SDL_KEYUP: DebugLevel3("\tKey release\n"); break; case SDL_QUIT: Exit(0); break; } }
/** ** Handle interactive input event. */ local void DoEvent(void) { XEvent event; int xw, yw; XNextEvent(TheDisplay,&event); switch( event.type ) { case ButtonPress: DebugLevel3("\tbutton press %d\n",event.xbutton.button); HandleButtonDown(event.xbutton.button); break; case ButtonRelease: DebugLevel3("\tbutton release %d\n",event.xbutton.button); HandleButtonUp(event.xbutton.button); break; case Expose: DebugLevel1("\texpose\n"); MustRedraw=-1; break; case MotionNotify: DebugLevel3("\tmotion notify %d,%d\n" ,event.xbutton.x,event.xbutton.y); HandleMouseMove(event.xbutton.x,event.xbutton.y); if (TheUI.WarpX != -1 || TheUI.WarpY != -1) { xw = TheUI.WarpX; yw = TheUI.WarpY; TheUI.WarpX = -1; TheUI.WarpY = -1; XWarpPointer(TheDisplay,TheMainWindow,TheMainWindow, 0,0,0,0,xw,yw); } MustRedraw|=RedrawCursor; break; case FocusIn: DebugLevel3("\tfocus in\n"); break; case FocusOut: DebugLevel3("\tfocus out\n"); CursorOn=-1; break; case ClientMessage: DebugLevel3("\tclient message\n"); if (event.xclient.format == 32) { if ((Atom)event.xclient.data.l[0] == WmDeleteWindowAtom) { Exit(0); } } break; case KeyPress: DebugLevel3("\tKey press\n"); { char buf[128]; int num; KeySym keysym; X11HandleModifiers((XKeyEvent*)&event); num=XLookupString((XKeyEvent*)&event,buf,sizeof(buf),&keysym,0); DebugLevel3("\tKey %lx `%s'\n",keysym,buf); if( num==1 ) { X11HandleKey(*buf); } else { X11HandleKey(keysym); } } break; case KeyRelease: DebugLevel3("\tKey release\n"); X11HandleKeyUp(XLookupKeysym((XKeyEvent*)&event,0)); break; } }
void CMotionButton::OnLButtonDown(UINT nFlags, CPoint point) { ForceDisableFocus=false; HandleButtonDown(); CButton::OnLButtonDown(nFlags, point); }