Mercurial > foo_out_sdl
view foosdk/sdk/foobar2000/shared/modal_dialog.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 |
line wrap: on
line source
#include "shared.h" static DWORD g_main_thread = GetCurrentThreadId(); static t_modal_dialog_entry g_status = {0,false}; static bool TestMainThread() { if (GetCurrentThreadId() == g_main_thread) return true; OutputDebugString(TEXT("This function can be called only from main thread.\n")); return false; } HWND SHARED_EXPORT FindOwningPopup(HWND p_wnd) { return pfc::findOwningPopup(p_wnd); } void SHARED_EXPORT PokeWindow(HWND p_wnd) { p_wnd = FindOwningPopup(p_wnd); if (IsWindowEnabled(p_wnd)) { // SetForegroundWindow(p_wnd); SetActiveWindow(p_wnd); FlashWindow(p_wnd,FALSE); } else { HWND child = GetWindow(p_wnd,GW_ENABLEDPOPUP); if (child != 0) { // SetForegroundWindow(child); SetActiveWindow(child); FlashWindow(child,FALSE); } } } extern "C" { void SHARED_EXPORT ModalDialog_Switch(t_modal_dialog_entry & p_entry) { if (TestMainThread()) pfc::swap_t(p_entry,g_status); } void SHARED_EXPORT ModalDialog_PokeExisting() { if (TestMainThread()) { if (g_status.m_in_use && g_status.m_wnd_to_poke != 0) { PokeWindow(g_status.m_wnd_to_poke); MessageBeep(0); } } } bool SHARED_EXPORT ModalDialog_CanCreateNew() { if (TestMainThread()) return !g_status.m_in_use; else return false; } }
