forked from KolibriOS/kolibrios
C Layer: code refactoring
git-svn-id: svn://kolibrios.org@6457 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
38cd3c4ee4
commit
407fab40d9
@ -1,4 +1,4 @@
|
|||||||
#include "kolibri_gui.h"
|
#include <kolibri_gui.h>
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
@ -12,10 +12,10 @@ int main()
|
|||||||
unsigned int gui_event = KOLIBRI_EVENT_REDRAW;
|
unsigned int gui_event = KOLIBRI_EVENT_REDRAW;
|
||||||
oskey_t key;
|
oskey_t key;
|
||||||
|
|
||||||
struct kolibri_window *main_window = kolibri_new_window(50, 50, 400, 100, "BoardMsg: OpenDialog 0.12");
|
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.");
|
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);
|
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_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_EDIT_BOX, textbox);
|
||||||
kolibri_window_add_element(main_window, KOLIBRI_CHECK_BOX, checkbox);
|
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(textbox->text);
|
||||||
debug_board_write_str("\n");
|
debug_board_write_str("\n");
|
||||||
break;
|
break;
|
||||||
case 0x00000001:
|
case BUTTON_CLOSE:
|
||||||
kolibri_exit();
|
kolibri_exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
#Please set up kolibrios sources here : /home/<username>/kolibrios
|
#Please set up kolibrios sources here : /home/<username>/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/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
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
objcopy -O binary boardxmsg
|
objcopy -O binary boardxmsg
|
||||||
|
|
||||||
echo "If everything went well, boardxmsg should be your binary!"
|
echo "If everything went well, boardxmsg should be your binary!"
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#define KOLIBRI_BUF2D_H
|
#define KOLIBRI_BUF2D_H
|
||||||
|
|
||||||
/*ToDo
|
/*ToDo
|
||||||
* buf_curve_bezier
|
|
||||||
* voxel function
|
* voxel function
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -21,7 +20,7 @@ int kolibri_buf2d_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct buf2d_struct {
|
typedef struct {
|
||||||
unsigned int *buf_pointer;
|
unsigned int *buf_pointer;
|
||||||
uint16_t left;
|
uint16_t left;
|
||||||
uint16_t top;
|
uint16_t top;
|
||||||
@ -29,7 +28,7 @@ struct buf2d_struct {
|
|||||||
unsigned int height;
|
unsigned int height;
|
||||||
unsigned int bgcolor;
|
unsigned int bgcolor;
|
||||||
uint8_t color_bit;
|
uint8_t color_bit;
|
||||||
};
|
}buf2d_struct;
|
||||||
|
|
||||||
enum BUF2D_ALGORITM_FILTR {
|
enum BUF2D_ALGORITM_FILTR {
|
||||||
SIERRA_LITE,
|
SIERRA_LITE,
|
||||||
@ -46,12 +45,12 @@ enum BUF2D_OPT_CROP {
|
|||||||
BUF2D_OPT_CROP_RIGHT = 8
|
BUF2D_OPT_CROP_RIGHT = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void (*buf2d_create_asm)(struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_create_asm)(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_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 -> left = tlx;
|
||||||
new_buf2d_struct -> top = tly;
|
new_buf2d_struct -> top = tly;
|
||||||
new_buf2d_struct -> width = sizex;
|
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;
|
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);
|
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_draw)(buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_clear)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
extern void (*buf2d_clear)(buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_delete)(struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_delete)(buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_rotate)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
extern void (*buf2d_rotate)(buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_resize)(struct buf2d_struct *, unsigned int, unsigned int, unsigned int) __attribute__((__stdcall__));
|
extern void (*buf2d_resize)(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)(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_line_sm)(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_rect_by_size)(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_filled_rect_by_size)(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_circle)(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_hdiv2)(buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_img_wdiv2)(struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_img_wdiv2)(buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_conv_24_to_8)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
extern void (*buf2d_conv_24_to_8)(buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_conv_24_to_32)(struct 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)(struct buf2d_struct *, unsigned int, unsigned int, struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_bit_blt_transp)(buf2d_struct *, unsigned int, unsigned int, 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_bit_blt_alpha)(buf2d_struct *, unsigned int, unsigned int, buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_convert_text_matrix)(struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_convert_text_matrix)(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_draw_text)(buf2d_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_crop_color)(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_offset_h)(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_flood_fill)(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 void (*buf2d_set_pixel)(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 unsigned int (*buf2d_get_pixel)(buf2d_struct *, unsigned int, unsigned int) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_flip_h)(struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_flip_h)(buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_flip_v)(struct buf2d_struct *) __attribute__((__stdcall__));
|
extern void (*buf2d_flip_v)(buf2d_struct *) __attribute__((__stdcall__));
|
||||||
extern void (*buf2d_filter_dither)(struct buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
extern void (*buf2d_filter_dither)(buf2d_struct *, unsigned int) __attribute__((__stdcall__));
|
||||||
#endif /* KOLIBRI_BUF2D_H */
|
#endif /* KOLIBRI_BUF2D_H */
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
#ifndef KOLIBRI_BUTTON_H
|
#ifndef KOLIBRI_BUTTON_H
|
||||||
#define KOLIBRI_BUTTON_H
|
#define KOLIBRI_BUTTON_H
|
||||||
|
|
||||||
struct kolibri_button {
|
typedef struct {
|
||||||
unsigned int x65536sizex;
|
unsigned int x65536sizex;
|
||||||
unsigned int y65536sizey;
|
unsigned int y65536sizey;
|
||||||
unsigned int color;
|
unsigned int color;
|
||||||
unsigned int identifier;
|
unsigned int identifier;
|
||||||
unsigned int XY;
|
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)
|
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 -> x65536sizex = (tlx << 16) + sizex;
|
||||||
new_button -> y65536sizey = (tly << 16) + sizey;
|
new_button -> y65536sizey = (tly << 16) + sizey;
|
||||||
new_button -> color = color;
|
new_button -> color = color;
|
||||||
@ -21,7 +21,7 @@ struct kolibri_button *kolibri_new_button(unsigned int tlx, unsigned int tly, un
|
|||||||
return new_button;
|
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);
|
define_button(some_button -> x65536sizex, some_button -> y65536sizey, some_button -> identifier, some_button -> color);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ enum CHECKBOX_FLAGS {
|
|||||||
/* Add more flags later */
|
/* Add more flags later */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct check_box {
|
typedef struct {
|
||||||
unsigned int left_s;
|
unsigned int left_s;
|
||||||
unsigned int top_s;
|
unsigned int top_s;
|
||||||
unsigned int ch_text_margin;
|
unsigned int ch_text_margin;
|
||||||
@ -20,11 +20,11 @@ struct check_box {
|
|||||||
|
|
||||||
/* Users can use members above this */
|
/* Users can use members above this */
|
||||||
unsigned int size_of_str;
|
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 -> left_s = (tlx << 16) + sizex;
|
||||||
new_checkbox -> top_s = (tly << 16) + sizey;
|
new_checkbox -> top_s = (tly << 16) + sizey;
|
||||||
new_checkbox -> ch_text_margin = 10;
|
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;
|
return new_checkbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void (*check_box_draw2)(struct check_box *) __attribute__((__stdcall__));
|
extern void (*check_box_draw2)(check_box *) __attribute__((__stdcall__));
|
||||||
extern void (*check_box_mouse2)(struct check_box *)__attribute__((__stdcall__));
|
extern void (*check_box_mouse2)(check_box *)__attribute__((__stdcall__));
|
||||||
|
|
||||||
#endif /* KOLIBRI_CHECKBOX_H */
|
#endif /* KOLIBRI_CHECKBOX_H */
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
char cd_com_area_name[] = "FFFFFFFF_color_dialog";
|
char cd_com_area_name[] = "FFFFFFFF_color_dialog";
|
||||||
char cd_start_path[] = "/rd/1/colrdial";
|
char cd_start_path[] = "/rd/1/colrdial";
|
||||||
|
|
||||||
struct color_dialog {
|
typedef struct {
|
||||||
unsigned int type;
|
unsigned int type;
|
||||||
unsigned int procinfo;
|
unsigned int procinfo;
|
||||||
unsigned int com_area_name;
|
unsigned int com_area_name;
|
||||||
@ -18,13 +18,13 @@ struct color_dialog {
|
|||||||
unsigned short y_start;
|
unsigned short y_start;
|
||||||
unsigned int color_type;
|
unsigned int color_type;
|
||||||
unsigned int color;
|
unsigned int color;
|
||||||
};
|
}color_dialog;
|
||||||
|
|
||||||
void cd_fake_on_redraw(void) {}
|
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 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));
|
char *proc_info = (char *)calloc(1024, sizeof(char));
|
||||||
|
|
||||||
new_colordialog -> type = type;
|
new_colordialog -> type = type;
|
||||||
@ -43,6 +43,6 @@ struct open_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short t
|
|||||||
return new_colordialog;
|
return new_colordialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void (*ColorDialog_init)(struct open_dialog *) __attribute__((__stdcall__));
|
extern void (*ColorDialog_init)(color_dialog *) __attribute__((__stdcall__));
|
||||||
extern void (*ColorDialog_start)(struct open_dialog *) __attribute__((__stdcall__));
|
extern void (*ColorDialog_start)(color_dialog *) __attribute__((__stdcall__));
|
||||||
#endif /* KOLIBRI_COLORDIALOG_H */
|
#endif /* KOLIBRI_COLORDIALOG_H */
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#ifndef KOLIBRI_COLORS_H
|
#ifndef KOLIBRI_COLORS_H
|
||||||
#define KOLIBRI_COLORS_H
|
#define KOLIBRI_COLORS_H
|
||||||
struct kolibri_system_colors {
|
typedef struct {
|
||||||
unsigned int color_frame_area;
|
unsigned int color_frame_area;
|
||||||
unsigned int color_grab_bar;
|
unsigned int color_grab_bar;
|
||||||
unsigned int color_grab_bar_button;
|
unsigned int color_grab_bar_button;
|
||||||
@ -11,11 +11,11 @@ struct kolibri_system_colors {
|
|||||||
unsigned int color_work_button_text;
|
unsigned int color_work_button_text;
|
||||||
unsigned int color_work_text;
|
unsigned int color_work_text;
|
||||||
unsigned int color_work_graph;
|
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"
|
__asm__ volatile ("int $0x40"
|
||||||
:
|
:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "kolibri_colors.h"
|
#include "kolibri_colors.h"
|
||||||
|
|
||||||
struct edit_box {
|
typedef struct {
|
||||||
unsigned int width;
|
unsigned int width;
|
||||||
unsigned int left;
|
unsigned int left;
|
||||||
unsigned int top;
|
unsigned int top;
|
||||||
@ -25,7 +25,7 @@ struct edit_box {
|
|||||||
unsigned int cl_curs_y;
|
unsigned int cl_curs_y;
|
||||||
unsigned int shift;
|
unsigned int shift;
|
||||||
unsigned int shift_old;
|
unsigned int shift_old;
|
||||||
};
|
}edit_box;
|
||||||
|
|
||||||
/* Initializes an Editbox with sane settings, sufficient for most use.
|
/* Initializes an Editbox with sane settings, sufficient for most use.
|
||||||
This will let you create a box and position it somewhere on the screen.
|
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.
|
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;
|
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));
|
char *text_buffer = (char *)calloc(max_chars + 1, sizeof(char));
|
||||||
|
|
||||||
/* Update blur_border_color and shift_color from box_lib.mac macro */
|
/* 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;
|
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 */
|
/* 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 */
|
/* because inline assembly in GCC is a PITA and interferes with the EAX (AH) register */
|
||||||
/* which edit_box_key requires */
|
/* 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;
|
extern volatile unsigned press_key;
|
||||||
#endif /* KOLIBRI_EDITBOX_H */
|
#endif /* KOLIBRI_EDITBOX_H */
|
||||||
|
@ -6,7 +6,7 @@ enum {
|
|||||||
BOTTON
|
BOTTON
|
||||||
};
|
};
|
||||||
|
|
||||||
struct frame {
|
typedef struct {
|
||||||
unsigned int type;
|
unsigned int type;
|
||||||
uint16_t size_x;
|
uint16_t size_x;
|
||||||
uint16_t start_x;
|
uint16_t start_x;
|
||||||
@ -21,11 +21,11 @@ struct frame {
|
|||||||
unsigned int font_size_y;
|
unsigned int font_size_y;
|
||||||
unsigned int font_color;
|
unsigned int font_color;
|
||||||
unsigned int font_backgr_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 -> type = 0;
|
||||||
new_frame -> size_x = sizex;
|
new_frame -> size_x = sizex;
|
||||||
new_frame -> start_x = tlx;
|
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;
|
return new_frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void (*frame_draw)(struct frame *) __attribute__((__stdcall__));
|
extern void (*frame_draw)(frame *) __attribute__((__stdcall__));
|
||||||
|
|
||||||
#endif /* KOLIBRI_FRAME_H */
|
#endif /* KOLIBRI_FRAME_H */
|
||||||
|
@ -19,7 +19,9 @@ enum KOLIBRI_GUI_EVENTS {
|
|||||||
KOLIBRI_EVENT_MOUSE = 6 /* Mouse activity (movement, button press) was detected */
|
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. */
|
/* 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 */
|
/* Enumerate and draw all window elements here */
|
||||||
if(some_window->elements) /* Draw all elements added to window */
|
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
|
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 */
|
/* Enumerate and trigger key handling functions of window elements here */
|
||||||
if(some_window->elements)
|
if(some_window->elements)
|
||||||
{
|
{
|
||||||
struct kolibri_window_element *current_element = some_window -> elements;
|
kolibri_window_element *current_element = some_window -> elements;
|
||||||
|
|
||||||
do
|
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 */
|
/* Enumerate and trigger mouse handling functions of window elements here */
|
||||||
if(some_window->elements)
|
if(some_window->elements)
|
||||||
{
|
{
|
||||||
struct kolibri_window_element *current_element = some_window -> elements;
|
kolibri_window_element *current_element = some_window -> elements;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -33,24 +33,24 @@ enum KOLIBRI_GUI_ELEMENT_TYPE {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Linked list which connects together all the elements drawn inside a GUI window */
|
/* 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;
|
enum KOLIBRI_GUI_ELEMENT_TYPE type;
|
||||||
void *element;
|
void *element;
|
||||||
struct kolibri_window_element *next, *prev;
|
void *next, *prev;
|
||||||
};
|
}kolibri_window_element;
|
||||||
|
|
||||||
|
|
||||||
typedef void (*cb_elem_boxlib)(void *) __attribute__((__stdcall__));
|
typedef void (*cb_elem_boxlib)(void *) __attribute__((__stdcall__));
|
||||||
|
|
||||||
/* Generic structure for supporting functions on various elements of Kolibri's GUI */
|
/* 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 redraw_fn;
|
||||||
cb_elem_boxlib mouse_fn;
|
cb_elem_boxlib mouse_fn;
|
||||||
cb_elem_boxlib key_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 */
|
/* 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 topleftx, toplefty;
|
||||||
unsigned int sizex, sizey;
|
unsigned int sizex, sizey;
|
||||||
char *window_title;
|
char *window_title;
|
||||||
@ -58,14 +58,14 @@ struct kolibri_window {
|
|||||||
/* Refer to sysfuncs, value to be stored in EDX (Function 0) */
|
/* Refer to sysfuncs, value to be stored in EDX (Function 0) */
|
||||||
unsigned int XY;
|
unsigned int XY;
|
||||||
|
|
||||||
struct kolibri_window_element *elements;
|
kolibri_window_element *elements;
|
||||||
};
|
}kolibri_window;
|
||||||
|
|
||||||
/*---------------------End of Structure and enum definitions---------------*/
|
/*---------------------End of Structure and enum definitions---------------*/
|
||||||
/*---------------------Define various functions for initializing GUI-------*/
|
/*---------------------Define various functions for initializing GUI-------*/
|
||||||
|
|
||||||
/* Master table containing operations for various GUI elements in one place */
|
/* 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)
|
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 */
|
/* Create a new main GUI window for KolibriOS */
|
||||||
/* tl stands for TOP LEFT. x and y are coordinates. */
|
/* 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->topleftx = tlx;
|
||||||
new_win->toplefty = tly;
|
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 */
|
/* 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 -> type = element_type;
|
||||||
new_element -> element = some_gui_element;
|
new_element -> element = some_gui_element;
|
||||||
@ -130,7 +130,7 @@ void kolibri_window_add_element(struct kolibri_window *some_window, enum KOLIBRI
|
|||||||
}
|
}
|
||||||
else
|
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;
|
last_element -> next = new_element;
|
||||||
new_element -> next = some_window -> elements; /* start of linked list */
|
new_element -> next = some_window -> elements; /* start of linked list */
|
||||||
|
@ -13,6 +13,50 @@ int kolibri_libimg_init(void)
|
|||||||
return 1;
|
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_decode)(void *, uint32_t, uint32_t) __attribute__((__stdcall__));
|
||||||
extern void* (*img_encode)(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__));
|
extern void* (*img_create)(uint32_t, uint32_t, uint32_t) __attribute__((__stdcall__));
|
||||||
|
@ -5,7 +5,7 @@ char sz_com_area_name[] = "FFFFFFFF_open_dialog";
|
|||||||
char sz_dir_default_path[] = "/rd/1";
|
char sz_dir_default_path[] = "/rd/1";
|
||||||
char sz_start_path[] = "/rd/1/File managers/opendial";
|
char sz_start_path[] = "/rd/1/File managers/opendial";
|
||||||
|
|
||||||
struct open_dialog {
|
typedef struct {
|
||||||
unsigned int mode;
|
unsigned int mode;
|
||||||
unsigned int procinfo;
|
unsigned int procinfo;
|
||||||
unsigned int com_area_name;
|
unsigned int com_area_name;
|
||||||
@ -22,19 +22,19 @@ struct open_dialog {
|
|||||||
unsigned short x_start;
|
unsigned short x_start;
|
||||||
unsigned short y_size;
|
unsigned short y_size;
|
||||||
unsigned short y_start;
|
unsigned short y_start;
|
||||||
};
|
}open_dialog;
|
||||||
|
|
||||||
struct od_filter {
|
typedef struct {
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
unsigned char end;
|
unsigned char end;
|
||||||
};
|
}od_filter;
|
||||||
|
|
||||||
void fake_on_redraw(void) {}
|
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* 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));
|
open_dialog *new_opendialog = (open_dialog *)malloc(sizeof(open_dialog));
|
||||||
struct od_filter *new_od_filter = (struct od_filter *)malloc(sizeof(struct od_filter));
|
od_filter *new_od_filter = (od_filter *)malloc(sizeof(od_filter));
|
||||||
char *plugin_path = (char *)calloc(4096, sizeof(char));
|
char *plugin_path = (char *)calloc(4096, sizeof(char));
|
||||||
char *openfile_path = (char *)calloc(4096, sizeof(char));
|
char *openfile_path = (char *)calloc(4096, sizeof(char));
|
||||||
char *proc_info = (char *)calloc(1024, 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;
|
return new_opendialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void (*OpenDialog_init)(struct open_dialog *) __attribute__((__stdcall__));
|
extern void (*OpenDialog_init)(open_dialog *) __attribute__((__stdcall__));
|
||||||
extern void (*OpenDialog_start)(struct open_dialog *) __attribute__((__stdcall__));
|
extern void (*OpenDialog_start)(open_dialog *) __attribute__((__stdcall__));
|
||||||
#endif /* KOLIBRI_OPENDIALOG_H */
|
#endif /* KOLIBRI_OPENDIALOG_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user