Ignore:
Timestamp:
Feb 4, 2000, 6:02:09 PM (26 years ago)
Author:
cbratschi
Message:

merged with WINE20000130

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comctl32/treeview.c

    r2184 r2635  
    1 /* $Id: treeview.c,v 1.21 1999-12-21 17:01:38 cbratschi Exp $ */
     1/* $Id: treeview.c,v 1.22 2000-02-04 17:02:09 cbratschi Exp $ */
    22/* Treeview control
    33 *
     
    8585TREEVIEW_DoSelectItem (HWND hwnd, INT action, HTREEITEM newSelect, INT cause);
    8686static void
    87 TREEVIEW_Refresh (HWND hwnd);
     87TREEVIEW_Refresh (HWND hwnd,HDC hdc);
    8888
    8989static LRESULT CALLBACK
     
    129129  TREEVIEW_INFO *infoPtr,
    130130  TREEVIEW_ITEM *tvItem)
    131 
    132131{
    133132  TREEVIEW_ITEM *wineItem = tvItem;
     
    394393  TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd);
    395394
    396 //  TRACE (treeview,"\n");
    397   if (infoPtr==NULL) return 0;
     395  //TRACE (treeview,"\n");
    398396
    399397  if ((INT)wParam == TVSIL_NORMAL)
     
    411409    HIMAGELIST himlTemp;
    412410
    413 //    TRACE (treeview,"\n");
     411    //TRACE (treeview,"\n");
    414412    switch ((INT)wParam) {
    415413        case TVSIL_NORMAL:
     
    485483  TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd);
    486484
    487   TRACE("\n");
     485  //TRACE("\n");
    488486  return (LRESULT) infoPtr->clrInsertMark;
    489487}
     
    495493  COLORREF prevColor=infoPtr->clrInsertMark;
    496494
    497   TRACE("%d %ld\n",wParam,lParam);
     495  //TRACE("%d %ld\n",wParam,lParam);
    498496  infoPtr->clrInsertMark=(COLORREF) lParam;
    499497  return (LRESULT) prevColor;
     
    504502{
    505503  TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd);
    506 
    507   FIXME("%d %ld\n",wParam,lParam);
     504  HDC hdc;
     505
     506  //FIXME("%d %ld\n",wParam,lParam);
    508507  if (!TREEVIEW_ValidItem (infoPtr, (HTREEITEM)lParam)) return 0;
    509   FIXME("%d %ld\n",wParam,lParam);
     508  //FIXME("%d %ld\n",wParam,lParam);
    510509
    511510  infoPtr->insertBeforeorAfter=(BOOL) wParam;
    512511  infoPtr->insertMarkItem=(HTREEITEM) lParam;
    513   TREEVIEW_Refresh (hwnd);
     512
     513  hdc = GetDC(hwnd);
     514  TREEVIEW_Refresh(hwnd,hdc);
     515  ReleaseDC(hwnd,hdc);
     516
    514517  return 1;
    515518}
     
    714717        imageIndex=wineItem->state>>12;
    715718        imageIndex++;          /* yeah, right */
    716         TRACE ("imindex:%d\n",imageIndex);
     719        //TRACE ("imindex:%d\n",imageIndex);
    717720    if ((himlp) && (imageIndex))
    718721    {
     
    786789
    787790    if (wineItem->pszText== LPSTR_TEXTCALLBACKA) {
    788       TRACE("LPSTR_TEXTCALLBACK\n");
     791      //TRACE("LPSTR_TEXTCALLBACK\n");
    789792      TREEVIEW_SendDispInfoNotify (hwnd, wineItem, TVN_GETDISPINFO, TVIF_TEXT);
    790793    }
     
    864867  /* Draw insertion mark if necessary */
    865868
    866   if (infoPtr->insertMarkItem)
    867                 TRACE ("item:%d,mark:%d\n", (int)wineItem->hItem,
    868                                (int) infoPtr->insertMarkItem);
     869  //if (infoPtr->insertMarkItem)
     870  //              TRACE ("item:%d,mark:%d\n", (int)wineItem->hItem,
     871  //                             (int) infoPtr->insertMarkItem);
    869872  if (wineItem->hItem==infoPtr->insertMarkItem) {
    870873                HPEN hNewPen, hOldPen;
     
    896899                cditem=TREEVIEW_SendCustomDrawItemNotify
    897900                       (hwnd, hdc, wineItem, CDDS_ITEMPOSTPAINT);
    898                 TRACE("postpaint:cditem-app returns 0x%x\n",cditem);
     901                //TRACE("postpaint:cditem-app returns 0x%x\n",cditem);
    899902        }
    900903
     
    909912  HTREEITEM     *iItem;
    910913  LPRECT        lpRect   = (LPRECT)lParam;
     914  HDC hdc;
    911915
    912916//  TRACE (treeview,"\n");
     
    914918   * validate parameters
    915919   */
    916   if ( (infoPtr==NULL) || (lpRect == NULL) )
     920  if (lpRect == NULL)
    917921    return FALSE;
    918922
    919923  if (infoPtr->Timer & TV_REFRESH_TIMER_SET)
    920                 TREEVIEW_Refresh (hwnd);        /* we want a rect for the current view */
     924  {
     925    hdc = GetDC(hwnd);
     926    TREEVIEW_Refresh(hwnd,hdc);        /* we want a rect for the current view */
     927    ReleaseDC(hwnd,hdc);
     928  }
    921929
    922930  /*
     
    9981006
    9991007  if (tvItem->mask & TVIF_STATE) {
    1000                 TRACE ("prevstate,state,mask:%x,%x,%x\n",wineItem->state,tvItem->state,
    1001 tvItem->stateMask);
     1008                //TRACE ("prevstate,state,mask:%x,%x,%x\n",wineItem->state,tvItem->state,
     1009//tvItem->stateMask);
    10021010        wineItem->state&= ~tvItem->stateMask;
    10031011                wineItem->state|= (tvItem->state & tvItem->stateMask);
     
    10391047
    10401048static void
    1041 TREEVIEW_Refresh (HWND hwnd)
     1049TREEVIEW_Refresh (HWND hwnd,HDC hdc)
    10421050
    10431051{
    10441052    TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd);
    1045         TEXTMETRICA tm;
    1046         HBRUSH hbrBk;
     1053    TEXTMETRICA tm;
     1054    HBRUSH hbrBk;
    10471055    RECT rect;
    1048         HDC hdc;
    10491056    INT iItem, indent, x, y, cx, height, itemHeight;
    10501057    INT viewtop,viewbottom,viewleft,viewright;
     
    10521059
    10531060    //TRACE("\n");
    1054 
    1055         hdc=GetDC (hwnd);
    10561061
    10571062    if (infoPtr->Timer & TV_REFRESH_TIMER_SET) {
     
    10671072                                                (hwnd, CDDS_PREPAINT, hdc, rect);
    10681073
    1069         if (infoPtr->cdmode==CDRF_SKIPDEFAULT) {
    1070                   ReleaseDC (hwnd, hdc);
    1071                   return;
    1072         }
    1073 
    1074         infoPtr->uVisibleHeight= rect.bottom-rect.top;
    1075         infoPtr->uVisibleWidth= rect.right-rect.left;
     1074    if (infoPtr->cdmode==CDRF_SKIPDEFAULT) return;
     1075
     1076    infoPtr->uVisibleHeight= rect.bottom-rect.top;
     1077    infoPtr->uVisibleWidth= rect.right-rect.left;
    10761078
    10771079    viewtop=infoPtr->cy;
     
    11881190                                                                (hwnd, CDDS_POSTPAINT, hdc, rect);
    11891191
    1190     ReleaseDC (hwnd, hdc);
    11911192    //TRACE("done\n");
    11921193}
     
    11991200
    12001201//  TRACE (treeview, " %d\n",wParam);
    1201   if (!infoPtr) return FALSE;
    12021202
    12031203  switch (wParam) {
     
    13121312  TREEVIEW_ITEM *wineItem, *returnItem;
    13131313  INT iItem, retval, flag;
    1314 
    1315 
    1316   if (!infoPtr) return FALSE;
     1314  HDC hdc;
     1315
    13171316  flag  = (INT) wParam;
    13181317  iItem = (INT) lParam;
     
    13231322        case TVGN_CARET:retval=(INT)infoPtr->selectedItem;
    13241323                                        break;
    1325         case TVGN_FIRSTVISIBLE:
    1326                                 TREEVIEW_Refresh (hwnd);
    1327 /* FIXME:we should only recalculate, not redraw */
    1328                                         retval=(INT)infoPtr->firstVisible;
    1329                                         break;
     1324        case TVGN_FIRSTVISIBLE: /* FIXME:we should only recalculate, not redraw */
     1325                                        hdc = GetDC (hwnd);
     1326                                        TREEVIEW_Refresh (hwnd, hdc);
     1327                                        ReleaseDC(hwnd,hdc);
     1328                                        retval=(INT)infoPtr->firstVisible;
     1329                                        break;
    13301330        case TVGN_DROPHILITE:
    13311331                                        retval=(INT)infoPtr->dropItem;
     
    19831983   }
    19841984
    1985 
    19861985   TREEVIEW_QueueRefresh (hwnd);
    19871986
     
    20492048
    20502049//  TRACE (treeview,"\n");
    2051   if (!infoPtr) return FALSE;
    20522050
    20532051  if (lParam == (INT)TVI_ROOT) {
     
    22432241
    22442242
    2245 
    22462243static LRESULT
    22472244TREEVIEW_StyleChanged (HWND hwnd, WPARAM wParam, LPARAM lParam)
    22482245{
    2249 //  TRACE (treeview,"(%x %lx)\n",wParam,lParam);
    2250 
    2251   TREEVIEW_Refresh(hwnd);
     2246  HDC hdc;
     2247
     2248  //TRACE("(%x %lx)\n",wParam,lParam);
     2249  hdc = GetDC (hwnd);
     2250  TREEVIEW_Refresh (hwnd, hdc);
     2251  ReleaseDC(hwnd,hdc);
    22522252
    22532253  return 0;
    22542254}
     2255
    22552256
    22562257static LRESULT
     
    22632264        HDC hdc;
    22642265
    2265     TRACE("wnd %x, style %lx\n",hwnd,dwStyle);
     2266    //TRACE("wnd %x, style %lx\n",hwnd,dwStyle);
    22662267      /* allocate memory for info structure */
    22672268    infoPtr = (TREEVIEW_INFO *) COMCTL32_Alloc (sizeof(TREEVIEW_INFO));
     
    22702271
    22712272    if (infoPtr == NULL) {
    2272                 ERR("could not allocate info memory!\n");
     2273                //ERR("could not allocate info memory!\n");
    22732274                return 0;
    22742275    }
    22752276
    22762277    if ((TREEVIEW_INFO*) GetWindowLongA( hwnd, 0) != infoPtr) {
    2277                 ERR("pointer assignment error!\n");
     2278                //ERR("pointer assignment error!\n");
    22782279                return 0;
    22792280    }
     
    23082309    infoPtr->pCallBackSort=NULL;
    23092310    infoPtr->uScrollTime = 300;  /* milliseconds */
    2310 
     2311        infoPtr->wpEditOrig = NULL; /* we haven't subclassed anything yet */
    23112312        infoPtr->hwndToolTip=0;
    23122313    if (!(dwStyle & TVS_NOTOOLTIPS)) {   /* Create tooltip control */
     
    23422343        SendMessageA (infoPtr->hwndToolTip, TTM_ADDTOOLA, 0, (LPARAM)&ti);
    23432344    }
    2344 
    2345    // @@@PH 1999/11/05
    2346     infoPtr->wpEditOrig = NULL; /* no subclass */
    23472345
    23482346        infoPtr->hwndEdit = CreateWindowExA (
     
    23702368
    23712369                hbmLoad = LoadBitmapA (COMCTL32_hModule, MAKEINTRESOURCEA(IDT_CHECK));
    2372                 TRACE ("%x\n",hbmLoad);
     2370                //TRACE ("%x\n",hbmLoad);
    23732371        nIndex = ImageList_AddMasked (infoPtr->himlState, hbmLoad, CLR_DEFAULT);
    2374                 TRACE ("%d\n",nIndex);
     2372                //TRACE ("%d\n",nIndex);
    23752373                DeleteObject (hbmLoad);
    23762374        }
     
    23892387
    23902388   TREEVIEW_RemoveTree (hwnd);
    2391 
    2392    //@@@PH 1999/11/05 set infoPtr to NULL
    23932389   SetWindowLongA( hwnd, 0, (DWORD)NULL);
    23942390
     
    24122408//    TRACE (treeview,"\n");
    24132409    hdc = wParam==0 ? BeginPaint (hwnd, &ps) : (HDC)wParam;
    2414     TREEVIEW_Refresh (hwnd);
     2410    TREEVIEW_Refresh (hwnd,hdc);
    24152411    if(!wParam)
    24162412        EndPaint (hwnd, &ps);
     
    29192915done:
    29202916  lpht->hItem=wineItem->hItem;
    2921   TRACE ("(%ld,%ld):result %x\n",lpht->pt.x,lpht->pt.y,lpht->flags);
     2917  //TRACE ("(%ld,%ld):result %x\n",lpht->pt.x,lpht->pt.y,lpht->flags);
    29222918
    29232919  return (LRESULT) wineItem->hItem;
     
    30503046  ht.pt.y = (INT)HIWORD(lParam);
    30513047
    3052   TRACE("\n");
     3048  //TRACE("\n");
    30533049
    30543050  /* Return true to cancel default behaviour */
     
    30583054  /* Get the item */
    30593055  iItem = TREEVIEW_HitTest (hwnd, (LPARAM) &ht);
    3060   TRACE ("%d\n",iItem);
     3056  //TRACE ("%d\n",iItem);
    30613057  if (!iItem)
    30623058    return 0;
     
    30853081      }
    30863082
    3087                 TRACE("Edit started for %s.\n", wineItem->pszText);
     3083                //TRACE("Edit started for %s.\n", wineItem->pszText);
    30883084                infoPtr->editItem = wineItem->hItem;
    30893085
     
    31193115                        int state;                                       /* to toggle the current state */
    31203116                        state=1-(wineItem->state>>12);
    3121                         TRACE ("state:%x\n", state);
     3117                        //TRACE ("state:%x\n", state);
    31223118                        wineItem->state&= ~TVIS_STATEIMAGEMASK;
    31233119                        wineItem->state|=state<<12;
    3124                         TRACE ("state:%x\n", wineItem->state);
     3120                        //TRACE ("state:%x\n", wineItem->state);
    31253121                        TREEVIEW_QueueRefresh (hwnd);
    31263122                }
     
    36883684TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    36893685{
     3686   if (uMsg==WM_CREATE)
     3687                return TREEVIEW_Create (hwnd, wParam, lParam);
     3688
     3689   if (!TREEVIEW_GetInfoPtr(hwnd))
     3690       return DefWindowProcA (hwnd, uMsg, wParam, lParam);
     3691
    36903692    switch (uMsg) {
    36913693        case TVM_INSERTITEMA:
     
    38353837        case WM_COMMAND:
    38363838                return TREEVIEW_Command (hwnd, wParam, lParam);
    3837 
    3838         case WM_CREATE:
    3839                 return TREEVIEW_Create (hwnd, wParam, lParam);
    38403839
    38413840        case WM_DESTROY:
Note: See TracChangeset for help on using the changeset viewer.