summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-19 15:47:54 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-19 15:50:28 +0200
commit2f6812f82665ac9786dd2ec86d3e536fb01a861b (patch)
treef60d317ab7e2e60f5790319958ed1221e2994696
parent9b6fbe3b5fd7e8bcad7f0f0993409f4d6777c42f (diff)
window: add paint vfunc
-rw-r--r--alf/alf.h1
-rw-r--r--alf/alfwindow.cpp7
2 files changed, 6 insertions, 2 deletions
diff --git a/alf/alf.h b/alf/alf.h
index a23eb8c..4102a1e 100644
--- a/alf/alf.h
+++ b/alf/alf.h
@@ -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