diff options
| author | Pietro Gagliardi <[email protected]> | 2014-08-04 20:10:23 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-08-04 20:10:23 -0400 |
| commit | 91f1a34003d56a5778d1ae48f7d18c3f27eea1ed (patch) | |
| tree | c49f88038ff3c42bc4c62216987b311355bb43f6 /redo/sizing_windows.c | |
| parent | ef513c433732f3a12f2d83417b9b1fb92d152930 (diff) | |
Re-added base units calculation to the resizing code now that container stores a HWND again.
Diffstat (limited to 'redo/sizing_windows.c')
| -rw-r--r-- | redo/sizing_windows.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/redo/sizing_windows.c b/redo/sizing_windows.c index 60d57f3..a2cd2cf 100644 --- a/redo/sizing_windows.c +++ b/redo/sizing_windows.c @@ -3,21 +3,14 @@ #include "winapi_windows.h" #include "_cgo_export.h" -/* TODO rename to sizer_windows.c and move all but the first function to control_windows.c */ +/* TODO figure out where these should go */ -BOOL baseUnitsCalculated = FALSE; -int baseX; -int baseY; - -/* called by newWindow() so we can calculate base units when we have a window */ -void calculateBaseUnits(HWND hwnd) +void calculateBaseUnits(HWND hwnd, int *baseX, int *baseY) { HDC dc; HFONT prevFont; TEXTMETRICW tm; - if (baseUnitsCalculated) - return; dc = GetDC(hwnd); if (dc == NULL) xpanic("error getting DC for preferred size calculations", GetLastError()); @@ -26,13 +19,12 @@ void calculateBaseUnits(HWND hwnd) xpanic("error loading control font into device context for preferred size calculation", GetLastError()); if (GetTextMetricsW(dc, &tm) == 0) xpanic("error getting text metrics for preferred size calculations", GetLastError()); - baseX = (int) tm.tmAveCharWidth; /* TODO not optimal; third reference below has better way */ - baseY = (int) tm.tmHeight; + *baseX = (int) tm.tmAveCharWidth; /* TODO not optimal; third reference below has better way */ + *baseY = (int) tm.tmHeight; if (SelectObject(dc, prevFont) != controlFont) xpanic("error restoring previous font into device context after preferred size calculations", GetLastError()); if (ReleaseDC(hwnd, dc) == 0) xpanic("error releasing DC for preferred size calculations", GetLastError()); - baseUnitsCalculated = TRUE; } void moveWindow(HWND hwnd, int x, int y, int width, int height) |
