From 407fab40d9ae7929f51eeba9db98965e7cc3349a Mon Sep 17 00:00:00 2001 From: Serhii Sakhno Date: Thu, 30 Jun 2016 16:10:04 +0000 Subject: [PATCH] C Layer: code refactoring git-svn-id: svn://kolibrios.org@6457 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../EXAMPLE/libguic_kolibri/boardmsg.c | 12 ++-- .../EXAMPLE/libguic_kolibri/make_boardmsg.sh | 8 +-- contrib/C_Layer/INCLUDE/kolibri_buf2d.h | 67 +++++++++---------- contrib/C_Layer/INCLUDE/kolibri_button.h | 10 +-- contrib/C_Layer/INCLUDE/kolibri_checkbox.h | 12 ++-- contrib/C_Layer/INCLUDE/kolibri_colordialog.h | 10 +-- contrib/C_Layer/INCLUDE/kolibri_colors.h | 8 +-- contrib/C_Layer/INCLUDE/kolibri_editbox.h | 14 ++-- contrib/C_Layer/INCLUDE/kolibri_frame.h | 10 +-- contrib/C_Layer/INCLUDE/kolibri_gui.h | 14 ++-- .../C_Layer/INCLUDE/kolibri_gui_elements.h | 28 ++++---- contrib/C_Layer/INCLUDE/kolibri_libimg.h | 44 ++++++++++++ contrib/C_Layer/INCLUDE/kolibri_opendialog.h | 16 ++--- 13 files changed, 148 insertions(+), 105 deletions(-) diff --git a/contrib/C_Layer/EXAMPLE/libguic_kolibri/boardmsg.c b/contrib/C_Layer/EXAMPLE/libguic_kolibri/boardmsg.c index a9b29f78f7..acc002f700 100644 --- a/contrib/C_Layer/EXAMPLE/libguic_kolibri/boardmsg.c +++ b/contrib/C_Layer/EXAMPLE/libguic_kolibri/boardmsg.c @@ -1,4 +1,4 @@ -#include "kolibri_gui.h" +#include int main() { @@ -12,10 +12,10 @@ int main() unsigned int gui_event = KOLIBRI_EVENT_REDRAW; oskey_t key; - struct kolibri_window *main_window = kolibri_new_window(50, 50, 400, 100, "BoardMsg: OpenDialog 0.12"); - struct check_box *checkbox = kolibri_new_check_box(20, 40, 12, 12, "Append BOARDMSG to entered message."); - struct edit_box *textbox = kolibri_new_edit_box(20, 55, 40); - struct kolibri_button *button = kolibri_new_button(310, 55, 24, 14, 0x21, kolibri_color_table.color_work_button); + kolibri_window *main_window = kolibri_new_window(50, 50, 400, 100, "BoardMsg: OpenDialog 0.12"); + check_box *checkbox = kolibri_new_check_box(20, 40, 12, 12, "Append BOARDMSG to entered message."); + edit_box *textbox = kolibri_new_edit_box(20, 55, 40); + kolibri_button *button = kolibri_new_button(310, 55, 24, 14, 0x21, kolibri_color_table.color_work_button); kolibri_window_add_element(main_window, KOLIBRI_EDIT_BOX, textbox); kolibri_window_add_element(main_window, KOLIBRI_CHECK_BOX, checkbox); @@ -57,7 +57,7 @@ int main() debug_board_write_str(textbox->text); debug_board_write_str("\n"); break; - case 0x00000001: + case BUTTON_CLOSE: kolibri_exit(); } } diff --git a/contrib/C_Layer/EXAMPLE/libguic_kolibri/make_boardmsg.sh b/contrib/C_Layer/EXAMPLE/libguic_kolibri/make_boardmsg.sh index 9e9e672deb..b6681015c7 100755 --- a/contrib/C_Layer/EXAMPLE/libguic_kolibri/make_boardmsg.sh +++ b/contrib/C_Layer/EXAMPLE/libguic_kolibri/make_boardmsg.sh @@ -1,11 +1,9 @@ #Please set up kolibrios sources here : /home//kolibrios -kos32-gcc -c -I${HOME}/kolibrios/contrib/sdk/sources/newlib/libc/include -g -U_Win32 -U_WIN32 -U__MINGW32__ boardmsg.c -o boardmsg.o +kos32-gcc -c -I${HOME}/kolibrios/contrib/sdk/sources/newlib/libc/include -I../../INCLUDE -g -U_Win32 -U_WIN32 -U__MINGW32__ boardmsg.c -o boardmsg.o -fasm loadboxlib.asm loadboxlib.obj - -kos32-ld *.o *.obj -T${HOME}/kolibrios/contrib/sdk/sources/newlib/libc/app.lds -nostdlib -static --image-base 0 -lgcc -L/home/autobuild/tools/win32/mingw32/lib /home/autobuild/tools/win32/lib/libdll.a /home/autobuild/tools/win32/lib/libapp.a /home/autobuild/tools/win32/lib/libc.dll.a -static -o boardxmsg -Map=boardxmsg.map +kos32-ld *.o ../../OBJ/loadboxlib.obj -T${HOME}/kolibrios/contrib/sdk/sources/newlib/libc/app.lds -nostdlib -static --image-base 0 -lgcc -L/home/autobuild/tools/win32/mingw32/lib /home/autobuild/tools/win32/lib/libdll.a /home/autobuild/tools/win32/lib/libapp.a /home/autobuild/tools/win32/lib/libc.dll.a -static -o boardxmsg -Map=boardxmsg.map objcopy -O binary boardxmsg -echo "If everything went well, boardxmsg should be your binary!" \ No newline at end of file +echo "If everything went well, boardxmsg should be your binary!" diff --git a/contrib/C_Layer/INCLUDE/kolibri_buf2d.h b/contrib/C_Layer/INCLUDE/kolibri_buf2d.h index 1e54c155dd..38fa4e27a6 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_buf2d.h +++ b/contrib/C_Layer/INCLUDE/kolibri_buf2d.h @@ -2,7 +2,6 @@ #define KOLIBRI_BUF2D_H /*ToDo - * buf_curve_bezier * voxel function */ @@ -21,7 +20,7 @@ int kolibri_buf2d_init(void) } -struct buf2d_struct { +typedef struct { unsigned int *buf_pointer; uint16_t left; uint16_t top; @@ -29,7 +28,7 @@ struct buf2d_struct { unsigned int height; unsigned int bgcolor; uint8_t color_bit; -}; +}buf2d_struct; enum BUF2D_ALGORITM_FILTR { SIERRA_LITE, @@ -46,12 +45,12 @@ enum BUF2D_OPT_CROP { BUF2D_OPT_CROP_RIGHT = 8 }; -extern void (*buf2d_create_asm)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_curve_bezier_asm)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_create_asm)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_curve_bezier_asm)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -struct buf2d_struct* buf2d_create(uint16_t tlx, uint16_t tly, unsigned int sizex, unsigned int sizey, unsigned int font_bgcolor, uint8_t color_bit) +buf2d_struct* buf2d_create(uint16_t tlx, uint16_t tly, unsigned int sizex, unsigned int sizey, unsigned int font_bgcolor, uint8_t color_bit) { - struct buf2d_struct *new_buf2d_struct = (struct buf2d_struct *)malloc(sizeof(struct buf2d_struct)); + buf2d_struct *new_buf2d_struct = (buf2d_struct *)malloc(sizeof(buf2d_struct)); new_buf2d_struct -> left = tlx; new_buf2d_struct -> top = tly; new_buf2d_struct -> width = sizex; @@ -62,35 +61,35 @@ struct buf2d_struct* buf2d_create(uint16_t tlx, uint16_t tly, unsigned int sizex return new_buf2d_struct; } -void buf2d_curve_bezier(struct buf2d_struct *buf, unsigned int p0_x, unsigned int p0_y, unsigned int p1_x, unsigned int p1_y, unsigned int p2_x, unsigned int p2_y, unsigned int color) +void buf2d_curve_bezier(buf2d_struct *buf, unsigned int p0_x, unsigned int p0_y, unsigned int p1_x, unsigned int p1_y, unsigned int p2_x, unsigned int p2_y, unsigned int color) { buf2d_curve_bezier_asm(buf, (p0_x<<16)+p0_y, (p1_x<<16)+p1_y, (p2_x<<16)+p2_y, color); } -extern void (*buf2d_draw)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_clear)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_delete)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_rotate)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_resize)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_line)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_line_sm)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_rect_by_size)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_filled_rect_by_size)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_circle)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_img_hdiv2)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_img_wdiv2)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_conv_24_to_8)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_conv_24_to_32)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_bit_blt_transp)(struct buf2d_struct *, unsigned int, unsigned int, struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_bit_blt_alpha)(struct buf2d_struct *, unsigned int, unsigned int, struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_convert_text_matrix)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_draw_text)(struct buf2d_struct *, struct buf2d_struct *, const char *, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_crop_color)(struct buf2d_struct *, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_offset_h)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_flood_fill)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_set_pixel)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern unsigned int (*buf2d_get_pixel)(struct buf2d_struct *, unsigned int, unsigned int) __attribute__((__stdcall__)); -extern void (*buf2d_flip_h)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_flip_v)(struct buf2d_struct *) __attribute__((__stdcall__)); -extern void (*buf2d_filter_dither)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_draw)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_clear)(buf2d_struct *, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_delete)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_rotate)(buf2d_struct *, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_resize)(buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_line)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_line_sm)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_rect_by_size)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_filled_rect_by_size)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_circle)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_img_hdiv2)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_img_wdiv2)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_conv_24_to_8)(buf2d_struct *, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_conv_24_to_32)(buf2d_struct *, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_bit_blt_transp)(buf2d_struct *, unsigned int, unsigned int, buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_bit_blt_alpha)(buf2d_struct *, unsigned int, unsigned int, buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_convert_text_matrix)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_draw_text)(buf2d_struct *, buf2d_struct *, const char *, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_crop_color)(buf2d_struct *, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_offset_h)(buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_flood_fill)(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_set_pixel)(buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern unsigned int (*buf2d_get_pixel)(buf2d_struct *, unsigned int, unsigned int) __attribute__((__stdcall__)); +extern void (*buf2d_flip_h)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_flip_v)(buf2d_struct *) __attribute__((__stdcall__)); +extern void (*buf2d_filter_dither)(buf2d_struct *, unsigned int) __attribute__((__stdcall__)); #endif /* KOLIBRI_BUF2D_H */ diff --git a/contrib/C_Layer/INCLUDE/kolibri_button.h b/contrib/C_Layer/INCLUDE/kolibri_button.h index cbaf743ffd..74a4d6f08b 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_button.h +++ b/contrib/C_Layer/INCLUDE/kolibri_button.h @@ -1,18 +1,18 @@ #ifndef KOLIBRI_BUTTON_H #define KOLIBRI_BUTTON_H -struct kolibri_button { +typedef struct { unsigned int x65536sizex; unsigned int y65536sizey; unsigned int color; unsigned int identifier; unsigned int XY; -}; +}kolibri_button; -struct kolibri_button *kolibri_new_button(unsigned int tlx, unsigned int tly, unsigned int sizex, unsigned int sizey, +kolibri_button *kolibri_new_button(unsigned int tlx, unsigned int tly, unsigned int sizex, unsigned int sizey, unsigned int identifier, unsigned int color) { - struct kolibri_button* new_button = (struct kolibri_button *)malloc(sizeof(struct kolibri_button)); + kolibri_button* new_button = (kolibri_button *)malloc(sizeof(kolibri_button)); new_button -> x65536sizex = (tlx << 16) + sizex; new_button -> y65536sizey = (tly << 16) + sizey; new_button -> color = color; @@ -21,7 +21,7 @@ struct kolibri_button *kolibri_new_button(unsigned int tlx, unsigned int tly, un return new_button; } -void draw_button(struct kolibri_button *some_button) +void draw_button(kolibri_button *some_button) { define_button(some_button -> x65536sizex, some_button -> y65536sizey, some_button -> identifier, some_button -> color); } diff --git a/contrib/C_Layer/INCLUDE/kolibri_checkbox.h b/contrib/C_Layer/INCLUDE/kolibri_checkbox.h index cc02481501..8ce12c1e75 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_checkbox.h +++ b/contrib/C_Layer/INCLUDE/kolibri_checkbox.h @@ -8,7 +8,7 @@ enum CHECKBOX_FLAGS { /* Add more flags later */ }; -struct check_box { +typedef struct { unsigned int left_s; unsigned int top_s; unsigned int ch_text_margin; @@ -20,11 +20,11 @@ struct check_box { /* Users can use members above this */ unsigned int size_of_str; -}; +}check_box; -struct check_box* kolibri_new_check_box(unsigned int tlx, unsigned int tly, unsigned int sizex, unsigned int sizey, char *label_text) +check_box* kolibri_new_check_box(unsigned int tlx, unsigned int tly, unsigned int sizex, unsigned int sizey, char *label_text) { - struct check_box* new_checkbox = (struct check_box *)malloc(sizeof(struct check_box)); + check_box* new_checkbox = (check_box *)malloc(sizeof(check_box)); new_checkbox -> left_s = (tlx << 16) + sizex; new_checkbox -> top_s = (tly << 16) + sizey; new_checkbox -> ch_text_margin = 10; @@ -37,7 +37,7 @@ struct check_box* kolibri_new_check_box(unsigned int tlx, unsigned int tly, unsi return new_checkbox; } -extern void (*check_box_draw2)(struct check_box *) __attribute__((__stdcall__)); -extern void (*check_box_mouse2)(struct check_box *)__attribute__((__stdcall__)); +extern void (*check_box_draw2)(check_box *) __attribute__((__stdcall__)); +extern void (*check_box_mouse2)(check_box *)__attribute__((__stdcall__)); #endif /* KOLIBRI_CHECKBOX_H */ diff --git a/contrib/C_Layer/INCLUDE/kolibri_colordialog.h b/contrib/C_Layer/INCLUDE/kolibri_colordialog.h index e696709ad5..4d8ee8e541 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_colordialog.h +++ b/contrib/C_Layer/INCLUDE/kolibri_colordialog.h @@ -4,7 +4,7 @@ char cd_com_area_name[] = "FFFFFFFF_color_dialog"; char cd_start_path[] = "/rd/1/colrdial"; -struct color_dialog { +typedef struct { unsigned int type; unsigned int procinfo; unsigned int com_area_name; @@ -18,13 +18,13 @@ struct color_dialog { unsigned short y_start; unsigned int color_type; unsigned int color; -}; +}color_dialog; void cd_fake_on_redraw(void) {} struct open_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size) { - struct color_dialog *new_colordialog = (struct color_dialog *)malloc(sizeof(struct color_dialog)); + color_dialog *new_colordialog = (color_dialog *)malloc(sizeof(color_dialog)); char *proc_info = (char *)calloc(1024, sizeof(char)); new_colordialog -> type = type; @@ -43,6 +43,6 @@ struct open_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short t return new_colordialog; } -extern void (*ColorDialog_init)(struct open_dialog *) __attribute__((__stdcall__)); -extern void (*ColorDialog_start)(struct open_dialog *) __attribute__((__stdcall__)); +extern void (*ColorDialog_init)(color_dialog *) __attribute__((__stdcall__)); +extern void (*ColorDialog_start)(color_dialog *) __attribute__((__stdcall__)); #endif /* KOLIBRI_COLORDIALOG_H */ diff --git a/contrib/C_Layer/INCLUDE/kolibri_colors.h b/contrib/C_Layer/INCLUDE/kolibri_colors.h index 7a16a4024e..afbec118ea 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_colors.h +++ b/contrib/C_Layer/INCLUDE/kolibri_colors.h @@ -1,6 +1,6 @@ #ifndef KOLIBRI_COLORS_H #define KOLIBRI_COLORS_H -struct kolibri_system_colors { +typedef struct { unsigned int color_frame_area; unsigned int color_grab_bar; unsigned int color_grab_bar_button; @@ -11,11 +11,11 @@ struct kolibri_system_colors { unsigned int color_work_button_text; unsigned int color_work_text; unsigned int color_work_graph; -}; +}kolibri_system_colors; -struct kolibri_system_colors kolibri_color_table; +kolibri_system_colors kolibri_color_table; -void kolibri_get_system_colors(struct kolibri_system_colors *color_table) +void kolibri_get_system_colors(kolibri_system_colors *color_table) { __asm__ volatile ("int $0x40" : diff --git a/contrib/C_Layer/INCLUDE/kolibri_editbox.h b/contrib/C_Layer/INCLUDE/kolibri_editbox.h index f5c05b1c82..70a33e0d4c 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_editbox.h +++ b/contrib/C_Layer/INCLUDE/kolibri_editbox.h @@ -3,7 +3,7 @@ #include "kolibri_colors.h" -struct edit_box { +typedef struct { unsigned int width; unsigned int left; unsigned int top; @@ -25,7 +25,7 @@ struct edit_box { unsigned int cl_curs_y; unsigned int shift; unsigned int shift_old; -}; +}edit_box; /* Initializes an Editbox with sane settings, sufficient for most use. This will let you create a box and position it somewhere on the screen. @@ -42,10 +42,10 @@ struct edit_box { max_chars = Limit of number of characters user can enter into edit box. */ -struct edit_box* kolibri_new_edit_box(unsigned int tlx, unsigned int tly, unsigned int max_chars) +edit_box* kolibri_new_edit_box(unsigned int tlx, unsigned int tly, unsigned int max_chars) { unsigned int PIXELS_PER_CHAR = 7; - struct edit_box *new_textbox = (struct edit_box *)malloc(sizeof(struct edit_box)); + edit_box *new_textbox = (edit_box *)malloc(sizeof(edit_box)); char *text_buffer = (char *)calloc(max_chars + 1, sizeof(char)); /* Update blur_border_color and shift_color from box_lib.mac macro */ @@ -77,13 +77,13 @@ struct edit_box* kolibri_new_edit_box(unsigned int tlx, unsigned int tly, unsign return new_textbox; } -extern void (*edit_box_draw)(struct edit_box *) __attribute__((__stdcall__)); +extern void (*edit_box_draw)(edit_box *) __attribute__((__stdcall__)); /* editbox_key is a wrapper written in assembly to handle key press events for editboxes */ /* because inline assembly in GCC is a PITA and interferes with the EAX (AH) register */ /* which edit_box_key requires */ -extern void editbox_key(struct edit_box *) __attribute__((__stdcall__)); +extern void editbox_key(edit_box *) __attribute__((__stdcall__)); -extern void (*edit_box_mouse)(struct edit_box *) __attribute__((__stdcall__)); +extern void (*edit_box_mouse)(edit_box *) __attribute__((__stdcall__)); extern volatile unsigned press_key; #endif /* KOLIBRI_EDITBOX_H */ diff --git a/contrib/C_Layer/INCLUDE/kolibri_frame.h b/contrib/C_Layer/INCLUDE/kolibri_frame.h index a6204837e0..c8eb37cc80 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_frame.h +++ b/contrib/C_Layer/INCLUDE/kolibri_frame.h @@ -6,7 +6,7 @@ enum { BOTTON }; -struct frame { +typedef struct { unsigned int type; uint16_t size_x; uint16_t start_x; @@ -21,11 +21,11 @@ struct frame { unsigned int font_size_y; unsigned int font_color; unsigned int font_backgr_color; -}; +}frame; -struct frame* kolibri_new_frame(uint16_t tlx, uint16_t tly, uint16_t sizex, uint16_t sizey, unsigned int ext_col, unsigned int int_col, unsigned int draw_text_flag, char *text_pointer, unsigned int text_position, unsigned int font_color, unsigned int font_bgcolor) +frame* kolibri_new_frame(uint16_t tlx, uint16_t tly, uint16_t sizex, uint16_t sizey, unsigned int ext_col, unsigned int int_col, unsigned int draw_text_flag, char *text_pointer, unsigned int text_position, unsigned int font_color, unsigned int font_bgcolor) { - struct frame *new_frame = (struct frame *)malloc(sizeof(struct frame)); + frame *new_frame = (frame *)malloc(sizeof(frame)); new_frame -> type = 0; new_frame -> size_x = sizex; new_frame -> start_x = tlx; @@ -43,6 +43,6 @@ struct frame* kolibri_new_frame(uint16_t tlx, uint16_t tly, uint16_t sizex, uint return new_frame; } -extern void (*frame_draw)(struct frame *) __attribute__((__stdcall__)); +extern void (*frame_draw)(frame *) __attribute__((__stdcall__)); #endif /* KOLIBRI_FRAME_H */ diff --git a/contrib/C_Layer/INCLUDE/kolibri_gui.h b/contrib/C_Layer/INCLUDE/kolibri_gui.h index 1eea3eaaac..328e1280b8 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_gui.h +++ b/contrib/C_Layer/INCLUDE/kolibri_gui.h @@ -19,7 +19,9 @@ enum KOLIBRI_GUI_EVENTS { KOLIBRI_EVENT_MOUSE = 6 /* Mouse activity (movement, button press) was detected */ }; -void kolibri_handle_event_redraw(struct kolibri_window* some_window) +#define BUTTON_CLOSE 0x1 + +void kolibri_handle_event_redraw(kolibri_window* some_window) { /* Draw windows with system color table. */ @@ -33,7 +35,7 @@ void kolibri_handle_event_redraw(struct kolibri_window* some_window) /* Enumerate and draw all window elements here */ if(some_window->elements) /* Draw all elements added to window */ { - struct kolibri_window_element* current_element = some_window -> elements; + kolibri_window_element* current_element = some_window -> elements; do { @@ -60,12 +62,12 @@ void kolibri_handle_event_redraw(struct kolibri_window* some_window) } } -void kolibri_handle_event_key(struct kolibri_window* some_window) +void kolibri_handle_event_key(kolibri_window* some_window) { /* Enumerate and trigger key handling functions of window elements here */ if(some_window->elements) { - struct kolibri_window_element *current_element = some_window -> elements; + kolibri_window_element *current_element = some_window -> elements; do { @@ -78,12 +80,12 @@ void kolibri_handle_event_key(struct kolibri_window* some_window) } } -void kolibri_handle_event_mouse(struct kolibri_window* some_window) +void kolibri_handle_event_mouse(kolibri_window* some_window) { /* Enumerate and trigger mouse handling functions of window elements here */ if(some_window->elements) { - struct kolibri_window_element *current_element = some_window -> elements; + kolibri_window_element *current_element = some_window -> elements; do { diff --git a/contrib/C_Layer/INCLUDE/kolibri_gui_elements.h b/contrib/C_Layer/INCLUDE/kolibri_gui_elements.h index ceb0afdb55..735d1b8a6e 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_gui_elements.h +++ b/contrib/C_Layer/INCLUDE/kolibri_gui_elements.h @@ -33,24 +33,24 @@ enum KOLIBRI_GUI_ELEMENT_TYPE { }; /* Linked list which connects together all the elements drawn inside a GUI window */ -struct kolibri_window_element { +typedef struct{ enum KOLIBRI_GUI_ELEMENT_TYPE type; void *element; - struct kolibri_window_element *next, *prev; -}; + void *next, *prev; +}kolibri_window_element; typedef void (*cb_elem_boxlib)(void *) __attribute__((__stdcall__)); /* Generic structure for supporting functions on various elements of Kolibri's GUI */ -struct kolibri_element_operations { +typedef struct { cb_elem_boxlib redraw_fn; cb_elem_boxlib mouse_fn; cb_elem_boxlib key_fn; -}; +}kolibri_element_operations; /* Structure for a GUI Window on Kolibri. It also contains all the elements drawn in window */ -struct kolibri_window { +typedef struct{ unsigned int topleftx, toplefty; unsigned int sizex, sizey; char *window_title; @@ -58,14 +58,14 @@ struct kolibri_window { /* Refer to sysfuncs, value to be stored in EDX (Function 0) */ unsigned int XY; - struct kolibri_window_element *elements; -}; + kolibri_window_element *elements; +}kolibri_window; /*---------------------End of Structure and enum definitions---------------*/ /*---------------------Define various functions for initializing GUI-------*/ /* Master table containing operations for various GUI elements in one place */ -struct kolibri_element_operations kolibri_gui_op_table[KOLIBRI_NUM_GUI_ELEMENTS]; +kolibri_element_operations kolibri_gui_op_table[KOLIBRI_NUM_GUI_ELEMENTS]; void kolibri_init_gui_op_table(void) { @@ -99,9 +99,9 @@ kolibri_gui_op_table[KOLIBRI_FRAME].key_fn = NULL; /* Create a new main GUI window for KolibriOS */ /* tl stands for TOP LEFT. x and y are coordinates. */ -struct kolibri_window * kolibri_new_window(int tlx, int tly, int sizex, int sizey, char *title) +kolibri_window * kolibri_new_window(int tlx, int tly, int sizex, int sizey, char *title) { - struct kolibri_window *new_win = (struct kolibri_window *)malloc(sizeof(struct kolibri_window)); + kolibri_window *new_win = (kolibri_window *)malloc(sizeof(kolibri_window)); new_win->topleftx = tlx; new_win->toplefty = tly; @@ -115,9 +115,9 @@ struct kolibri_window * kolibri_new_window(int tlx, int tly, int sizex, int size } /* Add an element to an existing window */ -void kolibri_window_add_element(struct kolibri_window *some_window, enum KOLIBRI_GUI_ELEMENT_TYPE element_type, void *some_gui_element) +void kolibri_window_add_element(kolibri_window *some_window, enum KOLIBRI_GUI_ELEMENT_TYPE element_type, void *some_gui_element) { - struct kolibri_window_element *new_element = (struct kolibri_window_element *)malloc(sizeof(struct kolibri_window_element)); + kolibri_window_element *new_element = (kolibri_window_element *)malloc(sizeof(kolibri_window_element)); new_element -> type = element_type; new_element -> element = some_gui_element; @@ -130,7 +130,7 @@ void kolibri_window_add_element(struct kolibri_window *some_window, enum KOLIBRI } else { - struct kolibri_window_element *last_element = some_window -> elements -> prev; + kolibri_window_element *last_element = some_window -> elements -> prev; last_element -> next = new_element; new_element -> next = some_window -> elements; /* start of linked list */ diff --git a/contrib/C_Layer/INCLUDE/kolibri_libimg.h b/contrib/C_Layer/INCLUDE/kolibri_libimg.h index 26a841f026..162c1bf110 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_libimg.h +++ b/contrib/C_Layer/INCLUDE/kolibri_libimg.h @@ -13,6 +13,50 @@ int kolibri_libimg_init(void) return 1; } +//list of format id's +#define LIBIMG_FORMAT_BMP 1 +#define LIBIMG_FORMAT_ICO 2 +#define LIBIMG_FORMAT_CUR 3 +#define LIBIMG_FORMAT_GIF 4 +#define LIBIMG_FORMAT_PNG 5 +#define LIBIMG_FORMAT_JPEG 6 +#define LIBIMG_FORMAT_TGA 7 +#define LIBIMG_FORMAT_PCX 8 +#define LIBIMG_FORMAT_XCF 9 +#define LIBIMG_FORMAT_TIFF 10 +#define LIBIMG_FORMAT_PNM 11 +#define LIBIMG_FORMAT_WBMP 12 +#define LIBIMG_FORMAT_XBM 13 +#define LIBIMG_FORMAT_Z80 14 + +//error codes +#define LIBIMG_ERROR_OUT_OF_MEMORY 1 +#define LIBIMG_ERROR_FORMAT 2 +#define LIBIMG_ERROR_CONDITIONS 3 +#define LIBIMG_ERROR_BIT_DEPTH 4 +#define LIBIMG_ERROR_ENCODER 5 +#define LIBIMG_ERROR_SRC_TYPE 6 +#define LIBIMG_ERROR_SCALE 7 +#define LIBIMG_ERROR_INTER 8 +#define LIBIMG_ERROR_NOT_INPLEMENTED 9 +#define LIBIMG_ERROR_INVALID_INPUT 10 + +//encode flags (byte 0x02 of _common option) +#define LIBIMG_ENCODE_STRICT_SPECIFIC 0x01 +#define LIBIMG_ENCODE_STRICT_BIT_DEPTH 0x02 +#define LIBIMG_ENCODE_DELETE_ALPHA 0x08 +#define LIBIMG_ENCODE_FLUSH_ALPHA 0x10 + + +#define FLIP_VERTICAL 0x01 +#define FLIP_HORIZONTAL 0x02 + +#define ROTATE_90_CW 0x01 +#define ROTATE_180 0x02 +#define ROTATE_270_CW 0x03 +#define ROTATE_90_CCW ROTATE_270_CW +#define ROTATE_270_CCW ROTATE_90_CW + extern void* (*img_decode)(void *, uint32_t, uint32_t) __attribute__((__stdcall__)); extern void* (*img_encode)(void *, uint32_t, uint32_t) __attribute__((__stdcall__)); extern void* (*img_create)(uint32_t, uint32_t, uint32_t) __attribute__((__stdcall__)); diff --git a/contrib/C_Layer/INCLUDE/kolibri_opendialog.h b/contrib/C_Layer/INCLUDE/kolibri_opendialog.h index 0778cd96da..a21cf97b29 100644 --- a/contrib/C_Layer/INCLUDE/kolibri_opendialog.h +++ b/contrib/C_Layer/INCLUDE/kolibri_opendialog.h @@ -5,7 +5,7 @@ char sz_com_area_name[] = "FFFFFFFF_open_dialog"; char sz_dir_default_path[] = "/rd/1"; char sz_start_path[] = "/rd/1/File managers/opendial"; -struct open_dialog { +typedef struct { unsigned int mode; unsigned int procinfo; unsigned int com_area_name; @@ -22,19 +22,19 @@ struct open_dialog { unsigned short x_start; unsigned short y_size; unsigned short y_start; -}; +}open_dialog; -struct od_filter { +typedef struct { unsigned int size; unsigned char end; -}; +}od_filter; void fake_on_redraw(void) {} struct open_dialog* kolibri_new_open_dialog(unsigned int mode, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size) { - struct open_dialog *new_opendialog = (struct open_dialog *)malloc(sizeof(struct open_dialog)); - struct od_filter *new_od_filter = (struct od_filter *)malloc(sizeof(struct od_filter)); + open_dialog *new_opendialog = (open_dialog *)malloc(sizeof(open_dialog)); + od_filter *new_od_filter = (od_filter *)malloc(sizeof(od_filter)); char *plugin_path = (char *)calloc(4096, sizeof(char)); char *openfile_path = (char *)calloc(4096, sizeof(char)); char *proc_info = (char *)calloc(1024, sizeof(char)); @@ -62,6 +62,6 @@ struct open_dialog* kolibri_new_open_dialog(unsigned int mode, unsigned short tl return new_opendialog; } -extern void (*OpenDialog_init)(struct open_dialog *) __attribute__((__stdcall__)); -extern void (*OpenDialog_start)(struct open_dialog *) __attribute__((__stdcall__)); +extern void (*OpenDialog_init)(open_dialog *) __attribute__((__stdcall__)); +extern void (*OpenDialog_start)(open_dialog *) __attribute__((__stdcall__)); #endif /* KOLIBRI_OPENDIALOG_H */