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
|
/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* ***** END GPL LICENSE BLOCK *****
*/
/** \file UI_table.h
* \ingroup editorui
*/
#ifndef __UI_TABLE_H__
#define __UI_TABLE_H__
#include "BLI_compiler_attrs.h"
struct rcti;
typedef struct uiTable uiTable;
typedef struct uiTableColumn uiTableColumn;
typedef struct uiTableRow uiTableRow;
typedef struct uiTableSize uiTableSize;
typedef void (*uiTableCellDrawFunc)(void *rowdata, struct rcti drawrect);
enum uiTableColumnAlignemt {
TABLE_COLUMN_ALIGN_LEFT,
TABLE_COLUMN_ALIGN_RIGHT,
};
uiTable *UI_table_horizontal_flow_create(void) ATTR_WARN_UNUSED_RESULT;
uiTable *UI_table_vertical_flow_create(void) ATTR_WARN_UNUSED_RESULT;
void UI_table_free(uiTable *table) ATTR_NONNULL();
void UI_table_max_width_set(uiTable *table, const unsigned int max_width) ATTR_NONNULL();
void UI_table_horizontal_flow_max_height_set(uiTable *table, const unsigned int max_height) ATTR_NONNULL();
void UI_table_draw(uiTable *table) ATTR_NONNULL();
/* *** Columns *** */
uiTableColumn *UI_table_column_add(uiTable *table, const char *idname, const char *drawname,
uiTableCellDrawFunc cell_draw) ATTR_NONNULL(1, 2);
void UI_table_column_remove(uiTable *table, uiTableColumn *column) ATTR_NONNULL();
uiTableColumn *UI_table_column_lookup(uiTable *table, const char *idname) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT;
void UI_table_column_width_set(uiTableColumn *col, const uiTableSize width, const int min_width_px) ATTR_NONNULL();
void UI_table_column_alignment_set(uiTableColumn *column, enum uiTableColumnAlignemt alignment) ATTR_NONNULL();
/* *** Rows *** */
uiTableRow *UI_table_row_add(uiTable *table, void *rowdata) ATTR_NONNULL(1);
void UI_table_row_height_set(uiTable *table, uiTableRow *row, unsigned int height) ATTR_NONNULL();
uiTableSize UI_table_size_px(const int value);
uiTableSize UI_table_size_percentage(const int value);
unsigned int UI_table_get_rowcount(const uiTable *table);
#endif /* __UI_TABLE_H__ */
|