Make memory management uniform: _everything_ now goes through the
[u/mdw/putty] / sizetip.c
index 20ab423..8a37b47 100644 (file)
--- a/sizetip.c
+++ b/sizetip.c
@@ -1,25 +1,27 @@
-
 #include <windows.h>
 #include <winreg.h>
 #include <tchar.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 #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;
 }