summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-08-30 03:30:43 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-08-30 03:30:43 +0000
commit6760faeb4b36dac9e1c226d7d9485a47be28bf24 (patch)
tree1105c08f109882b0b26b58c12a35a8161af18eaa /gdk
parent4e3d7dd0884bf9545c30744a10494e1c2b9c09a2 (diff)
downloadgtk+-6760faeb4b36dac9e1c226d7d9485a47be28bf24.tar.gz
Add a function to beep on a window. For X11, implement this with XkbBell.
2006-08-29 Matthias Clasen <mclasen@redhat.com> * gdk/gdkwindow.h: * gdk/gdk.symbols: * gdk/directfb/gdkwindow-directfb.c (gdk_window_beep): * gdk/win32/gdkwindow-win32.c (gdk_window_beep): * gdk/quartz/gdkwindow-quartz.c (gdk_window_beep): * gdk/x11/gdkwindow-x11.c (gdk_window_beep): Add a function to beep on a window. For X11, implement this with XkbBell. (#353455, Mariano Suárez-Alvarez)
Diffstat (limited to 'gdk')
-rw-r--r--gdk/directfb/gdkwindow-directfb.c6
-rw-r--r--gdk/gdk.symbols1
-rw-r--r--gdk/gdkwindow.h1
-rw-r--r--gdk/quartz/gdkwindow-quartz.c6
-rw-r--r--gdk/win32/gdkwindow-win32.c6
-rw-r--r--gdk/x11/gdkwindow-x11.c28
6 files changed, 48 insertions, 0 deletions
diff --git a/gdk/directfb/gdkwindow-directfb.c b/gdk/directfb/gdkwindow-directfb.c
index edbc3901a2..a374400b32 100644
--- a/gdk/directfb/gdkwindow-directfb.c
+++ b/gdk/directfb/gdkwindow-directfb.c
@@ -2990,6 +2990,12 @@ gdk_window_impl_directfb_paintable_init (GdkPaintableIface *iface)
iface->process_updates = gdk_window_impl_directfb_process_updates;
}
+void
+gdk_window_beep (GdkWindow *window)
+{
+ gdk_display_beep (GDK_WINDOW_DISPLAY (window));
+}
+
#define __GDK_WINDOW_X11_C__
#include "gdkaliasdef.c"
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index 52924ac4a3..103ed0cb5e 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -738,6 +738,7 @@ gdk_window_set_focus_on_map
gdk_window_set_icon_list
gdk_window_set_icon
gdk_window_set_icon_name
+gdk_window_beep
gdk_window_iconify
gdk_window_deiconify
gdk_window_stick
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h
index b0962bcfde..8380aa56e3 100644
--- a/gdk/gdkwindow.h
+++ b/gdk/gdkwindow.h
@@ -552,6 +552,7 @@ void gdk_window_set_functions (GdkWindow *window,
GList * gdk_window_get_toplevels (void);
#endif
+void gdk_window_beep (GdkWindow *window);
void gdk_window_iconify (GdkWindow *window);
void gdk_window_deiconify (GdkWindow *window);
void gdk_window_stick (GdkWindow *window);
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index b3428f7152..6fc58db27e 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -1993,3 +1993,9 @@ gdk_window_destroy_notify (GdkWindow *window)
* -[GdkQuartzView dealloc], although I suspect that currently they leak
* anyway. */
}
+
+void
+gdk_window_beep (GdkWindow *window)
+{
+ gdk_display_beep (GDK_WINDOW_DISPLAY (window));
+}
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 73486d9e77..95f3f01725 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -3397,3 +3397,9 @@ gdk_window_configure_finished (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
}
+
+void
+gdk_window_beep (GdkWindow *window)
+{
+ gdk_display_beep (GDK_WINDOW_DISPLAY (window));
+}
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 06f5f8bdf9..665793ad51 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -29,6 +29,11 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
+
+#ifdef HAVE_XKB
+#include <X11/XKBlib.h>
+#endif
+
#include <netinet/in.h>
#include <unistd.h>
@@ -6311,5 +6316,28 @@ gdk_window_configure_finished (GdkWindow *window)
#endif
}
+/**
+ * gdk_window_beep:
+ * @window: a toplevel #GdkWindow
+ *
+ * Emits a short beep associated to @window in the appropriate
+ * display, if supported. Otherwise, emits a short beep on
+ * the display just as gdk_display_beep().
+ *
+ * Since: 2.12
+ **/
+void
+gdk_window_beep (GdkWindow *window)
+{
+#ifdef HAVE_XKB
+ XkbBell (GDK_WINDOW_XDISPLAY (window),
+ GDK_WINDOW_XID (window),
+ 0,
+ None);
+#else
+ gdk_display_beep (GDK_WINDOW_DISPLAY (window));
+#endif
+}
+
#define __GDK_WINDOW_X11_C__
#include "gdkaliasdef.c"