### Class

# ClapperGtk Video

#### Description [src]

    final class ClapperGtk.Video : Gtk.Widget
      implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
      /* No available fields */
    }

A ready to be used GTK video widget implementing Clapper API.

`ClapperGtkVideo` is the main widget exposed by `ClapperGtk` API. It both displays videos played by `ClapperPlayer` (exposed as its property) and manages revealing and fading of any additional widgets overlaid on top of it.

Other widgets provided by `ClapperGtk` library, once placed anywhere on video (including nesting within another widget like `GtkBox`) will automatically control `ClapperGtkVideo` they were overlaid on top of. This allows to freely create custom playback control panels best suited for specific application. Additionally, pre-made widgets such as `ClapperGtkSimpleControls` are also available.

# Basic usage

A typical use case is to embed video widget as part of your app where video playback is needed. Get the `ClapperPlayer` belonging to the video widget and start adding new `ClapperMediaItem` items to the `ClapperQueue` for playback. For more information please refer to the Clapper playback library documentation.

`ClapperGtkVideo` can automatically take care of revealing and later fading overlaid content when interacting with the video. To do this, simply add your widgets with `clapper_gtk_video_add_fading_overlay()`. If you want to display some static content on top of video (or take care of visibility within overlaid widget itself) you can add it to the video as a normal overlay with `clapper_gtk_video_add_overlay()`.

# Actions

`ClapperGtkVideo` defines a set of built-in actions:

    - "video.toggle-play": toggle play/pause
    - "video.play": start/resume playback
    - "video.pause": pause playback
    - "video.stop": stop playback
    - "video.seek": seek to position (variant "d")
    - "video.seek-custom": seek to position using seek method (variant "(di)")
    - "video.toggle-mute": toggle mute state
    - "video.set-mute": set mute state (variant "b")
    - "video.volume-up": increase volume by 2%
    - "video.volume-down": decrease volume by 2%
    - "video.set-volume": set volume to specified value (variant "d")
    - "video.speed-up": increase speed (from 0.05x - 2x range to nearest quarter)
    - "video.speed-down": decrease speed (from 0.05x - 2x range to nearest quarter)
    - "video.set-speed": set speed to specified value (variant "d")
    - "video.previous-item": select previous item in queue
    - "video.next-item": select next item in queue
    - "video.select-item": select item at specified index in queue (variant "u")

# ClapperGtkVideo as GtkBuildable

`ClapperGtkVideo` implementation of the `GtkBuildable` interface supports placing children as either normal overlay by specifying `overlay` or a fading one by specifying `fading-overlay` as the `type` attribute of a `<child>` element. Position of overlaid content is determined by `valign/halign` properties.

    <object class="ClapperGtkVideo" id="video">
      <child type="fading-overlay">
        <object class="ClapperGtkTitleHeader">
          <property name="valign">start</property>
        </object>
      </child>
      <child type="fading-overlay">
        <object class="ClapperGtkSimpleControls">
          <property name="valign">end</property>
        </object>
      </child>
    </object>

#### Hierarchy

#### Ancestors

- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- GtkAccessible
- GtkBuildable
- GtkConstraintTarget

#### Constructors

###### clapper_gtk_video_new

Creates a new `ClapperGtkVideo` instance.

#### Instance methods

###### clapper_gtk_video_add_fading_overlay

Similiar as `clapper_gtk_video_add_overlay()` but will also automatically add fading functionality to overlaid `GtkWidget` for convenience. This will make widget reveal itself when interacting with `video` and fade otherwise. Useful when placing widgets such as playback controls panels.

###### clapper_gtk_video_add_overlay

Add another `GtkWidget` to be overlaid on top of video.

###### clapper_gtk_video_get_auto_inhibit

Get whether automatic session inhibit is enabled.

###### clapper_gtk_video_get_fade_delay

Get time in milliseconds after which fading overlays should fade.

###### clapper_gtk_video_get_inhibited

Get whether session is currently inhibited by `ClapperGtkVideo:auto-inhibit`.

###### clapper_gtk_video_get_player

Get `ClapperPlayer` used by this `ClapperGtkVideo` instance.

###### clapper_gtk_video_get_touch_fade_delay

Get time in milliseconds after which fading overlays should fade when revealed using touch device.

###### clapper_gtk_video_set_auto_inhibit

Set whether video should try to automatically inhibit session from idling (and possibly screen going black) when video is playing.

###### clapper_gtk_video_set_fade_delay

Set time in milliseconds after which fading overlays should fade.

###### clapper_gtk_video_set_touch_fade_delay

Set time in milliseconds after which fading overlays should fade when using touchscreen.

##### Methods inherited from GtkWidget (162)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GtkAccessible (19)

###### gtk_accessible_announce

Requests the user’s screen reader to announce the given message.

###### gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

###### gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

###### gtk_accessible_get_at_context

Retrieves the accessible implementation for the given `GtkAccessible`.

###### gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

###### gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

###### gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

###### gtk_accessible_get_platform_state

Query a platform state, such as focus.

###### gtk_accessible_reset_property

Resets the accessible `property` to its default value.

###### gtk_accessible_reset_relation

Resets the accessible `relation` to its default value.

###### gtk_accessible_reset_state

Resets the accessible `state` to its default value.

###### gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

###### gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling of `self`.

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states. See the `GtkAccessibleState` documentation for the value types of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

#### Properties

###### ClapperGtk.Video:auto-inhibit

Try to automatically inhibit session when video is playing.

###### ClapperGtk.Video:fade-delay

A delay in milliseconds before trying to fade all fading overlays.

###### ClapperGtk.Video:inhibited

Get whether session is currently inhibited by the video.

###### ClapperGtk.Video:player

A `ClapperPlayer` used by video.

###### ClapperGtk.Video:touch-fade-delay

A delay in milliseconds before trying to fade all fading overlays after revealed using touchscreen.

##### Properties inherited from GtkWidget (34)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the ::query-tooltip signal on `widget`.

###### Gtk.Widget:height-request

Override for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Override for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### Gtk.Accessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

#### Signals

###### ClapperGtk.Video::seek-request

A helper signal for implementing common seeking by double tap on screen side for touchscreen devices.

###### ClapperGtk.Video::toggle-fullscreen

A signal that user requested a change in fullscreen state of the video.

##### Signals inherited from GtkWidget (13)

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

###### GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

###### GtkWidget::hide

Emitted when `widget` is hidden.

###### GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

###### GtkWidget::map

Emitted when `widget` is going to be mapped.

###### GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

###### GtkWidget::move-focus

Emitted when the focus is moved.

###### GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

###### GtkWidget::realize

Emitted when `widget` is associated with a `GdkSurface`.

###### GtkWidget::show

Emitted when `widget` is shown.

###### GtkWidget::state-flags-changed

Emitted when the widget state changes.

###### GtkWidget::unmap

Emitted when `widget` is going to be unmapped.

###### GtkWidget::unrealize

Emitted when the `GdkSurface` associated with `widget` is destroyed.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct ClapperGtkVideoClass {
      GtkWidgetClass parent_class;

    }

No description available.

###### Class members

`parent_class: GtkWidgetClass`

  No description available.