diff options
author | Thomas Thurman <tthurman@gnome.org> | 2008-06-30 13:42:37 +0000 |
---|---|---|
committer | Thomas James Alexander Thurman <tthurman@src.gnome.org> | 2008-06-30 13:42:37 +0000 |
commit | 91b5f24da8f31390a891b1457dc2fd08d11632b5 (patch) | |
tree | 9ca6d8134c9c1babe087263c1a1114ba2223d653 /src/core/bell.h | |
parent | bd0a531253028d13e5a5de3372eadfa61f44b512 (diff) | |
download | metacity-91b5f24da8f31390a891b1457dc2fd08d11632b5.tar.gz |
Move comments for non-statics from the .c to .h. adapt better for C, and
2008-06-30 Thomas Thurman <tthurman@gnome.org>
* src/core/bell.[ch]: Move comments for non-statics from the .c to .h.
* Doxyfile: adapt better for C, and make quiet.
svn path=/trunk/; revision=3777
Diffstat (limited to 'src/core/bell.h')
-rw-r--r-- | src/core/bell.h | 76 |
1 files changed, 74 insertions, 2 deletions
diff --git a/src/core/bell.h b/src/core/bell.h index d33c8d21..462d1ed7 100644 --- a/src/core/bell.h +++ b/src/core/bell.h @@ -1,6 +1,17 @@ -/* Metacity visual bell */ - /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ + +/** + * \file bell.h Ring the bell or flash the screen + * + * Sometimes, X programs "ring the bell", whatever that means. Metacity lets + * the user configure the bell to be audible or visible (aka visual), and + * if it's visual it can be configured to be frame-flash or fullscreen-flash. + * We never get told about audible bells; X handles them just fine by itself. + * + * The visual bell was the result of a discussion in Bugzilla here: + * <http://bugzilla.gnome.org/show_bug.cgi?id=99886>. + */ + /* * Copyright (C) 2002 Sun Microsystems Inc. * @@ -28,9 +39,70 @@ #include "frame-private.h" #ifdef HAVE_XKB +/** + * Gives the user some kind of visual bell; in fact, this is our response + * to any kind of bell request, but we set it up so that we only get + * notified about visual bells, and X deals with audible ones. + * + * If the configure script found we had no XKB, this does not exist. + * + * \param display The display the bell event came in on + * \param xkb_ev The bell event we just received + */ void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev); #endif + +/** + * Turns the bell to audible or visual. This tells X what to do, but + * not Metacity; you will need to set the "visual bell" pref for that. + * + * If the configure script found we had no XKB, this is a no-op. + * + * \param display The display we're configuring + * \param audible True for an audible bell, false for a visual bell + */ void meta_bell_set_audible (MetaDisplay *display, gboolean audible); + +/** + * Initialises the bell subsystem. This involves intialising + * XKB (which, despite being a keyboard extension, is the + * place to look for bell notifications), then asking it + * to send us bell notifications, and then also switching + * off the audible bell if we're using a visual one ourselves. + * + * Unlike most X extensions we use, we only initialise XKB here + * (rather than in main()). It's possible that XKB is not + * installed at all, but if that was known at build time + * we will have HAVE_XKB undefined, which will cause this + * function to be a no-op. + * + * \param display The display which is opening + * + * \bug There is a line of code that's never run that tells + * XKB to reset the bell status after we quit. Bill H said + * (<http://bugzilla.gnome.org/show_bug.cgi?id=99886#c12>) + * that XFree86's implementation is broken so we shouldn't + * call it, but that was in 2002. Is it working now? + */ gboolean meta_bell_init (MetaDisplay *display); + +/** + * Shuts down the bell subsystem. + * + * \param display The display which is closing + * + * \bug This is never called! If we had XkbSetAutoResetControls + * enabled in meta_bell_init(), this wouldn't be a problem, but + * we don't. + */ void meta_bell_shutdown (MetaDisplay *display); + +/** + * Deals with a frame being destroyed. This is important because if we're + * using a visual bell, we might be flashing the edges of the frame, and + * so we'd have a timeout function waiting ready to un-flash them. If the + * frame's going away, we can tell the timeout not to bother. + * + * \param frame The frame which is being destroyed + */ void meta_bell_notify_frame_destroy (MetaFrame *frame); |