Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6456 → Rev 6457

/contrib/C_Layer/EXAMPLE/libguic_kolibri/boardmsg.c
1,4 → 1,4
#include "kolibri_gui.h"
#include <kolibri_gui.h>
 
int main()
{
12,10 → 12,10
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
debug_board_write_str(textbox->text);
debug_board_write_str("\n");
break;
case 0x00000001:
case BUTTON_CLOSE:
kolibri_exit();
}
}
/contrib/C_Layer/EXAMPLE/libguic_kolibri/make_boardmsg.sh
1,11 → 1,9
#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
 
echo "If everything went well, boardxmsg should be your binary!"
echo "If everything went well, boardxmsg should be your binary!"
/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
}
 
 
struct buf2d_struct {
typedef struct {
unsigned int *buf_pointer;
uint16_t left;
uint16_t top;
29,7 → 28,7
unsigned int height;
unsigned int bgcolor;
uint8_t color_bit;
};
}buf2d_struct;
 
enum BUF2D_ALGORITM_FILTR {
SIERRA_LITE,
46,12 → 45,12
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
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 */
/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
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);
}
/contrib/C_Layer/INCLUDE/kolibri_checkbox.h
8,7 → 8,7
/* 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
 
/* 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
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 */
/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
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
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 */
/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
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"
:
/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
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
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
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 */
/contrib/C_Layer/INCLUDE/kolibri_frame.h
6,7 → 6,7
BOTTON
};
 
struct frame {
typedef struct {
unsigned int type;
uint16_t size_x;
uint16_t start_x;
21,11 → 21,11
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
return new_frame;
}
 
extern void (*frame_draw)(struct frame *) __attribute__((__stdcall__));
extern void (*frame_draw)(frame *) __attribute__((__stdcall__));
 
#endif /* KOLIBRI_FRAME_H */
/contrib/C_Layer/INCLUDE/kolibri_gui.h
19,7 → 19,9
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
/* 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_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_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
{
/contrib/C_Layer/INCLUDE/kolibri_gui_elements.h
33,24 → 33,24
};
 
/* 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
/* 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
/* 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
}
 
/* 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
}
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 */
/contrib/C_Layer/INCLUDE/kolibri_libimg.h
13,6 → 13,50
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__));
/contrib/C_Layer/INCLUDE/kolibri_opendialog.h
5,7 → 5,7
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
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
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 */