HdyCarousel

HdyCarousel — A paginated scrolling widget.

Functions

Properties

Signals

Types and Values

Object Hierarchy

    GEnum
    ╰── HdyCarouselIndicatorStyle
    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkEventBox
                        ╰── HdyCarousel

Implemented Interfaces

HdyCarousel implements AtkImplementorIface, GtkBuildable, GtkOrientable and HdySwipeable.

Description

The HdyCarousel widget can be used to display a set of pages with swipe-based navigation between them and optional indicators.

CSS nodes

HdyCarousel has a single CSS node with name carousel.

Functions

hdy_carousel_new ()

GtkWidget *
hdy_carousel_new (void);

Create a new HdyCarousel widget.

Returns

The newly created HdyCarousel widget

Since: 1.0


hdy_carousel_prepend ()

void
hdy_carousel_prepend (HdyCarousel *self,
                      GtkWidget *child);

Prepends child to self

Parameters

self

a HdyCarousel

 

child

a widget to add

 

Since: 1.0


hdy_carousel_insert ()

void
hdy_carousel_insert (HdyCarousel *self,
                     GtkWidget *child,
                     gint position);

Inserts child into self at position position .

If position is -1, or larger than the number of pages, child will be appended to the end.

Parameters

self

a HdyCarousel

 

child

a widget to add

 

position

the position to insert child in.

 

Since: 1.0


hdy_carousel_reorder ()

void
hdy_carousel_reorder (HdyCarousel *self,
                      GtkWidget *child,
                      gint position);

Moves child into position position .

If position is -1, or larger than the number of pages, child will be moved to the end.

Parameters

self

a HdyCarousel

 

child

a widget to add

 

position

the position to move child to.

 

Since: 1.0


hdy_carousel_scroll_to ()

void
hdy_carousel_scroll_to (HdyCarousel *self,
                        GtkWidget *widget);

Scrolls to widget position with an animation. “animation-duration” property can be used for controlling the duration.

Parameters

self

a HdyCarousel

 

widget

a child of self

 

Since: 1.0


hdy_carousel_scroll_to_full ()

void
hdy_carousel_scroll_to_full (HdyCarousel *self,
                             GtkWidget *widget,
                             gint64 duration);

Scrolls to widget position with an animation.

Parameters

self

a HdyCarousel

 

widget

a child of self

 

duration

animation duration in milliseconds

 

Since: 1.0


hdy_carousel_get_n_pages ()

guint
hdy_carousel_get_n_pages (HdyCarousel *self);

Gets the number of pages in self .

Parameters

self

a HdyCarousel

 

Returns

The number of pages in self

Since: 1.0


hdy_carousel_get_position ()

gdouble
hdy_carousel_get_position (HdyCarousel *self);

Gets current scroll position in self . It's unitless, 1 matches 1 page.

Parameters

self

a HdyCarousel

 

Returns

The scroll position

Since: 1.0


hdy_carousel_get_interactive ()

gboolean
hdy_carousel_get_interactive (HdyCarousel *self);

Gets whether self can be navigated.

Parameters

self

a HdyCarousel

 

Returns

TRUE if self can be swiped

Since: 1.0


hdy_carousel_set_interactive ()

void
hdy_carousel_set_interactive (HdyCarousel *self,
                              gboolean interactive);

Sets whether self can be navigated. This can be used to temporarily disable a HdyCarousel to only allow swiping in a certain state.

Parameters

self

a HdyCarousel

 

interactive

whether self can be swiped.

 

Since: 1.0


hdy_carousel_get_indicator_style ()

HdyCarouselIndicatorStyle
hdy_carousel_get_indicator_style (HdyCarousel *self);

Gets the current page indicator style.

Parameters

self

a HdyCarousel

 

Returns

the current indicator style

Since: 1.0


hdy_carousel_set_indicator_style ()

void
hdy_carousel_set_indicator_style (HdyCarousel *self,
                                  HdyCarouselIndicatorStyle style);

Sets style of page indicators. Depending on orientation, they are displayed below or besides the pages. If the pages are meant to be centered, “center-content” can be used to compensate for that.

Parameters

self

a HdyCarousel

 

style

indicator style to use

 

Since: 1.0


hdy_carousel_get_indicator_spacing ()

guint
hdy_carousel_get_indicator_spacing (HdyCarousel *self);

Gets spacing between content and page indicators.

Parameters

self

a HdyCarousel

 

Returns

Spacing between content and indicators

Since: 1.0


hdy_carousel_set_indicator_spacing ()

void
hdy_carousel_set_indicator_spacing (HdyCarousel *self,
                                    guint spacing);

Sets spacing between content and page indicators. Does nothing if “indicator-style” is HDY_CAROUSEL_INDICATOR_STYLE_NONE .

Parameters

self

a HdyCarousel

 

spacing

the new spacing value

 

Since: 1.0


hdy_carousel_get_center_content ()

gboolean
hdy_carousel_get_center_content (HdyCarousel *self);

Sets whether self is centering pages.

Parameters

self

a HdyCarousel

 

Returns

TRUE if self is centering pages

Since: 1.0


hdy_carousel_set_center_content ()

void
hdy_carousel_set_center_content (HdyCarousel *self,
                                 gboolean center_content);

Sets whether self is centering content. If “indicator-style” is HDY_CAROUSEL_INDICATOR_STYLE_NONE , centering does nothing, otherwise it adds whitespace to the left or above the pages to compensate for the indicators.

Parameters

self

a HdyCarousel

 

center_content

whether self should center contents

 

Since: 1.0


hdy_carousel_get_spacing ()

guint
hdy_carousel_get_spacing (HdyCarousel *self);

Gets spacing between pages in pixels.

Parameters

self

a HdyCarousel

 

Returns

Spacing between pages

Since: 1.0


hdy_carousel_set_spacing ()

void
hdy_carousel_set_spacing (HdyCarousel *self,
                          guint spacing);

Sets spacing between pages in pixels.

Parameters

self

a HdyCarousel

 

spacing

the new spacing value

 

Since: 1.0


hdy_carousel_get_animation_duration ()

guint
hdy_carousel_get_animation_duration (HdyCarousel *self);

Gets animation duration used by hdy_carousel_scroll_to().

Parameters

self

a HdyCarousel

 

Returns

Animation duration in milliseconds

Since: 1.0


hdy_carousel_set_animation_duration ()

void
hdy_carousel_set_animation_duration (HdyCarousel *self,
                                     guint duration);

Sets animation duration used by hdy_carousel_scroll_to().

Parameters

self

a HdyCarousel

 

duration

animation duration in milliseconds

 

Since: 1.0


hdy_carousel_get_allow_mouse_drag ()

gboolean
hdy_carousel_get_allow_mouse_drag (HdyCarousel *self);

Sets whether self can be dragged with mouse pointer

Parameters

self

a HdyCarousel

 

Returns

TRUE if self can be dragged with mouse

Since: 1.0


hdy_carousel_set_allow_mouse_drag ()

void
hdy_carousel_set_allow_mouse_drag (HdyCarousel *self,
                                   gboolean allow_mouse_drag);

Sets whether self can be dragged with mouse pointer. If allow_mouse_drag is FALSE, dragging is only available on touch.

This should usually be FALSE.

Parameters

self

a HdyCarousel

 

allow_mouse_drag

whether self can be dragged with mouse pointer

 

Since: 1.0

Types and Values

HDY_TYPE_CAROUSEL

#define HDY_TYPE_CAROUSEL (hdy_carousel_get_type())

enum HdyCarouselIndicatorStyle

These enumeration values describe the possible page indicator styles in a HdyCarousel widget.

New values may be added to this enumeration over time.

Members

HDY_CAROUSEL_INDICATOR_STYLE_NONE

No indicators

 

HDY_CAROUSEL_INDICATOR_STYLE_DOTS

Each page is represented by a dot. Active dot gradually becomes larger and more opaque.

 

HDY_CAROUSEL_INDICATOR_STYLE_LINES

Each page is represented by a thin and long line, and active view is shown with another line that moves between them

 

HdyCarousel

typedef struct _HdyCarousel HdyCarousel;

Property Details

The “allow-mouse-drag” property

  “allow-mouse-drag”         gboolean

Sets whether the HdyCarousel can be dragged with mouse pointer. If the value is FALSE, dragging is only available on touch.

This should usually be FALSE.

Owner: HdyCarousel

Flags: Read / Write

Default value: FALSE

Since: 1.0


The “animation-duration” property

  “animation-duration”       guint

Animation duration in milliseconds, used by hdy_carousel_scroll_to().

Owner: HdyCarousel

Flags: Read / Write

Default value: 250

Since: 1.0


The “center-content” property

  “center-content”           gboolean

Whether the HdyCarousel is centering pages. If “indicator-style” is HDY_CAROUSEL_INDICATOR_STYLE_NONE , centering does nothing, otherwise it adds whitespace to the left or above the pages to compensate for the indicators.

Owner: HdyCarousel

Flags: Read / Write

Default value: FALSE

Since: 1.0


The “indicator-spacing” property

  “indicator-spacing”        guint

Spacing between content and page indicators. Does nothing if “indicator-style” is HDY_CAROUSEL_INDICATOR_STYLE_NONE .

Owner: HdyCarousel

Flags: Read / Write

Default value: 0

Since: 1.0


The “indicator-style” property

  “indicator-style”          HdyCarouselIndicatorStyle

The style of page indicators. Depending on orientation, they are displayed below or besides the pages. If the pages are meant to be centered, “center-content” can be used to compensate for that.

Owner: HdyCarousel

Flags: Read / Write

Default value: HDY_CAROUSEL_INDICATOR_STYLE_NONE

Since: 1.0


The “interactive” property

  “interactive”              gboolean

Whether self can be navigated. This can be used to temporarily disable a HdyCarousel to only allow navigating it in a certain state.

Owner: HdyCarousel

Flags: Read / Write

Default value: TRUE

Since: 1.0


The “n-pages” property

  “n-pages”                  guint

The number of pages in a HdyCarousel

Owner: HdyCarousel

Flags: Read

Default value: 0

Since: 1.0


The “position” property

  “position”                 gdouble

Current scrolling position, unitless. 1 matches 1 page. Use hdy_carousel_scroll_to() for changing it.

Owner: HdyCarousel

Flags: Read

Allowed values: >= 0

Default value: 0

Since: 1.0


The “spacing” property

  “spacing”                  guint

Spacing between pages in pixels.

Owner: HdyCarousel

Flags: Read / Write

Default value: 0

Since: 1.0

Signal Details

The “page-changed” signal

void
user_function (HdyCarousel *self,
               guint        index,
               gpointer     user_data)

This signal is emitted after a page has been changed. This can be used to implement "infinite scrolling" by connecting to this signal and amending the pages.

Parameters

self

The HdyCarousel instance

 

index

Current page

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 1.0