aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/setup/spage_assoc.h
diff options
context:
space:
mode:
authorJean-Francois Mauguit <jfmauguit@mac.com>2024-09-24 09:03:25 -0400
committerGitHub <noreply@github.com>2024-09-24 09:03:25 -0400
commitbab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/setup/spage_assoc.h
parent4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff)
parent20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff)
downloadwinamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Winamp/setup/spage_assoc.h')
-rw-r--r--Src/Winamp/setup/spage_assoc.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/Src/Winamp/setup/spage_assoc.h b/Src/Winamp/setup/spage_assoc.h
new file mode 100644
index 00000000..f18270b8
--- /dev/null
+++ b/Src/Winamp/setup/spage_assoc.h
@@ -0,0 +1,57 @@
+#ifndef WINAMP_ASSOCIATIONS_SETUP_PAGE_HEADER
+#define WINAMP_ASSOCIATIONS_SETUP_PAGE_HEADER
+
+#include "./ifc_setuppage.h"
+#include <commctrl.h>
+
+#define TYPE_CATEGORIES_NUM 5
+
+class setup_page_assoc : public ifc_setuppage
+{
+public:
+ setup_page_assoc();
+ virtual ~setup_page_assoc();
+
+public:
+ size_t AddRef();
+ size_t Release();
+ HRESULT GetName(bool bShort, const wchar_t **pszName);
+ HRESULT Save(HWND hwndText);
+ HRESULT CreateView(HWND hwndParent, HWND *phwnd);
+ HRESULT Revert(void);
+ HRESULT IsDirty(void);
+ HRESULT Validate(void);
+
+protected:
+ INT_PTR PageDlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
+ INT_PTR OnInitDialog(HWND hwndFocus, LPARAM lParam);
+ void OnDestroy(void);
+ void OnSize(UINT nType, INT cx, INT cy);
+ void OnCommand(INT nCtrlID, INT nEvntID, HWND hwndCtrl);
+ BOOL OnNotify(INT nCtrlID, NMHDR *pnmh, LRESULT *pResult);
+
+ BOOL TreeView_OnClick(NMHDR *pnmh);
+ void TreeView_OnItemStateClick(HWND hwndTree, HTREEITEM hItem);
+ BOOL TreeView_OnKeyDown(NMTVKEYDOWN *ptvkd);
+ INT TreeView_OnCustomDraw(NMTVCUSTOMDRAW *ptvcd);
+
+ void UpdateUI(void);
+
+private:
+ size_t ref;
+ HWND hwnd;
+ wchar_t *pszTypes;
+ WORD *pMeta;
+ BYTE expanded[TYPE_CATEGORIES_NUM];
+ wchar_t szTopExt[32];
+ wchar_t szCaretExt[32];
+ BOOL bRegCD;
+ BOOL bAgent;
+ BOOL bExplorerMenu;
+
+protected:
+ friend static INT_PTR WINAPI DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ RECVS_DISPATCH;
+};
+
+#endif //WINAMP_ASSOCIATIONS_SETUP_PAGE_HEADER \ No newline at end of file