mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-27 03:09:59 +03:00
added wrapper for proc_lib
git-svn-id: svn://kolibrios.org@6392 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a7a5824cfe
commit
9ead5001b6
48
contrib/C_Layer/proc_lib/kolibri_colordialog.h
Normal file
48
contrib/C_Layer/proc_lib/kolibri_colordialog.h
Normal file
@ -0,0 +1,48 @@
|
||||
#ifndef KOLIBRI_COLORIALOG_H
|
||||
#define KOLIBRI_COLORIALOG_H
|
||||
|
||||
char cd_com_area_name[] = "FFFFFFFF_color_dialog";
|
||||
char cd_start_path[] = "/rd/1/colrdial";
|
||||
|
||||
struct color_dialog {
|
||||
unsigned int type;
|
||||
unsigned int procinfo;
|
||||
unsigned int com_area_name;
|
||||
unsigned int com_area;
|
||||
unsigned int start_path;
|
||||
unsigned int draw_window;
|
||||
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;
|
||||
};
|
||||
|
||||
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));
|
||||
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;
|
||||
}
|
||||
|
||||
extern void (*ColorDialog_init)(struct open_dialog *) __attribute__((__stdcall__));
|
||||
extern void (*ColorDialog_start)(struct open_dialog *) __attribute__((__stdcall__));
|
||||
#endif /* KOLIBRI_COLORDIALOG_H */
|
67
contrib/C_Layer/proc_lib/kolibri_opendialog.h
Normal file
67
contrib/C_Layer/proc_lib/kolibri_opendialog.h
Normal file
@ -0,0 +1,67 @@
|
||||
#ifndef KOLIBRI_OPENDIALOG_H
|
||||
#define KOLIBRI_OPENDIALOG_H
|
||||
|
||||
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 {
|
||||
unsigned int mode;
|
||||
unsigned int procinfo;
|
||||
unsigned int com_area_name;
|
||||
unsigned int com_area;
|
||||
unsigned int opendir_path;
|
||||
unsigned int dir_default_path;
|
||||
unsigned int start_path;
|
||||
unsigned int draw_window;
|
||||
unsigned int status;
|
||||
unsigned int openfile_path;
|
||||
unsigned int filename_area;
|
||||
unsigned int filter_area;
|
||||
unsigned short x_size;
|
||||
unsigned short x_start;
|
||||
unsigned short y_size;
|
||||
unsigned short y_start;
|
||||
};
|
||||
|
||||
struct od_filter {
|
||||
unsigned int size;
|
||||
unsigned char end;
|
||||
};
|
||||
|
||||
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));
|
||||
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;
|
||||
}
|
||||
|
||||
extern void (*OpenDialog_init)(struct open_dialog *) __attribute__((__stdcall__));
|
||||
extern void (*OpenDialog_start)(struct open_dialog *) __attribute__((__stdcall__));
|
||||
#endif /* KOLIBRI_OPENDIALOG_H */
|
22
contrib/C_Layer/proc_lib/kolibri_proclib.h
Normal file
22
contrib/C_Layer/proc_lib/kolibri_proclib.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef KOLIBRI_PROCLIB_H
|
||||
#define KOLIBRI_PROCLIB_H
|
||||
|
||||
int kolibri_proclib_init(void)
|
||||
{
|
||||
int asm_init_status = init_proclib_asm();
|
||||
|
||||
/* just return asm_init_status? or return init_proclib_asm() ?*/
|
||||
|
||||
if(asm_init_status == 0)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
enum Mode {
|
||||
OD_OPEN,
|
||||
OD_SAVE,
|
||||
OD_DIR
|
||||
};
|
||||
|
||||
#endif /* KOLIBRI_PROCLIB_H */
|
45
contrib/C_Layer/proc_lib/loadproclib.asm
Normal file
45
contrib/C_Layer/proc_lib/loadproclib.asm
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
format coff
|
||||
use32 ; Tell compiler to use 32 bit instructions
|
||||
|
||||
section '.init' code ; Keep this line before includes or GCC messes up call addresses
|
||||
|
||||
include 'proc32.inc'
|
||||
include 'macros.inc'
|
||||
purge section,mov,add,sub
|
||||
|
||||
include 'dll.inc'
|
||||
|
||||
public init_proclib as '_init_proclib_asm'
|
||||
;;; Returns 0 on success. -1 on failure.
|
||||
|
||||
proc init_proclib
|
||||
|
||||
mcall 68,11
|
||||
|
||||
stdcall dll.Load, @IMPORT
|
||||
test eax, eax
|
||||
jnz error
|
||||
|
||||
mov eax, 0
|
||||
ret
|
||||
|
||||
error:
|
||||
mov eax, -1
|
||||
ret
|
||||
endp
|
||||
|
||||
@IMPORT:
|
||||
library lib_boxlib, 'proc_lib.obj'
|
||||
|
||||
import lib_boxlib, \
|
||||
OpenDialog_init, 'OpenDialog_init' , \
|
||||
OpenDialog_start, 'OpenDialog_start' , \
|
||||
ColorDialog_init, 'ColorDialog_init' , \
|
||||
ColorDialog_start, 'ColorDialog_start'
|
||||
|
||||
public OpenDialog_init as '_OpenDialog_init'
|
||||
public OpenDialog_start as '_OpenDialog_start'
|
||||
|
||||
public ColorDialog_init as '_ColorDialog_init'
|
||||
public ColorDialog_start as '_ColorDialog_start'
|
Loading…
Reference in New Issue
Block a user