diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-04-19 15:47:54 +0200 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-04-19 15:50:28 +0200 |
| commit | 2f6812f82665ac9786dd2ec86d3e536fb01a861b (patch) | |
| tree | f60d317ab7e2e60f5790319958ed1221e2994696 /alf | |
| parent | 9b6fbe3b5fd7e8bcad7f0f0993409f4d6777c42f (diff) | |
window: add paint vfunc
Diffstat (limited to 'alf')
| -rw-r--r-- | alf/alf.h | 1 | ||||
| -rw-r--r-- | alf/alfwindow.cpp | 7 |
2 files changed, 6 insertions, 2 deletions
@@ -22,6 +22,7 @@ typedef struct { LRESULT (*command)(void * /*closure*/, HWND /*window*/, WORD /*notificationcode*/, WORD /*sourceid*/, HWND /*control*/); LRESULT (*notify)(void * /*closure*/, HWND /*window*/, WPARAM /*sourceid*/, NMHDR *); BOOL (*pretranslatemessage)(void * /*closure*/, HWND /*window*/, MSG * /*message*/); + void (*paint)(void * /*closure*/, HWND, HDC, RECT *); } ALFWindowVTable; typedef struct { diff --git a/alf/alfwindow.cpp b/alf/alfwindow.cpp index c3f8573..41d13e8 100644 --- a/alf/alfwindow.cpp +++ b/alf/alfwindow.cpp @@ -153,8 +153,11 @@ ALF_WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) static void ALF_Window_Paint(ALFWindowPriv *priv, HWND hwnd, HDC dc, RECT *r) { - (void)hwnd; - ALF_FillRect(dc, r, priv->bgcolor); + if (priv->vtbl && priv->vtbl->paint) { + priv->vtbl->paint(priv->closure, hwnd, dc, r); + } else { + ALF_FillRect(dc, r, priv->bgcolor); + } } LRESULT |
