113 lines
3.4 KiB
C
113 lines
3.4 KiB
C
#ifndef UI_CORE_H
|
||
#define UI_CORE_H
|
||
|
||
#include "window.h"
|
||
#include "ui_button.h"
|
||
#include "ui_grid.h"
|
||
#include "ui_time.h"
|
||
#include "ui_camera.h"
|
||
#include "ui_pic.h"
|
||
#include "ui_text.h"
|
||
#include "ui_battery.h"
|
||
#include "ui_browser.h"
|
||
#include "ui_slider.h"
|
||
#include "ui_slider_vert.h"
|
||
#include "ui_number.h"
|
||
#include "ui_watch.h"
|
||
#include "ui_progress.h"
|
||
#include "ui_progress_multi.h"
|
||
#include "ui_rotate.h"
|
||
#include <stdarg.h>
|
||
|
||
struct uimsg_handl {
|
||
const char *msg;
|
||
int (*handler)(const char *type, u32 args);
|
||
};
|
||
|
||
int ui_framework_init(void *);
|
||
|
||
int ui_set_style_file(struct ui_style *style);
|
||
|
||
int ui_style_file_version_compare(int version);
|
||
|
||
int ui_redraw(int id);
|
||
|
||
int ui_show(int id);
|
||
|
||
int ui_hide(int id);
|
||
|
||
int ui_set_call(int (*func)(int), int param);
|
||
|
||
int ui_event_onkey(struct element_key_event *e);
|
||
|
||
int ui_event_ontouch(struct element_touch_event *e);
|
||
|
||
struct element *ui_get_highlight_child_by_id(int id);
|
||
int ui_invert_element_by_id(int id);
|
||
|
||
int ui_no_highlight_element(struct element *elm);
|
||
int ui_no_highlight_element_by_id(int id);
|
||
int ui_highlight_element(struct element *elm);
|
||
int ui_highlight_element_by_id(int id);
|
||
|
||
int ui_get_current_window_id();
|
||
|
||
int ui_register_msg_handler(int id, const struct uimsg_handl *handl);
|
||
|
||
int ui_message_handler(int id, const char *msg, va_list);
|
||
|
||
const char *str_substr_iter(const char *str, char delim, int *iter);
|
||
|
||
int ui_get_child_by_id(int id, int (*event_handler_cb)(void *, int, int));
|
||
|
||
int ui_set_default_handler(int (*ontouch)(void *, struct element_touch_event *),
|
||
int (*onkey)(void *, struct element_key_event *),
|
||
int (*onchange)(void *, enum element_change_event, void *));
|
||
|
||
/*
|
||
* 锁定元素elm之外的区域,所有的触摸消息都发给elm
|
||
*/
|
||
void ui_ontouch_lock(void *elm);
|
||
void ui_ontouch_unlock(void *elm);
|
||
|
||
/*
|
||
* 锁定控件的夫图层,先不推向imb显示
|
||
*/
|
||
int ui_lock_layer(int id);
|
||
int ui_unlock_layer(int id);
|
||
|
||
int ui_get_disp_status_by_id(int id);
|
||
|
||
int create_control_by_id(char *tabfile, int page_id, int id, int parent_id);
|
||
int delete_control_by_id(int id);
|
||
|
||
|
||
void ui_remove_backcolor(struct element *elm);
|
||
void ui_remove_backimage(struct element *elm);
|
||
void ui_remove_border(struct element *elm);
|
||
|
||
int ui_fill_rect(struct draw_context *dc, int left, int top, int width, int height, u32 acolor);
|
||
int ui_draw_image(struct draw_context *dc, int page, int id, int x, int y);
|
||
int ui_draw_ascii(struct draw_context *dc, char *str, int strlen, int x, int y, int color);
|
||
int ui_draw_text(struct draw_context *dc, int encode, int endian, char *str, int strlen, int x, int y, int color);
|
||
int ui_draw_strpic(struct draw_context *dc, int id, int x, int y, int color);
|
||
void ui_draw_line(void *_dc, int x0, int y0, int x1, int y1, int color);
|
||
void ui_draw_line_by_angle(void *_dc, int x, int y, int length, int angle, int color);
|
||
void ui_draw_rect(void *_dc, int x, int y, int width, int height, int color);
|
||
void ui_draw_circle(struct draw_context *dc, int center_x, int center_y,
|
||
int radius_big, int radius_small, int angle_begin,
|
||
int angle_end, int color, int percent);
|
||
int ui_draw_set_pixel(struct draw_context *dc, int x, int y, int pixel);
|
||
u32 ui_draw_get_pixel(struct draw_context *dc, int x, int y);
|
||
u16 ui_draw_get_mixed_pixel(u16 backcolor, u16 forecolor, u8 alpha);
|
||
|
||
void *load_control_info_by_id(char *tabfile, u32 page_id, u32 id);
|
||
void *ui_control_new(void *_pos, void *parent);
|
||
|
||
|
||
#define ui_id2type(id) (((id)>>16) & 0x3f)
|
||
|
||
|
||
#endif
|
||
|