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 #ifndef GRID_H
29 #define GRID_H
30
31 #include "container.h"
32 #include <stdbool.h>
33 #include <cx/array_list.h>
34
35 typedef struct GridElm {
36 W32Widget *widget;
37 short x;
38 short y;
39 GridLayoutInfo layout;
40 } GridElm;
41
42 typedef struct GridLayoutInfo {
43 short margin_left;
44 short margin_right;
45 short margin_top;
46 short margin_bottom;
47 short colspan;
48 short rowspan;
49 short preferred_width;
50 short preferred_height;
51 bool hexpand;
52 bool vexpand;
53 bool hfill;
54 bool vfill;
55 } GridLayoutInfo;
56
57 typedef struct UiGridLayout {
58 HWND hwnd;
59
60 short padding;
61 short columnspacing;
62 short rowspacing;
63
64
65
66
67 CxList *widgets;
68
69 } UiGridLayout;
70
71 UiGridLayout* ui_grid_container(UiObject *obj,
HWND control,
short padding,
short columnspacing,
short rowspacing);
72
73 void ui_grid_add_widget(
74 UiGridLayout *grid,
75 short x,
76 short y,
77 W32Widget *widget,
78 GridLayoutInfo *layout);
79
80 void ui_grid_layout(UiGridLayout *grid);
81
82 #endif
83