00001
00038 #ifndef WTK_H_INCLUDED
00039 #define WTK_H_INCLUDED
00040
00041 #include <app/wtk.h>
00042 #include <gfx/win.h>
00043 #include <gfx/sysfont.h>
00044
00072 struct wtk_frame;
00073
00075 typedef bool(*wtk_frame_handler_t) (struct wtk_frame * frame,
00076 win_command_t command_data);
00077
00078 struct wtk_frame *wtk_frame_create(struct win_window *parent,
00079 struct win_area const *area,
00080 char const *caption,
00081 bool allow_resize,
00082 wtk_frame_handler_t frame_handler, void *custom_data);
00083 struct win_window *wtk_frame_as_parent(struct wtk_frame *frame);
00084 struct win_window *wtk_frame_as_child(struct wtk_frame *frame);
00085 void *wtk_frame_get_custom_data(struct wtk_frame const *frame);
00086
00088
00096 struct wtk_basic_frame;
00097
00120 typedef bool(*wtk_basic_frame_command_handler_t) (
00121 struct wtk_basic_frame *basic_frame, win_command_t command_data);
00122
00145 typedef void(*wtk_basic_frame_draw_handler_t) (
00146 struct win_window *win, struct win_clip_region const *clip);
00147
00148 struct wtk_basic_frame *wtk_basic_frame_create(struct win_window *parent,
00149 const struct win_area *area, struct gfx_bitmap *background,
00150 wtk_basic_frame_draw_handler_t draw_handler,
00151 wtk_basic_frame_command_handler_t frame_handler, void *custom_data);
00152 struct win_window *wtk_basic_frame_as_child(
00153 struct wtk_basic_frame *basic_frame);
00154 void *wtk_basic_frame_get_custom_data(
00155 const struct wtk_basic_frame *basic_frame);
00156
00158
00159
00165 struct wtk_button;
00166
00167 struct wtk_button *wtk_button_create(struct win_window *parent,
00168 struct win_area const *area,
00169 char const *caption, win_command_t command_data);
00170 struct win_window *wtk_button_as_child(struct wtk_button *button);
00171 void wtk_button_size_hint(struct win_point *size, const char *caption);
00172
00174
00175
00181 struct wtk_check_box;
00182
00183 struct wtk_check_box *wtk_check_box_create(struct win_window *parent,
00184 struct win_area const *area,
00185 char const *caption, bool selected, win_command_t command_data);
00186 struct win_window *wtk_check_box_as_child(struct wtk_check_box *check_box);
00187 void wtk_check_box_toggle(struct wtk_check_box *check_box);
00188 void wtk_check_box_set(struct wtk_check_box *check_box, bool selected);
00189 bool wtk_check_box_is_selected(struct wtk_check_box const *check_box);
00190 void wtk_check_box_size_hint(struct win_point *size, const char *caption);
00191
00193
00194
00200 struct wtk_radio_group;
00201 struct wtk_radio_group *wtk_radio_group_create(void);
00202
00203 struct wtk_radio_button;
00204
00205 struct wtk_radio_button *wtk_radio_button_create(struct win_window *parent,
00206 struct win_area const *area, char const *caption, bool selected,
00207 struct wtk_radio_group *group, win_command_t command_data);
00208 struct win_window *wtk_radio_button_as_child(struct wtk_radio_button
00209 *radio_button);
00210 void wtk_radio_button_select(struct wtk_radio_button *radio_button);
00211 bool wtk_radio_button_is_selected(struct wtk_radio_button const *radio_button);
00212 void wtk_radio_button_size_hint(struct win_point *size, const char *caption);
00213
00215
00216
00235
00236 #define WTK_SLIDER_CMD_NONE (0 << 0)
00237
00238 #define WTK_SLIDER_CMD_MOVE (1 << 0)
00239
00240 #define WTK_SLIDER_CMD_RELEASE (1 << 1)
00241
00243
00249
00250 #define WTK_SLIDER_HORIZONTAL (0 << 0)
00251
00252 #define WTK_SLIDER_VERTICAL (1 << 2)
00253
00255
00261
00262 #define WTK_SLIDER_INVERT (1 << 3)
00263
00265
00267
00268 struct wtk_slider;
00269
00270 struct wtk_slider *wtk_slider_create(struct win_window *parent,
00271 struct win_area const *area, uint8_t maximum, uint8_t value,
00272 uint8_t option, win_command_t command_data);
00273 struct win_window *wtk_slider_as_child(struct wtk_slider *slider);
00274 bool wtk_slider_is_moving(struct wtk_slider const *slider);
00275 uint8_t wtk_slider_get_value(struct wtk_slider const *slider);
00276 bool wtk_slider_set_value(struct wtk_slider *slider, uint8_t value);
00277
00279
00285 struct wtk_label;
00286
00287 struct wtk_label *wtk_label_create(struct win_window *parent,
00288 struct win_area const *area,
00289 char const *caption, bool align_right);
00290 struct win_window *wtk_label_as_child(struct wtk_label *label);
00291 bool wtk_label_change(struct wtk_label *label, const char *caption);
00292 void wtk_label_size_hint(struct win_point *size, const char *caption);
00293
00295
00296
00315
00316 #define WTK_PROGRESS_BAR_HORIZONTAL (0 << 0)
00317
00318 #define WTK_PROGRESS_BAR_VERTICAL (1 << 0)
00319
00321
00327
00328 #define WTK_PROGRESS_BAR_INVERT (1 << 1)
00329
00331
00333
00334 struct wtk_progress_bar;
00335
00336 struct wtk_progress_bar *wtk_progress_bar_create(struct win_window *parent,
00337 struct win_area const *area, uint8_t maximum, uint8_t value,
00338 gfx_color_t fill_color, gfx_color_t background_color,
00339 uint8_t option);
00340 struct win_window *wtk_progress_bar_as_child(struct wtk_progress_bar *bar);
00341 uint8_t wtk_progress_bar_get_value(struct wtk_progress_bar *bar);
00342 bool wtk_progress_bar_set_value(struct wtk_progress_bar *bar, uint8_t value);
00343 void wtk_progress_bar_set_colors(struct wtk_progress_bar *bar,
00344 gfx_color_t color1, gfx_color_t color2);
00345
00347
00348
00349 uint8_t wtk_rescale_value(uint8_t value, uint8_t from_scale, uint8_t to_scale);
00350 void wtk_copy_string(char *dest, char const *source);
00351
00352 void wtk_shade_pixel(gfx_color_t *pixel, uint8_t alpha);
00353
00355
00356 #endif