annotate foosdk/sdk/foobar2000/SDK/modeless_dialog.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
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 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #ifdef _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 //! Service for plugging your nonmodal dialog windows into main app loop to receive IsDialogMessage()-translated messages.\n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 //! Note that all methods are valid from main app thread only.\n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 //! Usage: call the static methods - modeless_dialog_manager::g_add / modeless_dialog_manager::g_remove.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 class NOVTABLE modeless_dialog_manager : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 FB2K_MAKE_SERVICE_COREAPI(modeless_dialog_manager);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 //! Adds specified window to global list of windows to receive IsDialogMessage().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 virtual void add(HWND p_wnd) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 //! Removes specified window from global list of windows to receive IsDialogMessage().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 virtual void remove(HWND p_wnd) = 0;
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 //! Static helper; see add().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 static void g_add(HWND p_wnd) {modeless_dialog_manager::get()->add(p_wnd);}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 //! Static helper; see remove().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 static void g_remove(HWND p_wnd) {modeless_dialog_manager::get()->remove(p_wnd);}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18
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 #endif