diff foosdk/sdk/foobar2000/helpers/CDialogResizeHelper.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/foobar2000/helpers/CDialogResizeHelper.h	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "WindowPositionUtils.h"
+
+#include <libPPUI/CDialogResizeHelper.h>
+
+template<typename TTracker> class CDialogResizeHelperTracking : public CDialogResizeHelper {
+public:
+	template<typename TParam, t_size paramCount, typename TCfgVar> CDialogResizeHelperTracking(const TParam (& src)[paramCount],CRect const& minMaxRange, TCfgVar & cfgVar) : CDialogResizeHelper(src, minMaxRange), m_tracker(cfgVar) {}
+	
+	BEGIN_MSG_MAP_EX(CDialogResizeHelperST)
+		CHAIN_MSG_MAP(CDialogResizeHelper)
+		CHAIN_MSG_MAP_MEMBER(m_tracker)
+	END_MSG_MAP()
+
+private:
+	TTracker m_tracker;
+};
+
+typedef CDialogResizeHelperTracking<cfgDialogSizeTracker> CDialogResizeHelperST;
+typedef CDialogResizeHelperTracking<cfgDialogPositionTracker> CDialogResizeHelperPT;
+typedef CDialogResizeHelperTracking<cfgWindowSizeTracker2> CDialogResizeHelperST2;
+
+#define REDRAW_DIALOG_ON_RESIZE() if (uMsg == WM_SIZE) RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_ERASE | RDW_ALLCHILDREN);