summaryrefslogtreecommitdiff
path: root/alf/alf.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2019-01-02 17:44:51 +0100
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2019-01-02 17:44:51 +0100
commit2517546be1599c63843e45bf1ac6c9ddb9c0dbf4 (patch)
treea9102695a6b73e309ecf2acb9a4ce9f3c094fc91 /alf/alf.cpp
parent89d174ab47af8a31ba316e03e36883e6924171bf (diff)
implement cleanup functions
Diffstat (limited to 'alf/alf.cpp')
-rw-r--r--alf/alf.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/alf/alf.cpp b/alf/alf.cpp
index 36e17ac..981d1e7 100644
--- a/alf/alf.cpp
+++ b/alf/alf.cpp
@@ -25,6 +25,9 @@ ALF_DestroyWindowPriv(ALFWindowPriv *priv)
}
ALF_ListInit(&priv->widgets);
+ if (priv->fonts.hMessageFont)
+ DeleteObject(priv->fonts.hMessageFont);
+
HeapFree(GetProcessHeap(), 0, priv->layout.columns);
HeapFree(GetProcessHeap(), 0, priv->layout.rows);
HeapFree(GetProcessHeap(), 0, priv);
@@ -540,6 +543,13 @@ ALF_CreateApplication(HINSTANCE hInstance)
return app;
}
+void
+ALF_TeardownApplication(ALFAPP app)
+{
+ UnregisterClass(app->comboClass, app->hInstance);
+ HeapFree(GetProcessHeap(), 0, app->compatFn);
+ HeapFree(GetProcessHeap(), 0, app);
+}
void
ALF_BuildRandomClassName(const TCHAR *prefix, TCHAR *buf)
@@ -601,6 +611,18 @@ ALF_RegisterWindowClass(ALFAPP app, const ALFWindowClassParams *params)
return MAKEINTATOM(classatom);
}
+void
+ALF_UnregisterWindowClass(ALFAPP app, LPCTSTR className)
+{
+ HWND tmp = CreateWindowEx(0, className, TEXT("dummy"), 0, 0, 0, 0, 0, NULL, 0, app->hInstance, 0);
+ ALFWindowVTable *pvtbl = (ALFWindowVTable*)GetClassLongPtr(tmp, 0);
+ DestroyWindow(tmp);
+
+ HeapFree(GetProcessHeap(), 0, pvtbl);
+
+ UnregisterClass(className, app->hInstance);
+}
+
HWND ALF_InstantiateWindow(ALFAPP app, LPCTSTR className, HWND hwndParent, void *closure)
{
return CreateWindowEx(0,
@@ -615,6 +637,12 @@ HWND ALF_InstantiateWindow(ALFAPP app, LPCTSTR className, HWND hwndParent, void
closure);
}
+void
+ALF_DestroyWindow(HWND win)
+{
+ DestroyWindow(win);
+}
+
ALFAPP
ALF_ApplicationFromWindow(HWND hwnd)
{