]> source.dussan.org Git - tigervnc.git/commitdiff
Implemented speed changing by spin control.
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Sat, 29 Jan 2005 13:12:05 +0000 (13:12 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Sat, 29 Jan 2005 13:12:05 +0000 (13:12 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@128 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfbplayer/rfbplayer.cxx

index bcdd631542c7c55a93062c385e746e1eed2a3247..3fab791142a695b8e796066874800a2b4a0eb0c3 100644 (file)
@@ -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) {