aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/elementary/efl_ui_list_private.h
blob: 4bdf105ca9abfd85b1c945faad3b5d970d5a9b11 (plain) (blame)
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
#ifndef EFL_UI_LIST_PRIVATE_H
#define EFL_UI_LIST_PRIVATE_H

#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif

#include <Elementary.h>
#include "elm_priv.h"

typedef struct _Efl_Ui_List_Data Efl_Ui_List_Data;
typedef struct _Item_Size Item_Size;
typedef struct _Item_Block Item_Block;
typedef struct _Item_Private Item_Private;

struct _Efl_Ui_List_Data
{
   Eo           *obj;
   Efl_Model    *model;
   Eina_List    *item_blocks;
   int           count;
   Eina_Promise *count_promise;
   Eina_Promise *child_promise;
   Evas_Coord    x, y, w, h;
   Eina_Bool     v_scroll: 1;
   Eina_Bool     h_scroll: 1;
   Eina_Bool     homogeneous: 1;
   Eina_Bool     calculated: 1;
   Eina_Bool     changed: 1;
};

struct _Item_Size
{
   Evas_Coord w, h;
}

struct _Item_Block
{
   int               count;
   Evas_Coord        x, y, w, h;
   Efl_Ui_List_Data *wd;
   Eina_List        *items;
   Eina_Bool         calculated: 1;
   Eina_Bool         realized: 1;
}

struct _Item_Private;
{
   int               index; // index from the block
   Evas_Coord        x, y; // x, y position from the block
   Evas_Coord        w, h;
   Item_Block       *block;
   Efl_Ui_List_Data *pd;
   Eo               *layout;
   Efl_Model        *my_model;
   Eina_Bool         queued: 1;
   Eina_Bool         calc_once: 1;
   Eina_Bool         calculated: 1;
   Eina_Bool         realized: 1;
   Eina_Bool         disabled: 1;
   Eina_Bool         selected: 1;
   Eina_Bool         focused: 1;
};

#endif