summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--window.c16
-rw-r--r--window.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/window.c b/window.c
index 790fa1bde..3ff9e4b29 100644
--- a/window.c
+++ b/window.c
@@ -1325,6 +1325,22 @@ void SendWindowMessage(WindowClass wnd_class, WindowNumber wnd_num, uint msg, ui
if (w != NULL) SendWindowMessageW(w, msg, wparam, lparam);
}
+/** Send a message from one window to another. The message will be sent
+ * to ALL windows of the windowclass specified in the first parameter
+ * @param wnd_class @see WindowClass class
+ * @param msg Specifies the message to be sent
+ * @param wparam Specifies additional message-specific information
+ * @param lparam Specifies additional message-specific information
+ */
+void SendWindowMessageClass(WindowClass wnd_class, uint msg, uint wparam, uint lparam)
+{
+ Window *w;
+
+ for (w = _windows; w != _last_window; w++) {
+ if (w->window_class == wnd_class) SendWindowMessageW(w, msg, wparam, lparam);
+ }
+}
+
static void HandleKeypress(uint32 key)
{
Window *w;
diff --git a/window.h b/window.h
index 210e54797..48f3fc204 100644
--- a/window.h
+++ b/window.h
@@ -607,6 +607,7 @@ void CallWindowEventNP(Window *w, int event);
void CallWindowTickEvent(void);
void SetWindowDirty(const Window *w);
void SendWindowMessage(WindowClass wnd_class, WindowNumber wnd_num, uint msg, uint wparam, uint lparam);
+void SendWindowMessageClass(WindowClass wnd_class, uint msg, uint wparam, uint lparam);
Window *FindWindowById(WindowClass cls, WindowNumber number);
void DeleteWindow(Window *w);