diff options
| author | Pietro Gagliardi <[email protected]> | 2014-08-21 13:01:50 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-08-21 13:01:50 -0400 |
| commit | 3a16648b83748c2b771cbd17b6b120318aeede20 (patch) | |
| tree | 0dafc1fe86bc6ff5a5982e804a07221948772155 /redo/area_windows.c | |
| parent | 5ddef4113332035429ac54b5ba62f4539eb20da0 (diff) | |
Implemented Area.Repaint() on Windows.
Diffstat (limited to 'redo/area_windows.c')
| -rw-r--r-- | redo/area_windows.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/redo/area_windows.c b/redo/area_windows.c index ce538db..7e49bff 100644 --- a/redo/area_windows.c +++ b/redo/area_windows.c @@ -289,10 +289,10 @@ static void adjustAreaScrollbars(HWND hwnd, void *data) SetScrollInfo(hwnd, SB_VERT, &si, TRUE); } -void repaintArea(HWND hwnd) +void repaintArea(HWND hwnd, RECT *r) { // NULL - the whole area; TRUE - have windows erase if possible - if (InvalidateRect(hwnd, NULL, TRUE) == 0) + if (InvalidateRect(hwnd, r, TRUE) == 0) xpanic("error flagging Area as needing repainting after event", GetLastError()); if (UpdateWindow(hwnd) == 0) xpanic("error repainting Area after event", GetLastError()); @@ -386,10 +386,16 @@ static LRESULT CALLBACK areaWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM return (LRESULT) areaKeyEvent(data, TRUE, wParam, lParam); case msgAreaSizeChanged: adjustAreaScrollbars(hwnd, data); - repaintArea(hwnd); // this calls for an update + repaintArea(hwnd, NULL); // this calls for an update + return 0; + case msgAreaGetScroll: + getScrollPos(hwnd, (int *) wParam, (int *) lParam); + return 0; + case msgAreaRepaint: + repaintArea(hwnd, (RECT *) lParam); return 0; case msgAreaRepaintAll: - repaintArea(hwnd); + repaintArea(hwnd, NULL); return 0; default: return DefWindowProcW(hwnd, uMsg, wParam, lParam); |
