1
0
Fork 0

Switch to gtk-doc syntax

https://bugzilla.gnome.org/show_bug.cgi?id=673752
This commit is contained in:
Jasper St. Pierre 2011-11-02 11:34:45 -04:00
parent 9c97e8999e
commit 044d58951e
18 changed files with 556 additions and 471 deletions

View file

@ -396,7 +396,7 @@ meta_plugin_begin_modal (MetaPlugin *plugin,
} }
/** /**
* meta_plugin_end_modal * meta_plugin_end_modal:
* @plugin: a #MetaPlugin * @plugin: a #MetaPlugin
* @timestamp: the time used for releasing grabs * @timestamp: the time used for releasing grabs
* *

View file

@ -23,7 +23,8 @@
*/ */
/** /**
* \file bell.c Ring the bell or flash the screen * SECTION:Bell
* @short_description: Ring the bell or flash the screen
* *
* Sometimes, X programs "ring the bell", whatever that means. Mutter lets * Sometimes, X programs "ring the bell", whatever that means. Mutter lets
* the user configure the bell to be audible or visible (aka visual), and * the user configure the bell to be audible or visible (aka visual), and
@ -57,6 +58,10 @@
#endif #endif
/** /**
* bell_flash_screen:
* @display: The display which owns the screen (rather redundant)
* @screen: The screen to flash
*
* Flashes one entire screen. This is done by making a window the size of the * Flashes one entire screen. This is done by making a window the size of the
* whole screen (or reusing the old one, if it's still around), mapping it, * whole screen (or reusing the old one, if it's still around), mapping it,
* painting it white and then black, and then unmapping it. We set saveunder so * painting it white and then black, and then unmapping it. We set saveunder so
@ -65,14 +70,12 @@
* Unlike frame flashes, we don't do fullscreen flashes with a timeout; rather, * Unlike frame flashes, we don't do fullscreen flashes with a timeout; rather,
* we do them in one go, because we don't have to rely on the theme code * we do them in one go, because we don't have to rely on the theme code
* redrawing the frame for us in order to do the flash. * redrawing the frame for us in order to do the flash.
* */
* \param display The display which owns the screen (rather redundant) /*
* \param screen The screen to flash * Bug: The way I read it, this appears not to do the flash
*
* \bug The way I read it, this appears not to do the flash
* the first time we flash a particular display. Am I wrong? * the first time we flash a particular display. Am I wrong?
* *
* \bug This appears to destroy our current XSync status. * Bug: This appears to destroy our current XSync status.
*/ */
static void static void
bell_flash_screen (MetaDisplay *display, bell_flash_screen (MetaDisplay *display,
@ -137,14 +140,15 @@ bell_flash_screen (MetaDisplay *display,
} }
/** /**
* bell_flash_fullscreen:
* @display: The display the event came in on
* @xkb_ev: The bell event
*
* Flashes one screen, or all screens, in response to a bell event. * Flashes one screen, or all screens, in response to a bell event.
* If the event is on a particular window, flash the screen that * If the event is on a particular window, flash the screen that
* window is on. Otherwise, flash every screen on this display. * window is on. Otherwise, flash every screen on this display.
* *
* If the configure script found we had no XKB, this does not exist. * If the configure script found we had no XKB, this does not exist.
*
* \param display The display the event came in on
* \param xkb_ev The bell event
*/ */
#ifdef HAVE_XKB #ifdef HAVE_XKB
static void static void
@ -182,17 +186,21 @@ bell_flash_fullscreen (MetaDisplay *display,
} }
/** /**
* bell_unflash_frame:
* @data: The frame to unflash, cast to a gpointer so it can go into
* a callback function.
*
* Makes a frame be not flashed; this is the timeout half of * Makes a frame be not flashed; this is the timeout half of
* bell_flash_window_frame(). This is done simply by clearing the * bell_flash_window_frame(). This is done simply by clearing the
* flash flag and queuing a redraw of the frame. * flash flag and queuing a redraw of the frame.
* *
* If the configure script found we had no XKB, this does not exist. * If the configure script found we had no XKB, this does not exist.
* *
* \param data The frame to unflash, cast to a gpointer so it can go into * Returns: Always FALSE, so we don't get called again.
* a callback function. */
* \return Always FALSE, so we don't get called again.
* /*
* \bug This is the parallel to bell_flash_window_frame(), so it should * Bug: This is the parallel to bell_flash_window_frame(), so it should
* really be called meta_bell_unflash_window_frame(). * really be called meta_bell_unflash_window_frame().
*/ */
static gboolean static gboolean
@ -205,6 +213,9 @@ bell_unflash_frame (gpointer data)
} }
/** /**
* bell_flash_window_frame:
* @window: The window to flash
*
* Makes a frame flash and then return to normal shortly afterwards. * Makes a frame flash and then return to normal shortly afterwards.
* This is done by setting a flag so that the theme * This is done by setting a flag so that the theme
* code will temporarily draw the frame as focussed if it's unfocussed and * code will temporarily draw the frame as focussed if it's unfocussed and
@ -212,8 +223,6 @@ bell_unflash_frame (gpointer data)
* that the flag can be unset and the frame re-redrawn. * that the flag can be unset and the frame re-redrawn.
* *
* If the configure script found we had no XKB, this does not exist. * If the configure script found we had no XKB, this does not exist.
*
* \param window The window to flash
*/ */
static void static void
bell_flash_window_frame (MetaWindow *window) bell_flash_window_frame (MetaWindow *window)
@ -231,11 +240,12 @@ bell_flash_window_frame (MetaWindow *window)
} }
/** /**
* bell_flash_frame:
* @display: The display the bell event came in on
* @xkb_ev: The bell event we just received
*
* Flashes the frame of the focussed window. If there is no focussed window, * Flashes the frame of the focussed window. If there is no focussed window,
* flashes the screen. * flashes the screen.
*
* \param display The display the bell event came in on
* \param xkb_ev The bell event we just received
*/ */
static void static void
bell_flash_frame (MetaDisplay *display, bell_flash_frame (MetaDisplay *display,
@ -261,15 +271,18 @@ bell_flash_frame (MetaDisplay *display,
} }
/** /**
* bell_visual_notify:
* @display: The display the bell event came in on
* @xkb_ev: The bell event we just received
*
* Gives the user some kind of visual bell substitute, in response to a * Gives the user some kind of visual bell substitute, in response to a
* bell event. What this is depends on the "visual bell type" pref. * bell event. What this is depends on the "visual bell type" pref.
* *
* If the configure script found we had no XKB, this does not exist. * 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 /*
* * Bug: This should be merged with meta_bell_notify().
* \bug This should be merged with meta_bell_notify().
*/ */
static void static void
bell_visual_notify (MetaDisplay *display, bell_visual_notify (MetaDisplay *display,
@ -407,12 +420,13 @@ meta_bell_shutdown (MetaDisplay *display)
} }
/** /**
* meta_bell_notify_frame_destroy:
* @frame: The frame which is being destroyed
*
* Deals with a frame being destroyed. This is important because if we're * 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 * 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 * 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. * frame's going away, we can tell the timeout not to bother.
*
* \param frame The frame which is being destroyed
*/ */
void void
meta_bell_notify_frame_destroy (MetaFrame *frame) meta_bell_notify_frame_destroy (MetaFrame *frame)

View file

@ -1,17 +1,5 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- 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. Mutter 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. * Copyright (C) 2002 Sun Microsystems Inc.
* *

View file

@ -25,9 +25,10 @@
*/ */
/** /**
* \file display.c Handles operations on an X display. * SECTION:MetaDisplay
* @short_description: Handles operations on an X display.
* *
* The display is represented as a MetaDisplay struct. * The display is represented as a #MetaDisplay struct.
*/ */
#define _XOPEN_SOURCE 600 /* for gethostname() */ #define _XOPEN_SOURCE 600 /* for gethostname() */
@ -87,7 +88,7 @@
g == META_GRAB_OP_KEYBOARD_ESCAPING_GROUP) g == META_GRAB_OP_KEYBOARD_ESCAPING_GROUP)
/** /**
* \defgroup pings Pings * SECTION:pings
* *
* Sometimes we want to see whether a window is responding, * Sometimes we want to see whether a window is responding,
* so we send it a "ping" message and see whether it sends us back a "pong" * so we send it a "ping" message and see whether it sends us back a "pong"
@ -102,13 +103,13 @@
*/ */
/** /**
* MetaPingData:
*
* Describes a ping on a window. When we send a ping to a window, we build * Describes a ping on a window. When we send a ping to a window, we build
* one of these structs, and it eventually gets passed to the timeout function * one of these structs, and it eventually gets passed to the timeout function
* or to the function which handles the response from the window. If the window * or to the function which handles the response from the window. If the window
* does or doesn't respond to the ping, we use this information to deal with * does or doesn't respond to the ping, we use this information to deal with
* these facts; we have a handler function for each. * these facts; we have a handler function for each.
*
* \ingroup pings
*/ */
typedef struct typedef struct
{ {
@ -150,7 +151,7 @@ enum {
static guint display_signals [LAST_SIGNAL] = { 0 }; static guint display_signals [LAST_SIGNAL] = { 0 };
/** /*
* The display we're managing. This is a singleton object. (Historically, * The display we're managing. This is a singleton object. (Historically,
* this was a list of displays, but there was never any way to add more * this was a list of displays, but there was never any way to add more
* than one element to it.) The goofy name is because we don't want it * than one element to it.) The goofy name is because we don't want it
@ -295,10 +296,10 @@ meta_display_class_init (MetaDisplayClass *klass)
/** /**
* Destructor for MetaPingData structs. Will destroy the * ping_data_free:
* event source for the struct as well.
* *
* \ingroup pings * Destructor for #MetaPingData structs. Will destroy the
* event source for the struct as well.
*/ */
static void static void
ping_data_free (MetaPingData *ping_data) ping_data_free (MetaPingData *ping_data)
@ -311,14 +312,12 @@ ping_data_free (MetaPingData *ping_data)
} }
/** /**
* remove_pending_pings_for_window:
* @display: The display the window appears on
* @xwindow: The X ID of the window whose pings we should remove
*
* Frees every pending ping structure for the given X window on the * Frees every pending ping structure for the given X window on the
* given display. This means that we also destroy the timeouts. * given display. This means that we also destroy the timeouts.
*
* \param display The display the window appears on
* \param xwindow The X ID of the window whose pings we should remove
*
* \ingroup pings
*
*/ */
static void static void
remove_pending_pings_for_window (MetaDisplay *display, Window xwindow) remove_pending_pings_for_window (MetaDisplay *display, Window xwindow)
@ -417,14 +416,14 @@ meta_display_init (MetaDisplay *disp)
} }
/** /**
* meta_display_open:
*
* Opens a new display, sets it up, initialises all the X extensions * Opens a new display, sets it up, initialises all the X extensions
* we will need, and adds it to the list of displays. * we will need, and adds it to the list of displays.
* *
* \return True if the display was opened successfully, and False * Returns: %TRUE if the display was opened successfully, and %FALSE
* otherwise-- that is, if the display doesn't exist or it already * otherwise-- that is, if the display doesn't exist or it already
* has a window manager. * has a window manager.
*
* \ingroup main
*/ */
gboolean gboolean
meta_display_open (void) meta_display_open (void)
@ -1168,14 +1167,16 @@ meta_display_ungrab (MetaDisplay *display)
} }
/** /**
* Returns the singleton MetaDisplay if "xdisplay" matches the X display it's * meta_display_for_x_display:
* managing; otherwise gives a warning and returns NULL. When we were claiming * @xdisplay: An X display
*
* Returns the singleton MetaDisplay if @xdisplay matches the X display it's
* managing; otherwise gives a warning and returns %NULL. When we were claiming
* to be able to manage multiple displays, this was supposed to find the * to be able to manage multiple displays, this was supposed to find the
* display out of the list which matched that display. Now it's merely an * display out of the list which matched that display. Now it's merely an
* extra sanity check. * extra sanity check.
* *
* \param xdisplay An X display * Returns: The singleton X display, or %NULL if @xdisplay isn't the one
* \return The singleton X display, or NULL if "xdisplay" isn't the one
* we're managing. * we're managing.
*/ */
MetaDisplay* MetaDisplay*
@ -1191,9 +1192,11 @@ meta_display_for_x_display (Display *xdisplay)
} }
/** /**
* meta_get_display:
*
* Accessor for the singleton MetaDisplay. * Accessor for the singleton MetaDisplay.
* *
* \return The only MetaDisplay there is. This can be NULL, but only * Returns: The only #MetaDisplay there is. This can be %NULL, but only
* during startup. * during startup.
*/ */
MetaDisplay* MetaDisplay*
@ -1601,19 +1604,18 @@ handle_net_restack_window (MetaDisplay* display,
#endif #endif
/** /**
* event_callback:
* @event: The event that just happened
* @data: The #MetaDisplay that events are coming from, cast to a gpointer
* so that it can be sent to a callback
*
* This is the most important function in the whole program. It is the heart, * This is the most important function in the whole program. It is the heart,
* it is the nexus, it is the Grand Central Station of Mutter's world. * it is the nexus, it is the Grand Central Station of Mutter's world.
* When we create a MetaDisplay, we ask GDK to pass *all* events for *all* * When we create a #MetaDisplay, we ask GDK to pass *all* events for *all*
* windows to this function. So every time anything happens that we might * windows to this function. So every time anything happens that we might
* want to know about, this function gets called. You see why it gets a bit * want to know about, this function gets called. You see why it gets a bit
* busy around here. Most of this function is a ginormous switch statement * busy around here. Most of this function is a ginormous switch statement
* dealing with all the kinds of events that might turn up. * dealing with all the kinds of events that might turn up.
*
* \param event The event that just happened
* \param data The MetaDisplay that events are coming from, cast to a gpointer
* so that it can be sent to a callback
*
* \ingroup main
*/ */
static gboolean static gboolean
event_callback (XEvent *event, event_callback (XEvent *event,
@ -4197,21 +4199,23 @@ meta_display_set_cursor_theme (const char *theme,
#endif #endif
} }
/** /*
* Stores whether syncing is currently enabled. * Stores whether syncing is currently enabled.
*/ */
static gboolean is_syncing = FALSE; static gboolean is_syncing = FALSE;
/** /**
* meta_is_syncing:
*
* Returns whether X synchronisation is currently enabled. * Returns whether X synchronisation is currently enabled.
* *
* \return true if we must wait for events whenever we send X requests; * FIXME: This is *only* called by meta_display_open(), but by that time
* false otherwise.
*
* \bug This is *only* called by meta_display_open, but by that time
* we have already turned syncing on or off on startup, and we don't * we have already turned syncing on or off on startup, and we don't
* have any way to do so while Mutter is running, so it's rather * have any way to do so while Mutter is running, so it's rather
* pointless. * pointless.
*
* Returns: %TRUE if we must wait for events whenever we send X requests;
* %FALSE otherwise.
*/ */
gboolean gboolean
meta_is_syncing (void) meta_is_syncing (void)
@ -4220,10 +4224,9 @@ meta_is_syncing (void)
} }
/** /**
* A handy way to turn on synchronisation on or off for every display. * meta_set_syncing:
* *
* \bug Of course there is only one display ever anyway, so this can * A handy way to turn on synchronisation on or off for every display.
* be rather hugely simplified.
*/ */
void void
meta_set_syncing (gboolean setting) meta_set_syncing (gboolean setting)
@ -4236,26 +4239,25 @@ meta_set_syncing (gboolean setting)
} }
} }
/** /*
* How long, in milliseconds, we should wait after pinging a window * How long, in milliseconds, we should wait after pinging a window
* before deciding it's not going to get back to us. * before deciding it's not going to get back to us.
*/ */
#define PING_TIMEOUT_DELAY 5000 #define PING_TIMEOUT_DELAY 5000
/** /**
* meta_display_ping_timeout:
* @data: All the information about this ping. It is a #MetaPingData
* cast to a #gpointer in order to be passable to a timeout function.
* This function will also free this parameter.
*
* Does whatever it is we decided to do when a window didn't respond * Does whatever it is we decided to do when a window didn't respond
* to a ping. We also remove the ping from the display's list of * to a ping. We also remove the ping from the display's list of
* pending pings. This function is called by the event loop when the timeout * pending pings. This function is called by the event loop when the timeout
* times out which we created at the start of the ping. * times out which we created at the start of the ping.
* *
* \param data All the information about this ping. It is a MetaPingData * Returns: Always returns %FALSE, because this function is called as a
* cast to a void* in order to be passable to a timeout function.
* This function will also free this parameter.
*
* \return Always returns false, because this function is called as a
* timeout and we don't want to run the timer again. * timeout and we don't want to run the timer again.
*
* \ingroup pings
*/ */
static gboolean static gboolean
meta_display_ping_timeout (gpointer data) meta_display_ping_timeout (gpointer data)
@ -4282,6 +4284,17 @@ meta_display_ping_timeout (gpointer data)
} }
/** /**
* meta_display_ping_window:
* @display: The #MetaDisplay that the window is on
* @window: The #MetaWindow to send the ping to
* @timestamp: The timestamp of the ping. Used for uniqueness.
* Cannot be CurrentTime; use a real timestamp!
* @ping_reply_func: The callback to call if we get a response.
* @ping_timeout_func: The callback to call if we don't get a response.
* @user_data: Arbitrary data that will be passed to the callback
* function. (In practice it's often a pointer to
* the window.)
*
* Sends a ping request to a window. The window must respond to * Sends a ping request to a window. The window must respond to
* the request within a certain amount of time. If it does, we * the request within a certain amount of time. If it does, we
* will call one callback; if the time passes and we haven't had * will call one callback; if the time passes and we haven't had
@ -4291,20 +4304,9 @@ meta_display_ping_timeout (gpointer data)
* This function returns straight away after setting things up; * This function returns straight away after setting things up;
* the callbacks will be called from the event loop. * the callbacks will be called from the event loop.
* *
* \param display The MetaDisplay that the window is on * FIXME: This should probably be a method on windows, rather than displays
* \param window The MetaWindow to send the ping to
* \param timestamp The timestamp of the ping. Used for uniqueness.
* Cannot be CurrentTime; use a real timestamp!
* \param ping_reply_func The callback to call if we get a response.
* \param ping_timeout_func The callback to call if we don't get a response.
* \param user_data Arbitrary data that will be passed to the callback
* function. (In practice it's often a pointer to
* the window.)
*
* \bug This should probably be a method on windows, rather than displays
* for one of their windows. * for one of their windows.
* *
* \ingroup pings
*/ */
void void
meta_display_ping_window (MetaDisplay *display, meta_display_ping_window (MetaDisplay *display,
@ -4412,16 +4414,15 @@ process_request_frame_extents (MetaDisplay *display,
} }
/** /**
* Process the pong (the response message) from the ping we sent * process_pong_message:
* to the window. This involves removing the timeout, calling the * @display: the display we got the pong from
* reply handler function, and freeing memory. * @event: the #XEvent which is a pong; we can tell which
*
* \param display the display we got the pong from
* \param event the XEvent which is a pong; we can tell which
* ping it corresponds to because it bears the * ping it corresponds to because it bears the
* same timestamp. * same timestamp.
* *
* \ingroup pings * Process the pong (the response message) from the ping we sent
* to the window. This involves removing the timeout, calling the
* reply handler function, and freeing memory.
*/ */
static void static void
process_pong_message (MetaDisplay *display, process_pong_message (MetaDisplay *display,
@ -4468,18 +4469,17 @@ process_pong_message (MetaDisplay *display,
} }
/** /**
* meta_display_window_has_pending_pings:
* @display: The #MetaDisplay of the window.
* @window: The #MetaWindow whose pings we want to know about.
*
* Finds whether a window has any pings waiting on it. * Finds whether a window has any pings waiting on it.
* *
* \param display The MetaDisplay of the window. * FIXME: This should probably be a method on windows, rather than displays
* \param window The MetaWindow whose pings we want to know about.
*
* \return True if there is at least one ping which has been sent
* to the window without getting a response; false otherwise.
*
* \bug This should probably be a method on windows, rather than displays
* for one of their windows. * for one of their windows.
* *
* \ingroup pings * Returns: %TRUE if there is at least one ping which has been sent
* to the window without getting a response; %FALSE otherwise.
*/ */
gboolean gboolean
meta_display_window_has_pending_pings (MetaDisplay *display, meta_display_window_has_pending_pings (MetaDisplay *display,

View file

@ -23,18 +23,19 @@
*/ */
/** /**
* \file * SECTION:main
* Program startup. * @short_description: Program startup.
*
* Functions which parse the command-line arguments, create the display, * Functions which parse the command-line arguments, create the display,
* kick everything off and then close down Mutter when it's time to go. * kick everything off and then close down Mutter when it's time to go.
*/ *
*
/** *
* \mainpage
* Mutter - a boring window manager for the adult in you * Mutter - a boring window manager for the adult in you
* *
* Many window managers are like Marshmallow Froot Loops; Mutter * Many window managers are like Marshmallow Froot Loops; Mutter
* is like Cheerios. * is like Frosted Flakes: it's still plain old corn, but dusted
* with some sugar.
* *
* The best way to get a handle on how the whole system fits together * The best way to get a handle on how the whole system fits together
* is discussed in doc/code-overview.txt; if you're looking for functions * is discussed in doc/code-overview.txt; if you're looking for functions
@ -77,12 +78,12 @@
#include <girepository.h> #include <girepository.h>
#endif #endif
/** /*
* The exit code we'll return to our parent process when we eventually die. * The exit code we'll return to our parent process when we eventually die.
*/ */
static MetaExitCode meta_exit_code = META_EXIT_SUCCESS; static MetaExitCode meta_exit_code = META_EXIT_SUCCESS;
/** /*
* Handle on the main loop, so that we have an easy way of shutting Mutter * Handle on the main loop, so that we have an easy way of shutting Mutter
* down. * down.
*/ */
@ -92,14 +93,15 @@ static void prefs_changed_callback (MetaPreference pref,
gpointer data); gpointer data);
/** /**
* log_handler:
* @log_domain: the domain the error occurred in (we ignore this)
* @log_level: the log level so that we can filter out less
* important messages
* @message: the message to log
* @user_data: arbitrary data (we ignore this)
*
* Prints log messages. If Mutter was compiled with backtrace support, * Prints log messages. If Mutter was compiled with backtrace support,
* also prints a backtrace (see meta_print_backtrace()). * also prints a backtrace (see meta_print_backtrace()).
*
* \param log_domain the domain the error occurred in (we ignore this)
* \param log_level the log level so that we can filter out less
* important messages
* \param message the message to log
* \param user_data arbitrary data (we ignore this)
*/ */
static void static void
log_handler (const gchar *log_domain, log_handler (const gchar *log_domain,
@ -112,10 +114,12 @@ log_handler (const gchar *log_domain,
} }
/** /**
* meta_print_compilation_info:
*
* Prints a list of which configure script options were used to * Prints a list of which configure script options were used to
* build this copy of Mutter. This is actually always called * build this copy of Mutter. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode * on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose). * (see meta_set_verbose()).
*/ */
static void static void
meta_print_compilation_info (void) meta_print_compilation_info (void)
@ -158,12 +162,14 @@ meta_print_compilation_info (void)
} }
/** /**
* meta_print_self_identity:
*
* Prints the version number, the current timestamp (not the * Prints the version number, the current timestamp (not the
* build date), the locale, the character encoding, and a list * build date), the locale, the character encoding, and a list
* of configure script options that were used to build this * of configure script options that were used to build this
* copy of Mutter. This is actually always called * copy of Mutter. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode * on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose). * (see meta_set_verbose()).
*/ */
static void static void
meta_print_self_identity (void) meta_print_self_identity (void)
@ -188,7 +194,7 @@ meta_print_self_identity (void)
meta_print_compilation_info (); meta_print_compilation_info ();
} }
/** /*
* The set of possible options that can be set on Mutter's * The set of possible options that can be set on Mutter's
* command line. * command line.
*/ */
@ -327,10 +333,12 @@ meta_clutter_init (void)
} }
/** /**
* meta_select_display:
*
* Selects which display Mutter should use. It first tries to use * Selects which display Mutter should use. It first tries to use
* display_name as the display. If display_name is NULL then * @display_name as the display. If @display_name is %NULL then
* try to use the environment variable MUTTER_DISPLAY. If that * try to use the environment variable MUTTER_DISPLAY. If that
* also is NULL, use the default - :0.0 * also is %NULL, use the default - :0.0
*/ */
static void static void
meta_select_display (gchar *display_name) meta_select_display (gchar *display_name)
@ -560,13 +568,14 @@ meta_run (void)
} }
/** /**
* meta_quit:
* @code: The success or failure code to return to the calling process.
*
* Stops Mutter. This tells the event loop to stop processing; it is * Stops Mutter. This tells the event loop to stop processing; it is
* rather dangerous to use this because this will leave the user with * rather dangerous to use this because this will leave the user with
* no window manager. We generally do this only if, for example, the * no window manager. We generally do this only if, for example, the
* session manager asks us to; we assume the session manager knows * session manager asks us to; we assume the session manager knows
* what it's talking about. * what it's talking about.
*
* \param code The success or failure code to return to the calling process.
*/ */
void void
meta_quit (MetaExitCode code) meta_quit (MetaExitCode code)
@ -579,13 +588,14 @@ meta_quit (MetaExitCode code)
} }
/** /**
* prefs_changed_callback:
* @pref Which preference has changed
* @data Arbitrary data (which we ignore)
*
* Called on pref changes. (One of several functions of its kind and purpose.) * Called on pref changes. (One of several functions of its kind and purpose.)
* *
* \bug Why are these particular prefs handled in main.c and not others? * FIXME: Why are these particular prefs handled in main.c and not others?
* Should they be? * Should they be?
*
* \param pref Which preference has changed
* \param data Arbitrary data (which we ignore)
*/ */
static void static void
prefs_changed_callback (MetaPreference pref, prefs_changed_callback (MetaPreference pref,

View file

@ -165,36 +165,30 @@ typedef struct
gboolean *target; gboolean *target;
} MetaBoolPreference; } MetaBoolPreference;
typedef struct
{
MetaBasePreference base;
/** /**
* A handler. Many of the string preferences aren't stored as * MetaStringPreference:
* strings and need parsing; others of them have default values * @handler: (allow-none): A handler. Many of the string preferences
* which can't be solved in the general case. If you include a * aren't stored as strings and need parsing; others of them have
* function pointer here, it will be called instead of writing * default values which can't be solved in the general case. If you
* include a function pointer here, it will be called instead of writing
* the string value out to the target variable. * the string value out to the target variable.
*
* The function will be passed to g_settings_get_mapped() and should * The function will be passed to g_settings_get_mapped() and should
* return %TRUE if the mapping was successful and %FALSE otherwise. * return %TRUE if the mapping was successful and %FALSE otherwise.
* In the former case the function is expected to handle the result * In the former case the function is expected to handle the result
* of the conversion itself and call queue_changed() appropriately; * of the conversion itself and call queue_changed() appropriately;
* in particular the @result (out) parameter as returned by * in particular the @result (out) parameter as returned by
* g_settings_get_mapped() will be ignored in all cases. * g_settings_get_mapped() will be ignored in all cases.
* * This may be %NULL. If it is, see "target", below.
* This may be NULL. If it is, see "target", below. * @target: (allow-none): Where to write the incoming string.
* This must be %NULL if the handler is non-%NULL.
* If the incoming string is %NULL, no change will be made.
*/ */
typedef struct
{
MetaBasePreference base;
GSettingsGetMapping handler; GSettingsGetMapping handler;
/**
* Where to write the incoming string.
*
* This must be NULL if the handler is non-NULL.
* If the incoming string is NULL, no change will be made.
*/
gchar **target; gchar **target;
} MetaStringPreference; } MetaStringPreference;
typedef struct typedef struct
@ -931,9 +925,9 @@ do_override (char *key,
/** /**
* meta_prefs_override_preference_schema * meta_prefs_override_preference_schema:
* @key: the preference name * @key: the preference name
* @schema: new schema for preference %key * @schema: new schema for preference @key
* *
* Specify a schema whose keys are used to override the standard Metacity * Specify a schema whose keys are used to override the standard Metacity
* keys. This might be used if a plugin expected a different value for * keys. This might be used if a plugin expected a different value for
@ -1062,6 +1056,8 @@ bindings_changed (GSettings *settings,
} }
/** /**
* maybe_give_disable_workaround_warning:
*
* Special case: give a warning the first time disable_workarounds * Special case: give a warning the first time disable_workarounds
* is turned on. * is turned on.
*/ */
@ -2004,7 +2000,8 @@ meta_prefs_remove_keybinding (const char *name)
/** /**
* meta_prefs_get_keybindings: * meta_prefs_get_keybindings:
* Return: (element-type MetaKeyPref) (transfer container): *
* Returns: (element-type MetaKeyPref) (transfer container):
*/ */
GList * GList *
meta_prefs_get_keybindings () meta_prefs_get_keybindings ()

View file

@ -3454,9 +3454,10 @@ meta_screen_get_screen_number (MetaScreen *screen)
/** /**
* meta_screen_get_display: * meta_screen_get_display:
* Retrieve the display associated with screen.
* @screen: A #MetaScreen * @screen: A #MetaScreen
* *
* Retrieve the display associated with screen.
*
* Returns: (transfer none): Display * Returns: (transfer none): Display
*/ */
MetaDisplay * MetaDisplay *

View file

@ -1,7 +1,8 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/** /**
* \file stack.c Which windows cover which other windows * SECTION:stack
* @short_description: Which windows cover which other windows
*/ */
/* /*
@ -799,6 +800,8 @@ apply_constraints (Constraint **constraints,
} }
/** /**
* stack_do_window_deletions:
*
* Go through "deleted" and take the matching windows * Go through "deleted" and take the matching windows
* out of "windows". * out of "windows".
*/ */
@ -899,6 +902,8 @@ stack_do_window_additions (MetaStack *stack)
} }
/** /**
* stack_do_relayer:
*
* Update the layers that windows are in * Update the layers that windows are in
*/ */
static void static void
@ -944,6 +949,8 @@ stack_do_relayer (MetaStack *stack)
} }
/** /**
* stack_do_constrain:
*
* Update stack_position and layer to reflect transiency * Update stack_position and layer to reflect transiency
* constraints * constraints
*/ */
@ -976,6 +983,8 @@ stack_do_constrain (MetaStack *stack)
} }
/** /**
* stack_do_resort:
*
* Sort stack->sorted with layers having priority over stack_position. * Sort stack->sorted with layers having priority over stack_position.
*/ */
static void static void
@ -994,6 +1003,8 @@ stack_do_resort (MetaStack *stack)
} }
/** /**
* stack_ensure_sorted:
*
* Puts the stack into canonical form. * Puts the stack into canonical form.
* *
* Honour the removed and added lists of the stack, and then recalculate * Honour the removed and added lists of the stack, and then recalculate
@ -1013,6 +1024,8 @@ stack_ensure_sorted (MetaStack *stack)
} }
/** /**
* raise_window_relative_to_managed_windows:
*
* This function is used to avoid raising a window above popup * This function is used to avoid raising a window above popup
* menus and other such things. * menus and other such things.
* *
@ -1113,6 +1126,8 @@ raise_window_relative_to_managed_windows (MetaScreen *screen,
} }
/** /**
* stack_sync_to_server:
*
* Order the windows on the X server to be the same as in our structure. * Order the windows on the X server to be the same as in our structure.
* We do this using XRestackWindows if we don't know the previous order, * We do this using XRestackWindows if we don't know the previous order,
* or XConfigureWindow on a few particular windows if we do and can figure * or XConfigureWindow on a few particular windows if we do and can figure

View file

@ -1,23 +1,5 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/**
* \file stack.h Which windows cover which other windows
*
* There are two factors that determine window position.
*
* One is window->stack_position, which is a unique integer
* indicating how windows are ordered with respect to one
* another. The ordering here transcends layers; it isn't changed
* as the window is moved among layers. This allows us to move several
* windows from one layer to another, while preserving the relative
* order of the moved windows. Also, it allows us to restore
* the stacking order from a saved session.
*
* However when actually stacking windows on the screen, the
* layer overrides the stack_position; windows are first sorted
* by layer, then by stack_position within each layer.
*/
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2005 Elijah Newren * Copyright (C) 2005 Elijah Newren
@ -41,6 +23,25 @@
#ifndef META_STACK_H #ifndef META_STACK_H
#define META_STACK_H #define META_STACK_H
/**
* SECTION:stack
* @short_description: Which windows cover which other windows
*
* There are two factors that determine window position.
*
* One is window->stack_position, which is a unique integer
* indicating how windows are ordered with respect to one
* another. The ordering here transcends layers; it isn't changed
* as the window is moved among layers. This allows us to move several
* windows from one layer to another, while preserving the relative
* order of the moved windows. Also, it allows us to restore
* the stacking order from a saved session.
*
* However when actually stacking windows on the screen, the
* layer overrides the stack_position; windows are first sorted
* by layer, then by stack_position within each layer.
*/
#include "screen-private.h" #include "screen-private.h"
/** /**
@ -123,192 +124,214 @@ struct _MetaStack
}; };
/** /**
* meta_stack_new:
* @screen: The MetaScreen which will be the parent of this stack.
*
* Creates and initialises a MetaStack. * Creates and initialises a MetaStack.
* *
* \param screen The MetaScreen which will be the parent of this stack. * Returns: The new screen.
* \return The new screen.
*/ */
MetaStack *meta_stack_new (MetaScreen *screen); MetaStack *meta_stack_new (MetaScreen *screen);
/** /**
* Destroys and frees a MetaStack. * meta_stack_free:
* @stack: The stack to destroy.
* *
* \param stack The stack to destroy. * Destroys and frees a MetaStack.
*/ */
void meta_stack_free (MetaStack *stack); void meta_stack_free (MetaStack *stack);
/** /**
* meta_stack_add:
* @stack: The stack to add it to
* @window: The window to add
*
* Adds a window to the local stack. It is a fatal error to call this * Adds a window to the local stack. It is a fatal error to call this
* function on a window which already exists on the stack of any screen. * function on a window which already exists on the stack of any screen.
*
* \param window The window to add
* \param stack The stack to add it to
*/ */
void meta_stack_add (MetaStack *stack, void meta_stack_add (MetaStack *stack,
MetaWindow *window); MetaWindow *window);
/** /**
* meta_stack_remove:
* @stack: The stack to remove it from
* @window: The window to remove
*
* Removes a window from the local stack. It is a fatal error to call this * Removes a window from the local stack. It is a fatal error to call this
* function on a window which exists on the stack of any screen. * function on a window which exists on the stack of any screen.
*
* \param window The window to remove
* \param stack The stack to remove it from
*/ */
void meta_stack_remove (MetaStack *stack, void meta_stack_remove (MetaStack *stack,
MetaWindow *window); MetaWindow *window);
/** /**
* meta_stack_update_layer:
* @stack: The stack to recalculate
* @window: Dummy parameter
*
* Recalculates the correct layer for all windows in the stack, * Recalculates the correct layer for all windows in the stack,
* and moves them about accordingly. * and moves them about accordingly.
* *
* \param window Dummy parameter
* \param stack The stack to recalculate
* \bug What's with the dummy parameter?
*/ */
void meta_stack_update_layer (MetaStack *stack, void meta_stack_update_layer (MetaStack *stack,
MetaWindow *window); MetaWindow *window);
/** /**
* meta_stack_update_transient:
* @stack: The stack to recalculate
* @window: Dummy parameter
*
* Recalculates the correct stacking order for all windows in the stack * Recalculates the correct stacking order for all windows in the stack
* according to their transience, and moves them about accordingly. * according to their transience, and moves them about accordingly.
* *
* \param window Dummy parameter * FIXME: What's with the dummy parameter?
* \param stack The stack to recalculate
* \bug What's with the dummy parameter?
*/ */
void meta_stack_update_transient (MetaStack *stack, void meta_stack_update_transient (MetaStack *stack,
MetaWindow *window); MetaWindow *window);
/** /**
* Move a window to the top of its layer. * meta_stack_raise:
* * @stack: The stack to modify.
* \param stack The stack to modify. * @window: The window that's making an ascension.
* \param window The window that's making an ascension.
* (Amulet of Yendor not required.) * (Amulet of Yendor not required.)
*
* Move a window to the top of its layer.
*/ */
void meta_stack_raise (MetaStack *stack, void meta_stack_raise (MetaStack *stack,
MetaWindow *window); MetaWindow *window);
/** /**
* Move a window to the bottom of its layer. * meta_stack_lower:
* @stack: The stack to modify.
* @window: The window that's on the way downwards.
* *
* \param stack The stack to modify. * Move a window to the bottom of its layer.
* \param window The window that's on the way downwards.
*/ */
void meta_stack_lower (MetaStack *stack, void meta_stack_lower (MetaStack *stack,
MetaWindow *window); MetaWindow *window);
/** /**
* meta_stack_freeze:
* @stack: The stack to freeze.
*
* Prevent syncing to server until the next call of meta_stack_thaw(), * Prevent syncing to server until the next call of meta_stack_thaw(),
* so that we can carry out multiple operations in one go without having * so that we can carry out multiple operations in one go without having
* everything halfway reflected on the X server. * everything halfway reflected on the X server.
* *
* (Calls to meta_stack_freeze() nest, so that multiple calls to * (Calls to meta_stack_freeze() nest, so that multiple calls to
* meta_stack_freeze will require multiple calls to meta_stack_thaw().) * meta_stack_freeze will require multiple calls to meta_stack_thaw().)
*
* \param stack The stack to freeze.
*/ */
void meta_stack_freeze (MetaStack *stack); void meta_stack_freeze (MetaStack *stack);
/** /**
* meta_stack_thaw:
* @stack: The stack to thaw.
*
* Undoes a meta_stack_freeze(), and processes anything which has become * Undoes a meta_stack_freeze(), and processes anything which has become
* necessary during the freeze. It is an error to call this function if * necessary during the freeze. It is an error to call this function if
* the stack has not been frozen. * the stack has not been frozen.
*
* \param stack The stack to thaw.
*/ */
void meta_stack_thaw (MetaStack *stack); void meta_stack_thaw (MetaStack *stack);
/** /**
* meta_stack_get_top:
* @stack: The stack to examine.
*
* Finds the top window on the stack. * Finds the top window on the stack.
* *
* \param stack The stack to examine. * Returns: The top window on the stack, or %NULL in the vanishingly unlikely
* \return The top window on the stack, or NULL in the vanishingly unlikely
* event that you have no windows on your screen whatsoever. * event that you have no windows on your screen whatsoever.
*/ */
MetaWindow* meta_stack_get_top (MetaStack *stack); MetaWindow* meta_stack_get_top (MetaStack *stack);
/** /**
* meta_stack_get_bottom:
* @stack: The stack to search
*
* Finds the window at the bottom of the stack. Since that's pretty much * Finds the window at the bottom of the stack. Since that's pretty much
* always the desktop, this isn't the most useful of functions, and nobody * always the desktop, this isn't the most useful of functions, and nobody
* actually calls it. We should probably get rid of it. * actually calls it. We should probably get rid of it.
*
* \param stack The stack to search
*/ */
MetaWindow* meta_stack_get_bottom (MetaStack *stack); MetaWindow* meta_stack_get_bottom (MetaStack *stack);
/** /**
* meta_stack_get_above:
* @stack: The stack to search.
* @window: The window to look above.
* @only_within_layer: If %TRUE, will return %NULL if @window is the
* top window in its layer.
*
* Finds the window above a given window in the stack. * Finds the window above a given window in the stack.
* It is not an error to pass in a window which does not exist in * It is not an error to pass in a window which does not exist in
* the stack; the function will merely return NULL. * the stack; the function will merely return %NULL.
* *
* \param stack The stack to search. * Returns: %NULL if there is no such window;
* \param window The window to look above. * the window above @window otherwise.
* \param only_within_layer If true, will return NULL if "window" is the
* top window in its layer.
* \return NULL if there is no such window;
* the window above "window" otherwise.
*/ */
MetaWindow* meta_stack_get_above (MetaStack *stack, MetaWindow* meta_stack_get_above (MetaStack *stack,
MetaWindow *window, MetaWindow *window,
gboolean only_within_layer); gboolean only_within_layer);
/** /**
* meta_stack_get_below:
* @stack: The stack to search.
* @window: The window to look below.
* @only_within_layer: If %TRUE, will return %NULL if window is the
* bottom window in its layer.
*
* Finds the window below a given window in the stack. * Finds the window below a given window in the stack.
* It is not an error to pass in a window which does not exist in * It is not an error to pass in a window which does not exist in
* the stack; the function will merely return NULL. * the stack; the function will merely return %NULL.
* *
* \param stack The stack to search. *
* \param window The window to look below. * Returns: %NULL if there is no such window;
* \param only_within_layer If true, will return NULL if "window" is the * the window below @window otherwise.
* bottom window in its layer.
* \return NULL if there is no such window;
* the window below "window" otherwise.
*/ */
MetaWindow* meta_stack_get_below (MetaStack *stack, MetaWindow* meta_stack_get_below (MetaStack *stack,
MetaWindow *window, MetaWindow *window,
gboolean only_within_layer); gboolean only_within_layer);
/** /**
* meta_stack_get_default_focus_window:
* @stack: The stack to search.
* @workspace: %NULL to search all workspaces; otherwise only windows
* from that workspace will be returned.
* @not_this_one: Window to ignore because it's being unfocussed or
* going away.
*
* Find the topmost, focusable, mapped, window in a stack. If you supply * Find the topmost, focusable, mapped, window in a stack. If you supply
* a window as "not_this_one", we won't return that one (presumably * a window as @not_this_one, we won't return that one (presumably
* because it's going to be going away). But if you do supply "not_this_one" * because it's going to be going away). But if you do supply @not_this_one
* and we find its parent, we'll return that; and if "not_this_one" is in * and we find its parent, we'll return that; and if @not_this_one is in
* a group, we'll return the top window of that group. * a group, we'll return the top window of that group.
* *
* Also, we are prejudiced against dock windows. Every kind of window, even * Also, we are prejudiced against dock windows. Every kind of window, even
* the desktop, will be returned in preference to a dock window. * the desktop, will be returned in preference to a dock window.
* *
* \param stack The stack to search. * Returns: The window matching all these constraints or %NULL if none does.
* \param workspace NULL to search all workspaces; otherwise only windows
* from that workspace will be returned.
* \param not_this_one Window to ignore because it's being unfocussed or
* going away.
* \return The window matching all these constraints or NULL if none does.
*
* \bug Never called!
*/ */
MetaWindow* meta_stack_get_default_focus_window (MetaStack *stack, MetaWindow* meta_stack_get_default_focus_window (MetaStack *stack,
MetaWorkspace *workspace, MetaWorkspace *workspace,
MetaWindow *not_this_one); MetaWindow *not_this_one);
/** /**
* meta_stack_get_default_focus_window_at_point:
* @stack: The stack to search.
* @workspace: %NULL to search all workspaces; otherwise only windows
* from that workspace will be returned.
* @not_this_one: Window to ignore because it's being unfocussed or
* going away.
* @root_x: The returned window must contain this point,
* unless it's a dock.
* @root_y: See root_x.
*
* Find the topmost, focusable, mapped, window in a stack. If you supply * Find the topmost, focusable, mapped, window in a stack. If you supply
* a window as "not_this_one", we won't return that one (presumably * a window as @not_this_one, we won't return that one (presumably
* because it's going to be going away). But if you do supply "not_this_one" * because it's going to be going away). But if you do supply @not_this_one
* and we find its parent, we'll return that; and if "not_this_one" is in * and we find its parent, we'll return that; and if @not_this_one is in
* a group, we'll return the top window of that group. * a group, we'll return the top window of that group.
* *
* Also, we are prejudiced against dock windows. Every kind of window, even * Also, we are prejudiced against dock windows. Every kind of window, even
* the desktop, will be returned in preference to a dock window. * the desktop, will be returned in preference to a dock window.
* *
* \param stack The stack to search. * Returns: The window matching all these constraints or %NULL if none does.
* \param workspace NULL to search all workspaces; otherwise only windows
* from that workspace will be returned.
* \param not_this_one Window to ignore because it's being unfocussed or
* going away.
* \param root_x The returned window must contain this point,
* unless it's a dock.
* \param root_y See root_x.
* \return The window matching all these constraints or NULL if none does.
*/ */
MetaWindow* meta_stack_get_default_focus_window_at_point (MetaStack *stack, MetaWindow* meta_stack_get_default_focus_window_at_point (MetaStack *stack,
MetaWorkspace *workspace, MetaWorkspace *workspace,
@ -317,18 +340,25 @@ MetaWindow* meta_stack_get_default_focus_window_at_point (MetaStack *stack,
int root_y); int root_y);
/** /**
* Finds all the windows in the stack, in order. * meta_stack_list_windows:
* * @stack: The stack to examine.
* \param stack The stack to examine. * @workspace: If not %NULL, only windows on this workspace will be
* \param workspace If non-NULL, only windows on this workspace will be
* returned; otherwise all windows in the stack will be * returned; otherwise all windows in the stack will be
* returned. * returned.
* \return A list of windows, in stacking order, honouring layers. *
* Finds all the windows in the stack, in order.
*
* Returns: A list of windows, in stacking order, honouring layers.
*/ */
GList* meta_stack_list_windows (MetaStack *stack, GList* meta_stack_list_windows (MetaStack *stack,
MetaWorkspace *workspace); MetaWorkspace *workspace);
/** /**
* meta_stack_windows_cmp:
* @stack: A stack containing both window_a and window_b
* @window_a: A window
* @window_b Another window
*
* Comparison function for windows within a stack. This is not directly * Comparison function for windows within a stack. This is not directly
* suitable for use within a standard comparison routine, because it takes * suitable for use within a standard comparison routine, because it takes
* an extra parameter; you will need to wrap it. * an extra parameter; you will need to wrap it.
@ -339,9 +369,6 @@ GList* meta_stack_list_windows (MetaStack *stack,
* *
* (FIXME: Apparently identical to compare_window_position(). Merge them.) * (FIXME: Apparently identical to compare_window_position(). Merge them.)
* *
* \param stack A stack containing both window_a and window_b
* \param window_a A window
* \param window_b Another window
* \return -1 if window_a is below window_b, honouring layers; 1 if it's * \return -1 if window_a is below window_b, honouring layers; 1 if it's
* above it; 0 if you passed in the same window twice! * above it; 0 if you passed in the same window twice!
*/ */
@ -350,23 +377,26 @@ int meta_stack_windows_cmp (MetaStack *stack,
MetaWindow *window_b); MetaWindow *window_b);
/** /**
* meta_window_set_stack_position:
* @window: The window which is moving.
* @position: Where it should move to (0 is the bottom).
*
* Sets the position of a window within the stack. This will only move it * Sets the position of a window within the stack. This will only move it
* up or down within its layer. It is an error to attempt to move this * up or down within its layer. It is an error to attempt to move this
* below position zero or above the last position in the stack (however, since * below position zero or above the last position in the stack (however, since
* we don't provide a simple way to tell the number of windows in the stack, * we don't provide a simple way to tell the number of windows in the stack,
* this requirement may not be easy to fulfil). * this requirement may not be easy to fulfil).
*
* \param window The window which is moving.
* \param position Where it should move to (0 is the bottom).
*/ */
void meta_window_set_stack_position (MetaWindow *window, void meta_window_set_stack_position (MetaWindow *window,
int position); int position);
/** /**
* meta_stack_get_positions:
* @stack: The stack to examine.
*
* Returns the current stack state, allowing rudimentary transactions. * Returns the current stack state, allowing rudimentary transactions.
* *
* \param stack The stack to examine. * Returns: An opaque GList representing the current stack sort order;
* \return An opaque GList representing the current stack sort order;
* it is the caller's responsibility to free it. * it is the caller's responsibility to free it.
* Pass this to meta_stack_set_positions() later if you want to restore * Pass this to meta_stack_set_positions() later if you want to restore
* the state to where it was when you called this function. * the state to where it was when you called this function.
@ -374,11 +404,13 @@ void meta_window_set_stack_position (MetaWindow *window,
GList* meta_stack_get_positions (MetaStack *stack); GList* meta_stack_get_positions (MetaStack *stack);
/** /**
* meta_stack_set_positions:
* @stack: The stack to roll back.
* @windows: The list returned from meta_stack_get_positions().
*
* Rolls back a transaction, given the list returned from * Rolls back a transaction, given the list returned from
* meta_stack_get_positions(). * meta_stack_get_positions().
* *
* \param stack The stack to roll back.
* \param windows The list returned from meta_stack_get_positions().
*/ */
void meta_stack_set_positions (MetaStack *stack, void meta_stack_set_positions (MetaStack *stack,
GList *windows); GList *windows);

View file

@ -1,7 +1,8 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/** /**
* \file window-props.c MetaWindow property handling * SECTION:window-props
* @short_description: #MetaWindow property handling
* *
* A system which can inspect sets of properties of given windows * A system which can inspect sets of properties of given windows
* and take appropriate action given their values. * and take appropriate action given their values.
@ -389,11 +390,13 @@ reload_net_wm_user_time_window (MetaWindow *window,
#define MAX_TITLE_LENGTH 512 #define MAX_TITLE_LENGTH 512
/** /**
* Called by set_window_title and set_icon_title to set the value of * set_title_text:
* *target to title. It required and atom is set, it will update the *
* Called by set_window_title() and set_icon_title() to set the value of
* @target to @title. It required and @atom is set, it will update the
* appropriate property. * appropriate property.
* *
* Returns TRUE if a new title was set. * Returns: %TRUE if a new title was set.
*/ */
static gboolean static gboolean
set_title_text (MetaWindow *window, set_title_text (MetaWindow *window,
@ -1643,6 +1646,9 @@ RELOAD_STRING (gtk_menubar_object_path, "gtk-menubar-object-path")
#undef RELOAD_STRING #undef RELOAD_STRING
/** /**
* meta_display_init_window_prop_hooks:
* @display: The #MetaDisplay
*
* Initialises the property hooks system. Each row in the table named "hooks" * Initialises the property hooks system. Each row in the table named "hooks"
* represents an action to take when a property is found on a newly-created * represents an action to take when a property is found on a newly-created
* window, or when a property changes its value. * window, or when a property changes its value.

View file

@ -1,7 +1,8 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/** /**
* \file window-props.h MetaWindow property handling * SECTION:window-props
* @short_description: MetaWindow property handling
* *
* A system which can inspect sets of properties of given windows * A system which can inspect sets of properties of given windows
* and take appropriate action given their values. * and take appropriate action given their values.
@ -35,12 +36,13 @@
#include "window-private.h" #include "window-private.h"
/** /**
* meta_window_reload_property:
* @window: The window.
* @property: A single X atom.
*
* Requests the current values of a single property for a given * Requests the current values of a single property for a given
* window from the server, and deals with it appropriately. * window from the server, and deals with it appropriately.
* Does not return it to the caller (it's been dealt with!) * Does not return it to the caller (it's been dealt with!)
*
* \param window The window.
* \param property A single X atom.
*/ */
void meta_window_reload_property (MetaWindow *window, void meta_window_reload_property (MetaWindow *window,
Atom property, Atom property,
@ -48,13 +50,14 @@ void meta_window_reload_property (MetaWindow *window,
/** /**
* meta_window_reload_properties:
* @window: The window.
* @properties: A pointer to a list of X atoms, "n_properties" long.
* @n_properties: The length of the properties list.
*
* Requests the current values of a set of properties for a given * Requests the current values of a set of properties for a given
* window from the server, and deals with them appropriately. * window from the server, and deals with them appropriately.
* Does not return them to the caller (they've been dealt with!) * Does not return them to the caller (they've been dealt with!)
*
* \param window The window.
* \param properties A pointer to a list of X atoms, "n_properties" long.
* \param n_properties The length of the properties list.
*/ */
void meta_window_reload_properties (MetaWindow *window, void meta_window_reload_properties (MetaWindow *window,
const Atom *properties, const Atom *properties,
@ -62,14 +65,15 @@ void meta_window_reload_properties (MetaWindow *window,
gboolean initial); gboolean initial);
/** /**
* meta_window_reload_property_from_xwindow:
* @window: A window on the same display as the one we're
* investigating (only used to find the display)
* @xwindow: The X handle for the window.
* @property: A single X atom.
*
* Requests the current values of a single property for a given * Requests the current values of a single property for a given
* window from the server, and deals with it appropriately. * window from the server, and deals with it appropriately.
* Does not return it to the caller (it's been dealt with!) * Does not return it to the caller (it's been dealt with!)
*
* \param window A window on the same display as the one we're
* investigating (only used to find the display)
* \param xwindow The X handle for the window.
* \param property A single X atom.
*/ */
void meta_window_reload_property_from_xwindow void meta_window_reload_property_from_xwindow
(MetaWindow *window, (MetaWindow *window,
@ -78,15 +82,16 @@ void meta_window_reload_property_from_xwindow
gboolean initial); gboolean initial);
/** /**
* meta_window_reload_properties_from_xwindow:
* @window: A window on the same display as the one we're
* investigating (only used to find the display)
* @xwindow: The X handle for the window.
* @properties: A pointer to a list of X atoms, "n_properties" long.
* @n_properties: The length of the properties list.
*
* Requests the current values of a set of properties for a given * Requests the current values of a set of properties for a given
* window from the server, and deals with them appropriately. * window from the server, and deals with them appropriately.
* Does not return them to the caller (they've been dealt with!) * Does not return them to the caller (they've been dealt with!)
*
* \param window A window on the same display as the one we're
* investigating (only used to find the display)
* \param xwindow The X handle for the window.
* \param properties A pointer to a list of X atoms, "n_properties" long.
* \param n_properties The length of the properties list.
*/ */
void meta_window_reload_properties_from_xwindow void meta_window_reload_properties_from_xwindow
(MetaWindow *window, (MetaWindow *window,
@ -96,41 +101,44 @@ void meta_window_reload_properties_from_xwindow
gboolean initial); gboolean initial);
/** /**
* meta_window_load_initial_properties:
* @window: The window.
*
* Requests the current values for standard properties for a given * Requests the current values for standard properties for a given
* window from the server, and deals with them appropriately. * window from the server, and deals with them appropriately.
* Does not return them to the caller (they've been dealt with!) * Does not return them to the caller (they've been dealt with!)
*
* \param window The window.
*/ */
void meta_window_load_initial_properties (MetaWindow *window); void meta_window_load_initial_properties (MetaWindow *window);
/** /**
* meta_display_init_window_prop_hooks:
* @display: The display.
*
* Initialises the hooks used for the reload_propert* functions * Initialises the hooks used for the reload_propert* functions
* on a particular display, and stores a pointer to them in the * on a particular display, and stores a pointer to them in the
* display. * display.
*
* \param display The display.
*/ */
void meta_display_init_window_prop_hooks (MetaDisplay *display); void meta_display_init_window_prop_hooks (MetaDisplay *display);
/** /**
* meta_display_free_window_prop_hooks:
* @display: The display.
* Frees the hooks used for the reload_propert* functions * Frees the hooks used for the reload_propert* functions
* for a particular display. * for a particular display.
*
* \param display The display.
*/ */
void meta_display_free_window_prop_hooks (MetaDisplay *display); void meta_display_free_window_prop_hooks (MetaDisplay *display);
/** /**
* meta_set_normal_hints:
* @window: The window to set the size hints on.
* @hints: Either some X size hints, or NULL for default.
*
* Sets the size hints for a window. This happens when a * Sets the size hints for a window. This happens when a
* WM_NORMAL_HINTS property is set on a window, but it is public * WM_NORMAL_HINTS property is set on a window, but it is public
* because the size hints are set to defaults when a window is * because the size hints are set to defaults when a window is
* created. See * created. See
* http://tronche.com/gui/x/icccm/sec-4.html#WM_NORMAL_HINTS * http://tronche.com/gui/x/icccm/sec-4.html#WM_NORMAL_HINTS
* for the X details. * for the X details.
*
* \param window The window to set the size hints on.
* \param hints Either some X size hints, or NULL for default.
*/ */
void meta_set_normal_hints (MetaWindow *window, void meta_set_normal_hints (MetaWindow *window,
XSizeHints *hints); XSizeHints *hints);

View file

@ -3452,10 +3452,11 @@ meta_window_save_rect (MetaWindow *window)
} }
/** /**
* force_save_user_window_placement:
* @window: Store current position of this window for future reference
*
* Save the user_rect regardless of whether the window is maximized or * Save the user_rect regardless of whether the window is maximized or
* fullscreen. See save_user_window_placement() for most uses. * fullscreen. See save_user_window_placement() for most uses.
*
* \param window Store current position of this window for future reference
*/ */
static void static void
force_save_user_window_placement (MetaWindow *window) force_save_user_window_placement (MetaWindow *window)
@ -3464,11 +3465,12 @@ force_save_user_window_placement (MetaWindow *window)
} }
/** /**
* save_user_window_placement:
* @window: Store current position of this window for future reference
*
* Save the user_rect, but only if the window is neither maximized nor * Save the user_rect, but only if the window is neither maximized nor
* fullscreen, otherwise the window may snap back to those dimensions * fullscreen, otherwise the window may snap back to those dimensions
* (bug #461927). * (bug #461927).
*
* \param window Store current position of this window for future reference
*/ */
static void static void
save_user_window_placement (MetaWindow *window) save_user_window_placement (MetaWindow *window)

View file

@ -192,7 +192,7 @@ meta_workspace_new (MetaScreen *screen)
return workspace; return workspace;
} }
/** Foreach function for workspace_free_struts() */ /* Foreach function for workspace_free_struts() */
static void static void
free_this (gpointer candidate, gpointer dummy) free_this (gpointer candidate, gpointer dummy)
{ {
@ -200,9 +200,10 @@ free_this (gpointer candidate, gpointer dummy)
} }
/** /**
* Frees the combined struts list of a workspace. * workspace_free_all_struts:
* @workspace: The workspace.
* *
* \param workspace The workspace. * Frees the combined struts list of a workspace.
*/ */
static void static void
workspace_free_all_struts (MetaWorkspace *workspace) workspace_free_all_struts (MetaWorkspace *workspace)
@ -216,9 +217,10 @@ workspace_free_all_struts (MetaWorkspace *workspace)
} }
/** /**
* Frees the struts list set with meta_workspace_set_builtin_struts * workspace_free_builtin_struts:
* @workspace: The workspace.
* *
* \param workspace The workspace. * Frees the struts list set with meta_workspace_set_builtin_struts
*/ */
static void static void
workspace_free_builtin_struts (MetaWorkspace *workspace) workspace_free_builtin_struts (MetaWorkspace *workspace)

View file

@ -364,6 +364,7 @@ void meta_frame_borders_clear (MetaFrameBorders *self);
(ycoord) < ((rect).y + (rect).height)) (ycoord) < ((rect).y + (rect).height))
/** /**
* MetaStackLayer:
* Layers a window can be in. * Layers a window can be in.
* These MUST be in the order of stacking. * These MUST be in the order of stacking.
*/ */

View file

@ -130,9 +130,10 @@ gboolean meta_prefs_get_compositing_manager (void);
gboolean meta_prefs_get_force_fullscreen (void); gboolean meta_prefs_get_force_fullscreen (void);
/** /**
* Sets whether the compositor is turned on. * meta_prefs_set_compositing_manager:
* @whether %TRUE to turn on, %FALSE to turn off.
* *
* \param whether TRUE to turn on, FALSE to turn off * Sets whether the compositor is turned on.
*/ */
void meta_prefs_set_compositing_manager (gboolean whether); void meta_prefs_set_compositing_manager (gboolean whether);
@ -276,7 +277,7 @@ typedef struct
MetaKeyBindingAction action; MetaKeyBindingAction action;
/** /*
* A list of MetaKeyCombos. Each of them is bound to * A list of MetaKeyCombos. Each of them is bound to
* this keypref. If one has keysym==modifiers==0, it is * this keypref. If one has keysym==modifiers==0, it is
* ignored. * ignored.

View file

@ -1,15 +1,5 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/**
* \file workspace.h Workspaces
*
* A workspace is a set of windows which all live on the same
* screen. (You may also see the name "desktop" around the place,
* which is the EWMH's name for the same thing.) Only one workspace
* of a screen may be active at once; all windows on all other workspaces
* are unmapped.
*/
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2004, 2005 Elijah Newren * Copyright (C) 2004, 2005 Elijah Newren
@ -33,6 +23,17 @@
#ifndef META_WORKSPACE_H #ifndef META_WORKSPACE_H
#define META_WORKSPACE_H #define META_WORKSPACE_H
/**
* SECTION:Workspaces
* @short_description:Workspaces
*
* A workspace is a set of windows which all live on the same
* screen. (You may also see the name "desktop" around the place,
* which is the EWMH's name for the same thing.) Only one workspace
* of a screen may be active at once; all windows on all other workspaces
* are unmapped.
*/
#include <meta/types.h> #include <meta/types.h>
#include <meta/boxes.h> #include <meta/boxes.h>
#include <meta/screen.h> #include <meta/screen.h>

View file

@ -844,9 +844,12 @@ meta_select_workspace_class_init (MetaSelectWorkspaceClass *klass)
} }
/** /**
* meta_convert_meta_to_wnck() converts a MetaWindow to a * meta_convert_meta_to_wnck:
* WnckWindowDisplayInfo window that is used to build a thumbnail of a * @window: the #MetaWindow
* workspace. * @screen: the #MetaScreen the window is on
*
* Converts a #MetaWindow to a #WnckWindowDisplayInfo window
* that is used to build a thumbnail of a workspace.
**/ **/
static WnckWindowDisplayInfo static WnckWindowDisplayInfo
meta_convert_meta_to_wnck (MetaWindow *window, MetaScreen *screen) meta_convert_meta_to_wnck (MetaWindow *window, MetaScreen *screen)

View file

@ -22,7 +22,8 @@
*/ */
/** /**
* \file theme.c Making Metacity look pretty * SECTION:theme
* @short_description: Making Metacity look pretty
* *
* The window decorations drawn by Metacity are described by files on disk * The window decorations drawn by Metacity are described by files on disk
* known internally as "themes" (externally as "window border themes" on * known internally as "themes" (externally as "window border themes" on
@ -30,28 +31,10 @@
* contains most of the code necessary to support themes; it does not * contains most of the code necessary to support themes; it does not
* contain the XML parser, which is in theme-parser.c. * contain the XML parser, which is in theme-parser.c.
* *
* \bug This is a big file with lots of different subsystems, which might * FIXME: This is a big file with lots of different subsystems, which might
* be better split out into separate files. * be better split out into separate files.
*/ */
/**
* \defgroup tokenizer The theme expression tokenizer
*
* Themes can use a simple expression language to represent the values of
* things. This is the tokeniser used for that language.
*
* \bug We could remove almost all this code by using GScanner instead,
* but we would also have to find every expression in every existing theme
* we could and make sure the parse trees were the same.
*/
/**
* \defgroup parser The theme expression parser
*
* Themes can use a simple expression language to represent the values of
* things. This is the parser used for that language.
*/
#include <config.h> #include <config.h>
#include "theme-private.h" #include "theme-private.h"
#include <meta/util.h> #include <meta/util.h>
@ -89,7 +72,7 @@ static void hls_to_rgb (gdouble *h,
gdouble *l, gdouble *l,
gdouble *s); gdouble *s);
/** /*
* The current theme. (Themes are singleton.) * The current theme. (Themes are singleton.)
*/ */
static MetaTheme *meta_current_theme = NULL; static MetaTheme *meta_current_theme = NULL;
@ -185,9 +168,10 @@ color_composite (const GdkRGBA *bg,
} }
/** /**
* Sets all the fields of a border to dummy values. * init_border:
* @border: The border whose fields should be reset.
* *
* \param border The border whose fields should be reset. * Sets all the fields of a border to dummy values.
*/ */
static void static void
init_border (GtkBorder *border) init_border (GtkBorder *border)
@ -240,9 +224,6 @@ meta_frame_layout_new (void)
return layout; return layout;
} }
/**
*
*/
static gboolean static gboolean
validate_border (const GtkBorder *border, validate_border (const GtkBorder *border,
const char **bad) const char **bad)
@ -262,17 +243,18 @@ validate_border (const GtkBorder *border,
} }
/** /**
* validate_geometry_value:
* @val: The value to check
* @name: The name to use in the error message
* @error: (out): Set to an error if val was not initialised
*
* Ensures that the theme supplied a particular dimension. When a * Ensures that the theme supplied a particular dimension. When a
* MetaFrameLayout is created, all its integer fields are set to -1 * #MetaFrameLayout is created, all its integer fields are set to -1
* by meta_frame_layout_new(). After an instance of this type * by meta_frame_layout_new(). After an instance of this type
* should have been initialised, this function checks that * should have been initialised, this function checks that
* a given field is not still at -1. It is never called directly, but * a given field is not still at -1. It is never called directly, but
* rather via the CHECK_GEOMETRY_VALUE and CHECK_GEOMETRY_BORDER * rather via the %CHECK_GEOMETRY_VALUE and %CHECK_GEOMETRY_BORDER
* macros. * macros.
*
* \param val The value to check
* \param name The name to use in the error message
* \param[out] error Set to an error if val was not initialised
*/ */
static gboolean static gboolean
validate_geometry_value (int val, validate_geometry_value (int val,
@ -1640,10 +1622,12 @@ meta_color_spec_render (MetaColorSpec *spec,
} }
/** /**
* op_name:
* @type: an operation, such as addition
*
* Represents an operation as a string. * Represents an operation as a string.
* *
* \param type an operation, such as addition * Returns: a string, such as "+"
* \return a string, such as "+"
*/ */
static const char* static const char*
op_name (PosOperatorType type) op_name (PosOperatorType type)
@ -1672,12 +1656,14 @@ op_name (PosOperatorType type)
} }
/** /**
* op_from_string:
* @p: a pointer into a string representing an operation; part of an
* expression somewhere, so not null-terminated
* @len: set to the length of the string found. Set to 0 if none is.
*
* Parses a string and returns an operation. * Parses a string and returns an operation.
* *
* \param p a pointer into a string representing an operation; part of an * Returns: the operation found. If none was, returns %POS_OP_NONE.
* expression somewhere, so not null-terminated
* \param len set to the length of the string found. Set to 0 if none is.
* \return the operation found. If none was, returns POS_OP_NONE.
*/ */
static PosOperatorType static PosOperatorType
op_from_string (const char *p, op_from_string (const char *p,
@ -1728,11 +1714,12 @@ op_from_string (const char *p,
} }
/** /**
* free_tokens:
* @tokens: an array of tokens to be freed
* @n_tokens: how many tokens are in the array.
*
* Frees an array of tokens. All the tokens and their associated memory * Frees an array of tokens. All the tokens and their associated memory
* will be freed. * will be freed.
*
* \param tokens an array of tokens to be freed
* \param n_tokens how many tokens are in the array.
*/ */
static void static void
free_tokens (PosToken *tokens, free_tokens (PosToken *tokens,
@ -1752,20 +1739,21 @@ free_tokens (PosToken *tokens,
} }
/** /**
* parse_number:
* @p: a pointer into a string representing an operation; part of an
* expression somewhere, so not null-terminated
* @end_return: set to a pointer to the end of the number found; but
* not updated if no number was found at all
* @next: set to either an integer or a float token
* @err: (out): set to the problem if there was a problem
*
* Tokenises a number in an expression. * Tokenises a number in an expression.
* *
* \param p a pointer into a string representing an operation; part of an * FIXME: The "while (*start)..." part: what's wrong with strchr-ish things?
* expression somewhere, so not null-terminated * FIXME: The name is wrong: it doesn't parse anything.
* \param end_return set to a pointer to the end of the number found; but
* not updated if no number was found at all
* \param next set to either an integer or a float token
* \param[out] err set to the problem if there was a problem
* \return TRUE if a valid number was found, FALSE otherwise (and "err" will
* have been set)
* *
* \bug The "while (*start)..." part: what's wrong with strchr-ish things? * Returns: %TRUE if a valid number was found, FALSE otherwise (and "err" will
* \bug The name is wrong: it doesn't parse anything. * have been set)
* \ingroup tokenizer
*/ */
static gboolean static gboolean
parse_number (const char *p, parse_number (const char *p,
@ -1842,7 +1830,7 @@ parse_number (const char *p,
return TRUE; return TRUE;
} }
/** /*
* Whether a variable can validly appear as part of the name of a variable. * Whether a variable can validly appear as part of the name of a variable.
*/ */
#define IS_VARIABLE_CHAR(c) (g_ascii_isalpha ((c)) || (c) == '_') #define IS_VARIABLE_CHAR(c) (g_ascii_isalpha ((c)) || (c) == '_')
@ -1888,16 +1876,15 @@ debug_print_tokens (PosToken *tokens,
#endif #endif
/** /**
* pos_tokenize:
* @expr: The expression
* @tokens_p: (out) The resulting tokens
* @n_tokens_p: (out): The number of resulting tokens
* @err: (out): set to the problem if there was a problem
* Tokenises an expression. * Tokenises an expression.
* *
* \param expr The expression * Returns: %TRUE if the expression was successfully tokenised; %FALSE otherwise.
* \param[out] tokens_p The resulting tokens
* \param[out] n_tokens_p The number of resulting tokens
* \param[out] err set to the problem if there was a problem
*
* \return True if the expression was successfully tokenised; false otherwise.
*
* \ingroup tokenizer
*/ */
static gboolean static gboolean
pos_tokenize (const char *expr, pos_tokenize (const char *expr,
@ -2025,8 +2012,9 @@ pos_tokenize (const char *expr,
} }
/** /**
* PosExprType:
*
* The type of a PosExpr: either integer, double, or an operation. * The type of a PosExpr: either integer, double, or an operation.
* \ingroup parser
*/ */
typedef enum typedef enum
{ {
@ -2036,14 +2024,15 @@ typedef enum
} PosExprType; } PosExprType;
/** /**
* PosExpr:
*
* Type and value of an expression in a parsed sequence. We don't * Type and value of an expression in a parsed sequence. We don't
* keep expressions in a tree; if this is of type POS_EXPR_OPERATOR, * keep expressions in a tree; if this is of type %POS_EXPR_OPERATOR,
* the arguments of the operator will be in the array positions * the arguments of the operator will be in the array positions
* immediately preceding and following this operator; they cannot * immediately preceding and following this operator; they cannot
* themselves be operators. * themselves be operators.
* *
* \bug operator is char; it should really be of PosOperatorType. * FIXME: operator is #gchar; it should really be of #PosOperatorType.
* \ingroup parser
*/ */
typedef struct typedef struct
{ {
@ -2334,29 +2323,29 @@ do_operations (PosExpr *exprs,
} }
/** /**
* pos_eval_get_variable:
* @t: The token representing a variable
* @result: (out): The value of that variable; not set if the token did
* not represent a known variable
* @env: The environment within which t should be evaluated
* @err: (out): set to the problem if there was a problem
*
* There is a predefined set of variables which can appear in an expression. * There is a predefined set of variables which can appear in an expression.
* Here we take a token representing a variable, and return the current value * Here we take a token representing a variable, and return the current value
* of that variable in a particular environment. * of that variable in a particular environment.
* (The value is always an integer.) * (The value is always an integer.)
* *
* There are supposedly some circumstances in which this function can be * There are supposedly some circumstances in which this function can be
* called from outside Metacity, in which case env->theme will be NULL, and * called from outside Metacity, in which case env->theme will be %NULL, and
* therefore we can't use it to find out quark values, so we do the comparison * therefore we can't use it to find out quark values, so we do the comparison
* using strcmp, which is slower. * using strcmp(), which is slower.
* *
* \param t The token representing a variable * FIXME: shouldn't @t be const?
* \param[out] result The value of that variable; not set if the token did * FIXME: we should perhaps consider some sort of lookup arrangement into an
* not represent a known variable
* \param env The environment within which t should be evaluated
* \param[out] err set to the problem if there was a problem
*
* \return true if we found the variable asked for, false if we didn't
*
* \bug shouldn't t be const?
* \bug we should perhaps consider some sort of lookup arrangement into an
* array; also, the duplication of code is unlovely; perhaps using glib * array; also, the duplication of code is unlovely; perhaps using glib
* string hashes instead of quarks would fix both problems? * string hashes instead of quarks would fix both problems?
* \ingroup parser *
* Returns: %TRUE if we found the variable asked for, %FALSE if we didn't
*/ */
static gboolean static gboolean
pos_eval_get_variable (PosToken *t, pos_eval_get_variable (PosToken *t,
@ -2459,18 +2448,18 @@ pos_eval_get_variable (PosToken *t,
} }
/** /**
* pos_eval_helper:
* @tokens: A list of tokens to evaluate.
* @n_tokens: How many tokens are in the list.
* @env: The environment context in which to evaluate the expression.
* @result: (out): The current value of the expression
*
* Evaluates a sequence of tokens within a particular environment context, * Evaluates a sequence of tokens within a particular environment context,
* and returns the current value. May recur if parantheses are found. * and returns the current value. May recur if parantheses are found.
* *
* \param tokens A list of tokens to evaluate. * FIXME: Yes, we really do reparse the expression every time it's evaluated.
* \param n_tokens How many tokens are in the list.
* \param env The environment context in which to evaluate the expression.
* \param[out] result The current value of the expression
*
* \bug Yes, we really do reparse the expression every time it's evaluated.
* We should keep the parse tree around all the time and just * We should keep the parse tree around all the time and just
* run the new values through it. * run the new values through it.
* \ingroup parser
*/ */
static gboolean static gboolean
pos_eval_helper (PosToken *tokens, pos_eval_helper (PosToken *tokens,
@ -2633,21 +2622,22 @@ pos_eval_helper (PosToken *tokens,
* *
* so very not worth fooling with bison, yet so very painful by hand. * so very not worth fooling with bison, yet so very painful by hand.
*/ */
/** /**
* pos_eval:
* @spec: The expression to evaluate.
* @env: The environment context to evaluate the expression in.
* @val_p: (out): The integer value of the expression; if the expression
* is of type float, this will be rounded. If we return
* %FALSE because the expression is invalid, this will be
* zero.
* @err: (out): The error, if anything went wrong.
*
* Evaluates an expression. * Evaluates an expression.
* *
* \param spec The expression to evaluate. * FIXME: Shouldn't @spec be const?
* \param env The environment context to evaluate the expression in.
* \param[out] val_p The integer value of the expression; if the expression
* is of type float, this will be rounded. If we return
* FALSE because the expression is invalid, this will be
* zero.
* \param[out] err The error, if anything went wrong.
* *
* \return True if we evaluated the expression successfully; false otherwise. * Returns: %TRUE if we evaluated the expression successfully; %FALSE otherwise.
*
* \bug Shouldn't spec be const?
* \ingroup parser
*/ */
static gboolean static gboolean
pos_eval (MetaDrawSpec *spec, pos_eval (MetaDrawSpec *spec,
@ -4313,13 +4303,14 @@ meta_draw_op_list_contains (MetaDrawOpList *op_list,
} }
/** /**
* Constructor for a MetaFrameStyle. * meta_frame_style_new:
* * @parent: The parent style. Data not filled in here will be
* \param parent The parent style. Data not filled in here will be
* looked for in the parent style, and in its parent * looked for in the parent style, and in its parent
* style, and so on. * style, and so on.
* *
* \return The newly-constructed style. * Constructor for a MetaFrameStyle.
*
* Returns: (transfer full): The newly-constructed style.
*/ */
MetaFrameStyle* MetaFrameStyle*
meta_frame_style_new (MetaFrameStyle *parent) meta_frame_style_new (MetaFrameStyle *parent)
@ -4341,10 +4332,10 @@ meta_frame_style_new (MetaFrameStyle *parent)
} }
/** /**
* Increases the reference count of a frame style. * meta_frame_style_ref:
* If the style is NULL, this is a no-op. * @style: The style.
* *
* \param style The style. * Increases the reference count of a frame style.
*/ */
void void
meta_frame_style_ref (MetaFrameStyle *style) meta_frame_style_ref (MetaFrameStyle *style)
@ -5853,13 +5844,15 @@ meta_theme_define_color_constant (MetaTheme *theme,
} }
/** /**
* meta_theme_lookup_color_constant:
* @theme: the theme containing the constant
* @name: the name of the constant
* @value: (out): the string representation of the colour, or %NULL if it
* doesn't exist
*
* Looks up a colour constant. * Looks up a colour constant.
* *
* \param theme the theme containing the constant * Returns: %TRUE if it exists, %FALSE otherwise
* \param name the name of the constant
* \param value [out] the string representation of the colour, or NULL if it
* doesn't exist
* \return TRUE if it exists, FALSE otherwise
*/ */
gboolean gboolean
meta_theme_lookup_color_constant (MetaTheme *theme, meta_theme_lookup_color_constant (MetaTheme *theme,
@ -5910,11 +5903,13 @@ meta_gtk_widget_get_font_desc (GtkWidget *widget,
} }
/** /**
* meta_pango_font_desc_get_text_height:
* @font_desc: the font
* @context: the context of the font
*
* Returns the height of the letters in a particular font. * Returns the height of the letters in a particular font.
* *
* \param font_desc the font * Returns: the height of the letters
* \param context the context of the font
* \return the height of the letters
*/ */
int int
meta_pango_font_desc_get_text_height (const PangoFontDescription *font_desc, meta_pango_font_desc_get_text_height (const PangoFontDescription *font_desc,
@ -6510,11 +6505,13 @@ meta_gtk_arrow_to_string (GtkArrowType arrow)
} }
/** /**
* meta_image_fill_type_from_string:
* @str: a string representing a fill_type
*
* Returns a fill_type from a string. The inverse of * Returns a fill_type from a string. The inverse of
* meta_image_fill_type_to_string(). * meta_image_fill_type_to_string().
* *
* \param str a string representing a fill_type * Returns: the fill type, or -1 if it represents no fill type.
* \result the fill_type, or -1 if it represents no fill_type.
*/ */
MetaImageFillType MetaImageFillType
meta_image_fill_type_from_string (const char *str) meta_image_fill_type_from_string (const char *str)
@ -6528,11 +6525,13 @@ meta_image_fill_type_from_string (const char *str)
} }
/** /**
* meta_image_fill_type_to_string:
* @fill_type: the fill type
*
* Returns a string representation of a fill_type. The inverse of * Returns a string representation of a fill_type. The inverse of
* meta_image_fill_type_from_string(). * meta_image_fill_type_from_string().
* *
* \param fill_type the fill type * Returns: a string representing that type
* \result a string representing that type
*/ */
const char* const char*
meta_image_fill_type_to_string (MetaImageFillType fill_type) meta_image_fill_type_to_string (MetaImageFillType fill_type)
@ -6549,13 +6548,14 @@ meta_image_fill_type_to_string (MetaImageFillType fill_type)
} }
/** /**
* gtk_style_shade:
* @a: the starting colour
* @b: (out): the resulting colour
* @k: amount to scale lightness and saturation by
*
* Takes a colour "a", scales the lightness and saturation by a certain amount, * Takes a colour "a", scales the lightness and saturation by a certain amount,
* and sets "b" to the resulting colour. * and sets "b" to the resulting colour.
* gtkstyle.c cut-and-pastage. * gtkstyle.c cut-and-pastage.
*
* \param a the starting colour
* \param b [out] the resulting colour
* \param k amount to scale lightness and saturation by
*/ */
static void static void
gtk_style_shade (GdkRGBA *a, gtk_style_shade (GdkRGBA *a,
@ -6592,11 +6592,12 @@ gtk_style_shade (GdkRGBA *a,
} }
/** /**
* Converts a red/green/blue triplet to a hue/lightness/saturation triplet. * rgb_to_hls:
* @r: on input, red; on output, hue
* @g: on input, green; on output, lightness
* @b: on input, blue; on output, saturation
* *
* \param r on input, red; on output, hue * Converts a red/green/blue triplet to a hue/lightness/saturation triplet.
* \param g on input, green; on output, lightness
* \param b on input, blue; on output, saturation
*/ */
static void static void
rgb_to_hls (gdouble *r, rgb_to_hls (gdouble *r,
@ -6670,11 +6671,12 @@ rgb_to_hls (gdouble *r,
} }
/** /**
* Converts a hue/lightness/saturation triplet to a red/green/blue triplet. * hls_to_rgb:
* @h: on input, hue; on output, red
* @l: on input, lightness; on output, green
* @s: on input, saturation; on output, blue
* *
* \param h on input, hue; on output, red * Converts a hue/lightness/saturation triplet to a red/green/blue triplet.
* \param l on input, lightness; on output, green
* \param s on input, saturation; on output, blue
*/ */
static void static void
hls_to_rgb (gdouble *h, hls_to_rgb (gdouble *h,
@ -6966,12 +6968,14 @@ draw_bg_gradient_composite (const MetaTextureSpec *bg,
#endif #endif
/** /**
* meta_theme_earliest_version_with_button:
* @type: the button type
*
* Returns the earliest version of the theme format which required support * Returns the earliest version of the theme format which required support
* for a particular button. (For example, "shade" first appeared in v2, and * for a particular button. (For example, "shade" first appeared in v2, and
* "close" in v1.) * "close" in v1.)
* *
* \param type the button type * Returns: the number of the theme format
* \return the number of the theme format
*/ */
guint guint
meta_theme_earliest_version_with_button (MetaButtonType type) meta_theme_earliest_version_with_button (MetaButtonType type)