<!-- ##### SECTION Title ##### -->
GtkWidget

<!-- ##### SECTION Short_Description ##### -->
Base class for all widgets

<!-- ##### SECTION Long_Description ##### -->
<para id="style-properties">
<structname>GtkWidget</structname> introduces <firstterm>style 
properties</firstterm> - these are basically object properties that are stored
not on the object, but in the style object associated to the widget. Style
properties are set in <link linkend="gtk-Resource-Files">resource files</link>.
This mechanism is used for configuring such things as the location of the
scrollbar arrows through the theme, giving theme authors more control over the
look of applications without the need to write a theme engine in C.
</para>
<para>
Use gtk_widget_class_install_style_property() to install style properties for 
a widget class, gtk_widget_class_find_style_property() or
gtk_widget_class_list_style_properties() to get information about existing
style properties and gtk_widget_style_get_property(), gtk_widget_style_get() or
gtk_widget_style_get_valist() to obtain the value of a style property.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT GtkWidget ##### -->
<para>

</para>

@style: The style for the widget. The style contains the colors the widget should be 
 drawn in for each state along with graphics contexts used to draw with and the font 
 to use for text.
@requisition: The widget's desired size.
@allocation: The widget's allocated size.
@window: The widget's window or its parent window if it does not have a window. (Which 
 will be indicated by the #GTK_NO_WINDOW flag being set).
@parent: 

<!-- ##### SIGNAL GtkWidget::accel-closures-changed ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::button-press-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::button-release-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::can-activate-accel ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::child-notify ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL GtkWidget::client-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::composited-changed ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::configure-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::delete-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::destroy-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::direction-changed ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL GtkWidget::drag-begin ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 

<!-- ##### SIGNAL GtkWidget::drag-data-delete ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 

<!-- ##### SIGNAL GtkWidget::drag-data-get ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 
@data: 
@info: 
@time: 

<!-- ##### SIGNAL GtkWidget::drag-data-received ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 
@x: 
@y: 
@data: 
@info: 
@time: 

<!-- ##### SIGNAL GtkWidget::drag-drop ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 
@x: 
@y: 
@time: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::drag-end ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 

<!-- ##### SIGNAL GtkWidget::drag-leave ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 
@time: 

<!-- ##### SIGNAL GtkWidget::drag-motion ##### -->
<para>

</para>

@widget: the object which received the signal.
@drag_context: 
@x: 
@y: 
@time: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::enter-notify-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::event-after ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 

<!-- ##### SIGNAL GtkWidget::expose-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::focus ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::focus-in-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::focus-out-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::grab-broken-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::grab-focus ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::grab-notify ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL GtkWidget::hide ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::hierarchy-changed ##### -->
<para>
Emitted when there is a change in the hierarchy to
which a widget belongs. More precisely, a widget is
<firstterm>anchored</firstterm> when its toplevel
ancestor is a #GtkWindow. This signal is emitted when 
a widget changes from un-anchored to anchored or vice-versa.
</para>

@widget: the object which received the signal.
@widget2: the toplevel ancestor, or %NULL

<!-- ##### SIGNAL GtkWidget::key-press-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::key-release-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::keynav-failed ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::leave-notify-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::map ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::map-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::mnemonic-activate ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::motion-notify-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::no-expose-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::parent-set ##### -->
<para>

</para>

@widget: the object which received the signal.
@old_parent: 

<!-- ##### SIGNAL GtkWidget::popup-menu ##### -->
<para>

</para>

@widget: the object which received the signal.
@Returns: 

<!-- ##### SIGNAL GtkWidget::property-notify-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::proximity-in-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::proximity-out-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::realize ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::screen-changed ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL GtkWidget::scroll-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::selection-clear-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::selection-get ##### -->
<para>

</para>

@widget: the object which received the signal.
@data: 
@info: 
@time: 

<!-- ##### SIGNAL GtkWidget::selection-notify-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::selection-received ##### -->
<para>

</para>

@widget: the object which received the signal.
@data: 
@time: 

<!-- ##### SIGNAL GtkWidget::selection-request-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::show ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::show-help ##### -->
<para>

</para>

@widget: the object which received the signal.
@arg1: 
@Returns: 

<!-- ##### SIGNAL GtkWidget::size-allocate ##### -->
<para>

</para>

@widget: the object which received the signal.
@allocation: 

<!-- ##### SIGNAL GtkWidget::size-request ##### -->
<para>

</para>

@widget: the object which received the signal.
@requisition: 

<!-- ##### SIGNAL GtkWidget::state-changed ##### -->
<para>

</para>

@widget: the object which received the signal.
@state: 

<!-- ##### SIGNAL GtkWidget::style-set ##### -->
<para>

</para>

@widget: the object which received the signal.
@previous_style: 

<!-- ##### SIGNAL GtkWidget::unmap ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::unmap-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::unrealize ##### -->
<para>

</para>

@widget: the object which received the signal.

<!-- ##### SIGNAL GtkWidget::visibility-notify-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### SIGNAL GtkWidget::window-state-event ##### -->
<para>

</para>

@widget: the object which received the signal.
@event: 
@Returns: %TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.

<!-- ##### ARG GtkWidget:app-paintable ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:can-default ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:can-focus ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:composite-child ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:events ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:extension-events ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:has-default ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:has-focus ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:height-request ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:is-focus ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:name ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:no-show-all ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:parent ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:receives-default ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:sensitive ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:style ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:visible ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:width-request ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:cursor-aspect-ratio ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:cursor-color ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:draw-border ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:focus-line-pattern ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:focus-line-width ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:focus-padding ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:interior-focus ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:link-color ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:scroll-arrow-hlength ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:scroll-arrow-vlength ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:secondary-cursor-color ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:separator-height ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:separator-width ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:visited-link-color ##### -->
<para>

</para>

<!-- ##### ARG GtkWidget:wide-separators ##### -->
<para>

</para>

<!-- ##### STRUCT GtkWidgetClass ##### -->
<para>
<structfield>activate_signal</structfield>
The signal to emit when a widget of this class is activated,
gtk_widget_activate() handles the emission. Implementation of this
signal is optional. 
</para>

<para>
<structfield>set_scroll_adjustment_signal</structfield>
This signal is emitted  when a widget of this class is added
to a scrolling aware parent, gtk_widget_set_scroll_adjustments()
handles the emission.
Implementation of this signal is optional.
</para>

@parent_class: 
@activate_signal: 
@set_scroll_adjustments_signal: 

<!-- ##### ENUM GtkWidgetFlags ##### -->
<para>
Tells about certain properties of the widget.
</para>

@GTK_TOPLEVEL: 
        widgets without a real parent, as there are #GtkWindow<!-- -->s and
        #GtkMenu<!-- -->s have this flag set throughout their lifetime.
        Toplevel widgets always contain their own #GdkWindow.
@GTK_NO_WINDOW: 
        Indicative for a widget that does not provide its own #GdkWindow. 
        Visible action (e.g. drawing) is performed on the parent's #GdkWindow.
@GTK_REALIZED: 
        Set by gtk_widget_realize(), unset by gtk_widget_unrealize().
        A realized widget has an associated #GdkWindow.
@GTK_MAPPED: 
        Set by gtk_widget_map(), unset by gtk_widget_unmap().
        Only realized widgets can be mapped. It means that gdk_window_show() 
        has been called on the widgets window(s).
@GTK_VISIBLE: 
        Set by gtk_widget_show(), unset by gtk_widget_hide(). Implies that a 
        widget will be mapped as soon as its parent is mapped.
@GTK_SENSITIVE: 
        Set and unset by gtk_widget_set_sensitive().
        The sensitivity of a widget determines whether it will receive
        certain events (e.g. button or key presses). One premise for
        the widget's sensitivity is to have this flag set.
@GTK_PARENT_SENSITIVE: 
        Set and unset by gtk_widget_set_sensitive() operations on the
        parents of the widget.
        This is the second premise for the widget's sensitivity. Once
        it has %GTK_SENSITIVE and %GTK_PARENT_SENSITIVE set, its state is
        effectively sensitive. This is expressed (and can be examined) by
        the #GTK_WIDGET_IS_SENSITIVE macro.
@GTK_CAN_FOCUS: 
        Determines whether a widget is able to handle focus grabs.
@GTK_HAS_FOCUS: 
        Set by gtk_widget_grab_focus() for widgets that also
        have %GTK_CAN_FOCUS set. The flag will be unset once another widget
        grabs the focus.
@GTK_CAN_DEFAULT: 
        The widget is allowed to receive the default action via 
        gtk_widget_grab_default().
@GTK_HAS_DEFAULT: 
        The widget currently is receiving the default action.
@GTK_HAS_GRAB: 
        Set by gtk_grab_add(), unset by gtk_grab_remove(). It means that the 
        widget is in the grab_widgets stack, and will be the preferred one for 
        receiving events other than ones of cosmetic value.
@GTK_RC_STYLE: 
        Indicates that the widget's style has been looked up through the rc 
        mechanism. It does not imply that the widget actually had a style 
        defined through the rc mechanism.
@GTK_COMPOSITE_CHILD: 
        Indicates that the widget is a composite child of its parent; see 
        gtk_widget_push_composite_child(), gtk_widget_pop_composite_child().
@GTK_NO_REPARENT: 
	Unused since before GTK+ 1.2, will be removed in a future version.
@GTK_APP_PAINTABLE: 
        Set and unset by gtk_widget_set_app_paintable().
        Must be set on widgets whose window the application directly draws on, 
	in order to keep GTK+ from overwriting the drawn stuff.
@GTK_RECEIVES_DEFAULT: 
        The widget when focused will receive the default action and have 
        %GTK_HAS_DEFAULT set even if there is a different widget set as default.
@GTK_DOUBLE_BUFFERED: 
        Set and unset by gtk_widget_set_double_buffered().
        Indicates that exposes done on the widget should be double-buffered.
@GTK_NO_SHOW_ALL: 

<!-- ##### MACRO GTK_WIDGET_TYPE ##### -->
<para>
Gets the type of a widget.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_STATE ##### -->
<para>
Returns the current state of the widget, as a #GtkStateType.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_SAVED_STATE ##### -->
<para>
Returns the saved state of the widget, as a #GtkStateType.
</para>
<para>
The saved state will be restored when a widget gets sensitive
again, after it has been made insensitive with gtk_widget_set_state()
or gtk_widget_set_sensitive().
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_FLAGS ##### -->
<para>
Returns the widget flags from @wid.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_TOPLEVEL ##### -->
<para>
Evaluates to %TRUE if the widget is a toplevel widget.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_NO_WINDOW ##### -->
<para>
Evaluates to %TRUE if the widget doesn't have an own #GdkWindow.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_REALIZED ##### -->
<para>
Evaluates to %TRUE if the widget is realized.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_MAPPED ##### -->
<para>
Evaluates to %TRUE if the widget is mapped.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_VISIBLE ##### -->
<para>
Evaluates to %TRUE if the widget is visible.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_DRAWABLE ##### -->
<para>
Evaluates to %TRUE if the widget is mapped and visible.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_SENSITIVE ##### -->
<para>
Evaluates to %TRUE if the #GTK_SENSITIVE flag has be set on the widget.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_PARENT_SENSITIVE ##### -->
<para>
Evaluates to %TRUE if the #GTK_PARENT_SENSITIVE flag has be set on the widget.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_IS_SENSITIVE ##### -->
<para>
Evaluates to %TRUE if the widget is effectively sensitive.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_CAN_FOCUS ##### -->
<para>
Evaluates to %TRUE if the widget is able to handle focus grabs.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_HAS_FOCUS ##### -->
<para>
Evaluates to %TRUE if the widget has grabbed the focus and no other
widget has done so more recently.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_CAN_DEFAULT ##### -->
<para>
Evaluates to %TRUE if the widget is allowed to receive the default action 
via gtk_widget_grab_default(). 
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_RECEIVES_DEFAULT ##### -->
<para>
Evaluates to %TRUE if the widget when focused will receive the default action 
even if there is a different widget set as default.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_HAS_DEFAULT ##### -->
<para>
Evaluates to %TRUE if the widget currently is receiving the default action.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_HAS_GRAB ##### -->
<para>
Evaluates to %TRUE if the widget is in the grab_widgets stack, and will be 
the preferred one for receiving events other than ones of cosmetic value.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_RC_STYLE ##### -->
<para>
Evaluates to %TRUE if the widget's style has been looked up through the rc
mechanism.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_COMPOSITE_CHILD ##### -->
<para>
Evaluates to %TRUE if the widget is a composite child of its parent.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_APP_PAINTABLE ##### -->
<para>
Evaluates to %TRUE if the #GTK_APP_PAINTABLE flag has been set on the widget.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_DOUBLE_BUFFERED ##### -->
<para>
Evaluates to %TRUE if the #GTK_DOUBLE_BUFFERED flag has been set on the widget.
</para>

@wid: a #GtkWidget.


<!-- ##### MACRO GTK_WIDGET_SET_FLAGS ##### -->
<para>
Turns on certain widget flags.
</para>

@wid: a #GtkWidget.
@flag: the flags to set.


<!-- ##### MACRO GTK_WIDGET_UNSET_FLAGS ##### -->
<para>
Turns off certain widget flags.
</para>

@wid: a #GtkWidget.
@flag: the flags to unset.


<!-- ##### USER_FUNCTION GtkCallback ##### -->
<para>
The type of the callback functions used for e.g. iterating over
the children of a container, see gtk_container_foreach(). 
</para>

@widget: the widget to operate on
@data: user-supplied data


<!-- ##### STRUCT GtkRequisition ##### -->
<para>
A <structname>GtkRequisition</structname> represents the desired size of a widget. See 
<xref linkend="size-requisition"/> for more information.
</para>

@width: the widget's desired width
@height: the widget's desired height

<!-- ##### STRUCT GtkAllocation ##### -->
<para>
A <structname>GtkAllocation</structname> of a widget represents region which has been allocated to the 
widget by its parent. It is a subregion of its parents allocation. See 
<xref linkend="size-allocation"/> for more information.
</para>

@x: the X position of the widget's area relative to its parents allocation.
@y: the Y position of the widget's area relative to its parents allocation.
@width: the width of the widget's allocated area.
@height: the height of the widget's allocated area.

<!-- ##### STRUCT GtkSelectionData ##### -->
<para>

</para>

@selection: 
@target: 
@type: 
@format: 
@data: 
@length: 
@display: 

<!-- ##### STRUCT GtkWidgetAuxInfo ##### -->
<para>

</para>

@x: 
@y: 
@width: 
@height: 
@x_set: 
@y_set: 

<!-- ##### STRUCT GtkWidgetShapeInfo ##### -->
<para>

</para>

@offset_x: 
@offset_y: 
@shape_mask: 

<!-- ##### ENUM GtkWidgetHelpType ##### -->
<para>

</para>

@GTK_WIDGET_HELP_TOOLTIP: 
@GTK_WIDGET_HELP_WHATS_THIS: 

<!-- ##### FUNCTION gtk_widget_new ##### -->
<para>

</para>

@type: 
@first_property_name: 
@Varargs: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_ref ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_unref ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_destroy ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_destroyed ##### -->
<para>

</para>

@widget: 
@widget_pointer: 


<!-- ##### FUNCTION gtk_widget_set ##### -->
<para>

</para>

@widget: 
@first_property_name: 
@Varargs: 


<!-- ##### FUNCTION gtk_widget_unparent ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_show ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_show_now ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_hide ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_show_all ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_hide_all ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_map ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_unmap ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_realize ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_unrealize ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_queue_draw ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_queue_resize ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_queue_resize_no_redraw ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_draw ##### -->
<para>

</para>

@widget: 
@area: 


<!-- ##### FUNCTION gtk_widget_size_request ##### -->
<para>

</para>

@widget: 
@requisition: 


<!-- ##### FUNCTION gtk_widget_get_child_requisition ##### -->
<para>

</para>

@widget: 
@requisition: 


<!-- ##### FUNCTION gtk_widget_size_allocate ##### -->
<para>

</para>

@widget: 
@allocation: 


<!-- ##### FUNCTION gtk_widget_add_accelerator ##### -->
<para>

</para>

@widget: 
@accel_signal: 
@accel_group: 
@accel_key: 
@accel_mods: 
@accel_flags: 


<!-- ##### FUNCTION gtk_widget_remove_accelerator ##### -->
<para>

</para>

@widget: 
@accel_group: 
@accel_key: 
@accel_mods: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_set_accel_path ##### -->
<para>

</para>

@widget: 
@accel_path: 
@accel_group: 


<!-- ##### FUNCTION gtk_widget_list_accel_closures ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_can_activate_accel ##### -->
<para>

</para>

@widget: 
@signal_id: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_event ##### -->
<para>

</para>

@widget: 
@event: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_activate ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_reparent ##### -->
<para>

</para>

@widget: 
@new_parent: 


<!-- ##### FUNCTION gtk_widget_intersect ##### -->
<para>

</para>

@widget: 
@area: 
@intersection: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_is_focus ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_grab_focus ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_grab_default ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_set_name ##### -->
<para>

</para>

@widget: 
@name: 


<!-- ##### FUNCTION gtk_widget_get_name ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_set_state ##### -->
<para>

</para>

@widget: 
@state: 


<!-- ##### FUNCTION gtk_widget_set_sensitive ##### -->
<para>

</para>

@widget: 
@sensitive: 


<!-- ##### FUNCTION gtk_widget_set_parent ##### -->
<para>

</para>

@widget: 
@parent: 


<!-- ##### FUNCTION gtk_widget_set_parent_window ##### -->
<para>

</para>

@widget: 
@parent_window: 


<!-- ##### FUNCTION gtk_widget_get_parent_window ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_set_uposition ##### -->
<para>

</para>

@widget: 
@x: 
@y: 


<!-- ##### FUNCTION gtk_widget_set_usize ##### -->
<para>

</para>

@widget: 
@width: 
@height: 


<!-- ##### FUNCTION gtk_widget_set_events ##### -->
<para>

</para>

@widget: 
@events: 


<!-- ##### FUNCTION gtk_widget_add_events ##### -->
<para>

</para>

@widget: 
@events: 


<!-- ##### FUNCTION gtk_widget_set_extension_events ##### -->
<para>

</para>

@widget: 
@mode: 


<!-- ##### FUNCTION gtk_widget_get_extension_events ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_toplevel ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_ancestor ##### -->
<para>

</para>

@widget: 
@widget_type: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_colormap ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_set_colormap ##### -->
<para>

</para>

@widget: 
@colormap: 


<!-- ##### FUNCTION gtk_widget_get_visual ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_events ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_pointer ##### -->
<para>

</para>

@widget: 
@x: 
@y: 


<!-- ##### FUNCTION gtk_widget_is_ancestor ##### -->
<para>

</para>

@widget: 
@ancestor: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_translate_coordinates ##### -->
<para>

</para>

@src_widget: 
@dest_widget: 
@src_x: 
@src_y: 
@dest_x: 
@dest_y: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_hide_on_delete ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_set_style ##### -->
<para>

</para>

@widget: 
@style: 


<!-- ##### MACRO gtk_widget_set_rc_style ##### -->
<para>
Equivalent to <literal>gtk_widget_set_style (widget, NULL)</literal>.
</para>

@widget: a #GtkWidget.


<!-- ##### FUNCTION gtk_widget_ensure_style ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_get_style ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### MACRO gtk_widget_restore_default_style ##### -->
<para>
Equivalent to <literal>gtk_widget_set_style (widget, NULL)</literal>.
</para>

@widget: a #GtkWidget.


<!-- ##### FUNCTION gtk_widget_reset_rc_styles ##### -->
<para>
Reset the styles of @widget and all descendents, so when 
they are looked up again, they get the correct values 
for the currently loaded RC file settings. 
</para>
<para>
This function is not useful for applications.
</para>

@widget: a #GtkWidget.


<!-- ##### FUNCTION gtk_widget_push_colormap ##### -->
<para>

</para>

@cmap: 


<!-- ##### FUNCTION gtk_widget_pop_colormap ##### -->
<para>

</para>



<!-- ##### FUNCTION gtk_widget_set_default_colormap ##### -->
<para>

</para>

@colormap: 


<!-- ##### FUNCTION gtk_widget_get_default_style ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gtk_widget_get_default_colormap ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gtk_widget_get_default_visual ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gtk_widget_set_direction ##### -->
<para>

</para>

@widget: 
@dir: 


<!-- ##### ENUM GtkTextDirection ##### -->
<para>

</para>

@GTK_TEXT_DIR_NONE: 
@GTK_TEXT_DIR_LTR: 
@GTK_TEXT_DIR_RTL: 

<!-- ##### FUNCTION gtk_widget_get_direction ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_set_default_direction ##### -->
<para>

</para>

@dir: 


<!-- ##### FUNCTION gtk_widget_get_default_direction ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gtk_widget_shape_combine_mask ##### -->
<para>

</para>

@widget: 
@shape_mask: 
@offset_x: 
@offset_y: 


<!-- ##### FUNCTION gtk_widget_input_shape_combine_mask ##### -->
<para>

</para>

@widget: 
@shape_mask: 
@offset_x: 
@offset_y: 


<!-- ##### FUNCTION gtk_widget_path ##### -->
<para>

</para>

@widget: 
@path_length: 
@path: 
@path_reversed: 


<!-- ##### FUNCTION gtk_widget_class_path ##### -->
<para>

</para>

@widget: 
@path_length: 
@path: 
@path_reversed: 


<!-- ##### FUNCTION gtk_widget_get_composite_name ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_modify_style ##### -->
<para>

</para>

@widget: 
@style: 


<!-- ##### FUNCTION gtk_widget_get_modifier_style ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_modify_fg ##### -->
<para>

</para>

@widget: 
@state: 
@color: 


<!-- ##### FUNCTION gtk_widget_modify_bg ##### -->
<para>

</para>

@widget: 
@state: 
@color: 


<!-- ##### FUNCTION gtk_widget_modify_text ##### -->
<para>

</para>

@widget: 
@state: 
@color: 


<!-- ##### FUNCTION gtk_widget_modify_base ##### -->
<para>

</para>

@widget: 
@state: 
@color: 


<!-- ##### FUNCTION gtk_widget_modify_font ##### -->
<para>

</para>

@widget: 
@font_desc: 


<!-- ##### FUNCTION gtk_widget_create_pango_context ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_pango_context ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_create_pango_layout ##### -->
<para>

</para>

@widget: 
@text: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_render_icon ##### -->
<para>

</para>

@widget: 
@stock_id: 
@size: 
@detail: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_pop_composite_child ##### -->
<para>

</para>



<!-- ##### FUNCTION gtk_widget_push_composite_child ##### -->
<para>

</para>



<!-- ##### FUNCTION gtk_widget_queue_clear ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_queue_clear_area ##### -->
<para>

</para>

@widget: 
@x: 
@y: 
@width: 
@height: 


<!-- ##### FUNCTION gtk_widget_queue_draw_area ##### -->
<para>

</para>

@widget: 
@x: 
@y: 
@width: 
@height: 


<!-- ##### FUNCTION gtk_widget_reset_shapes ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_set_app_paintable ##### -->
<para>

</para>

@widget: 
@app_paintable: 


<!-- ##### FUNCTION gtk_widget_set_double_buffered ##### -->
<para>

</para>

@widget: 
@double_buffered: 


<!-- ##### FUNCTION gtk_widget_set_redraw_on_allocate ##### -->
<para>

</para>

@widget: 
@redraw_on_allocate: 


<!-- ##### FUNCTION gtk_widget_set_composite_name ##### -->
<para>

</para>

@widget: 
@name: 


<!-- ##### FUNCTION gtk_widget_set_scroll_adjustments ##### -->
<para>

</para>

@widget: 
@hadjustment: 
@vadjustment: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_mnemonic_activate ##### -->
<para>

</para>

@widget: 
@group_cycling: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_class_install_style_property ##### -->
<para>

</para>

@klass: 
@pspec: 


<!-- ##### FUNCTION gtk_widget_class_install_style_property_parser ##### -->
<para>

</para>

@klass: 
@pspec: 
@parser: 


<!-- ##### FUNCTION gtk_widget_class_find_style_property ##### -->
<para>

</para>

@klass: 
@property_name: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_class_list_style_properties ##### -->
<para>

</para>

@klass: 
@n_properties: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_region_intersect ##### -->
<para>

</para>

@widget: 
@region: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_send_expose ##### -->
<para>

</para>

@widget: 
@event: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_style_get ##### -->
<para>

</para>

@widget: 
@first_property_name: 
@Varargs: 


<!-- ##### FUNCTION gtk_widget_style_get_property ##### -->
<para>

</para>

@widget: 
@property_name: 
@value: 


<!-- ##### FUNCTION gtk_widget_style_get_valist ##### -->
<para>

</para>

@widget: 
@first_property_name: 
@var_args: 


<!-- ##### FUNCTION gtk_widget_get_accessible ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_child_focus ##### -->
<para>

</para>

@widget: 
@direction: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_child_notify ##### -->
<para>

</para>

@widget: 
@child_property: 


<!-- ##### FUNCTION gtk_widget_freeze_child_notify ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_get_child_visible ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_parent ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_settings ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_clipboard ##### -->
<para>

</para>

@widget: 
@selection: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_display ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_root_window ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_screen ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_has_screen ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_get_size_request ##### -->
<para>

</para>

@widget: 
@width: 
@height: 


<!-- ##### MACRO gtk_widget_pop_visual ##### -->
<para>
This function is deprecated; it does nothing.
</para>



<!-- ##### MACRO gtk_widget_push_visual ##### -->
<para>
This function is deprecated; it does nothing.
</para>

@visual: 


<!-- ##### FUNCTION gtk_widget_set_child_visible ##### -->
<para>

</para>

@widget: 
@is_visible: 


<!-- ##### MACRO gtk_widget_set_default_visual ##### -->
<para>
This function is deprecated; it does nothing.
</para>

@visual: 


<!-- ##### FUNCTION gtk_widget_set_size_request ##### -->
<para>

</para>

@widget: 
@width: 
@height: 


<!-- ##### MACRO gtk_widget_set_visual ##### -->
<para>
This function is deprecated; it does nothing.
</para>

@widget: 
@visual: 


<!-- ##### FUNCTION gtk_widget_thaw_child_notify ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_set_no_show_all ##### -->
<para>

</para>

@widget: 
@no_show_all: 


<!-- ##### FUNCTION gtk_widget_get_no_show_all ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_list_mnemonic_labels ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_add_mnemonic_label ##### -->
<para>

</para>

@widget: 
@label: 


<!-- ##### FUNCTION gtk_widget_remove_mnemonic_label ##### -->
<para>

</para>

@widget: 
@label: 


<!-- ##### FUNCTION gtk_widget_get_action ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_is_composited ##### -->
<para>

</para>

@widget: 
@Returns: 


<!-- ##### FUNCTION gtk_widget_error_bell ##### -->
<para>

</para>

@widget: 


<!-- ##### FUNCTION gtk_widget_keynav_failed ##### -->
<para>

</para>

@widget: 
@direction: 
@Returns: 


<!-- ##### FUNCTION gtk_requisition_copy ##### -->
<para>

</para>

@requisition: 
@Returns: 


<!-- ##### FUNCTION gtk_requisition_free ##### -->
<para>

</para>

@requisition: 


