Ignore:
Timestamp:
Nov 13, 1999, 5:42:43 PM (26 years ago)
Author:
cbratschi
Message:

merged with wine-991031, fixed edit bugs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/scroll.cpp

    r1717 r1724  
    1 /* $Id: scroll.cpp,v 1.21 1999-11-12 17:16:37 cbratschi Exp $ */
     1/* $Id: scroll.cpp,v 1.22 1999-11-13 16:42:42 cbratschi Exp $ */
    22/*
    33 * Scrollbar control
     
    88 * Copyright 1994, 1996 Alexandre Julliard
    99 *
    10  * WINE version: 990923
     10 * WINE version: 991031
    1111 *
    1212 * Status:  complete
     
    14001400    if (info->fMask & (SIF_RANGE | SIF_PAGE | SIF_DISABLENOSCROLL))
    14011401    {
    1402         new_flags = infoPtr->flags;
    1403         if (infoPtr->MinVal >= infoPtr->MaxVal - MAX( infoPtr->Page-1, 0 ))
    1404         {
    1405             /* Hide or disable scroll-bar */
    1406             if (info->fMask & SIF_DISABLENOSCROLL)
    1407             {
    1408                 new_flags = ESB_DISABLE_BOTH;
    1409                 action |= SA_SSI_REFRESH;
    1410             }
    1411             else if (nBar != SB_CTL)
    1412             {
    1413                 action = SA_SSI_HIDE;
    1414                 goto done;
    1415             }
    1416         }
    1417         else  /* Show and enable scroll-bar */
    1418         {
    1419             new_flags = 0;
    1420             if (nBar != SB_CTL)
    1421                 action |= SA_SSI_SHOW;
    1422         }
    1423 
    1424         if (infoPtr->flags != new_flags) /* check arrow flags */
    1425         {
    1426             infoPtr->flags = new_flags;
    1427             action |= SA_SSI_REPAINT_ARROWS;
    1428         }
     1402      new_flags = infoPtr->flags;
     1403      if (infoPtr->MinVal >= infoPtr->MaxVal - MAX( infoPtr->Page-1, 0 ))
     1404      {
     1405        /* Hide or disable scroll-bar */
     1406        if (info->fMask & SIF_DISABLENOSCROLL)
     1407        {
     1408          new_flags = ESB_DISABLE_BOTH;
     1409          action |= SA_SSI_REFRESH;
     1410        } else if (nBar != SB_CTL)
     1411        {
     1412          action = SA_SSI_HIDE;
     1413          goto done;
     1414        }
     1415      } else  /* Show and enable scroll-bar */
     1416      {
     1417        new_flags = 0;
     1418        if (nBar != SB_CTL) action |= SA_SSI_SHOW;
     1419        if (infoPtr->flags) action |= SA_SSI_REFRESH;
     1420      }
     1421
     1422      if (infoPtr->flags != new_flags) /* check arrow flags */
     1423      {
     1424        infoPtr->flags = new_flags;
     1425        action |= SA_SSI_REPAINT_ARROWS;
     1426      }
    14291427    }
    14301428
     
    14391437          ShowScrollBar(hwnd,nBar,TRUE);
    14401438
    1441         if(bRedraw && (action & SA_SSI_REFRESH))
     1439        if (bRedraw)
     1440        {
     1441          if (action & SA_SSI_REFRESH)
    14421442            SCROLL_RefreshScrollBar(hwndScroll,nBar,TRUE,TRUE);
    1443         else
    1444         {
    1445           if (action & SA_SSI_REPAINT_INTERIOR || action & SA_SSI_MOVE_THUMB)
    1446             SCROLL_RefreshScrollBar(hwndScroll,nBar,FALSE,TRUE);
    1447           if (action & SA_SSI_REPAINT_ARROWS )
    1448             SCROLL_RefreshScrollBar(hwndScroll,nBar,TRUE,FALSE);
     1443          else
     1444          {
     1445            if (action & (SA_SSI_REPAINT_INTERIOR | SA_SSI_MOVE_THUMB))
     1446              SCROLL_RefreshScrollBar(hwndScroll,nBar,FALSE,TRUE);
     1447            if (action & SA_SSI_REPAINT_ARROWS)
     1448              SCROLL_RefreshScrollBar(hwndScroll,nBar,TRUE,FALSE);
     1449          }
    14491450        }
    14501451    }
     
    15401541    return infoPtr->CurVal;
    15411542}
     1543
     1544// CB: functions to get 32bit SB_THUMBTRACK position, for internal use
     1545
     1546BOOL IsScrollBarTracking(HWND hwnd,INT nBar)
     1547{
     1548  HWND hwndScroll = SCROLL_GetScrollHandle(hwnd,nBar);
     1549
     1550  return (SCROLL_MovingThumb && SCROLL_TrackingWin == hwnd && SCROLL_TrackingBar == nBar);
     1551}
     1552
     1553INT GetScrollTrackPos(HWND hwnd,INT nBar)
     1554{
     1555  SCROLLBAR_INFO *infoPtr;
     1556
     1557  infoPtr = SCROLL_GetInfoPtr(SCROLL_GetScrollHandle(hwnd,nBar),nBar);
     1558  if (!infoPtr) return 0;
     1559
     1560  return (SCROLL_MovingThumb && SCROLL_TrackingWin == hwnd && SCROLL_TrackingBar == nBar) ? SCROLL_TrackingVal:infoPtr->CurVal;
     1561}
     1562
    15421563/*************************************************************************
    15431564 *           SetScrollRange   (USER32.503)
Note: See TracChangeset for help on using the changeset viewer.