From 6760faeb4b36dac9e1c226d7d9485a47be28bf24 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 30 Aug 2006 03:30:43 +0000 Subject: [PATCH] Add a function to beep on a window. For X11, implement this with XkbBell. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2006-08-29 Matthias Clasen * 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) --- ChangeLog | 11 +++++++++++ docs/reference/ChangeLog | 4 ++++ docs/reference/gdk/gdk-sections.txt | 1 + gdk/directfb/gdkwindow-directfb.c | 6 ++++++ gdk/gdk.symbols | 1 + gdk/gdkwindow.h | 1 + gdk/quartz/gdkwindow-quartz.c | 6 ++++++ gdk/win32/gdkwindow-win32.c | 6 ++++++ gdk/x11/gdkwindow-x11.c | 28 ++++++++++++++++++++++++++++ 9 files changed, 64 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5bbbee8908..30c0c237a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-08-29 Matthias Clasen + + * 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) + 2006-08-29 Tor Lillqvist Remove support for Windows 9x/ME. GTK+ hasn't worked on Win9x diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 0a9adf6075..a37b0a861d 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,7 @@ +2006-08-29 Matthias Clasen + + * gdk/gdk-sections.txt: Add gdk_window_beep + 2006-08-25 Matthias Clasen * gtk/question_index.sgml: Rewrite the answer for diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt index 900bde5072..f0cbf61994 100644 --- a/docs/reference/gdk/gdk-sections.txt +++ b/docs/reference/gdk/gdk-sections.txt @@ -665,6 +665,7 @@ gdk_window_register_dnd gdk_window_begin_resize_drag gdk_window_begin_move_drag gdk_window_constrain_size +gdk_window_beep gdk_window_begin_paint_rect 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 #include #include + +#ifdef HAVE_XKB +#include +#endif + #include #include @@ -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"