2
3
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-14 02:27:40 -04:00

Implement client window flashing

This will be used in python to grab the player's attention on PMs or other
interesting events.
This commit is contained in:
2012-03-20 00:00:39 -04:00
parent 6039d62bc2
commit 5beda0ab87
6 changed files with 39 additions and 0 deletions

View File

@ -772,6 +772,11 @@ hsBool plClient::MsgReceive(plMessage* msg)
} }
break; break;
case plClientMsg::kFlashWindow:
{
FlashWindow();
}
break;
} }
return true; return true;
} }
@ -2437,6 +2442,17 @@ void plClient::WindowActivate(bool active)
fWindowActive = active; fWindowActive = active;
} }
void plClient::FlashWindow()
{
#ifdef HS_BUILD_FOR_WIN32
FLASHWINFO info;
info.cbSize = sizeof(info);
info.dwFlags = FLASHW_TIMERNOFG | FLASHW_ALL;
info.hwnd = fWindowHndl;
info.uCount = -1;
FlashWindowEx(&info);
#endif
}
//============================================================================ //============================================================================
void plClient::IOnAsyncInitComplete () { void plClient::IOnAsyncInitComplete () {

View File

@ -290,6 +290,7 @@ public:
virtual void WindowActivate(bool active); virtual void WindowActivate(bool active);
virtual hsBool WindowActive() const { return fWindowActive; } virtual hsBool WindowActive() const { return fWindowActive; }
void FlashWindow();
void SetMessagePumpProc( plMessagePumpProc proc ) { fMessagePumpProc = proc; } void SetMessagePumpProc( plMessagePumpProc proc ) { fMessagePumpProc = proc; }
void ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync = false); void ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync = false);
void ResizeDisplayDevice(int Width, int Height, hsBool Windowed); void ResizeDisplayDevice(int Width, int Height, hsBool Windowed);

View File

@ -721,6 +721,13 @@ void cyMisc::ExcludeRegionSetNow(pyKey& sender, pyKey& exKey, uint16_t state)
plgDispatch::MsgSend( msg ); // whoosh... off it goes plgDispatch::MsgSend( msg ); // whoosh... off it goes
} }
void cyMisc::FlashWindow()
{
plKey clientKey = hsgResMgr::ResMgr()->FindKey(kClient_KEY);
plClientMsg* pMsg = new plClientMsg(plClientMsg::kFlashWindow);
pMsg->Send(clientKey); // whoosh... off it goes
}
#include "hsTimer.h" #include "hsTimer.h"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //

View File

@ -244,6 +244,15 @@ public:
// //
static hsBool WasLocallyNotified(pyKey &selfkey); static hsBool WasLocallyNotified(pyKey &selfkey);
/////////////////////////////////////////////////////////////////////////////
//
// Function : FlashWindow
// PARAMETERS :
//
// PURPOSE : Flashes the client window if it is not focused
//
static void FlashWindow();
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Function : GetClientName // Function : GetClientName

View File

@ -48,6 +48,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include <Python.h> #include <Python.h>
PYTHON_BASIC_GLOBAL_METHOD_DEFINITION(PtFlashWindow, cyMisc::FlashWindow, "Flashes the client window if it is not focused");
PYTHON_GLOBAL_METHOD_DEFINITION_NOARGS(PtGetAgeName, "DEPRECIATED - use ptDniInfoSource instead") PYTHON_GLOBAL_METHOD_DEFINITION_NOARGS(PtGetAgeName, "DEPRECIATED - use ptDniInfoSource instead")
{ {
return PyString_FromString(cyMisc::GetAgeName()); return PyString_FromString(cyMisc::GetAgeName());
@ -514,6 +516,8 @@ PYTHON_GLOBAL_METHOD_DEFINITION(PtDumpLogs, args, "Params: folder\nDumps all cur
void cyMisc::AddPlasmaMethods(std::vector<PyMethodDef> &methods) void cyMisc::AddPlasmaMethods(std::vector<PyMethodDef> &methods)
{ {
PYTHON_GLOBAL_METHOD_NOARGS(methods, PtFlashWindow);
PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetAgeName); PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetAgeName);
PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetAgeInfo); PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetAgeInfo);
PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetAgeTime); PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetAgeTime);

View File

@ -94,6 +94,8 @@ public:
kEnableRenderScene, kEnableRenderScene,
kResetGraphicsDevice, kResetGraphicsDevice,
kSetGraphicsDefaults, kSetGraphicsDefaults,
kFlashWindow,
}; };
// graphics settings fields // graphics settings fields