annotate foosdk/sdk/foobar2000/foo_sample/preferences.cpp @ 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #include "stdafx.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include <helpers/advconfig_impl.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 #include <SDK/cfg_var.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 #ifdef _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 #include "resource.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 #include <helpers/atl-misc.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 #include <helpers/DarkMode.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 #endif // _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 // Sample preferences interface: two meaningless configuration settings accessible through a preferences page and one accessible through advanced preferences.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 // Dark Mode:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 // (1) Add fb2k::CDarkModeHooks member.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 // (2) Initialize it in our WM_INITDIALOG handler.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 // (3) Tell foobar2000 that this prefernces page supports dark mode, by returning correct get_state() flags.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 // That's all.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 // These GUIDs identify the variables within our component's configuration file.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 static constexpr GUID guid_cfg_bogoSetting1 = { 0xbd5c777, 0x735c, 0x440d, { 0x8c, 0x71, 0x49, 0xb6, 0xac, 0xff, 0xce, 0xb8 } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 static constexpr GUID guid_cfg_bogoSetting2 = { 0x752f1186, 0x9f61, 0x4f91, { 0xb3, 0xee, 0x2f, 0x25, 0xb1, 0x24, 0x83, 0x5d } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 // This GUID identifies our Advanced Preferences branch (replace with your own when reusing code).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 static constexpr GUID guid_advconfig_branch = { 0x28564ced, 0x4abf, 0x4f0c, { 0xa4, 0x43, 0x98, 0xda, 0x88, 0xe2, 0xcd, 0x39 } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 // This GUID identifies our Advanced Preferences setting (replace with your own when reusing code) as well as this setting's storage within our component's configuration file.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 static constexpr GUID guid_cfg_bogoSetting3 = { 0xf7008963, 0xed60, 0x4084, { 0xa8, 0x5d, 0xd1, 0xcd, 0xc5, 0x51, 0x22, 0xca } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 static constexpr GUID guid_cfg_bogoSetting4 = { 0x99e206f8, 0xd7be, 0x47e6, { 0xb5, 0xfe, 0xf4, 0x41, 0x5f, 0x6c, 0x16, 0xed } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 static constexpr GUID guid_cfg_bogoSetting5 = { 0x7369ad25, 0x9e81, 0x4e2f, { 0x8b, 0xe7, 0x95, 0xcb, 0x81, 0x99, 0x9b, 0x1b } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 static constexpr GUID guid_cfg_bogoRadio = { 0x4c18b9ab, 0xf823, 0x4d05, { 0xb6, 0x18, 0x14, 0xb9, 0x4c, 0xad, 0xa2, 0xaa } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 static constexpr GUID guid_cfg_bogoRadio1 = { 0xdd0a3a95, 0x1546, 0x4f25, { 0xa6, 0x8c, 0x23, 0xcf, 0x3d, 0xa5, 0x8f, 0x59 } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 static constexpr GUID guid_cfg_bogoRadio2 = { 0xc35e1689, 0xb96f, 0x4bf4, { 0x95, 0xfb, 0xb7, 0x8e, 0x83, 0xc5, 0x2c, 0x7d } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 static constexpr GUID guid_cfg_bogoRadio3 = { 0x790fe179, 0x9908, 0x47e2, { 0x9f, 0xde, 0xce, 0xe1, 0x3f, 0x9a, 0xfc, 0x5b } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 // defaults
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 constexpr int default_cfg_bogo1 = 1337,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 default_cfg_bogo2 = 666,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 default_cfg_bogo3 = 42;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 static constexpr char default_cfg_bogo4[] = "foobar";
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 static constexpr bool default_cfg_bogo5 = false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 // Advanced preferences order
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 enum {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 order_bogo3,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 order_bogo4,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 order_bogo5,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 order_bogoRadio
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 enum {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 order_bogoRadio1,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 order_bogoRadio2,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 order_bogoRadio3,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 namespace foo_sample { // accessed also from Mac specific code hence not static
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 cfg_uint cfg_bogoSetting1(guid_cfg_bogoSetting1, default_cfg_bogo1), cfg_bogoSetting2(guid_cfg_bogoSetting2, default_cfg_bogo2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 using namespace foo_sample;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 static advconfig_branch_factory g_advconfigBranch("Sample Component", guid_advconfig_branch, advconfig_branch::guid_branch_tools, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 static advconfig_integer_factory cfg_bogoSetting3("Bogo setting 3","foo_sample.bogo3", guid_cfg_bogoSetting3, guid_advconfig_branch, order_bogo3, default_cfg_bogo3, 0 /*minimum value*/, 9999 /*maximum value*/);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66 static advconfig_string_factory cfg_bogoSetting4("Bogo setting 4", "foo_sample.bogo4", guid_cfg_bogoSetting4, guid_advconfig_branch, order_bogo4, default_cfg_bogo4);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 static advconfig_checkbox_factory cfg_bogoSetting5("Bogo setting 5", "foo_sample.bogo5", guid_cfg_bogoSetting5, guid_advconfig_branch, order_bogo5, default_cfg_bogo5);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 static advconfig_branch_factory cfg_bogoRadioBranch("Bogo radio", guid_cfg_bogoRadio, guid_advconfig_branch, order_bogoRadio);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 static advconfig_radio_factory cfg_bogoRadio1("Radio 1", "foo_sample.bogoRaidio.1", guid_cfg_bogoRadio1, guid_cfg_bogoRadio, order_bogoRadio1, true);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 static advconfig_radio_factory cfg_bogoRadio2("Radio 2", "foo_sample.bogoRaidio.2", guid_cfg_bogoRadio2, guid_cfg_bogoRadio, order_bogoRadio2, false);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 static advconfig_radio_factory cfg_bogoRadio3("Radio 3", "foo_sample.bogoRaidio.3", guid_cfg_bogoRadio3, guid_cfg_bogoRadio, order_bogoRadio3, false);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 #ifdef _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 class CMyPreferences : public CDialogImpl<CMyPreferences>, public preferences_page_instance {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 //Constructor - invoked by preferences_page_impl helpers - don't do Create() in here, preferences_page_impl does this for us
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 CMyPreferences(preferences_page_callback::ptr callback) : m_callback(callback) {}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79 //Note that we don't bother doing anything regarding destruction of our class.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80 //The host ensures that our dialog is destroyed first, then the last reference to our preferences_page_instance object is released, causing our object to be deleted.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83 //dialog resource ID
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 enum {IDD = IDD_MYPREFERENCES};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 // preferences_page_instance methods (not all of them - get_wnd() is supplied by preferences_page_impl helpers)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 t_uint32 get_state();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 void apply();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 void reset();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 //WTL message map
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 BEGIN_MSG_MAP_EX(CMyPreferences)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 MSG_WM_INITDIALOG(OnInitDialog)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 COMMAND_HANDLER_EX(IDC_BOGO1, EN_CHANGE, OnEditChange)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 COMMAND_HANDLER_EX(IDC_BOGO2, EN_CHANGE, OnEditChange)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95 END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 BOOL OnInitDialog(CWindow, LPARAM);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 void OnEditChange(UINT, int, CWindow);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 bool HasChanged();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 void OnChanged();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 const preferences_page_callback::ptr m_callback;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 // Dark mode hooks object, must be a member of dialog class.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 fb2k::CDarkModeHooks m_dark;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 BOOL CMyPreferences::OnInitDialog(CWindow, LPARAM) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 // Enable dark mode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 // One call does it all, applies all relevant hacks automatically
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 m_dark.AddDialogWithControls(*this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 SetDlgItemInt(IDC_BOGO1, (UINT) cfg_bogoSetting1, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 SetDlgItemInt(IDC_BOGO2, (UINT) cfg_bogoSetting2, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 void CMyPreferences::OnEditChange(UINT, int, CWindow) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 // not much to do here
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 OnChanged();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 t_uint32 CMyPreferences::get_state() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 // IMPORTANT: Always return dark_mode_supported - tell foobar2000 that this preferences page is dark mode compliant.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 t_uint32 state = preferences_state::resettable | preferences_state::dark_mode_supported;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 if (HasChanged()) state |= preferences_state::changed;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 return state;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 void CMyPreferences::reset() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 SetDlgItemInt(IDC_BOGO1, default_cfg_bogo1, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 SetDlgItemInt(IDC_BOGO2, default_cfg_bogo2, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 OnChanged();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 void CMyPreferences::apply() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 cfg_bogoSetting1 = GetDlgItemInt(IDC_BOGO1, NULL, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 cfg_bogoSetting2 = GetDlgItemInt(IDC_BOGO2, NULL, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 OnChanged(); //our dialog content has not changed but the flags have - our currently shown values now match the settings so the apply button can be disabled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 bool CMyPreferences::HasChanged() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 //returns whether our dialog content is different from the current configuration (whether the apply button should be enabled or not)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 return GetDlgItemInt(IDC_BOGO1, NULL, FALSE) != cfg_bogoSetting1 || GetDlgItemInt(IDC_BOGO2, NULL, FALSE) != cfg_bogoSetting2;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 void CMyPreferences::OnChanged() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 //tell the host that our state has changed to enable/disable the apply button appropriately.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 m_callback->on_state_changed();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 class preferences_page_myimpl : public preferences_page_impl<CMyPreferences> {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 // preferences_page_impl<> helper deals with instantiation of our dialog; inherits from preferences_page_v3.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 const char * get_name() {return "Sample Component";}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 GUID get_guid() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 // This is our GUID. Replace with your own when reusing the code.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 return GUID { 0x7702c93e, 0x24dc, 0x48ed, { 0x8d, 0xb1, 0x3f, 0x27, 0xb3, 0x8c, 0x7c, 0xc9 } };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 GUID get_parent_guid() {return guid_tools;}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 static preferences_page_factory_t<preferences_page_myimpl> g_preferences_page_myimpl_factory;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 #endif // _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166