Changeset 2635 for trunk/src/comctl32/treeview.c
- Timestamp:
- Feb 4, 2000, 6:02:09 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/treeview.c
r2184 r2635 1 /* $Id: treeview.c,v 1.2 1 1999-12-21 17:01:38cbratschi Exp $ */1 /* $Id: treeview.c,v 1.22 2000-02-04 17:02:09 cbratschi Exp $ */ 2 2 /* Treeview control 3 3 * … … 85 85 TREEVIEW_DoSelectItem (HWND hwnd, INT action, HTREEITEM newSelect, INT cause); 86 86 static void 87 TREEVIEW_Refresh (HWND hwnd );87 TREEVIEW_Refresh (HWND hwnd,HDC hdc); 88 88 89 89 static LRESULT CALLBACK … … 129 129 TREEVIEW_INFO *infoPtr, 130 130 TREEVIEW_ITEM *tvItem) 131 132 131 { 133 132 TREEVIEW_ITEM *wineItem = tvItem; … … 394 393 TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd); 395 394 396 // TRACE (treeview,"\n"); 397 if (infoPtr==NULL) return 0; 395 //TRACE (treeview,"\n"); 398 396 399 397 if ((INT)wParam == TVSIL_NORMAL) … … 411 409 HIMAGELIST himlTemp; 412 410 413 //TRACE (treeview,"\n");411 //TRACE (treeview,"\n"); 414 412 switch ((INT)wParam) { 415 413 case TVSIL_NORMAL: … … 485 483 TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd); 486 484 487 TRACE("\n");485 //TRACE("\n"); 488 486 return (LRESULT) infoPtr->clrInsertMark; 489 487 } … … 495 493 COLORREF prevColor=infoPtr->clrInsertMark; 496 494 497 TRACE("%d %ld\n",wParam,lParam);495 //TRACE("%d %ld\n",wParam,lParam); 498 496 infoPtr->clrInsertMark=(COLORREF) lParam; 499 497 return (LRESULT) prevColor; … … 504 502 { 505 503 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); 508 507 if (!TREEVIEW_ValidItem (infoPtr, (HTREEITEM)lParam)) return 0; 509 FIXME("%d %ld\n",wParam,lParam);508 //FIXME("%d %ld\n",wParam,lParam); 510 509 511 510 infoPtr->insertBeforeorAfter=(BOOL) wParam; 512 511 infoPtr->insertMarkItem=(HTREEITEM) lParam; 513 TREEVIEW_Refresh (hwnd); 512 513 hdc = GetDC(hwnd); 514 TREEVIEW_Refresh(hwnd,hdc); 515 ReleaseDC(hwnd,hdc); 516 514 517 return 1; 515 518 } … … 714 717 imageIndex=wineItem->state>>12; 715 718 imageIndex++; /* yeah, right */ 716 TRACE ("imindex:%d\n",imageIndex);719 //TRACE ("imindex:%d\n",imageIndex); 717 720 if ((himlp) && (imageIndex)) 718 721 { … … 786 789 787 790 if (wineItem->pszText== LPSTR_TEXTCALLBACKA) { 788 TRACE("LPSTR_TEXTCALLBACK\n");791 //TRACE("LPSTR_TEXTCALLBACK\n"); 789 792 TREEVIEW_SendDispInfoNotify (hwnd, wineItem, TVN_GETDISPINFO, TVIF_TEXT); 790 793 } … … 864 867 /* Draw insertion mark if necessary */ 865 868 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); 869 872 if (wineItem->hItem==infoPtr->insertMarkItem) { 870 873 HPEN hNewPen, hOldPen; … … 896 899 cditem=TREEVIEW_SendCustomDrawItemNotify 897 900 (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); 899 902 } 900 903 … … 909 912 HTREEITEM *iItem; 910 913 LPRECT lpRect = (LPRECT)lParam; 914 HDC hdc; 911 915 912 916 // TRACE (treeview,"\n"); … … 914 918 * validate parameters 915 919 */ 916 if ( (infoPtr==NULL) || (lpRect == NULL))920 if (lpRect == NULL) 917 921 return FALSE; 918 922 919 923 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 } 921 929 922 930 /* … … 998 1006 999 1007 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); 1002 1010 wineItem->state&= ~tvItem->stateMask; 1003 1011 wineItem->state|= (tvItem->state & tvItem->stateMask); … … 1039 1047 1040 1048 static void 1041 TREEVIEW_Refresh (HWND hwnd )1049 TREEVIEW_Refresh (HWND hwnd,HDC hdc) 1042 1050 1043 1051 { 1044 1052 TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd); 1045 1046 1053 TEXTMETRICA tm; 1054 HBRUSH hbrBk; 1047 1055 RECT rect; 1048 HDC hdc;1049 1056 INT iItem, indent, x, y, cx, height, itemHeight; 1050 1057 INT viewtop,viewbottom,viewleft,viewright; … … 1052 1059 1053 1060 //TRACE("\n"); 1054 1055 hdc=GetDC (hwnd);1056 1061 1057 1062 if (infoPtr->Timer & TV_REFRESH_TIMER_SET) { … … 1067 1072 (hwnd, CDDS_PREPAINT, hdc, rect); 1068 1073 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; 1076 1078 1077 1079 viewtop=infoPtr->cy; … … 1188 1190 (hwnd, CDDS_POSTPAINT, hdc, rect); 1189 1191 1190 ReleaseDC (hwnd, hdc);1191 1192 //TRACE("done\n"); 1192 1193 } … … 1199 1200 1200 1201 // TRACE (treeview, " %d\n",wParam); 1201 if (!infoPtr) return FALSE;1202 1202 1203 1203 switch (wParam) { … … 1312 1312 TREEVIEW_ITEM *wineItem, *returnItem; 1313 1313 INT iItem, retval, flag; 1314 1315 1316 if (!infoPtr) return FALSE; 1314 HDC hdc; 1315 1317 1316 flag = (INT) wParam; 1318 1317 iItem = (INT) lParam; … … 1323 1322 case TVGN_CARET:retval=(INT)infoPtr->selectedItem; 1324 1323 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; 1330 1330 case TVGN_DROPHILITE: 1331 1331 retval=(INT)infoPtr->dropItem; … … 1983 1983 } 1984 1984 1985 1986 1985 TREEVIEW_QueueRefresh (hwnd); 1987 1986 … … 2049 2048 2050 2049 // TRACE (treeview,"\n"); 2051 if (!infoPtr) return FALSE;2052 2050 2053 2051 if (lParam == (INT)TVI_ROOT) { … … 2243 2241 2244 2242 2245 2246 2243 static LRESULT 2247 2244 TREEVIEW_StyleChanged (HWND hwnd, WPARAM wParam, LPARAM lParam) 2248 2245 { 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); 2252 2252 2253 2253 return 0; 2254 2254 } 2255 2255 2256 2256 2257 static LRESULT … … 2263 2264 HDC hdc; 2264 2265 2265 TRACE("wnd %x, style %lx\n",hwnd,dwStyle);2266 //TRACE("wnd %x, style %lx\n",hwnd,dwStyle); 2266 2267 /* allocate memory for info structure */ 2267 2268 infoPtr = (TREEVIEW_INFO *) COMCTL32_Alloc (sizeof(TREEVIEW_INFO)); … … 2270 2271 2271 2272 if (infoPtr == NULL) { 2272 ERR("could not allocate info memory!\n");2273 //ERR("could not allocate info memory!\n"); 2273 2274 return 0; 2274 2275 } 2275 2276 2276 2277 if ((TREEVIEW_INFO*) GetWindowLongA( hwnd, 0) != infoPtr) { 2277 ERR("pointer assignment error!\n");2278 //ERR("pointer assignment error!\n"); 2278 2279 return 0; 2279 2280 } … … 2308 2309 infoPtr->pCallBackSort=NULL; 2309 2310 infoPtr->uScrollTime = 300; /* milliseconds */ 2310 2311 infoPtr->wpEditOrig = NULL; /* we haven't subclassed anything yet */ 2311 2312 infoPtr->hwndToolTip=0; 2312 2313 if (!(dwStyle & TVS_NOTOOLTIPS)) { /* Create tooltip control */ … … 2342 2343 SendMessageA (infoPtr->hwndToolTip, TTM_ADDTOOLA, 0, (LPARAM)&ti); 2343 2344 } 2344 2345 // @@@PH 1999/11/052346 infoPtr->wpEditOrig = NULL; /* no subclass */2347 2345 2348 2346 infoPtr->hwndEdit = CreateWindowExA ( … … 2370 2368 2371 2369 hbmLoad = LoadBitmapA (COMCTL32_hModule, MAKEINTRESOURCEA(IDT_CHECK)); 2372 TRACE ("%x\n",hbmLoad);2370 //TRACE ("%x\n",hbmLoad); 2373 2371 nIndex = ImageList_AddMasked (infoPtr->himlState, hbmLoad, CLR_DEFAULT); 2374 TRACE ("%d\n",nIndex);2372 //TRACE ("%d\n",nIndex); 2375 2373 DeleteObject (hbmLoad); 2376 2374 } … … 2389 2387 2390 2388 TREEVIEW_RemoveTree (hwnd); 2391 2392 //@@@PH 1999/11/05 set infoPtr to NULL2393 2389 SetWindowLongA( hwnd, 0, (DWORD)NULL); 2394 2390 … … 2412 2408 // TRACE (treeview,"\n"); 2413 2409 hdc = wParam==0 ? BeginPaint (hwnd, &ps) : (HDC)wParam; 2414 TREEVIEW_Refresh (hwnd );2410 TREEVIEW_Refresh (hwnd,hdc); 2415 2411 if(!wParam) 2416 2412 EndPaint (hwnd, &ps); … … 2919 2915 done: 2920 2916 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); 2922 2918 2923 2919 return (LRESULT) wineItem->hItem; … … 3050 3046 ht.pt.y = (INT)HIWORD(lParam); 3051 3047 3052 TRACE("\n");3048 //TRACE("\n"); 3053 3049 3054 3050 /* Return true to cancel default behaviour */ … … 3058 3054 /* Get the item */ 3059 3055 iItem = TREEVIEW_HitTest (hwnd, (LPARAM) &ht); 3060 TRACE ("%d\n",iItem);3056 //TRACE ("%d\n",iItem); 3061 3057 if (!iItem) 3062 3058 return 0; … … 3085 3081 } 3086 3082 3087 TRACE("Edit started for %s.\n", wineItem->pszText);3083 //TRACE("Edit started for %s.\n", wineItem->pszText); 3088 3084 infoPtr->editItem = wineItem->hItem; 3089 3085 … … 3119 3115 int state; /* to toggle the current state */ 3120 3116 state=1-(wineItem->state>>12); 3121 TRACE ("state:%x\n", state);3117 //TRACE ("state:%x\n", state); 3122 3118 wineItem->state&= ~TVIS_STATEIMAGEMASK; 3123 3119 wineItem->state|=state<<12; 3124 TRACE ("state:%x\n", wineItem->state);3120 //TRACE ("state:%x\n", wineItem->state); 3125 3121 TREEVIEW_QueueRefresh (hwnd); 3126 3122 } … … 3688 3684 TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 3689 3685 { 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 3690 3692 switch (uMsg) { 3691 3693 case TVM_INSERTITEMA: … … 3835 3837 case WM_COMMAND: 3836 3838 return TREEVIEW_Command (hwnd, wParam, lParam); 3837 3838 case WM_CREATE:3839 return TREEVIEW_Create (hwnd, wParam, lParam);3840 3839 3841 3840 case WM_DESTROY:
Note:
See TracChangeset
for help on using the changeset viewer.