summaryrefslogtreecommitdiffstats
path: root/subprojects/libhandy/src/hdy-carousel-box-private.h
blob: 98d343509d935e3f8f2bb3ffda22b49ba6078b27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 * Copyright (C) 2019 Alexander Mikhaylenko <exalm7659@gmail.com>
 *
 * SPDX-License-Identifier: LGPL-2.1+
 */

#pragma once

#if !defined(_HANDY_INSIDE) && !defined(HANDY_COMPILATION)
#error "Only <handy.h> can be included directly."
#endif

#include <gtk/gtk.h>

G_BEGIN_DECLS

#define HDY_TYPE_CAROUSEL_BOX (hdy_carousel_box_get_type())

G_DECLARE_FINAL_TYPE (HdyCarouselBox, hdy_carousel_box, HDY, CAROUSEL_BOX, GtkContainer)

GtkWidget      *hdy_carousel_box_new (void);

void            hdy_carousel_box_insert (HdyCarouselBox *self,
                                         GtkWidget      *widget,
                                         gint            position);
void            hdy_carousel_box_reorder (HdyCarouselBox *self,
                                          GtkWidget      *widget,
                                          gint            position);

gboolean        hdy_carousel_box_is_animating (HdyCarouselBox *self);
void            hdy_carousel_box_stop_animation (HdyCarouselBox *self);

void            hdy_carousel_box_scroll_to (HdyCarouselBox *self,
                                            GtkWidget      *widget,
                                            gint64          duration);

guint           hdy_carousel_box_get_n_pages (HdyCarouselBox *self);
gdouble         hdy_carousel_box_get_distance (HdyCarouselBox *self);

gdouble         hdy_carousel_box_get_position (HdyCarouselBox *self);
void            hdy_carousel_box_set_position (HdyCarouselBox *self,
                                               gdouble         position);

guint           hdy_carousel_box_get_spacing (HdyCarouselBox *self);
void            hdy_carousel_box_set_spacing (HdyCarouselBox *self,
                                              guint           spacing);

guint           hdy_carousel_box_get_reveal_duration (HdyCarouselBox *self);
void            hdy_carousel_box_set_reveal_duration (HdyCarouselBox *self,
                                                      guint           reveal_duration);

GtkWidget      *hdy_carousel_box_get_nth_child (HdyCarouselBox *self,
                                                guint           n);

gdouble        *hdy_carousel_box_get_snap_points        (HdyCarouselBox *self,
                                                         gint           *n_snap_points);
void            hdy_carousel_box_get_range              (HdyCarouselBox *self,
                                                         gdouble        *lower,
                                                         gdouble        *upper);
gdouble         hdy_carousel_box_get_closest_snap_point (HdyCarouselBox *self);
GtkWidget      *hdy_carousel_box_get_page_at_position   (HdyCarouselBox *self,
                                                         gdouble         position);
gint            hdy_carousel_box_get_current_page_index (HdyCarouselBox *self);

G_END_DECLS