summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_widget_pager.h
blob: d01cc29a5f53c6c25a712a6fd28b00bbb272e2cb (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
66
67
68
69
#ifndef EFL_UI_WIDGET_PAGER_H
#define EFL_UI_WIDGET_PAGER_H


#include <Elementary.h>

#include "efl_page_transition.h"

typedef struct _Efl_Ui_Pager_Data
{
   Eina_List               *page_infos;
   Eina_List               *content_list;

   Efl_Ui_Box              *page_box;
   Eo                      *foreclip;
   Eo                      *backclip;

   Eo                      *page_root;
   Eo                      *event;
   Efl_Ui_Box              *idbox;
   Ecore_Job               *job;
   Ecore_Job               *page_info_job;

   Evas_Coord               x, y, w, h;
   Evas_Coord               mouse_x, mouse_y;

   struct {
      Eina_Size2D           sz;
      Evas_Coord            padding;
   } page_spec;

   struct {
      Evas_Coord            x, y;
      int                   page;
      double                pos;
      Eina_Bool             enabled;
   } down;

   struct {
      int                   page;
      double                pos;
   } curr;

   struct {
      double                src;
      double                delta;
      double                start_time;
      Eina_Bool             jump;
   } change;

   int                      cnt;
   double                   mouse_up_time;

   Efl_Ui_Pager_Loop        loop;
   Efl_Page_Transition     *transition;
   Efl_Page_Indicator      *indicator;

   Eina_Bool                move_started : 1;
   Eina_Bool                prev_block : 1;
   Eina_Bool                next_block: 1;
   Eina_Bool                fill_width: 1;
   Eina_Bool                fill_height: 1;

} Efl_Ui_Pager_Data;

#define EFL_UI_PAGER_DATA_GET(o, sd) \
   Efl_Ui_Pager_Data *sd = efl_data_scope_get(o, EFL_UI_PAGER_CLASS)

#endif