Changeset 12118


Ignore:
Timestamp:
Oct 31, 1999, 6:53:55 PM (25 years ago)
Author:
cbratschi
Message:

pmframe, scrollbar fixes. window.cpp compiles again

Location:
tags/trunk/src/user32
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified tags/trunk/src/user32/pmframe.cpp

    r12113 r12118  
    1 /* $Id: pmframe.cpp,v 1.14 1999-10-30 18:40:44 cbratschi Exp $ */
     1/* $Id: pmframe.cpp,v 1.15 1999-10-31 17:53:51 cbratschi Exp $ */
    22/*
    33 * Win32 Frame Managment Code for OS/2
     
    281281            return (MRESULT)0xf;
    282282        }
    283         break;
     283        goto RunDefFrameProc; //CB: must call def frame proc or frame control activation is broken
    284284    }
    285285
     
    427427    case WM_ACTIVATE:
    428428      {
    429         RestoreOS2TIB();
    430         MRESULT rc = OldFrameProc(hwnd,msg,mp1,mp2);
    431         //CB: overwrite OS/2's default frame
    432         DrawActivate(win32wnd, hwnd);
    433         return rc;
     429        HWND hwndTitle;
     430        USHORT flags = WinQueryWindowUShort(hwnd,QWS_FLAGS);
     431
     432        //CB: emulate WM_ACTIVATE -> no flickering
     433        hwndTitle = WinWindowFromID(hwnd,FID_TITLEBAR);
     434        if (hwndTitle) WinSendMsg(hwndTitle,TBM_SETHILITE,mp1,MPVOID);
     435
     436        WinSendMsg(WinWindowFromID(hwnd,FID_CLIENT),WM_ACTIVATE,mp1,mp2);
     437        WinSetWindowUShort(hwnd,QWS_FLAGS,mp1 ? (flags | FF_ACTIVE):(flags & ~FF_ACTIVE));
     438
     439
     440        RestoreOS2TIB();
     441        return 0;
    434442      }
    435443
     
    488496      if (InSizeBox(win32wnd,(POINTS*)&mp1))
    489497      {
     498        WinSetActiveWindow(HWND_DESKTOP,hwnd);
    490499        WinSendMsg(hwnd,WM_TRACKFRAME,(MPARAM)(TF_RIGHT | TF_BOTTOM),(MPARAM)0);
    491500        RestoreOS2TIB();
  • TabularUnified tags/trunk/src/user32/scroll.cpp

    r12113 r12118  
    1 /* $Id: scroll.cpp,v 1.17 1999-10-30 18:40:45 cbratschi Exp $ */
     1/* $Id: scroll.cpp,v 1.18 1999-10-31 17:53:53 cbratschi Exp $ */
    22/*
    33 * Scrollbar control
     
    225225      INT w = lpRect->right-lpRect->left;
    226226
    227       rect.left  -= w;
    228       rect.right += w;
     227      rect.left   -= w;
     228      rect.right  += w;
     229      rect.top    -= w;
     230      rect.bottom += w;
    229231    } else
    230232    {
     
    233235      rect.top    -= h;
    234236      rect.bottom += h;
     237      rect.left   -= h;
     238      rect.right  += h;
    235239    }
    236240
     
    248252    INT arrowSize, thumbSize, thumbPos;
    249253    RECT rect;
     254    SCROLLBAR_INFO *infoPtr = SCROLL_GetInfoPtr(hwnd,nBar);
     255
     256    if (!infoPtr) return SCROLL_NOWHERE;
    250257
    251258    BOOL vertical = SCROLL_GetScrollBarRect( hwnd, nBar, &rect,
     
    257264    if (vertical)
    258265    {
    259         if (pt.y < rect.top + arrowSize) return SCROLL_TOP_ARROW;
    260         if (pt.y >= rect.bottom - arrowSize) return SCROLL_BOTTOM_ARROW;
     266        if (pt.y < rect.top + arrowSize) return (infoPtr->flags & ESB_DISABLE_LTUP) ? SCROLL_NOWHERE:SCROLL_TOP_ARROW;
     267        if (pt.y >= rect.bottom - arrowSize) return (infoPtr->flags & ESB_DISABLE_RTDN) ? SCROLL_NOWHERE:SCROLL_BOTTOM_ARROW;
    261268        if (!thumbPos) return SCROLL_TOP_RECT;
    262269        pt.y -= rect.top;
     
    266273    else  /* horizontal */
    267274    {
    268         if (pt.x < rect.left + arrowSize) return SCROLL_TOP_ARROW;
    269         if (pt.x >= rect.right - arrowSize) return SCROLL_BOTTOM_ARROW;
     275        if (pt.x < rect.left + arrowSize) return (infoPtr->flags & ESB_DISABLE_LTUP) ? SCROLL_NOWHERE:SCROLL_TOP_ARROW;
     276        if (pt.x >= rect.right - arrowSize) return (infoPtr->flags & ESB_DISABLE_RTDN) ? SCROLL_NOWHERE:SCROLL_BOTTOM_ARROW;
    270277        if (!thumbPos) return SCROLL_TOP_RECT;
    271278        pt.x -= rect.left;
     
    707714    LRESULT res = (msg == WM_MOUSEMOVE) ? 1:0;
    708715
    709     SCROLLBAR_INFO *infoPtr = SCROLL_GetInfoPtr( hwnd, nBar );
     716    SCROLLBAR_INFO *infoPtr = SCROLL_GetInfoPtr(hwnd,nBar);
    710717    if (!infoPtr) return res;
    711718
     
    758765    }
    759766
    760     if ((SCROLL_trackHitTest == SCROLL_NOWHERE) && (msg == WM_MOUSEMOVE || msg == WM_LBUTTONUP || msg == WM_CAPTURECHANGED))
    761       return res;
     767    if (!SCROLL_Scrolling && msg != WM_LBUTTONDOWN) return res;
    762768
    763769    vertical = SCROLL_GetScrollBarRect( hwnd, nBar, &rect,
     
    784790        pt.y = (SHORT)HIWORD(lParam);
    785791        SCROLL_trackVertical = vertical;
    786         SCROLL_trackHitTest  = hittest = SCROLL_HitTest( hwnd, nBar, pt, FALSE );
     792        SCROLL_trackHitTest = hittest = SCROLL_HitTest( hwnd, nBar, pt, FALSE );
     793        if (SCROLL_trackHitTest == SCROLL_NOWHERE) return res;
    787794        SCROLL_Scrolling = TRUE;
    788795        timerRunning = FALSE;
     
    809816
    810817      case WM_LBUTTONUP:
    811         pt.x = (SHORT)LOWORD(lParam);
    812         pt.y = (SHORT)HIWORD(lParam);
    813         hittest = SCROLL_NOWHERE;
    814         ReleaseCapture();
    815         SCROLL_Scrolling = FALSE;
     818        if (SCROLL_Scrolling)
     819        {
     820          pt.x = (SHORT)LOWORD(lParam);
     821          pt.y = (SHORT)HIWORD(lParam);
     822          hittest = SCROLL_NOWHERE;
     823          ReleaseCapture();
     824          SCROLL_Scrolling = FALSE;
     825        } else return res;
    816826        break;
    817827
    818828      case WM_CAPTURECHANGED:
    819         hittest = SCROLL_NOWHERE;
    820         SCROLL_Scrolling = FALSE;
     829        if (SCROLL_Scrolling)
     830        {
     831          hittest = SCROLL_NOWHERE;
     832          SCROLL_Scrolling = FALSE;
     833        } else return res;
    821834        break;
    822835
     
    871884    hdc = GetDCEx(hwnd,0,DCX_CACHE | ((nBar == SB_CTL) ? 0:DCX_WINDOW));
    872885
    873     //TRACE("Event: hwnd=%04x bar=%d msg=%x pt=%ld,%ld hit=%d\n",
    874     //             hwnd, nBar, msg, pt.x, pt.y, hittest );
    875 
    876886    switch(SCROLL_trackHitTest)
    877887    {
     
    880890
    881891      case SCROLL_TOP_ARROW:
    882         if (msg == WM_LBUTTONUP)
     892        if (msg == WM_LBUTTONUP || msg == WM_CAPTURECHANGED)
    883893          KillSystemTimer(hwnd,SCROLL_TIMER);
    884894        else if (msg == WM_LBUTTONDOWN || (!timerRunning && msg == WM_SYSTIMER))
     
    901911
    902912      case SCROLL_TOP_RECT:
    903         if (msg == WM_LBUTTONUP)
     913        if (msg == WM_LBUTTONUP || msg == WM_CAPTURECHANGED)
    904914          KillSystemTimer(hwnd,SCROLL_TIMER);
    905915        else if (msg == WM_LBUTTONDOWN || (!timerRunning && msg == WM_SYSTIMER))
     
    930940            SCROLL_TrackingBar = nBar;
    931941            SCROLL_TrackingPos = trackThumbPos + lastMousePos - lastClickPos;
     942            SCROLL_TrackingVal = infoPtr->CurVal;
    932943            SCROLL_MovingThumb = TRUE;
    933944            SCROLL_DrawMovingThumb(hdc, &rect, vertical, arrowSize, thumbSize);
     
    939950          SCROLL_MovingThumb = FALSE;
    940951          SCROLL_TrackingWin = 0;
     952          SCROLL_trackHitTest = SCROLL_NOWHERE;  /* Terminate tracking */
    941953          val = SCROLL_GetThumbVal( infoPtr, &rect, vertical,
    942954                                    trackThumbPos + lastMousePos - lastClickPos );
    943           SendMessageA( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
    944                         MAKEWPARAM( SB_THUMBPOSITION, val ), hwndCtl );
     955
     956          if (val != infoPtr->CurVal)
     957            SendMessageA( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
     958                          MAKEWPARAM( SB_THUMBPOSITION, val ), hwndCtl );
    945959
    946960          if (oldPos == infoPtr->CurVal)
     961          {
     962            vertical = SCROLL_GetScrollBarRect( hwnd, nBar, &rect,
     963                                        &arrowSize, &thumbSize, &thumbPos );
    947964            SCROLL_DrawInterior( hwnd, hdc, nBar, &rect, arrowSize, thumbSize,
    948965                                 thumbPos, infoPtr->flags, vertical,
    949966                                 FALSE, FALSE );
     967          }
     968
     969          ReleaseDC(hwnd,hdc);
     970          return res;
    950971        } else if (msg == WM_MOUSEMOVE)
    951972        {
     
    975996
    976997      case SCROLL_BOTTOM_RECT:
    977         if (msg == WM_LBUTTONUP)
     998        if (msg == WM_LBUTTONUP || msg == WM_CAPTURECHANGED)
    978999          KillSystemTimer(hwnd,SCROLL_TIMER);
    9791000        else if (msg == WM_LBUTTONDOWN || (!timerRunning && msg == WM_SYSTIMER))
     
    9991020
    10001021      case SCROLL_BOTTOM_ARROW:
    1001         if (msg == WM_LBUTTONUP)
     1022        if (msg == WM_LBUTTONUP || msg == WM_CAPTURECHANGED)
    10021023          KillSystemTimer(hwnd,SCROLL_TIMER);
    10031024        else if (msg == WM_LBUTTONDOWN || (!timerRunning && msg == WM_SYSTIMER))
     
    10221043    if (msg == WM_LBUTTONUP || msg == WM_CAPTURECHANGED)
    10231044    {
    1024         hittest = SCROLL_trackHitTest;
    1025         SCROLL_trackHitTest = SCROLL_NOWHERE;  /* Terminate tracking */
    1026 
    1027         if (hittest != SCROLL_THUMB)
    1028           SendMessageA(hwndOwner,vertical ? WM_VSCROLL:WM_HSCROLL,SB_ENDSCROLL,hwndCtl);
     1045      SCROLL_trackHitTest = SCROLL_NOWHERE;  /* Terminate tracking */
     1046
     1047      SendMessageA(hwndOwner,vertical ? WM_VSCROLL:WM_HSCROLL,SB_ENDSCROLL,hwndCtl);
    10291048    }
    10301049
     
    13071326    HWND hwndScroll = SCROLL_GetScrollHandle(hwnd,nBar);
    13081327
     1328    dprintf(("USER32: SetScrollInfo"));
     1329
    13091330    if (!hwndScroll) return 0;
    13101331    if (!(infoPtr = SCROLL_GetInfoPtr(hwndScroll,nBar))) return 0;
     
    14441465  SCROLLBAR_INFO *infoPtr;
    14451466
     1467    dprintf(("USER32: GetScrollInfo"));
     1468
    14461469    if (!(infoPtr = SCROLL_GetInfoPtr(SCROLL_GetScrollHandle(hwnd,nBar),nBar))) return FALSE;
    14471470    if (info->fMask & ~(SIF_ALL | SIF_DISABLENOSCROLL)) return FALSE;
  • TabularUnified tags/trunk/src/user32/window.cpp

    r12117 r12118  
    1 /* $Id: window.cpp,v 1.29 1999-10-31 16:44:05 dengert Exp $ */
     1/* $Id: window.cpp,v 1.30 1999-10-31 17:53:55 cbratschi Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    189189    else dprintf(("CreateWindowExW: class %d parent %x (%d,%d) (%d,%d), %x %x", className, parent, x, y, width, height, style, exStyle));
    190190
    191     if (!strcmpi(className, L"BUTTON") && ((style & 0x0f) == BS_GROUPBOX))
     191    if (!lstrcmpiW(className,(LPCWSTR)L"BUTTON") && ((style & 0x0f) == BS_GROUPBOX))
    192192      style |= WS_CLIPSIBLINGS;
    193193
Note: See TracChangeset for help on using the changeset viewer.