s.GLArea.html "GLArea")
  * [ GtkHSV ](class.HSV.html "HSV")
  * [ GtkInvisible ](class.Invisible.html "Invisible")
  * [ GtkLevelBar ](class.LevelBar.html "LevelBar")
  * [ GtkMisc ](class.Misc.html "Misc")
  * [ GtkProgressBar ](class.ProgressBar.html "ProgressBar")
  * [ GtkRange ](class.Range.html "Range")
  * [ GtkSeparator ](class.Separator.html "Separator")
  * [ GtkSpinner ](class.Spinner.html "Spinner")
  * [ GtkSwitch ](class.Switch.html "Switch")

####  Implements

  * [ AtkImplementorIface ](javascript:void\(0\))
  * [ GtkBuildable ](iface.Buildable.html "Buildable")

####  Constructors

######  [ gtk_widget_new ](ctor.Widget.new.html)

This is a convenience function for creating a widget and setting its
properties in one go. For example you might write: ` gtk_widget_new
(GTK_TYPE_LABEL, "label", "Hello World", "xalign", 0.0, NULL) ` to create a
left-aligned label. Equivalent to g_object_new(), but returns a widget so you
don’t have to cast the object yourself.

####  Functions

######  [ gtk_widget_get_default_direction
](type_func.Widget.get_default_direction.html)

Obtains the current default reading direction. See
gtk_widget_set_default_direction().

######  [ gtk_widget_get_default_style
](type_func.Widget.get_default_style.html)

Returns the default style used by all widgets initially.

deprecated: 3.0

######  [ gtk_widget_pop_composite_child
](type_func.Widget.pop_composite_child.html)

Cancels the effect of a previous call to gtk_widget_push_composite_child().

deprecated: 3.10

######  [ gtk_widget_push_composite_child
](type_func.Widget.push_composite_child.html)

Makes all newly-created widgets as composite children until the corresponding
` gtk_widget_pop_composite_child() ` call.

deprecated: 3.10

######  [ gtk_widget_set_default_direction
](type_func.Widget.set_default_direction.html)

Sets the default reading direction for widgets where the direction has not
been explicitly set by gtk_widget_set_direction().

####  Instance methods

######  [ gtk_widget_activate ](method.Widget.activate.html)

For widgets that can be “activated” (buttons, menu items, etc.) this function
activates them. Activation is what happens when you press Enter on a widget
during key navigation. If ` widget ` isn’t activatable, the function returns `
FALSE ` .

######  [ gtk_widget_add_accelerator ](method.Widget.add_accelerator.html)

Installs an accelerator for this ` widget ` in ` accel_group ` that causes `
accel_signal ` to be emitted if the accelerator is activated. The `
accel_group ` needs to be added to the widget’s toplevel via
gtk_window_add_accel_group(), and the signal must be of type ` G_SIGNAL_ACTION
` . Accelerators added through this function are not user changeable during
runtime. If you want to support accelerators that can be changed by the user,
use ` gtk_accel_map_add_entry() ` and ` gtk_widget_set_accel_path() ` or `
gtk_menu_item_set_accel_path() ` instead.

######  [ gtk_widget_add_device_events ](method.Widget.add_device_events.html)

Adds the device events in the bitfield ` events ` to the event mask for `
widget ` . See ` gtk_widget_set_device_events() ` for details.

since: 3.0

######  [ gtk_widget_add_events ](method.Widget.add_events.html)

Adds the events in the bitfield ` events ` to the event mask for ` widget ` .
See ` gtk_widget_set_events() ` and the [input handling overview][event-masks]
for details.

######  [ gtk_widget_add_mnemonic_label
](method.Widget.add_mnemonic_label.html)

Adds a widget to the list of mnemonic labels for this widget. (See
gtk_widget_list_mnemonic_labels()). Note the list of mnemonic labels for the
widget is cleared when the widget is destroyed, so the caller must make sure
to update its internal state at this point as well, by using a connection to
the ` GtkWidget::destroy ` signal or a weak notifier.

since: 2.4

######  [ gtk_widget_add_tick_callback ](method.Widget.add_tick_callback.html)

Queues an animation frame update and adds a callback to be called befor