// writed by maxcodehack // adaptation of clayer for ktcc #ifndef KOLIBRI_BOXLIB_H #define KOLIBRI_BOXLIB_H extern int kolibri_boxlib_init(void); // SCROLLBAR typedef struct { uint16_t xsize; uint16_t xpos; uint16_t ysize; uint16_t ypos; uint32_t btn_height; uint32_t type; // type 1 - stylish frame, type 2 - ?, type 0 - ? uint32_t max_area; uint32_t cur_area; uint32_t position; uint32_t back_color; uint32_t front_color; uint32_t line_color; uint32_t redraw; uint16_t delta; uint16_t delta2; uint16_t r_size_x; uint16_t r_start_x; uint16_t r_size_y; uint16_t r_start_y; uint32_t m_pos; uint32_t m_pos2; uint32_t m_keys; uint32_t run_size; uint32_t position2; uint32_t work_size; uint32_t all_redraw; // need to be set =1 before each redraw uint32_t ar_offset; } __attribute__ ((__packed__)) scrollbar; extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__)); // CHECKBOX typedef struct { unsigned int left_s; unsigned int top_s; unsigned int ch_text_margin; unsigned int color; unsigned int border_color; unsigned int text_color; char *text; unsigned int flags; /* Users can use members above this */ unsigned int size_of_str; }check_box; extern void (*check_box_draw2)(check_box *) __attribute__((__stdcall__)); extern void (*check_box_mouse2)(check_box *)__attribute__((__stdcall__)); extern void (*init_checkbox2)(check_box *)__attribute__((__stdcall__)); // DBUTTON typedef struct { uint32_t type; uint32_t x_w; uint32_t y_h; uint32_t mouse_pos; uint32_t mouse_keys; uint32_t mouse_keys_old; void* active_raw; //active bitmap void* passive_raw; //passive bitmap void* click_raw; //pressed bitmap uint32_t resolution_raw; // bpp, as esi fn65 void* palette_raw; // palette, as edi fn65 uint32_t offset_raw; // width as ebp fn65 uint32_t select; // internal state: 0 - passive, 2 - pressed, 1 - clicked uint32_t click; // clicked - 1, zero it after tested } pict_button; extern void (*dynamic_button_draw)(pict_button *) __attribute__((__stdcall__)); extern void (*dynamic_button_mouse)(pict_button *) __attribute__((__stdcall__)); // EDITBOX typedef struct edit_box_t { unsigned int width; unsigned int left; unsigned int top; unsigned int color; unsigned int shift_color; // selected text color unsigned int focus_border_color; unsigned int blur_border_color; unsigned int text_color; unsigned int max; char *text; void *mouse_variable; // must be pointer edit_box** to save focused editbox unsigned int flags; unsigned int size; // used symbols in buffer without trailing zero unsigned int pos; // cursor position /* The following struct members are not used by the users of API */ unsigned int offset; unsigned int cl_curs_x; unsigned int cl_curs_y; unsigned int shift; unsigned int shift_old; unsigned int height; unsigned int char_width; }edit_box; extern void (*edit_box_draw)(edit_box *) __attribute__((__stdcall__)); extern void (*edit_box_key)(edit_box *) __attribute__((__stdcall__)); extern void (*edit_box_mouse)(edit_box *) __attribute__((__stdcall__)); extern void (*edit_box_set_text)(edit_box *, char *) __attribute__((__stdcall__)); extern volatile unsigned press_key; // FRAME typedef struct { uint32_t type; uint32_t x_w; uint32_t y_h; color_t ext_col; color_t int_col; uint32_t flags; char *text_pointer; uint32_t text_position; uint32_t font_number; uint32_t font_size_y; color_t font_color; color_t font_bg_color; }frame; extern void (*frame_draw)(frame *) __attribute__((__stdcall__)); // MENUBAR typedef struct { uint32_t type; // 1 åñëè íåò ïîäìåíþ, ïðîñòî ïóíêò uint32_t x_w; // âåðõíèé ïóíêò uint32_t y_h; char* text_pointer; char* pos_pointer; char* text_end; uint32_t mouse_pos; uint32_t mouse_keys; uint32_t x_w1; // ïîäìåíþ uint32_t y_h1; color_t bckg_col; // ôîí âåðõíåãî ïóêòà color_t frnt_col; // ôîí âûáðàííîãî âåðõíåãî ïóíêòà color_t menu_col; // ôîí âûïàäàþùåé ÷àñòè (ïîäïóêòû) uint32_t select; uint32_t out_select; char* buf_adress; char* procinfo; uint32_t click; uint32_t cursor; uint32_t cursor_old; uint32_t interval; uint32_t cursor_max; uint32_t extended_key; color_t menu_sel_col; // öâåò ôîíà âûáðàííîãî ïîäïóíêòà color_t bckg_text_col; // öâåò øðèôòà íåâûáðàííîãî ïóíêòà color_t frnt_text_col; // öâåò øðèôòà âûáðàííîãî ïóíêòà uint32_t mouse_keys_old; uint32_t font_height; uint32_t cursor_out; uint32_t get_mouse_flag; } menubar; extern void (*menu_bar_draw)(menubar *) __attribute__((__stdcall__)); extern void (*menu_bar_mouse)(menubar *) __attribute__((__stdcall__)); extern void (*menu_bar_activate)(menubar *) __attribute__((__stdcall__)); // OPTIONBOX typedef struct __attribute__ ((__packed__)) option_box_t { struct option_box_t **selected; uint16_t posx; uint16_t posy; uint32_t text_margin; // = 4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè uint32_t size; // 12 ðàçìåð êâàäðàòà ÷åê áîêñà color_t color; color_t border_color; // individual border color_t text_color; char *text; uint32_t text_len; uint32_t flags; }option_box; extern void (*option_box_draw)(option_box **) __attribute__((__stdcall__)); extern void (*option_box_mouse)(option_box **)__attribute__((__stdcall__)); // PATHSHOW typedef struct { uint32_t type; uint32_t x_y; uint16_t font_size_x; // 6 - for font 0, 8 - for font 1 uint16_t area_size_x; uint32_t font_number; // 0 - monospace, 1 - variable, as fn4 (2bit only 0-3) uint32_t background_flag; // as fn4, if 0, bk_color unneeded color_t font_color; // as fn4 color_t background_color; // as fn4 char* text_pointer; // 4096 ? char* work_area_pointer; // 4096 ? uint32_t temp_text_length; } __attribute__ ((__packed__)) pathview; extern void (*path_show_prepare)(pathview *) __attribute__((__stdcall__)); extern void (*path_show_draw)(pathview *) __attribute__((__stdcall__)); // PROGRESSBAR typedef struct { unsigned int value; unsigned int left; unsigned int top; unsigned int width; unsigned int height; unsigned int style; unsigned int min; unsigned int max; unsigned int back_color; unsigned int progress_color; unsigned int frame_color; } progressbar; extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__)); extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__)); #endif /* KOLIBRI_BOXLIB_H */