Kodi Development 22.0
for Binary and Script based Add-Ons
 
Loading...
Searching...
No Matches
window.h
1/*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#ifndef C_API_GUI_WINDOW_H
10#define C_API_GUI_WINDOW_H
11
12#include "definitions.h"
13#include "input/action_ids.h"
14
15#include <stddef.h>
16
17#define ADDON_MAX_CONTEXT_ENTRIES 20
18#define ADDON_MAX_CONTEXT_ENTRY_NAME_LENGTH 80
19
20#ifdef __cplusplus
21extern "C"
22{
23#endif /* __cplusplus */
24
25 typedef struct gui_context_menu_pair
26 {
27 unsigned int id;
28 char name[ADDON_MAX_CONTEXT_ENTRY_NAME_LENGTH];
30
32 {
33 /* Window creation functions */
34 KODI_GUI_WINDOW_HANDLE(*create)
35 (KODI_HANDLE kodiBase,
36 const char* xml_filename,
37 const char* default_skin,
38 bool as_dialog,
39 bool is_media);
40 void (*destroy)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
41
42 void (*set_callbacks)(KODI_HANDLE kodiBase,
43 KODI_GUI_WINDOW_HANDLE handle,
44 KODI_GUI_CLIENT_HANDLE clienthandle,
45 bool (*CBInit)(KODI_GUI_CLIENT_HANDLE),
46 bool (*CBFocus)(KODI_GUI_CLIENT_HANDLE, int),
47 bool (*CBClick)(KODI_GUI_CLIENT_HANDLE, int),
48 bool (*CBOnAction)(KODI_GUI_CLIENT_HANDLE, enum ADDON_ACTION),
49 void (*CBGetContextButtons)(
50 KODI_GUI_CLIENT_HANDLE, int, gui_context_menu_pair*, unsigned int*),
51 bool (*CBOnContextButton)(KODI_GUI_CLIENT_HANDLE, int, unsigned int));
52 bool (*show)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
53 bool (*close)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
54 bool (*do_modal)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
55
56 /* Window control functions */
57 bool (*set_focus_id)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
58 int (*get_focus_id)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
59 void (*set_control_label)(KODI_HANDLE kodiBase,
60 KODI_GUI_WINDOW_HANDLE handle,
61 int control_id,
62 const char* label);
63 void (*set_control_visible)(KODI_HANDLE kodiBase,
64 KODI_GUI_WINDOW_HANDLE handle,
65 int control_id,
66 bool visible);
67 void (*set_control_selected)(KODI_HANDLE kodiBase,
68 KODI_GUI_WINDOW_HANDLE handle,
69 int control_id,
70 bool selected);
71
72 /* Window property functions */
73 void (*set_property)(KODI_HANDLE kodiBase,
74 KODI_GUI_WINDOW_HANDLE handle,
75 const char* key,
76 const char* value);
77 void (*set_property_int)(KODI_HANDLE kodiBase,
78 KODI_GUI_WINDOW_HANDLE handle,
79 const char* key,
80 int value);
81 void (*set_property_bool)(KODI_HANDLE kodiBase,
82 KODI_GUI_WINDOW_HANDLE handle,
83 const char* key,
84 bool value);
85 void (*set_property_double)(KODI_HANDLE kodiBase,
86 KODI_GUI_WINDOW_HANDLE handle,
87 const char* key,
88 double value);
89 char* (*get_property)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, const char* key);
90 int (*get_property_int)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, const char* key);
91 bool (*get_property_bool)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, const char* key);
92 double (*get_property_double)(KODI_HANDLE kodiBase,
93 KODI_GUI_WINDOW_HANDLE handle,
94 const char* key);
95 void (*clear_properties)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
96 void (*clear_property)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, const char* key);
97
98 /* List item functions */
99 void (*clear_item_list)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
100 void (*add_list_item)(KODI_HANDLE kodiBase,
101 KODI_GUI_WINDOW_HANDLE handle,
102 KODI_GUI_LISTITEM_HANDLE item,
103 int list_position);
104 void (*remove_list_item_from_position)(KODI_HANDLE kodiBase,
105 KODI_GUI_WINDOW_HANDLE handle,
106 int list_position);
107 void (*remove_list_item)(KODI_HANDLE kodiBase,
108 KODI_GUI_WINDOW_HANDLE handle,
109 KODI_GUI_LISTITEM_HANDLE item);
110 KODI_GUI_LISTITEM_HANDLE(*get_list_item)
111 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int list_position);
112 void (*set_current_list_position)(KODI_HANDLE kodiBase,
113 KODI_GUI_WINDOW_HANDLE handle,
114 int list_position);
115 int (*get_current_list_position)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
116 int (*get_list_size)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
117 void (*set_container_property)(KODI_HANDLE kodiBase,
118 KODI_GUI_WINDOW_HANDLE handle,
119 const char* key,
120 const char* value);
121 void (*set_container_content)(KODI_HANDLE kodiBase,
122 KODI_GUI_WINDOW_HANDLE handle,
123 const char* value);
124 int (*get_current_container_id)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
125
126 /* Various functions */
127 void (*mark_dirty_region)(KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle);
128
129 /* GUI control access functions */
130 KODI_GUI_CONTROL_HANDLE(*get_control_button)
131 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
132 KODI_GUI_CONTROL_HANDLE(*get_control_edit)
133 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
134 KODI_GUI_CONTROL_HANDLE(*get_control_fade_label)
135 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
136 KODI_GUI_CONTROL_HANDLE(*get_control_image)
137 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
138 KODI_GUI_CONTROL_HANDLE(*get_control_label)
139 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
140 KODI_GUI_CONTROL_HANDLE(*get_control_progress)
141 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
142 KODI_GUI_CONTROL_HANDLE(*get_control_radio_button)
143 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
144 KODI_GUI_CONTROL_HANDLE(*get_control_render_addon)
145 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
146 KODI_GUI_CONTROL_HANDLE(*get_control_settings_slider)
147 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
148 KODI_GUI_CONTROL_HANDLE(*get_control_slider)
149 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
150 KODI_GUI_CONTROL_HANDLE(*get_control_spin)
151 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
152 KODI_GUI_CONTROL_HANDLE(*get_control_text_box)
153 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
154 KODI_GUI_CONTROL_HANDLE(*get_control_dummy1)
155 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
156 KODI_GUI_CONTROL_HANDLE(*get_control_dummy2)
157 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
158 KODI_GUI_CONTROL_HANDLE(*get_control_dummy3)
159 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
160 KODI_GUI_CONTROL_HANDLE(*get_control_dummy4)
161 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
162 KODI_GUI_CONTROL_HANDLE(*get_control_dummy5)
163 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
164 KODI_GUI_CONTROL_HANDLE(*get_control_dummy6)
165 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
166 KODI_GUI_CONTROL_HANDLE(*get_control_dummy7)
167 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
168 KODI_GUI_CONTROL_HANDLE(*get_control_dummy8)
169 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
170 KODI_GUI_CONTROL_HANDLE(*get_control_dummy9)
171 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
172 KODI_GUI_CONTROL_HANDLE(*get_control_dummy10)
173 (KODI_HANDLE kodiBase, KODI_GUI_WINDOW_HANDLE handle, int control_id);
174 /* This above used to add new get_control_* functions */
176
177#ifdef __cplusplus
178} /* extern "C" */
179#endif /* __cplusplus */
180
181#endif /* !C_API_GUI_WINDOW_H */
ADDON_ACTION
Definition action_ids.h:19
Definition window.h:26