From 9e6e6cc1ee1ac1e1548f18c701e57f223e7e0b5e Mon Sep 17 00:00:00 2001 From: george82 Date: Sat, 29 Jan 2005 13:12:05 +0000 Subject: [PATCH] Implemented speed changing by spin control. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@128 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- rfbplayer/rfbplayer.cxx | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx index bcdd6315..3fab7911 100644 --- a/rfbplayer/rfbplayer.cxx +++ b/rfbplayer/rfbplayer.cxx @@ -342,6 +342,30 @@ RfbPlayer::processMainMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) InvalidateRect(getFrameHandle(), 0, TRUE); } break; + + case WM_NOTIFY: + switch (((NMHDR*)lParam)->code) { + case UDN_DELTAPOS: + if ((int)wParam == ID_SPEED_UPDOWN) { + char speedStr[20] = "\0"; + DWORD speedRange = SendMessage(speedUpDown, UDM_GETRANGE, 0, 0); + LPNM_UPDOWN upDown = (LPNM_UPDOWN)lParam; + double speed; + + // the out of range checking + if (upDown->iDelta > 0) { + speed = min(upDown->iPos + upDown->iDelta, LOWORD(speedRange)) * 0.5; + } else { + speed = max(upDown->iPos + upDown->iDelta, HIWORD(speedRange)) * 0.5; + } + _gcvt(speed, 5, speedStr); + sprintf(speedStr, "%.2f", speed); + SetWindowText(speedEdit, speedStr); + setSpeed(speed); + } + return 0; + }; + return 0; case WM_CLOSE: vlog.debug("WM_CLOSE %x", getMainHandle()); @@ -561,7 +585,7 @@ void RfbPlayer::createToolBar(HWND parentHwnd) { speedUpDown = CreateUpDownControl(WS_CHILD | WS_VISIBLE | WS_BORDER | UDS_ALIGNRIGHT, 0, 0, 0, 0, tb.getHandle(), - ID_SPEED_UPDOWN, GetModuleHandle(0), speedEdit, 100, 1, 10); + ID_SPEED_UPDOWN, GetModuleHandle(0), speedEdit, 20, 1, 2); } void RfbPlayer::setVisible(bool visible) { -- 2.39.5