EasyGUI
gui_listview.h
1 
6 /*
7  * Copyright (c) 2019 Tilen MAJERLE
8  *
9  * Permission is hereby granted, free of charge, to any person
10  * obtaining a copy of this software and associated documentation
11  * files (the "Software"), to deal in the Software without restriction,
12  * including without limitation the rights to use, copy, modify, merge,
13  * publish, distribute, sublicense, and/or sell copies of the Software,
14  * and to permit persons to whom the Software is furnished to do so,
15  * subject to the following conditions:
16  *
17  * The above copyright notice and this permission notice shall be
18  * included in all copies or substantial portions of the Software.
19  *
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
22  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
23  * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
25  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27  * OTHER DEALINGS IN THE SOFTWARE.
28  *
29  * This file is part of EasyGUI library.
30  *
31  * Author: Tilen Majerle <tilen@majerle.eu>
32  */
33 #ifndef GUI_HDR_LISTVIEW_H
34 #define GUI_HDR_LISTVIEW_H
35 
36 /* C++ detection */
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
45 #include "gui_widget.h"
46 
56 typedef enum {
65 
66 struct gui_listview_row;
67 
71 typedef struct gui_listview_row* gui_listview_row_p;
72 
73 gui_handle_p gui_listview_create(gui_id_t id, float x, float y, float width, float height, gui_handle_p parent, gui_widget_evt_fn evt_fn, uint16_t flags);
74 uint8_t gui_listview_setcolor(gui_handle_p h, gui_listview_color_t index, gui_color_t color);
75 
76 uint8_t gui_listview_addcolumn(gui_handle_p h, const gui_char* text, gui_dim_t width);
77 uint8_t gui_listview_setcolumnwidth(gui_handle_p h, uint16_t index, gui_dim_t width);
78 
80 uint8_t gui_listview_removerow(gui_handle_p h, int16_t index);
81 uint8_t gui_listview_removerows(gui_handle_p h);
82 
83 uint8_t gui_listview_setitemstring(gui_handle_p h, gui_listview_row_p row, uint16_t col, const gui_char* text);
84 uint8_t gui_listview_setselection(gui_handle_p h, int16_t selection);
85 int16_t gui_listview_getselection(gui_handle_p h);
86 uint8_t gui_listview_setsliderauto(gui_handle_p h, uint8_t autoMode);
87 uint8_t gui_listview_setslidervisibility(gui_handle_p h, uint8_t visible);
88 uint8_t gui_listview_scroll(gui_handle_p h, int16_t step);
89 uint8_t gui_listview_getitemvalue(gui_handle_p h, int16_t rindex, uint16_t cindex, gui_char* dst, size_t length);
90 
99 /* C++ detection */
100 #ifdef __cplusplus
101 }
102 #endif
103 
104 #endif /* GUI_HDR_LISTVIEW_H */
uint8_t gui_listview_addcolumn(gui_handle_p h, const gui_char *text, gui_dim_t width)
Add new column to listview.
Definition: gui_listview.c:541
int16_t gui_listview_getselection(gui_handle_p h)
Get selected row number.
Definition: gui_listview.c:710
uint8_t gui_listview_removerow(gui_handle_p h, int16_t index)
Remove row from list view.
Definition: gui_listview.c:616
uint8_t(* gui_widget_evt_fn)(gui_handle_p h, gui_widget_evt_t evt, gui_evt_param_t *const param, gui_evt_result_t *const result)
Callback function for widget.
Definition: gui_defs.h:1103
Definition: gui_listview.h:59
uint8_t gui_char
Definition: gui_defs.h:212
Definition: gui_listview.h:62
uint8_t gui_listview_setcolor(gui_handle_p h, gui_listview_color_t index, gui_color_t color)
Set color to list view widget.
Definition: gui_listview.c:529
uint32_t gui_color_t
Definition: gui_defs.h:210
Definition: gui_listview.h:58
Definition: gui_listview.h:61
gui_handle_p gui_listview_create(gui_id_t id, float x, float y, float width, float height, gui_handle_p parent, gui_widget_evt_fn evt_fn, uint16_t flags)
Create new list view widget.
Definition: gui_listview.c:517
Definition: gui_listview.h:57
uint8_t gui_listview_removerows(gui_handle_p h)
Remove all rows from list view.
Definition: gui_listview.c:630
struct gui_listview_row * gui_listview_row_p
Typedef for row for public usage.
Definition: gui_listview.h:71
gui_listview_color_t
List of listview colors.
Definition: gui_listview.h:56
uint8_t gui_listview_getitemvalue(gui_handle_p h, int16_t rindex, uint16_t cindex, gui_char *dst, size_t length)
Get item text value from row index and column index.
Definition: gui_listview.c:726
Definition: gui_listview.h:60
uint8_t gui_listview_setselection(gui_handle_p h, int16_t selection)
Set selected row number.
Definition: gui_listview.c:696
uint8_t gui_listview_scroll(gui_handle_p h, int16_t step)
Scroll list if possible.
Definition: gui_listview.c:681
int16_t gui_dim_t
Definition: gui_defs.h:211
Definition: gui_listview.h:63
uint8_t gui_listview_setcolumnwidth(gui_handle_p h, uint16_t index, gui_dim_t width)
Set column width in units of pixels.
Definition: gui_listview.c:574
uint8_t gui_listview_setitemstring(gui_handle_p h, gui_listview_row_p row, uint16_t col, const gui_char *text)
Set item string for specific row and column.
Definition: gui_listview.c:646
gui_listview_row_p gui_listview_addrow(gui_handle_p h)
Add new empty row.
Definition: gui_listview.c:595
uint32_t gui_id_t
Definition: gui_defs.h:209