Typo.
[cl-gtk2.git] / doc / gtk.objects.texi
index ecf6664..c9a8fa3 100644 (file)
@@ -21,7 +21,6 @@
 * i-m-context::
 * icon-factory::
 * icon-theme::
-* item-factory::
 * list-store::
 * page-setup::
 * print-context::
@@ -44,7 +43,6 @@
 * text-tag-table::
 * toggle-action::
 * tooltip::
-* tooltips::
 * tree-lisp-store::
 * tree-model-filter::
 * tree-model-sort::
@@ -61,7 +59,7 @@
 @Class accel-group
 Superclass: @ref{g-object}
 
-An @ref{accel-group} represents a group of keyboard accelerators, typically attached to a toplevel @ref{gtk-window} (with gtk_window_add_accel_group()). Usually you won't need to create an @ref{accel-group} directly; instead, when using @ref{item-factory}, GTK+ automatically sets up the accelerators for your menus in the item factory's @ref{accel-group}s.
+An @ref{accel-group} represents a group of keyboard accelerators, typically attached to a toplevel @ref{gtk-window} (with gtk_window_add_accel_group()). Usually you won't need to create an @ref{accel-group} directly.
 
 Note that accelerators are different from mnemonics. Accelerators are shortcuts for activating a menu item; they appear alongside the menu item they're a shortcut for. For example "Ctrl+Q" might appear alongside the "Quit" menu item. Mnemonics are shortcuts for GUI elements such as text entries or buttons; they appear as underlined characters. See @ref{slot.label.mnemonic-widget,label-mnemonic-widget}. Menu items can have both accelerators and mnemonics, of course.
 
@@ -1161,6 +1159,16 @@ The signal is emitted when the cell of the row identified by @var{path} is toggl
 @Class clipboard
 Superclass: @ref{g-object}
 
+The @ref{clipboard} object represents a clipboard of data shared between different processes or between different widgets in the same process. Each clipboard is identified by a name encoded as a GdkAtom. (Conversion to and from strings can be done with gdk_atom_intern() and gdk_atom_name().) The default clipboard corresponds to the "CLIPBOARD" atom; another commonly used clipboard is the "PRIMARY" clipboard, which, in X, traditionally contains the currently selected text.
+
+To support having a number of different formats on the clipboard at the same time, the clipboard mechanism allows providing callbacks instead of the actual data. When you set the contents of the clipboard, you can either supply the data directly (via functions like gtk_clipboard_set_text()), or you can supply a callback to be called at a later time when the data is needed (via gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().) Providing a callback also avoids having to make copies of the data when it is not needed.
+
+gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner() are quite similar; the choice between the two depends mostly on which is more convenient in a particular situation. The former is most useful when you want to have a blob of data with callbacks to convert it into the various data types that you advertise. When the clear_func you provided is called, you simply free the data blob. The latter is more useful when the contents of clipboard reflect the internal state of a GObject (As an example, for the PRIMARY clipboard, when an entry widget provides the clipboard's contents the contents are simply the text within the selected region.) If the contents change, the entry widget can call gtk_clipboard_set_with_owner() to update the timestamp for clipboard ownership, without having to worry about clear_func being called.
+
+Requesting the data from the clipboard is essentially asynchronous. If the contents of the clipboard are provided within the same process, then a direct function call will be made to retrieve the data, but if they are provided by another process, then the data needs to be retrieved from the other process, which may take some time. To avoid blocking the user interface, the call to request the selection, gtk_clipboard_request_contents() takes a callback that will be called when the contents are received (or when the request fails.) If you don't want to deal with providing a separate callback, you can also use gtk_clipboard_wait_for_contents(). What this does is run the GLib main loop recursively waiting for the contents. This can simplify the code flow, but you still have to be aware that other callbacks in your program can be called while this recursive mainloop is running.
+
+Along with the functions to get the clipboard contents as an arbitrary data chunk, there are also functions to retrieve it as text, gtk_clipboard_request_text() and gtk_clipboard_wait_for_text(). These functions take care of determining which formats are advertised by the clipboard provider, asking for the clipboard in the best available format and converting the results into the UTF-8 encoding. (The standard form for representing strings in GTK+.)
+
 Slots:
 @itemize
 @end itemize
@@ -1168,7 +1176,9 @@ Slots:
 
 Signals:
 @itemize
-@item @anchor{signal.clipboard.owner-change}"owner-change". Signature: (instance @ref{clipboard}), (arg-1 @ref{event}) @result{} void. Options: run-first.
+@item @anchor{signal.clipboard.owner-change}"owner-change". Signature: (instance @ref{clipboard}), (event @ref{event-owner-change}) @result{} void. Options: run-first.
+
+This signal is emitted when GTK+ receives an event that indicates that the ownership of the selection associated with clipboard has changed.
 @end itemize
 
 
@@ -1177,30 +1187,130 @@ Signals:
 @node entry-completion
 @section entry-completion
 @Class entry-completion
-Superclass: @ref{g-object}
+Superclass: @ref{g-object} @ref{buildable} @ref{cell-layout}
+
+@ref{entry-completion} is an auxiliary object to be used in conjunction with @ref{entry} to provide the completion functionality. It implements the @ref{cell-layout} interface, to allow the user to add extra cells to the @ref{tree-view} with completion matches.
+
+"Completion functionality" means that when the user modifies the text in the entry, @ref{entry-completion} checks which rows in the model match the current content of the entry, and displays a list of matches. By default, the matching is done by comparing the entry text case-insensitively against the text column of the model (see @SlotRef{entry-completion,text-column}), but this can be overridden with a custom match function (see @SlotRef{entry-completion,match-function}).
+
+When the user selects a completion, the content of the entry is updated. By default, the content of the entry is replaced by the text column of the model, but this can be overridden by connecting to the @SignalRef{entry-completion,match-selected} signal and updating the entry in the signal handler. Note that you should return TRUE from the signal handler to suppress the default behaviour.
+
+To add completion functionality to an entry, use gtk_entry_set_completion().
+
+In addition to regular completion matches, which will be inserted into the entry when they are selected, GtkEntryCompletion also allows to display "actions" in the popup window. Their appearance is similar to menuitems, to differentiate them clearly from completion strings. When an action is selected, the @SignalRef{entry-completion,action-activated} signal is emitted.
 
 Slots:
 @itemize
+@item @anchor{slot.entry-completion.entry}entry. Type: @ref{entry}. Accessor: @anchor{fn.entry-completion-entry}@code{entry-completion-entry}. Read-only.
+
+The entry completion has been attached to.
 @item @anchor{slot.entry-completion.inline-completion}inline-completion. Type: @code{boolean}. Accessor: @anchor{fn.entry-completion-inline-completion}@code{entry-completion-inline-completion}.
+
+Determines whether the common prefix of the possible completions should be inserted automatically in the entry. Note that this requires text-column to be set, even if you are using a custom match function.
+
+Default value: FALSE
 @item @anchor{slot.entry-completion.inline-selection}inline-selection. Type: @code{boolean}. Accessor: @anchor{fn.entry-completion-inline-selection}@code{entry-completion-inline-selection}.
+
+Determines whether the possible completions on the popup will appear in the entry as you navigate through them.
+
+Default value: FALSE
+@item @anchor{slot.entry-completion.match-function}match-function. Type: function. Accessor: @anchor{fn.entry-completion-match-function}@code{entry-completion-match-function}. Write-only.
+
+Sets the match function for completion. The match function is used to determine if a row should or should not be in the completion list.
+
+The match function has the following signature: (completion @ref{entry-completion}), (key @code{string}), (tree-iter @ref{tree-iter}) @result should-be-displayed-p. This function which decides whether the row indicated by @var{tree-iter} matches a given @var{key}, and should be displayed as a possible completion for @var{key}. Note that key is normalized and case-folded (see g_utf8_normalize() and g_utf8_casefold()). If this is not appropriate, match functions have access to the unmodified key via @SlotRef{entry,text} of @SlotRef{entry-completion,entry}.
 @item @anchor{slot.entry-completion.minimum-key-length}minimum-key-length. Type: @code{integer}. Accessor: @anchor{fn.entry-completion-minimum-key-length}@code{entry-completion-minimum-key-length}.
+
+Minimum length of the search key in order to look up matches.
+
+Allowed values: >= 0
+
+Default value: 1
 @item @anchor{slot.entry-completion.model}model. Type: @ref{tree-model}. Accessor: @anchor{fn.entry-completion-model}@code{entry-completion-model}.
+
+The model to find matches in.
 @item @anchor{slot.entry-completion.popup-completion}popup-completion. Type: @code{boolean}. Accessor: @anchor{fn.entry-completion-popup-completion}@code{entry-completion-popup-completion}.
+
+Determines whether the possible completions should be shown in a popup window.
+
+Default value: TRUE
 @item @anchor{slot.entry-completion.popup-set-width}popup-set-width. Type: @code{boolean}. Accessor: @anchor{fn.entry-completion-popup-set-width}@code{entry-completion-popup-set-width}.
+
+Determines whether the completions popup window will be resized to the width of the entry.
+
+Default value: TRUE
 @item @anchor{slot.entry-completion.popup-single-match}popup-single-match. Type: @code{boolean}. Accessor: @anchor{fn.entry-completion-popup-single-match}@code{entry-completion-popup-single-match}.
+
+Determines whether the completions popup window will shown for a single possible completion. You probably want to set this to FALSE if you are using inline completion.
+
+Default value: TRUE
 @item @anchor{slot.entry-completion.text-column}text-column. Type: @code{integer}. Accessor: @anchor{fn.entry-completion-text-column}@code{entry-completion-text-column}.
+
+The column of the model containing the strings.
+
+Default value: -1
 @end itemize
 
 
 Signals:
 @itemize
-@item @anchor{signal.entry-completion.action-activated}"action-activated". Signature: (instance @ref{entry-completion}), (arg-1 @code{integer}) @result{} void. Options: run-last.
-@item @anchor{signal.entry-completion.cursor-on-match}"cursor-on-match". Signature: (instance @ref{entry-completion}), (arg-1 @ref{tree-model}), (arg-2 @ref{tree-iter}) @result{} @code{boolean}. Options: run-last.
-@item @anchor{signal.entry-completion.insert-prefix}"insert-prefix". Signature: (instance @ref{entry-completion}), (arg-1 @code{string}) @result{} @code{boolean}. Options: run-last.
-@item @anchor{signal.entry-completion.match-selected}"match-selected". Signature: (instance @ref{entry-completion}), (arg-1 @ref{tree-model}), (arg-2 @ref{tree-iter}) @result{} @code{boolean}. Options: run-last.
+@item @anchor{signal.entry-completion.action-activated}"action-activated". Signature: (instance @ref{entry-completion}), (index @code{integer}) @result{} void. Options: run-last.
+
+Gets emitted when an action is activated. @var{index} is the index of activated action.
+@item @anchor{signal.entry-completion.cursor-on-match}"cursor-on-match". Signature: (instance @ref{entry-completion}), (model @ref{tree-model}), (iter @ref{tree-iter}) @result{} @code{boolean}. Options: run-last.
+
+Gets emitted when a match from the cursor is on a match of the list.The default behaviour is to replace the contents of the entry with the contents of the text column in the row pointed to by iter.
+@item @anchor{signal.entry-completion.insert-prefix}"insert-prefix". Signature: (instance @ref{entry-completion}), (prefix @code{string}) @result{} @code{boolean}. Options: run-last.
+
+Gets emitted when the inline autocompletion is triggered. The default behaviour is to make the entry display the whole prefix and select the newly inserted part.
+
+Applications may connect to this signal in order to insert only a smaller part of the prefix into the entry - e.g. the entry used in the @ref{file-chooser} inserts only the part of the prefix up to the next '/'.
+@item @anchor{signal.entry-completion.match-selected}"match-selected". Signature: (instance @ref{entry-completion}), (model @ref{tree-model}), (iter @ref{tree-iter}) @result{} @code{boolean}. Options: run-last.
+
+Gets emitted when a match from the list is selected. The default behaviour is to replace the contents of the entry with the contents of the text column in the row pointed to by iter.
 @end itemize
 
+@RMethod entry-completion-complete
+@lisp
+(entry-completion-complete completion)
+@end lisp
 
+Requests a completion operation, or in other words a refiltering of the current list with completions, using the current key. The completion list view will be updated accordingly.
+
+@RMethod entry-completion-completion-prefix
+@lisp
+(entry-completion-completion-prefix completion) @result{} string
+@end lisp
+
+Get the original text entered by the user that triggered the completion or NULL if there's no completion ongoing.
+
+@RMethod entry-completion-insert-prefix
+@lisp
+(entry-completion-insert-prefix completion)
+@end lisp
+
+Requests a prefix insertion.
+
+@RMethod entry-completion-insert-action-text
+@lisp
+(entry-completion-insert-action-text completion index text)
+@end lisp
+
+Inserts an action in completion's action item list at position @var{index} with text @var{text}. If you want the action item to have markup, use @ref{entry-completion-insert-action-markup}.
+
+@RMethod entry-completion-insert-action-markup
+@lisp
+(entry-completion-insert-action-markup completion index markup)
+@end lisp
+
+Inserts an action in completion's action item list at position @var{index} with markup @var{markup}.
+
+@RMethod entry-completion-delete-action
+@lisp
+(entry-completion-delete-action completion index)
+@end lisp
+
+Deletes the action at @var{index} from completion's action list.
 
 
 @node file-filter
@@ -1208,6 +1318,11 @@ Signals:
 @Class file-filter
 Superclass: @ref{gtk-object}
 
+A @ref{file-filter} can be used to restrict the files being shown in a @ref{file-chooser}. Files can be filtered based on their name (with gtk_file_filter_add_pattern()), on their mime type (with gtk_file_filter_add_mime_type()), or by a custom filter function (with gtk_file_filter_add_custom()).
+
+Filtering by mime types handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that GtkFileFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/*.
+
+Normally, filters are used by adding them to a GtkFileChooser, see gtk_file_chooser_add_filter(), but it is also possible to manually use a filter on a file with gtk_file_filter_filter().
 Slots:
 @itemize
 @item @anchor{slot.file-filter.name}name. Type: @code{string}. Accessor: @anchor{fn.file-filter-name}@code{file-filter-name}.
@@ -1226,17 +1341,25 @@ Signals:
 @Class gtk-object
 Superclass: @ref{g-initially-unowned}
 
-Subclasses: @ref{item-factory} @ref{tooltips} @ref{recent-filter} @ref{file-filter} @ref{cell-renderer} @ref{tree-view-column} @ref{adjustment} @ref{widget}
+Subclasses: @ref{recent-filter} @ref{file-filter} @ref{cell-renderer} @ref{tree-view-column} @ref{adjustment} @ref{widget}
+
+@ref{gtk-object} is the base class for all widgets, and for a few non-widget objects such as @ref{adjustment}. @ref{gtk-object} predates @ref{g-object}; non-widgets that derive from @ref{gtk-object} rather than @ref{g-object} do so for backward compatibility reasons.
+
+The @SignalRef{gtk-object,destroy} signal asks all code owning a reference to an object to release said reference. So, for example, if you call gtk_object_destroy() on a @ref{gtk-window}, GTK+ will release the reference count that it owns; if you call gtk_object_destroy() on a @ref{button}, then the button will be removed from its parent container and the parent container will release its reference to the button. Because these references are released, calling gtk_object_destroy() should result in freeing all memory associated with an object, unless some buggy code fails to release its references in response to the "destroy" signal.
 
 Slots:
 @itemize
 @item @anchor{slot.gtk-object.user-data}user-data. Type: gpointer. Accessor: @anchor{fn.gtk-object-user-data}@code{gtk-object-user-data}.
+
+Anonymous User Data Pointer.
 @end itemize
 
 
 Signals:
 @itemize
 @item @anchor{signal.gtk-object.destroy}"destroy". Signature: (instance @ref{gtk-object}) @result{} void. Options: run-cleanup, no-recurse, no-hooks.
+
+Signals that all holders of a reference to the @ref{gtk-object} should release the reference that they hold. May result in finalization of the object if all references are released.
 @end itemize
 
 
@@ -1247,6 +1370,15 @@ Signals:
 @Class i-m-context
 Superclass: @ref{g-object}
 
+
+@ref{i-m-context} defines the interface for GTK+ input methods. An input method is used by GTK+ text input widgets like @ref{entry} to map from key events to Unicode character strings.
+
+The user may change the current input method via a context menu, unless the @SlotRef{settings,gtk-show-input-method-menu} property is set to FALSE. The default input method can be set programmatically via the @SlotRef{settings,gtk-im-module} property. Alternatively, you may set the GTK_IM_MODULE environment variable as documented in gtk-running.
+
+The @SlotRef{entry,im-module} and @SlotRef{text-view,im-module} properties may also be used to set input methods for specific widget instances. For instance, a certain entry widget might be expected to contain certain characters which would be easier to input with a certain input method.
+
+An input method may consume multiple key events in sequence and finally output the composed result. This is called preediting, and an input method may provide feedback about this process by displaying the intermediate composition states as preedit text. For instance, the default GTK+ input method implements the input of arbitrary Unicode code points by holding down the Control and Shift keys and then typing "U" followed by the hexadecimal digits of the code point. When releasing the Control and Shift keys, preediting ends and the character is inserted as text. Ctrl+Shift+u20AC for example results in the € sign.
+
 Slots:
 @itemize
 @end itemize
@@ -1254,12 +1386,30 @@ Slots:
 
 Signals:
 @itemize
-@item @anchor{signal.i-m-context.commit}"commit". Signature: (instance @ref{i-m-context}), (arg-1 @code{string}) @result{} void. Options: run-last.
-@item @anchor{signal.i-m-context.delete-surrounding}"delete-surrounding". Signature: (instance @ref{i-m-context}), (arg-1 @code{integer}), (arg-2 @code{integer}) @result{} @code{boolean}. Options: run-last.
+@item @anchor{signal.i-m-context.commit}"commit". Signature: (instance @ref{i-m-context}), (str @code{string}) @result{} void. Options: run-last.
+
+The signal is emitted when a complete input sequence has been entered by the user. This can be a single character immediately after a key press or the final result of preediting.
+@item @anchor{signal.i-m-context.delete-surrounding}"delete-surrounding". Signature: (instance @ref{i-m-context}), (offset @code{integer}), (n-chars @code{integer}) @result{} @code{boolean}. Options: run-last.
+
+The signal is emitted when the input method needs to delete all or part of the context surrounding the cursor.
+@table @var
+@item @var{offset}
+the character offset from the cursor position of the text to be deleted. A negative value indicates a position before the cursor.
+@item @var{n-chars}
+the number of characters to be deleted
+@end table
 @item @anchor{signal.i-m-context.preedit-changed}"preedit-changed". Signature: (instance @ref{i-m-context}) @result{} void. Options: run-last.
+
+The signal is emitted whenever the preedit sequence currently being entered has changed. It is also emitted at the end of a preedit sequence, in which case gtk_im_context_get_preedit_string() returns the empty string.
 @item @anchor{signal.i-m-context.preedit-end}"preedit-end". Signature: (instance @ref{i-m-context}) @result{} void. Options: run-last.
+
+The signal is emitted when a preediting sequence has been completed or canceled.
 @item @anchor{signal.i-m-context.preedit-start}"preedit-start". Signature: (instance @ref{i-m-context}) @result{} void. Options: run-last.
+
+The signal is emitted when a new preediting sequence starts.
 @item @anchor{signal.i-m-context.retrieve-surrounding}"retrieve-surrounding". Signature: (instance @ref{i-m-context}) @result{} @code{boolean}. Options: run-last.
+
+The signal is emitted when the input method requires the context surrounding the cursor. The callback should set the input method surrounding context by calling the gtk_im_context_set_surrounding() method.
 @end itemize
 
 
@@ -1270,6 +1420,10 @@ Signals:
 @Class icon-factory
 Superclass: @ref{g-object}
 
+An icon factory manages a collection of GtkIconSet; a GtkIconSet manages a set of variants of a particular icon (i.e. a GtkIconSet contains variants for different sizes and widget states). Icons in an icon factory are named by a stock ID, which is a simple string identifying the icon. Each @ref{style} has a list of @ref{icon-factory} derived from the current theme; those icon factories are consulted first when searching for an icon. If the theme doesn't set a particular icon, GTK+ looks for the icon in a list of default icon factories, maintained by gtk_icon_factory_add_default() and gtk_icon_factory_remove_default(). Applications with icons should add a default icon factory with their icons, which will allow themes to override the icons for the application.
+
+To display an icon, always use gtk_style_lookup_icon_set() on the widget that will display the icon, or the convenience function gtk_widget_render_icon(). These functions take the theme into account when looking up the icon to use for a given stock ID.
+
 Slots:
 @itemize
 @end itemize
@@ -1287,23 +1441,21 @@ Signals:
 @Class icon-theme
 Superclass: @ref{g-object}
 
-Slots:
-@itemize
-@end itemize
 
 
-Signals:
-@itemize
-@item @anchor{signal.icon-theme.changed}"changed". Signature: (instance @ref{icon-theme}) @result{} void. Options: run-last.
-@end itemize
+@ref{icon-theme} provides a facility for looking up icons by name and size. The main reason for using a name rather than simply providing a filename is to allow different icons to be used depending on what icon theme is selecetd by the user. The operation of icon themes on Linux and Unix follows the Icon Theme Specification. There is a default icon theme, named hicolor where applications should install their icons, but more additional application themes can be installed as operating system vendors and users choose.
 
+Named icons are similar to the Themeable Stock Images(3) facility, and the distinction between the two may be a bit confusing. A few things to keep in mind:
 
+Stock images usually are used in conjunction with Stock Items(3)., such as GTK_STOCK_OK or GTK_STOCK_OPEN. Named icons are easier to set up and therefore are more useful for new icons that an application wants to add, such as application icons or window icons.
 
+Stock images can only be loaded at the symbolic sizes defined by the GtkIconSize enumeration, or by custom sizes defined by gtk_icon_size_register(), while named icons are more flexible and any pixel size can be specified.
 
-@node item-factory
-@section item-factory
-@Class item-factory
-Superclass: @ref{gtk-object}
+Because stock images are closely tied to stock items, and thus to actions in the user interface, stock images may come in multiple variants for different widget states or writing directions.
+
+A good rule of thumb is that if there is a stock image for what you want to use, use it, otherwise use a named icon. It turns out that internally stock images are generally defined in terms of one or more named icons. (An example of the more than one case is icons that depend on writing direction; GTK_STOCK_GO_FORWARD uses the two themed icons "gtk-stock-go-forward-ltr" and "gtk-stock-go-forward-rtl".)
+
+In many cases, named themes are used indirectly, via GtkImage or stock items, rather than directly, but looking up icons directly is also simple. The GtkIconTheme object acts as a database of all the icons in the current theme. You can create new GtkIconTheme objects, but its much more efficient to use the standard icon theme for the GdkScreen so that the icon information is shared with other people looking up icons.
 
 Slots:
 @itemize
@@ -1312,6 +1464,7 @@ Slots:
 
 Signals:
 @itemize
+@item @anchor{signal.icon-theme.changed}"changed". Signature: (instance @ref{icon-theme}) @result{} void. Options: run-last.
 @end itemize
 
 
@@ -1322,6 +1475,12 @@ Signals:
 @Class list-store
 Superclass: @ref{g-object}
 
+Note: see also @ref{array-list-store}
+
+The @ref{list-store} object is a list model for use with a @ref{tree-view} widget. It implements the @ref{tree-model} interface, and consequentialy, can use all of the methods available there. It also implements the @ref{tree-sortable} interface so it can be sorted by the view. Finally, it also implements the tree drag and drop interfaces.
+
+The @ref{list-store} can accept most GObject types as a column type, though it can't accept all custom types. Internally, it will keep a copy of data passed in (such as a string or a boxed pointer). Columns that accept GObjects are handled a little differently. The @ref{list-store} will keep a reference to the object instead of copying the value. As a result, if the object is modified, it is up to the application writer to call gtk_tree_model_row_changed to emit the "row_changed" signal. This most commonly affects lists with @ref{pixbuf}s stored.
+
 Slots:
 @itemize
 @end itemize
@@ -1339,6 +1498,8 @@ Signals:
 @Class page-setup
 Superclass: @ref{g-object}
 
+
+
 Slots:
 @itemize
 @end itemize
@@ -1349,8 +1510,6 @@ Signals:
 @end itemize
 
 
-
-
 @node print-context
 @section print-context
 @Class print-context
@@ -1626,38 +1785,143 @@ Signals:
 @Class status-icon
 Superclass: @ref{g-object}
 
+The "system tray" or notification area is normally used for transient icons that indicate some special state. For example, a system tray icon might appear to tell the user that they have new mail, or have an incoming instant message, or something along those lines. The basic idea is that creating an icon in the notification area is less annoying than popping up a dialog.
+
+A @ref{status-icon} object can be used to display an icon in a "system tray". The icon can have a tooltip, and the user can interact with it by activating it or popping up a context menu. Critical information should not solely be displayed in a @ref{status-icon}, since it may not be visible (e.g. when the user doesn't have a notification area on his panel). This can be checked with @SlotRef{status-icon,embedded}.
+
+On X11, the implementation follows the freedesktop.org "System Tray" specification. Implementations of the "tray" side of this specification can be found e.g. in the GNOME and KDE panel applications.
+
+Note that a @ref{status-icon} is not a @ref{widget}, but just a @ref{g-object}. Making it a widget would be impractical, since the system tray on Win32 doesn't allow to embed arbitrary widgets.
+
 Slots:
 @itemize
 @item @anchor{slot.status-icon.blinking}blinking. Type: @code{boolean}. Accessor: @anchor{fn.status-icon-blinking}@code{status-icon-blinking}.
+
+Whether or not the status icon is blinking.
+
+Default value: FALSE
 @item @anchor{slot.status-icon.embedded}embedded. Type: @code{boolean}. Accessor: @anchor{fn.status-icon-embedded}@code{status-icon-embedded}. Read-only.
+
+TRUE if the statusicon is embedded in a notification area.
+
+Default value: FALSE
 @item @anchor{slot.status-icon.file}file. Type: @code{string}. Accessor: @anchor{fn.status-icon-file}@code{status-icon-file}. Write-only.
+
+Filename to load and display.
 @item @anchor{slot.status-icon.gicon}gicon. Type: @code{GIcon}. Accessor: @anchor{fn.status-icon-gicon}@code{status-icon-gicon}.
+
+The GIcon displayed in the GtkStatusIcon. For themed icons, the image will be updated automatically if the theme changes.
 @item @anchor{slot.status-icon.has-tooltip}has-tooltip. Type: @code{boolean}. Accessor: @anchor{fn.status-icon-has-tooltip}@code{status-icon-has-tooltip}.
+
+Enables or disables the emission of @SignalRef{status-icon,query-tooltip}. A value of TRUE indicates that status icon can have a tooltip, in this case the status icon will be queried using @SignalRef{status-icon,query-tooltip} to determine whether it will provide a tooltip or not.
+
+Note that setting this property to TRUE for the first time will change the event masks of the windows of this status icon to include leave-notify and motion-notify events. This will not be undone when the property is set to FALSE again.
+
+Whether this property is respected is platform dependent. For plain text tooltips, use @SlotRef{status-icon,tooltip-text} in preference.
+
+Default value: FALSE
 @item @anchor{slot.status-icon.icon-name}icon-name. Type: @code{string}. Accessor: @anchor{fn.status-icon-icon-name}@code{status-icon-icon-name}.
+
+The name of the icon from the icon theme.
 @item @anchor{slot.status-icon.orientation}orientation. Type: @ref{orientation}. Accessor: @anchor{fn.status-icon-orientation}@code{status-icon-orientation}. Read-only.
+
+The orientation of the tray in which the statusicon is embedded.
 @item @anchor{slot.status-icon.pixbuf}pixbuf. Type: @ref{pixbuf}. Accessor: @anchor{fn.status-icon-pixbuf}@code{status-icon-pixbuf}.
+
+
+A @ref{pixbuf} to display.
 @item @anchor{slot.status-icon.screen}screen. Type: @ref{screen}. Accessor: @anchor{fn.status-icon-screen}@code{status-icon-screen}.
+
+The screen where this status icon will be displayed.
 @item @anchor{slot.status-icon.size}size. Type: @code{integer}. Accessor: @anchor{fn.status-icon-size}@code{status-icon-size}. Read-only.
+
+The size of the icon.
+
+Allowed values: >= 0
+
+Default value: 0
 @item @anchor{slot.status-icon.stock}stock. Type: @code{string}. Accessor: @anchor{fn.status-icon-stock}@code{status-icon-stock}.
+
+Stock ID for a stock image to display.
+
+Default value: NULL
 @item @anchor{slot.status-icon.storage-type}storage-type. Type: @ref{image-type}. Accessor: @anchor{fn.status-icon-storage-type}@code{status-icon-storage-type}. Read-only.
+
+The representation being used for image data.
 @item @anchor{slot.status-icon.tooltip-markup}tooltip-markup. Type: @code{string}. Accessor: @anchor{fn.status-icon-tooltip-markup}@code{status-icon-tooltip-markup}.
+
+Sets the text of tooltip to be the given string, which is marked up with the Pango text markup language.
+
+This is a convenience property which will take care of getting the tooltip shown if the given string is not NULL. @SlotRef{status-icon,has-tooltip} will automatically be set to TRUE and the default handler for the @SignalRef{status-icon,query-tooltip} signal will take care of displaying the tooltip.
+
+On some platforms, embedded markup will be ignored.
+
+Default value: NULL
 @item @anchor{slot.status-icon.tooltip-text}tooltip-text. Type: @code{string}. Accessor: @anchor{fn.status-icon-tooltip-text}@code{status-icon-tooltip-text}.
+
+Sets the text of tooltip to be the given string.
+
+This is a convenience property which will take care of getting the tooltip shown if the given string is not NULL. @SlotRef{status-icon,has-tooltip} will automatically be set to TRUE and the default handler for the @SignalRef{status-icon,query-tooltip} signal will take care of displaying the tooltip.
+
+Default value: NULL
 @item @anchor{slot.status-icon.visible}visible. Type: @code{boolean}. Accessor: @anchor{fn.status-icon-visible}@code{status-icon-visible}.
+
+Whether or not the status icon is visible.
+
+Default value: TRUE
 @end itemize
 
 
 Signals:
 @itemize
 @item @anchor{signal.status-icon.activate}"activate". Signature: (instance @ref{status-icon}) @result{} void. Options: run-first, action.
-@item @anchor{signal.status-icon.button-press-event}"button-press-event". Signature: (instance @ref{status-icon}), (arg-1 @ref{event}) @result{} @code{boolean}. Options: run-last.
-@item @anchor{signal.status-icon.button-release-event}"button-release-event". Signature: (instance @ref{status-icon}), (arg-1 @ref{event}) @result{} @code{boolean}. Options: run-last.
-@item @anchor{signal.status-icon.popup-menu}"popup-menu". Signature: (instance @ref{status-icon}), (arg-1 @code{integer}), (arg-2 @code{integer}) @result{} void. Options: run-first, action.
-@item @anchor{signal.status-icon.query-tooltip}"query-tooltip". Signature: (instance @ref{status-icon}), (arg-1 @code{integer}), (arg-2 @code{integer}), (arg-3 @code{boolean}), (arg-4 @ref{tooltip}) @result{} @code{boolean}. Options: run-last.
-@item @anchor{signal.status-icon.scroll-event}"scroll-event". Signature: (instance @ref{status-icon}), (arg-1 @ref{event}) @result{} @code{boolean}. Options: run-last.
-@item @anchor{signal.status-icon.size-changed}"size-changed". Signature: (instance @ref{status-icon}), (arg-1 @code{integer}) @result{} @code{boolean}. Options: run-last.
-@end itemize
 
+Gets emitted when the user activates the status icon. If and how status icons can activated is platform-dependent.
+
+Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.
+@item @anchor{signal.status-icon.button-press-event}"button-press-event". Signature: (instance @ref{status-icon}), (event @ref{event-button}) @result{} @code{boolean}. Options: run-last.
+
+This signal will be emitted when a button (typically from a mouse) is pressed.
+
+Whether this event is emitted is platform-dependent. Use the @SignalRef{status-icon,activate} and @SignalRef{status-icon,popup-menu} signals in preference.
+@item @anchor{signal.status-icon.button-release-event}"button-release-event". Signature: (instance @ref{status-icon}), (event @ref{event-button}) @result{} @code{boolean}. Options: run-last.
+
+This signal will be emitted when a button (typically from a mouse) is released.
+
+Whether this event is emitted is platform-dependent. Use the @SignalRef{status-icon,activate} and @SignalRef{status-icon,popup-menu} signals in preference.
+@item @anchor{signal.status-icon.popup-menu}"popup-menu". Signature: (instance @ref{status-icon}), (button @code{integer}), (activate-time @code{integer}) @result{} void. Options: run-first, action.
 
+Gets emitted when the user brings up the context menu of the status icon. Whether status icons can have context menus and how these are activated is platform-dependent.
+
+The button and activate-time parameters should be passed as the last to arguments to gtk_menu_popup().
+
+Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.
+@item @anchor{signal.status-icon.query-tooltip}"query-tooltip". Signature: (instance @ref{status-icon}), (x @code{integer}), (y @code{integer}), (keyboard-mode @code{boolean}), (tooltip @ref{tooltip}) @result{} @code{boolean}. Options: run-last.
+
+Emitted when the "gtk-tooltip-timeout" has expired with the cursor hovering above status_icon; or emitted when status_icon got focus in keyboard mode.
+
+Using the given coordinates, the signal handler should determine whether a tooltip should be shown for status-icon. If this is the case TRUE should be returned, FALSE otherwise. Note that if keyboard-mode is TRUE, the values of x and y are undefined and should not be used.
+
+The signal handler is free to manipulate @var{tooltip} with the therefore destined function calls.
+
+Whether this signal is emitted is platform-dependent. For plain text tooltips, use @SlotRef{status-icon,tooltip-text} in preference.
+
+@var{x}, @var{y}: the x and y coordinates of the cursor position where the request has been emitted, relative to status-icon
+
+@var{keyboard-mode}: TRUE if the tooltip was trigged using the keyboard
+@item @anchor{signal.status-icon.scroll-event}"scroll-event". Signature: (instance @ref{status-icon}), (event @ref{event-scroll}) @result{} @code{boolean}. Options: run-last.
+
+This signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned.
+
+Whether this event is emitted is platform-dependent.
+@item @anchor{signal.status-icon.size-changed}"size-changed". Signature: (instance @ref{status-icon}), (size @code{integer}) @result{} @code{boolean}. Options: run-last.
+
+Gets emitted when the size available for the image changes, e.g. because the notification area got resized.
+
+Returns TRUE if the icon was updated for the new size. Otherwise, GTK+ will scale the icon as necessary.
+@end itemize
+
+TODO: gtk_status_icon_position_menu, gtk_status_icon_get_x11_window_id 
 
 
 @node style
@@ -1908,23 +2172,6 @@ Signals:
 
 
 
-@node tooltips
-@section tooltips
-@Class tooltips
-Superclass: @ref{gtk-object}
-
-Slots:
-@itemize
-@end itemize
-
-
-Signals:
-@itemize
-@end itemize
-
-
-
-
 @node tree-lisp-store
 @section tree-lisp-store
 @Class tree-lisp-store
@@ -2098,8 +2345,13 @@ Signals:
 @Class window-group
 Superclass: @ref{g-object}
 
+Window-group limits the effect of grabs. Grabs added with @ref{grab-add} only affect windows within the same @ref{window-group}.
+
 Slots:
 @itemize
+@item @anchor{slot.window-group.windows}windows. Type: list of @ref{gtk-window}. Accessor: @anchor{fn.window-group-windows}@code{window-group-windows}. Read-only.
+
+A list of the @ref{gtk-window}s that belong to @ref{window-group}.
 @end itemize
 
 
@@ -2107,6 +2359,17 @@ Signals:
 @itemize
 @end itemize
 
+@RMethod window-group-add-window
+@lisp
+(window-group-add-window window-group window)
+@end lisp
+
+Adds a @var{window} (a @ref{gtk-window}) to a @var{window-group} (a @ref{window-group})
 
+@RMethod window-group-remove-window
+@lisp
+(window-group-remove-window window-group window
+@end lisp
 
+Removes a @var{window} (a @ref{gtk-window}) from a @var{window-group} (a @ref{window-group})