X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/73251d5d8f70ae9fca5775193f0c605c2ca25cee..01c034ad857128c51482a563befb374e38ebe668:/sizetip.c diff --git a/sizetip.c b/sizetip.c index 20ab423c..8a37b478 100644 --- a/sizetip.c +++ b/sizetip.c @@ -1,25 +1,27 @@ - #include #include #include #include +#include #include "putty.h" +#include "winstuff.h" -ATOM tip_class = 0; +static ATOM tip_class = 0; -HFONT tip_font; -COLORREF tip_bg; -COLORREF tip_text; +static HFONT tip_font; +static COLORREF tip_bg; +static COLORREF tip_text; -LRESULT CALLBACK SizeTipWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) +static LRESULT CALLBACK SizeTipWndProc(HWND hWnd, UINT nMsg, + WPARAM wParam, LPARAM lParam) { switch (nMsg) { - case WM_ERASEBKGND: + case WM_ERASEBKGND: return TRUE; - case WM_PAINT: + case WM_PAINT: { HBRUSH hbr; HGDIOBJ holdbr; @@ -41,7 +43,7 @@ LRESULT CALLBACK SizeTipWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lPar Rectangle(hdc, cr.left, cr.top, cr.right, cr.bottom); wtlen = GetWindowTextLength(hWnd); - wt = (LPTSTR)malloc((wtlen+1)*sizeof(TCHAR)); + wt = (LPTSTR)smalloc((wtlen+1)*sizeof(TCHAR)); GetWindowText(hWnd, wt, wtlen+1); SetTextColor(hdc, tip_text); @@ -49,7 +51,7 @@ LRESULT CALLBACK SizeTipWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lPar TextOut(hdc, cr.left+3, cr.top+3, wt, wtlen); - free(wt); + sfree(wt); SelectObject(hdc, holdbr); DeleteObject(hbr); @@ -58,15 +60,15 @@ LRESULT CALLBACK SizeTipWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lPar } return 0; - case WM_NCHITTEST: + case WM_NCHITTEST: return HTTRANSPARENT; - case WM_DESTROY: + case WM_DESTROY: DeleteObject(tip_font); tip_font = NULL; break; - case WM_SETTEXT: + case WM_SETTEXT: { LPCTSTR str = (LPCTSTR)lParam; SIZE sz; @@ -86,19 +88,19 @@ LRESULT CALLBACK SizeTipWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lPar return DefWindowProc(hWnd, nMsg, wParam, lParam); } -HWND tip_wnd = NULL; -int tip_enabled = 0; +static HWND tip_wnd = NULL; +static int tip_enabled = 0; void UpdateSizeTip(HWND src, int cx, int cy) { - TCHAR str[16]; + TCHAR str[32]; if (!tip_enabled) return; if (!tip_wnd) { NONCLIENTMETRICS nci; - // First make sure the window class is registered + /* First make sure the window class is registered */ if (!tip_class) { WNDCLASS wc; @@ -106,7 +108,7 @@ void UpdateSizeTip(HWND src, int cx, int cy) wc.lpfnWndProc = SizeTipWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; - wc.hInstance = putty_inst; + wc.hInstance = hinst; wc.hIcon = NULL; wc.hCursor = NULL; wc.hbrBackground = NULL; @@ -116,27 +118,28 @@ void UpdateSizeTip(HWND src, int cx, int cy) tip_class = RegisterClass(&wc); } -// // Default values based on Windows Standard color scheme -// -// tip_font = GetStockObject(SYSTEM_FONT); -// tip_bg = RGB(255, 255, 225); -// tip_text = RGB(0, 0, 0); +#if 0 + /* Default values based on Windows Standard color scheme */ + + tip_font = GetStockObject(SYSTEM_FONT); + tip_bg = RGB(255, 255, 225); + tip_text = RGB(0, 0, 0); +#endif - // Prepare other GDI objects and drawing info + /* Prepare other GDI objects and drawing info */ tip_bg = GetSysColor(COLOR_INFOBK); tip_text = GetSysColor(COLOR_INFOTEXT); - + memset(&nci, 0, sizeof(NONCLIENTMETRICS)); nci.cbSize = sizeof(NONCLIENTMETRICS); SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &nci, 0); tip_font = CreateFontIndirect(&nci.lfStatusFont); } - // Generate the tip text - - _sntprintf(str, 16, "%dx%d", cx, cy); + /* Generate the tip text */ + sprintf(str, "%dx%d", cx, cy); if (!tip_wnd) { HDC hdc; @@ -144,7 +147,7 @@ void UpdateSizeTip(HWND src, int cx, int cy) RECT wr; int ix, iy; - // calculate the tip's size + /* calculate the tip's size */ hdc = CreateCompatibleDC(NULL); GetTextExtentPoint32(hdc, str, _tcslen(str), &sz); @@ -158,17 +161,17 @@ void UpdateSizeTip(HWND src, int cx, int cy) iy = wr.top - sz.cy; if (iy<16) iy = 16; - // Create the tip window + /* Create the tip window */ tip_wnd = CreateWindowEx(WS_EX_TOOLWINDOW|WS_EX_TOPMOST, MAKEINTRESOURCE(tip_class), str, WS_POPUP, - ix, iy, sz.cx, sz.cy, - NULL, NULL, putty_inst, NULL); + ix, iy, sz.cx, sz.cy, + NULL, NULL, hinst, NULL); ShowWindow(tip_wnd, SW_SHOWNOACTIVATE); } else { - // Tip already exists, just set the text + /* Tip already exists, just set the text */ SetWindowText(tip_wnd, str); } @@ -180,6 +183,6 @@ void EnableSizeTip(int bEnable) DestroyWindow(tip_wnd); tip_wnd = NULL; } - + tip_enabled = bEnable; }