summaryrefslogtreecommitdiff
path: root/src/lib/eo/eina_types.eot
blob: 5c31e5b2194dd52307a0dca5038d290f841fdbc5 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/* FIXME: Move to Eina when we decide they are handled properly. */
struct @extern @free(eina_rectangle_free) Eina.Rect {
    [[A rectangle in pixel dimensions.

     @since 1.22
   ]]
    x: int; [[X coordinate of the rectangle, from the top-left corner.]]
    y: int; [[Y coordinate of the rectangle, from the top-left corner.]]
    w: int; [[Width of the rectangle in pixels.]]
    h: int; [[Height of the rectangle in pixels.]]
}

struct @extern Eina.Position2D {
   [[A 2D location in pixels.

     @since 1.22
   ]]
   x: int; [[X position in pixels, from the top-left corner.]]
   y: int; [[Y position in pixels, from the top-left corner.]]
}

struct @extern Eina.Size2D {
   [[A 2D size in pixels.

     @since 1.22
   ]]
   w: int; [[X position in pixels, from the top-left corner.]]
   h: int; [[Y position in pixels, from the top-left corner.]]
}

struct @extern Eina.File; [[Eina file data structure

  @since 1.22
]]

struct @extern Eina.Vector2 {
   [[A simple 2D vector type using floating point values.

     @since 1.22
   ]]
   x: double; [[X coordinate.]]
   y: double; [[Y coordinate.]]
}

struct @extern Eina.Matrix3 {
   [[Eina 3x3 Matrix

     @since 1.22
   ]]
   xx: double; [[XX matrix value]]
   xy: double; [[XY matrix value]]
   xz: double; [[XZ matrix value]]

   yx: double; [[YX matrix value]]
   yy: double; [[YY matrix value]]
   yz: double; [[YZ matrix value]]

   zx: double; [[ZX matrix value]]
   zy: double; [[ZY matrix value]]
   zz: double; [[ZZ matrix value]]
}

type @extern @beta Eina.Unicode: uint32; [[Eina unicode type]]

struct @extern @beta Eina.File_Direct_Info; [[Eina file direct information data structure]]
/*{
   path_lenght:    size_t;              [[Size of the whole path]]
   name_length:    size_t;              [[Size of the filename/basename component]]
   name_start:     size_t;              [[Start position of the filename/basename component]]
   type:           Eina_File_Type;      [[File type]]
   path:           char[EINA_PATH_MAX]; [[The path]]
};*/

enum @extern @beta Eina.Xattr.Flags {
  [[Eina file extended attributes flags]]
  insert, [[This is the default behaviour, it will either create or replace the extended attribute]]
  replace, [[This will only succeed if the extended attribute previously existed]]
  created [[This will only succeed if the extended attribute wasn't previously set]]
}

type @extern Eina.Error: int; [[Eina error type

  @since 1.22
]]

struct @extern @beta @free(eina_binbuf_free) Eina.Binbuf; [[Eina binbuf data structure]]
struct @extern @beta @free(eina_strbuf_free) Eina.Strbuf; [[Eina strbuf data structure]]

struct @extern @beta Eina.Slice {
    [[A linear, read-only, memory segment]]
    len: size; [[Length of the memory segment]]
    mem: const(void_ptr); [[Pointer to memory segment]]
}

struct @extern @beta Eina.Rw_Slice {
    [[A linear, read-write, memory segment]]
    len: size; [[Length of the memory segment]]
    mem: void_ptr; [[Pointer to memory segment]]
}

struct @extern @beta Eina.Value; [[Eina value placeholder so it can be referenced from docs.]]
struct @extern @beta Eina.Value_Type; [[Eina value type]]

struct @extern @beta Eina.Stat {
    [[The structure to store some file statistics.]]
    dev      : ulong; [[The device where this file is located]]
    ino      : ulong; [[The inode]]
    mode     : uint;  [[The mode]]
    nlink    : uint;  [[The link number]]
    uid      : uint;  [[The owner user id]]
    gid      : uint;  [[The owner group id]]
    rdev     : ulong; [[The remote device]]
    size     : ulong; [[The file size in bytes]]
    blksize  : ulong; [[The block size in bytes]]
    blocks   : ulong; [[The number of blocks allocated]]
    atime    : ulong; [[The tilestamp when the file was last accessed]]
    atimensec: ulong; [[The nano version of the timestmap when the file was last accessed]]
    mtime    : ulong; [[The tilestamp when the file was modified]]
    mtimensec: ulong; [[The nano version of the timestmap when the file was modified]]
    ctime    : ulong; [[The tilestamp when the file was created]]
    ctimensec: ulong; [[The nano version of the timestmap when the file was created]]
}

struct @extern @free(eina_promise_free) Eina.Promise; [[Eina promise type

  @since 1.22
]]

/* FIXME: This definitely shouldn't be here. */
type @beta Efl.Event_Cb: __undefined_type; [[Efl event callback type]]