Changeset 1584 for trunk/src/comctl32/status.c
- Timestamp:
- Nov 3, 1999, 11:05:23 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/status.c
r1431 r1584 1 /* $Id: status.c,v 1.1 2 1999-10-24 22:49:46 sandervlExp $ */1 /* $Id: status.c,v 1.13 1999-11-03 22:05:23 cbratschi Exp $ */ 2 2 /* 3 3 * Interface code to StatusWindow widget/control … … 46 46 #define STATUSBAR_GetInfoPtr(hwnd) ((STATUSWINDOWINFO *)GetWindowLongA (hwnd, 0)) 47 47 48 49 static RECT STATUSBAR_GetSizeBox(HWND hwnd) 50 { 51 RECT rect; 52 53 GetClientRect(hwnd,&rect); 54 rect.left = rect.right-GetSystemMetrics(SM_CXVSCROLL); 55 rect.top = rect.bottom-GetSystemMetrics(SM_CYHSCROLL); 56 57 return rect; 58 } 48 59 49 60 static void … … 488 499 } 489 500 501 static LRESULT 502 STATUSBAR_WMLButtonDown(HWND hwnd,WPARAM wParam,LPARAM lParam) 503 { 504 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 505 506 if (dwStyle & SBARS_SIZEGRIP && !(dwStyle & CCS_TOP)) 507 { 508 RECT rect = STATUSBAR_GetSizeBox(hwnd); 509 POINT point; 510 511 point.x = (SHORT)LOWORD(lParam); 512 point.y = (SHORT)HIWORD(lParam); 513 if (PtInRect(&rect,point)) TrackWin32Window(GetParent(hwnd),FALSE); 514 515 return 0; 516 } 517 518 return DefWindowProcA(hwnd,WM_LBUTTONDOWN,wParam,lParam); 519 } 490 520 491 521 static LRESULT … … 840 870 LPCREATESTRUCTA lpCreate = (LPCREATESTRUCTA)lParam; 841 871 NONCLIENTMETRICSA nclm; 842 RECT 843 int 844 HDC 872 RECT rect; 873 int width, len; 874 HDC hdc; 845 875 STATUSWINDOWINFO *self; 846 876 … … 875 905 876 906 if (IsWindowUnicode (hwnd)) { 877 878 879 880 881 882 907 self->bUnicode = TRUE; 908 if (lpCreate->lpszName && 909 (len = lstrlenW ((LPCWSTR)lpCreate->lpszName))) { 910 self->parts[0].text = COMCTL32_Alloc ((len + 1)*sizeof(WCHAR)); 911 lstrcpyW (self->parts[0].text, (LPCWSTR)lpCreate->lpszName); 912 } 883 913 } 884 914 else { 885 if (lpCreate->lpszName && 886 (len = lstrlenA ((LPCSTR)lpCreate->lpszName))) { 887 self->parts[0].text = COMCTL32_Alloc ((len + 1)*sizeof(WCHAR)); 888 lstrcpyAtoW (self->parts[0].text, (LPCSTR)lpCreate->lpszName); 889 } 890 } 891 892 if ((hdc = GetDC (0))) { 893 TEXTMETRICA tm; 894 HFONT hOldFont; 895 896 hOldFont = SelectObject (hdc,self->hDefaultFont); 897 GetTextMetricsA(hdc, &tm); 898 self->textHeight = tm.tmHeight; 899 SelectObject (hdc, hOldFont); 900 ReleaseDC(0, hdc); 915 if (lpCreate->lpszName && 916 (len = lstrlenA ((LPCSTR)lpCreate->lpszName))) { 917 self->parts[0].text = COMCTL32_Alloc ((len + 1)*sizeof(WCHAR)); 918 lstrcpyAtoW (self->parts[0].text, (char*)lpCreate->lpszName); 919 } 920 } 921 922 hdc = GetDC(0); 923 if (hdc) { 924 TEXTMETRICA tm; 925 HFONT hOldFont; 926 927 hOldFont = SelectObject (hdc,self->hDefaultFont); 928 GetTextMetricsA(hdc, &tm); 929 self->textHeight = tm.tmHeight; 930 SelectObject (hdc, hOldFont); 931 ReleaseDC(0, hdc); 901 932 } 902 933 903 934 if (GetWindowLongA (hwnd, GWL_STYLE) & SBT_TOOLTIPS) { 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 935 self->hwndToolTip = 936 CreateWindowExA (0, TOOLTIPS_CLASSA, NULL, 0, 937 CW_USEDEFAULT, CW_USEDEFAULT, 938 CW_USEDEFAULT, CW_USEDEFAULT, 939 hwnd, 0, 940 GetWindowLongA (hwnd, GWL_HINSTANCE), NULL); 941 942 if (self->hwndToolTip) { 943 NMTOOLTIPSCREATED nmttc; 944 945 nmttc.hdr.hwndFrom = hwnd; 946 nmttc.hdr.idFrom = GetWindowLongA (hwnd, GWL_ID); 947 nmttc.hdr.code = NM_TOOLTIPSCREATED; 948 nmttc.hwndToolTips = self->hwndToolTip; 949 950 SendMessageA (GetParent (hwnd), WM_NOTIFY, 951 (WPARAM)nmttc.hdr.idFrom, (LPARAM)&nmttc); 952 } 922 953 } 923 954 … … 926 957 self->height = self->textHeight + 4 + VERT_BORDER; 927 958 MoveWindow (hwnd, lpCreate->x, lpCreate->y-1, 928 959 width, self->height, FALSE); 929 960 STATUSBAR_SetPartBounds (hwnd); 930 961 … … 993 1024 STATUSBAR_WMMouseMove (HWND hwnd, WPARAM wParam, LPARAM lParam) 994 1025 { 995 STATUSWINDOWINFO *infoPtr = STATUSBAR_GetInfoPtr (hwnd); 1026 STATUSWINDOWINFO *infoPtr = STATUSBAR_GetInfoPtr(hwnd); 1027 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 1028 1029 if (dwStyle & SBARS_SIZEGRIP) 1030 { 1031 RECT rect = STATUSBAR_GetSizeBox(hwnd); 1032 POINT point; 1033 1034 point.x = (SHORT)LOWORD(lParam); 1035 point.y = (SHORT)HIWORD(lParam); 1036 if (PtInRect(&rect,point)) SetCursor(LoadCursorA(0,IDC_SIZENWSEA)); 1037 } 996 1038 997 1039 if (infoPtr->hwndToolTip) … … 1242 1284 return STATUSBAR_SendNotify (hwnd, NM_DBLCLK); 1243 1285 1286 case WM_LBUTTONDOWN: 1287 return STATUSBAR_WMLButtonDown(hwnd,wParam,lParam); 1288 1244 1289 case WM_LBUTTONUP: 1245 1290 return STATUSBAR_SendNotify (hwnd, NM_CLICK);
Note:
See TracChangeset
for help on using the changeset viewer.