#ifndef KOLIBRI_DIALOG_H #define KOLIBRI_DIALOG_H #include #define NOT_SUCCESS 0 #define SUCCESS 1 char sz_com_area_name[] = "FFFFFFFF_open_dialog"; char sz_dir_default_path[] = "/sys"; char sz_start_path[] = "/sys/File managers/opendial"; char cd_com_area_name[] = "FFFFFFFF_color_dialog"; char cd_start_path[] = "/sys/colrdial"; enum open_dialog_mode { OPEN, SAVE, SELECT }; typedef struct { unsigned int size; unsigned char end; } od_filter __attribute__((__packed__)); typedef struct { unsigned int mode; char* procinfo; char* com_area_name; unsigned int com_area; char* opendir_path; char* dir_default_path; char* start_path; void (*draw_window)(); unsigned int status; char* openfile_path; char* filename_area; od_filter* filter_area; unsigned short x_size; unsigned short x_start; unsigned short y_size; unsigned short y_start; } open_dialog __attribute__((__packed__)); typedef struct { unsigned int type; char* procinfo; char* com_area_name; unsigned int com_area; char* start_path; void (*draw_window)(void); unsigned int status; unsigned short x_size; unsigned short x_start; unsigned short y_size; unsigned short y_start; unsigned int color_type; unsigned int color; } color_dialog __attribute__((__packed__)); void fake_on_redraw(void) { } open_dialog* kolibri_new_open_dialog(unsigned int mode, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size) { 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)); char* filename_area = (char*)calloc(256, sizeof(char)); new_od_filter->size = 0; new_od_filter->end = 0; new_opendialog->mode = mode; new_opendialog->procinfo = proc_info; new_opendialog->com_area_name = sz_com_area_name; new_opendialog->com_area = 0; new_opendialog->opendir_path = plugin_path; new_opendialog->dir_default_path = sz_dir_default_path; new_opendialog->start_path = sz_start_path; new_opendialog->draw_window = &fake_on_redraw; new_opendialog->status = 0; new_opendialog->openfile_path = openfile_path; new_opendialog->filename_area = filename_area; new_opendialog->filter_area = new_od_filter; new_opendialog->x_size = x_size; new_opendialog->x_start = tlx; new_opendialog->y_size = y_size; new_opendialog->y_start = tly; return new_opendialog; } void cd_fake_on_redraw(void) { } color_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size) { color_dialog* new_colordialog = (color_dialog*)malloc(sizeof(color_dialog)); char* proc_info = (char*)calloc(1024, sizeof(char)); new_colordialog->type = type; new_colordialog->procinfo = proc_info; new_colordialog->com_area_name = cd_com_area_name; new_colordialog->com_area = 0; new_colordialog->start_path = cd_start_path; new_colordialog->draw_window = &cd_fake_on_redraw; new_colordialog->status = 0; new_colordialog->x_size = x_size; new_colordialog->x_start = tlx; new_colordialog->y_size = y_size; new_colordialog->y_start = tly; new_colordialog->color_type = 0; new_colordialog->color = 0; return new_colordialog; } void kolibri_dialog_init(); extern void __stdcall (*OpenDialog_init)(open_dialog*); extern void __stdcall (*OpenDialog_start)(open_dialog*); extern void __stdcall (*ColorDialog_init)(color_dialog*); extern void __stdcall (*ColorDialog_start)(color_dialog*); #endif