/programs/develop/sdk/trunk/libGUI/MSVC++/libGUI-devel.h |
---|
0,0 → 1,591 |
/* |
service structures of libGUI |
*/ |
typedef unsigned int DWORD; |
typedef unsigned char BYTE; |
typedef unsigned short int WORD; |
typedef unsigned int size_t; |
#define stdcall __stdcall |
#define cdecl __cdecl |
///////////////////////////////////////////////////////////////////////// |
// libGUI sysyem messages types |
///////////////////////////////////////////////////////////////////////// |
#define MESSAGE_FULL_REDRAW_ALL 1 |
#define MESSAGE_KEYS_EVENT 2 |
#define MESSAGE_SPECIALIZED 3 |
#define MESSAGE_SET_FOCUSE 4 |
#define MESSAGE_CHANGE_FOCUSE 5 |
#define MESSAGE_MOUSE_EVENT 6 |
#define MESSAGE_CHANGE_POSITION_EVENT 7 |
#define MESSAGE_CHANGESIZE_EVENT 8 |
#define MESSAGE_CALL_TIMER_EVENT 9 |
#define MESSAGE_FULL_REDRAW_ALL_WITH_FINITION 10 |
#define MESSAGE_SET_MAIN_PARENT 11 |
#define MESSAGE_DESTROY_CONTROL -1 |
///////////////////////////////////////////////////////////////////////// |
// system keys states |
///////////////////////////////////////////////////////////////////////// |
#define KEY_DOWN 16 |
#define KEY_UP 17 |
#define KEY_HOTKEY 18 |
///////////////////////////////////////////////////////////////////////// |
// system mouse buttons states |
///////////////////////////////////////////////////////////////////////// |
#define MOUSE_LEFT_BUTTON_DOWN 19 |
#define MOUSE_LEFT_BUTTON_UP 20 |
#define MOUSE_RIGHT_BUTTON_DOWN 21 |
#define MOUSE_RIGHT_BUTTON_UP 22 |
#define MOUSE_MIDDLE_BUTTON_DOWN 23 |
#define MOUSE_MIDDLE_BUTTON_UP 24 |
#define MOUSE_4_BUTTON_DOWN 25 |
#define MOUSE_4_BUTTON_UP 26 |
#define MOUSE_5_BUTTON_DOWN 27 |
#define MOUSE_5_BUTTON_UP 28 |
//----------------------------------------------------------------------- |
// CONNECT EVENTS FOR CALLBACKs |
//----------------------------------------------------------------------- |
//////////////////////////////////////////////////////////////// |
// connect events for button |
//////////////////////////////////////////////////////////////// |
#define BUTTON_ENTER_EVENT 29 |
#define BUTTON_LEAVE_EVENT 30 |
#define BUTTON_PRESSED_EVENT 31 |
#define BUTTON_RELEASED_EVENT 32 |
//////////////////////////////////////////////////////////////// |
// connect events for scroll bar |
//////////////////////////////////////////////////////////////// |
#define SCROLLBAR_CHANGED_EVENT 33 |
//////////////////////////////////////////////////////////////// |
// connect events for main parent window |
//////////////////////////////////////////////////////////////// |
#define DELETE_EVENT 36 |
//////////////////////////////////////////////////////////////// |
// font type structure |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct FONT |
{ |
DWORD *fnt_draw; |
DWORD *fnt_unpacker; |
DWORD *fnt_fd; |
DWORD *fnt_bk; |
int sizex; |
int sizey; |
int size; |
int encoding_type; |
char *font; |
char *fnt_name; |
DWORD type; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct FONT font_t; |
//////////////////////////////////////////////////////////////// |
// header of parent of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct HEADERPARENT |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
DWORD **control_for_callback_function; |
DWORD **callback_for_control_callback; |
DWORD number_callbacks; |
DWORD *global_active_control_for_keys; |
DWORD *message; |
DWORD *timer_bk; |
DWORD *timer_fd; |
DWORD number_timers_for_controls; |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *IDL_func; |
DWORD *IDL_func_data; |
}; |
#pragma pack(pop) |
typedef struct HEADERPARENT parent_t; |
//////////////////////////////////////////////////////////////// |
// header of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct HEADER |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct HEADER header_t; |
//////////////////////////////////////////////////////////////// |
// callback structure for callback function of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct CALLBACK |
{ |
DWORD *clb_bk; |
DWORD *clb_fd; |
DWORD *clb_control; |
DWORD *func; |
DWORD *func_data; |
DWORD connect_event; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct CALLBACK gui_callback_t; |
//////////////////////////////////////////////////////////////// |
// timer |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct TIMER |
{ |
DWORD *tmr_bk; |
DWORD *tmr_fd; |
DWORD *tmr_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD last_time; |
DWORD time_tick; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct TIMER gui_timer_t; |
//////////////////////////////////////////////////////////////// |
// structure for callback events |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct CALLBACKEVENT |
{ |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *calev_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD event_type; |
}; |
#pragma pack(pop) |
typedef struct CALLBACKEVENT gui_callbackevent_t; |
//////////////////////////////////////////////////////////////// |
// type of data - structure message |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct MESSAGE |
{ |
DWORD type; |
DWORD arg1; |
DWORD arg2; |
DWORD arg3; |
DWORD arg4; |
}; |
#pragma pack(pop) |
typedef struct MESSAGE gui_message_t; |
//////////////////////////////////////////////////////////////// |
// button |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlButton |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//button's data |
BYTE btn_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlButton gui_button_t; |
// information for creating control Button |
#pragma pack(push,1) |
struct ButtonData |
{ |
int x; |
int y; |
int width; |
int height; |
}; |
#pragma pack(pop) |
typedef struct ButtonData gui_button_data_t; |
//////////////////////////////////////////////////////////////// |
// scroller |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlScrollBar |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//scroll bar's data |
float ruller_size; |
float ruller_pos; |
float ruller_step; |
BYTE scb_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlScrollBar gui_scroll_bar_t; |
#pragma pack(push,1) |
struct ScrollBarData |
{ |
int x; |
int y; |
int width; |
int height; |
float ruller_size; |
float ruller_pos; |
float ruller_step; |
}; |
#pragma pack(pop) |
typedef struct ScrollBarData gui_scroll_bar_data_t; |
//////////////////////////////////////////////////////////////// |
// progressbar |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlProgressBar |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//progress bar's data |
float progress; |
BYTE prb_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlProgressBar gui_progress_bar_t; |
#pragma pack(push,1) |
struct ProgressBarData |
{ |
int x; |
int y; |
int width; |
int height; |
float progress; |
}; |
#pragma pack(pop) |
typedef struct ProgressBarData gui_progress_bar_data_t; |
//////////////////////////////////////////////////////////////// |
// scrolled window |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlScrolledWindow |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//scrolled windows's data |
DWORD virtual_x; |
DWORD virtual_y; |
DWORD virtual_sizex; |
DWORD virtual_sizey; |
DWORD *virtual_controls_x; |
DWORD *virtual_controls_y; |
DWORD number_virtual_controls; |
DWORD scroll_arrea_sizex; |
DWORD scroll_arrea_sizey; |
DWORD *horizontal_scroll; |
DWORD *vertical_scroll; |
BYTE scw_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlScrolledWindow gui_scrolled_window_t; |
#pragma pack(push,1) |
struct ScrolledWindowData |
{ |
int x; |
int y; |
int width; |
int height; |
}; |
#pragma pack(pop) |
typedef struct ScrolledWindowData gui_scrolled_window_data_t; |
//////////////////////////////////////////////////////////////// |
// image |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlImage |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
char bits_per_pixel; |
char bytes_per_pixel; |
char *img; |
}; |
#pragma pack(pop) |
typedef struct ControlImage gui_image_t; |
#pragma pack(push,1) |
struct ImageData |
{ |
int x; |
int y; |
int width; |
int height; |
char bits_per_pixel; |
}; |
#pragma pack(pop) |
typedef struct ImageData gui_image_data_t; |
//////////////////////////////////////////////////////////////// |
// text |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlText |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
DWORD *font; |
DWORD color; |
DWORD background_color; |
char *text; |
BYTE txt_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlText gui_text_t; |
#pragma pack(push,1) |
struct TextData |
{ |
int x; |
int y; |
DWORD *font; |
DWORD color; |
DWORD background_color; |
char background; |
char *text; |
}; |
#pragma pack(pop) |
typedef struct TextData gui_text_data_t; |
///////////////////////////////////////////////////////////////// |
// load libGUI library and link functions |
///////////////////////////////////////////////////////////////// |
void LoadLibGUI(char *lib_path); |
//********************************************************************** |
// libGUI service functions |
//********************************************************************** |
DWORD (stdcall *LibGUIversion)(void); |
char (stdcall *InitLibGUI)(void); |
void (stdcall *LibGUImain)(parent_t *WindowParent); |
void (stdcall *QuitLibGUI)(parent_t *window); |
parent_t* (stdcall *CreateWindow)(void); |
void (stdcall *SetWindowSizeRequest)(parent_t *WindowParent,int size_x,int size_y); |
void (stdcall *PackControls)(void *Parent,void *control); |
void (stdcall *DestroyControl)(void *control); |
void (stdcall *SetControlSizeRequest)(void *Control,int new_size_x,int new_size_y); |
int (stdcall *GetControlSizeX)(void *Control); |
int (stdcall *GetControlSizeY)(void *Control); |
void (stdcall *SetControlNewPosition)(void *Control,int new_x,int new_y); |
int (stdcall *GetControlPositionX)(void *Control); |
int (stdcall *GetControlPositionY)(void *Control); |
void* (stdcall *SetFocuse)(void *Control); |
void (stdcall *RedrawControl)(void *Control); |
void (stdcall *SpecialRedrawControl)(void *Control); |
gui_callback_t* (stdcall *SetCallbackFunction)(void *Control, |
int event_name,void *callback_func, |
void *callback_func_data); |
void (stdcall *BlockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
void (stdcall *UnblockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
void (stdcall *SetIDL_Function)(parent_t *Parent,void *function,void *function_data); |
void (stdcall *DestroyIDL_Function)(parent_t *Parent); |
gui_timer_t* (stdcall *SetTimerCallbackForFunction)(parent_t *parent_window, |
int time_tick,void *func,void *func_data); |
void (stdcall *DestroyTimerCallbackForFunction)(gui_timer_t *timer); |
gui_callbackevent_t* (stdcall *SetCallbackFunctionForEvent)(parent_t *parent_window, |
int event_type,void *func,void *func_data); |
void (stdcall *DestroyCallbackFunctionForEvent)(gui_callbackevent_t *callback_event); |
gui_button_t* (stdcall *CreateButton)(gui_button_data_t *info_for_control); |
gui_button_t* (stdcall *CreateButtonWithText)(gui_button_data_t *info,char *txt); |
gui_progress_bar_t* (stdcall *CreateProgressBar)(gui_progress_bar_data_t *info_for_control); |
void (stdcall *SetProgressBarPulse)(gui_progress_bar_t *ProgressBar,int time_update); |
void (stdcall *ProgressBarSetText)(gui_progress_bar_t *pbar,char *txt); |
char* (stdcall *ProgressBarGetText)(gui_progress_bar_t *pbar); |
gui_scroll_bar_t* (stdcall *CreateHorizontalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
gui_scroll_bar_t* (stdcall *CreateVerticalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
gui_scrolled_window_t* (stdcall *CreateScrolledWindow)(gui_scrolled_window_data_t *info_for_control); |
void (stdcall *ScrolledWindowPackControls)(gui_scrolled_window_t *parent,void *Control); |
gui_image_t* (stdcall *CreateImage)(gui_image_data_t *info_for_control); |
gui_text_t* (stdcall *CreateText)(gui_text_data_t *info_for_control); |
void (stdcall *TextBackgroundOn)(gui_text_t *Text); |
void (stdcall *TextBackgroundOff)(gui_text_t *Text); |
font_t* (stdcall *LoadFont)(char *fullfontname); |
void (stdcall *FreeFont)(font_t *font); |
/programs/develop/sdk/trunk/libGUI/MSVC++/libGUI.cpp |
---|
0,0 → 1,250 |
/* |
libGUI dinamic library SDK |
load library and link function |
*/ |
#include "libGUI-devel.h" |
#pragma pack(push,1) |
struct IMPORT |
{ |
char *name; |
void *function; |
}; |
#pragma pack(pop) |
typedef struct IMPORT import_t; |
static char *sys_libGUI_path="/sys/lib/libGUI.obj"; |
static char* funcnames[] = {"LibGUIversion","InitLibGUI","LibGUImain","QuitLibGUI", |
"CreateWindow","SetWindowSizeRequest", |
"PackControls","DestroyControl","SetControlSizeRequest","GetControlSizeX", |
"GetControlSizeY","SetControlNewPosition","GetControlPositionX", |
"GetControlPositionY","SetFocuse","RedrawControl","SpecialRedrawControl", |
"SetCallbackFunction","BlockCallbackFunction","UnblockCallbackFunction", |
"SetIDL_Function","DestroyIDL_Function", |
"SetTimerCallbackForFunction","DestroyTimerCallbackForFunction", |
"SetCallbackFunctionForEvent","DestroyCallbackFunctionForEvent", |
"CreateButton","CreateButtonWithText", |
"CreateProgressBar","SetProgressBarPulse","ProgressBarSetText","ProgressBarGetText", |
"CreateHorizontalScrollBar","CreateVerticalScrollBar", |
"CreateScrolledWindow","ScrolledWindowPackControls", |
"CreateImage", |
"CreateText","TextBackgroundOn","TextBackgroundOff", |
"LoadFont","FreeFont"}; |
static inline void* gui_ksys_load_dll(char *path) |
{ |
void *dll_export; |
__asm{ |
mov eax,68 |
mov ebx,19 |
mov ecx,path |
int 0x40 |
mov dll_export,eax |
}; |
return(dll_export); |
} |
static inline void gui_ksys_debug_out(int c) |
{ |
__asm{ |
mov eax,63 |
mov ebx,1 |
mov ecx,c |
int 0x40 |
}; |
} |
static void gui_debug_out_str(char *s) |
{ |
while(*s) |
{ |
if (*s=='\n') gui_ksys_debug_out(13); |
gui_ksys_debug_out(*s); |
s++; |
} |
} |
static int gui_strcmp(const char* string1, const char* string2) |
{ |
while (1) |
{ |
if (*string1<*string2) |
return -1; |
if (*string1>*string2) |
return 1; |
if (*string1=='\0') |
return 0; |
string1++; |
string2++; |
} |
} |
static void* gui_cofflib_getproc(import_t *lib, char *name) |
{ |
int i; |
for(i = 0; lib[i].name && gui_strcmp(name, lib[i].name); i++); |
if(lib[i].name) return lib[i].function; |
else return 0; |
} |
static inline void __declspec(noreturn) gui_ksys_exit(int value) |
{ |
__asm{ |
xor eax,eax |
dec eax |
mov ebx,value |
int 0x40 |
}; |
} |
void link_libGUI(import_t *exp,char **imports) |
{ |
LibGUIversion=(DWORD (stdcall *)(void)) |
gui_cofflib_getproc(exp,imports[0]); |
InitLibGUI=(char (stdcall *)(void)) |
gui_cofflib_getproc(exp,imports[1]); |
LibGUImain=(void (stdcall *)(parent_t *WindowParent)) |
gui_cofflib_getproc(exp,imports[2]); |
QuitLibGUI=(void (stdcall *)(parent_t *window)) |
gui_cofflib_getproc(exp,imports[3]); |
CreateWindow=(parent_t* (stdcall *)(void)) |
gui_cofflib_getproc(exp,imports[4]); |
SetWindowSizeRequest=(void (stdcall *)(parent_t *WindowParent,int size_x,int size_y)) |
gui_cofflib_getproc(exp,imports[5]); |
PackControls=(void (stdcall *)(void *Parent,void *control)) |
gui_cofflib_getproc(exp,imports[6]); |
DestroyControl=(void (stdcall *)(void *control)) |
gui_cofflib_getproc(exp,imports[7]); |
SetControlSizeRequest=(void (stdcall *)(void *Control,int new_size_x,int new_size_y)) |
gui_cofflib_getproc(exp,imports[8]); |
GetControlSizeX=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[9]); |
GetControlSizeY=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[10]); |
SetControlNewPosition=(void (stdcall *)(void *Control,int new_x,int new_y)) |
gui_cofflib_getproc(exp,imports[11]); |
GetControlPositionX=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[12]); |
GetControlPositionY=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[13]); |
SetFocuse=(void* (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[14]); |
RedrawControl=(void (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[15]); |
SpecialRedrawControl=(void (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[16]); |
SetCallbackFunction=(gui_callback_t* (stdcall *)(void *Control, |
int event_name,void *callback_func,void *callback_func_data)) |
gui_cofflib_getproc(exp,imports[17]); |
BlockCallbackFunction=(void (stdcall *)(void *Control,gui_callback_t *callback_ID)) |
gui_cofflib_getproc(exp,imports[18]); |
UnblockCallbackFunction=(void (stdcall *)(void *Control,gui_callback_t *callback_ID)) |
gui_cofflib_getproc(exp,imports[19]); |
SetIDL_Function=(void (stdcall *)(parent_t *Parent,void *function,void *function_data)) |
gui_cofflib_getproc(exp,imports[20]); |
DestroyIDL_Function=(void (stdcall *)(parent_t *Parent)) |
gui_cofflib_getproc(exp,imports[21]); |
SetTimerCallbackForFunction=(gui_timer_t* (stdcall *)(parent_t *parent_window, |
int time_tick,void *func,void *func_data)) |
gui_cofflib_getproc(exp,imports[22]); |
DestroyTimerCallbackForFunction=(void (stdcall *)(gui_timer_t *timer)) |
gui_cofflib_getproc(exp,imports[23]); |
SetCallbackFunctionForEvent=(gui_callbackevent_t* (stdcall *)(parent_t *parent_window, |
int event_type,void *func,void *func_data)) |
gui_cofflib_getproc(exp,imports[24]); |
DestroyCallbackFunctionForEvent=(void (stdcall *)(gui_callbackevent_t *callback_event)) |
gui_cofflib_getproc(exp,imports[25]); |
CreateButton=(gui_button_t* (stdcall *)(gui_button_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[26]); |
CreateButtonWithText=(gui_button_t* (stdcall *)(gui_button_data_t *info,char *txt)) |
gui_cofflib_getproc(exp,imports[27]); |
CreateProgressBar=(gui_progress_bar_t* (stdcall *)(gui_progress_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[28]); |
SetProgressBarPulse=(void (stdcall *)(gui_progress_bar_t *ProgressBar,int time_update)) |
gui_cofflib_getproc(exp,imports[29]); |
ProgressBarSetText=(void (stdcall *)(gui_progress_bar_t *pbar,char *txt)) |
gui_cofflib_getproc(exp,imports[30]); |
ProgressBarGetText=(char* (stdcall *)(gui_progress_bar_t *pbar)) |
gui_cofflib_getproc(exp,imports[31]); |
CreateHorizontalScrollBar=(gui_scroll_bar_t* (stdcall *)(gui_scroll_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[32]); |
CreateVerticalScrollBar=(gui_scroll_bar_t* (stdcall *)(gui_scroll_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[33]); |
CreateScrolledWindow=(gui_scrolled_window_t* (stdcall *)(gui_scrolled_window_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[34]); |
ScrolledWindowPackControls=(void (stdcall *)(gui_scrolled_window_t *parent,void *Control)) |
gui_cofflib_getproc(exp,imports[35]); |
CreateImage=(gui_image_t* (stdcall *)(gui_image_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[36]); |
CreateText=(gui_text_t* (stdcall *)(gui_text_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[37]); |
TextBackgroundOn=(void (stdcall *)(gui_text_t *Text)) |
gui_cofflib_getproc(exp,imports[38]); |
TextBackgroundOff=(void (stdcall *)(gui_text_t *Text)) |
gui_cofflib_getproc(exp,imports[39]); |
LoadFont=(font_t* (stdcall *)(char *fullfontname)) |
gui_cofflib_getproc(exp,imports[40]); |
FreeFont=(void (stdcall *)(font_t *font)) |
gui_cofflib_getproc(exp,imports[41]); |
} |
void LoadLibGUI(char *lib_path) |
{ |
import_t *exp; |
char *path; |
DWORD vers; |
if (lib_path==0) |
{ |
path=sys_libGUI_path; |
exp=(import_t*)gui_ksys_load_dll(path); |
} |
else |
{ |
path=lib_path; |
exp=(import_t*)gui_ksys_load_dll(path); |
} |
if (exp==0) |
{ |
gui_debug_out_str("\ncan't load lib="); |
gui_debug_out_str(path); |
gui_ksys_exit(0); |
} |
else |
{ |
link_libGUI(exp,funcnames); |
if (InitLibGUI()) |
{ |
gui_debug_out_str("\ncan't initialize libGUI"); |
gui_ksys_exit(0); |
} |
} |
} |
/programs/develop/sdk/trunk/libGUI/MSVC++/libGUI.h |
---|
0,0 → 1,591 |
/* |
service structures of libGUI |
*/ |
typedef unsigned int DWORD; |
typedef unsigned char BYTE; |
typedef unsigned short int WORD; |
typedef unsigned int size_t; |
#define stdcall __stdcall |
///////////////////////////////////////////////////////////////////////// |
// libGUI sysyem messages types |
///////////////////////////////////////////////////////////////////////// |
#define MESSAGE_FULL_REDRAW_ALL 1 |
#define MESSAGE_KEYS_EVENT 2 |
#define MESSAGE_SPECIALIZED 3 |
#define MESSAGE_SET_FOCUSE 4 |
#define MESSAGE_CHANGE_FOCUSE 5 |
#define MESSAGE_MOUSE_EVENT 6 |
#define MESSAGE_CHANGE_POSITION_EVENT 7 |
#define MESSAGE_CHANGESIZE_EVENT 8 |
#define MESSAGE_CALL_TIMER_EVENT 9 |
#define MESSAGE_FULL_REDRAW_ALL_WITH_FINITION 10 |
#define MESSAGE_SET_MAIN_PARENT 11 |
#define MESSAGE_DESTROY_CONTROL -1 |
///////////////////////////////////////////////////////////////////////// |
// system keys states |
///////////////////////////////////////////////////////////////////////// |
#define KEY_DOWN 16 |
#define KEY_UP 17 |
#define KEY_HOTKEY 18 |
///////////////////////////////////////////////////////////////////////// |
// system mouse buttons states |
///////////////////////////////////////////////////////////////////////// |
#define MOUSE_LEFT_BUTTON_DOWN 19 |
#define MOUSE_LEFT_BUTTON_UP 20 |
#define MOUSE_RIGHT_BUTTON_DOWN 21 |
#define MOUSE_RIGHT_BUTTON_UP 22 |
#define MOUSE_MIDDLE_BUTTON_DOWN 23 |
#define MOUSE_MIDDLE_BUTTON_UP 24 |
#define MOUSE_4_BUTTON_DOWN 25 |
#define MOUSE_4_BUTTON_UP 26 |
#define MOUSE_5_BUTTON_DOWN 27 |
#define MOUSE_5_BUTTON_UP 28 |
//----------------------------------------------------------------------- |
// CONNECT EVENTS FOR CALLBACKs |
//----------------------------------------------------------------------- |
//////////////////////////////////////////////////////////////// |
// connect events for button |
//////////////////////////////////////////////////////////////// |
#define BUTTON_ENTER_EVENT 29 |
#define BUTTON_LEAVE_EVENT 30 |
#define BUTTON_PRESSED_EVENT 31 |
#define BUTTON_RELEASED_EVENT 32 |
//////////////////////////////////////////////////////////////// |
// connect events for scroll bar |
//////////////////////////////////////////////////////////////// |
#define SCROLLBAR_CHANGED_EVENT 33 |
//////////////////////////////////////////////////////////////// |
// connect events for main parent window |
//////////////////////////////////////////////////////////////// |
#define DELETE_EVENT 36 |
//////////////////////////////////////////////////////////////// |
// font type structure |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct FONT |
{ |
DWORD *fnt_draw; |
DWORD *fnt_unpacker; |
DWORD *fnt_fd; |
DWORD *fnt_bk; |
int sizex; |
int sizey; |
int size; |
int encoding_type; |
char *font; |
char *fnt_name; |
DWORD type; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct FONT font_t; |
//////////////////////////////////////////////////////////////// |
// header of parent of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct HEADERPARENT |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
DWORD **control_for_callback_function; |
DWORD **callback_for_control_callback; |
DWORD number_callbacks; |
DWORD *global_active_control_for_keys; |
DWORD *message; |
DWORD *timer_bk; |
DWORD *timer_fd; |
DWORD number_timers_for_controls; |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *IDL_func; |
DWORD *IDL_func_data; |
}; |
#pragma pack(pop) |
typedef struct HEADERPARENT parent_t; |
//////////////////////////////////////////////////////////////// |
// header of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct HEADER |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct HEADER header_t; |
//////////////////////////////////////////////////////////////// |
// callback structure for callback function of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct CALLBACK |
{ |
DWORD *clb_bk; |
DWORD *clb_fd; |
DWORD *clb_control; |
DWORD *func; |
DWORD *func_data; |
DWORD connect_event; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct CALLBACK gui_callback_t; |
//////////////////////////////////////////////////////////////// |
// timer |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct TIMER |
{ |
DWORD *tmr_bk; |
DWORD *tmr_fd; |
DWORD *tmr_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD last_time; |
DWORD time_tick; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct TIMER gui_timer_t; |
//////////////////////////////////////////////////////////////// |
// structure for callback events |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct CALLBACKEVENT |
{ |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *calev_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD event_type; |
}; |
#pragma pack(pop) |
typedef struct CALLBACKEVENT gui_callbackevent_t; |
//////////////////////////////////////////////////////////////// |
// type of data - structure message |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct MESSAGE |
{ |
DWORD type; |
DWORD arg1; |
DWORD arg2; |
DWORD arg3; |
DWORD arg4; |
}; |
#pragma pack(pop) |
typedef struct MESSAGE gui_message_t; |
//////////////////////////////////////////////////////////////// |
// button |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlButton |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//button's data |
BYTE btn_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlButton gui_button_t; |
// information for creating control Button |
#pragma pack(push,1) |
struct ButtonData |
{ |
int x; |
int y; |
int width; |
int height; |
}; |
#pragma pack(pop) |
typedef struct ButtonData gui_button_data_t; |
//////////////////////////////////////////////////////////////// |
// scroller |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlScrollBar |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//scroll bar's data |
float ruller_size; |
float ruller_pos; |
float ruller_step; |
BYTE scb_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlScrollBar gui_scroll_bar_t; |
#pragma pack(push,1) |
struct ScrollBarData |
{ |
int x; |
int y; |
int width; |
int height; |
float ruller_size; |
float ruller_pos; |
float ruller_step; |
}; |
#pragma pack(pop) |
typedef struct ScrollBarData gui_scroll_bar_data_t; |
//////////////////////////////////////////////////////////////// |
// progressbar |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlProgressBar |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//progress bar's data |
float progress; |
BYTE prb_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlProgressBar gui_progress_bar_t; |
#pragma pack(push,1) |
struct ProgressBarData |
{ |
int x; |
int y; |
int width; |
int height; |
float progress; |
}; |
#pragma pack(pop) |
typedef struct ProgressBarData gui_progress_bar_data_t; |
//////////////////////////////////////////////////////////////// |
// scrolled window |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlScrolledWindow |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//scrolled windows's data |
DWORD virtual_x; |
DWORD virtual_y; |
DWORD virtual_sizex; |
DWORD virtual_sizey; |
DWORD *virtual_controls_x; |
DWORD *virtual_controls_y; |
DWORD number_virtual_controls; |
DWORD scroll_arrea_sizex; |
DWORD scroll_arrea_sizey; |
DWORD *horizontal_scroll; |
DWORD *vertical_scroll; |
BYTE scw_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlScrolledWindow gui_scrolled_window_t; |
#pragma pack(push,1) |
struct ScrolledWindowData |
{ |
int x; |
int y; |
int width; |
int height; |
}; |
#pragma pack(pop) |
typedef struct ScrolledWindowData gui_scrolled_window_data_t; |
//////////////////////////////////////////////////////////////// |
// image |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlImage |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
char bits_per_pixel; |
char bytes_per_pixel; |
char *img; |
}; |
#pragma pack(pop) |
typedef struct ControlImage gui_image_t; |
#pragma pack(push,1) |
struct ImageData |
{ |
int x; |
int y; |
int width; |
int height; |
char bits_per_pixel; |
}; |
#pragma pack(pop) |
typedef struct ImageData gui_image_data_t; |
//////////////////////////////////////////////////////////////// |
// text |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlText |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
DWORD *font; |
DWORD color; |
DWORD background_color; |
char *text; |
BYTE txt_flags; |
}; |
#pragma pack(pop) |
typedef struct ControlText gui_text_t; |
#pragma pack(push,1) |
struct TextData |
{ |
int x; |
int y; |
DWORD *font; |
DWORD color; |
DWORD background_color; |
char background; |
char *text; |
}; |
#pragma pack(pop) |
typedef struct TextData gui_text_data_t; |
///////////////////////////////////////////////////////////////// |
// load libGUI library and link functions |
///////////////////////////////////////////////////////////////// |
void LoadLibGUI(char *lib_path); |
//********************************************************************** |
// prototypes of libGUI service functions |
//********************************************************************** |
extern DWORD (stdcall *LibGUIversion)(void); |
extern char (stdcall *InitLibGUI)(void); |
extern void (stdcall *LibGUImain)(parent_t *WindowParent); |
extern void (stdcall *QuitLibGUI)(parent_t *window); |
extern parent_t* (stdcall *CreateWindow)(void); |
extern void (stdcall *SetWindowSizeRequest)(parent_t *WindowParent,int size_x,int size_y); |
extern void (stdcall *PackControls)(void *Parent,void *control); |
extern void (stdcall *DestroyControl)(void *control); |
extern void (stdcall *SetControlSizeRequest)(void *Control,int new_size_x,int new_size_y); |
extern int (stdcall *GetControlSizeX)(void *Control); |
extern int (stdcall *GetControlSizeY)(void *Control); |
extern void (stdcall *SetControlNewPosition)(void *Control,int new_x,int new_y); |
extern int (stdcall *GetControlPositionX)(void *Control); |
extern int (stdcall *GetControlPositionY)(void *Control); |
extern void* (stdcall *SetFocuse)(void *Control); |
extern void (stdcall *RedrawControl)(void *Control); |
extern void (stdcall *SpecialRedrawControl)(void *Control); |
extern gui_callback_t* (stdcall *SetCallbackFunction)(void *Control, |
int event_name,void *callback_func, |
void *callback_func_data); |
extern void (stdcall *BlockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
extern void (stdcall *UnblockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
extern void (stdcall *SetIDL_Function)(parent_t *Parent,void *function,void *function_data); |
extern void (stdcall *DestroyIDL_Function)(parent_t *Parent); |
extern gui_timer_t* (stdcall *SetTimerCallbackForFunction)(parent_t *parent_window, |
int time_tick,void *func,void *func_data); |
extern void (stdcall *DestroyTimerCallbackForFunction)(gui_timer_t *timer); |
extern gui_callbackevent_t* (stdcall *SetCallbackFunctionForEvent)(parent_t *parent_window, |
int event_type,void *func,void *func_data); |
extern void (stdcall *DestroyCallbackFunctionForEvent)(gui_callbackevent_t *callback_event); |
extern gui_button_t* (stdcall *CreateButton)(gui_button_data_t *info_for_control); |
extern gui_button_t* (stdcall *CreateButtonWithText)(gui_button_data_t *info,char *txt); |
extern gui_progress_bar_t* (stdcall *CreateProgressBar)(gui_progress_bar_data_t *info_for_control); |
extern void (stdcall *SetProgressBarPulse)(gui_progress_bar_t *ProgressBar,int time_update); |
extern void (stdcall *ProgressBarSetText)(gui_progress_bar_t *pbar,char *txt); |
extern char* (stdcall *ProgressBarGetText)(gui_progress_bar_t *pbar); |
extern gui_scroll_bar_t* (stdcall *CreateHorizontalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
extern gui_scroll_bar_t* (stdcall *CreateVerticalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
extern gui_scrolled_window_t* (stdcall *CreateScrolledWindow)(gui_scrolled_window_data_t *info_for_control); |
extern void (stdcall *ScrolledWindowPackControls)(gui_scrolled_window_t *parent,void *Control); |
extern gui_image_t* (stdcall *CreateImage)(gui_image_data_t *info_for_control); |
extern gui_text_t* (stdcall *CreateText)(gui_text_data_t *info_for_control); |
extern void (stdcall *TextBackgroundOn)(gui_text_t *Text); |
extern void (stdcall *TextBackgroundOff)(gui_text_t *Text); |
extern font_t* (stdcall *LoadFont)(char *fullfontname); |
extern void (stdcall *FreeFont)(font_t *font); |
/programs/develop/sdk/trunk/libGUI/MSVC++ |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/sdk/trunk/libGUI/MinGW(windows)/libGUI.c |
---|
0,0 → 1,243 |
/* |
libGUI dinamic library SDK |
load library and link function |
*/ |
#include "libGUI.h" |
struct IMPORT |
{ |
char *name; |
void *function; |
}; |
typedef struct IMPORT import_t; |
static char *sys_libGUI_path="/sys/lib/libGUI.obj"; |
static char* funcnames[] = {"LibGUIversion","InitLibGUI","LibGUImain","QuitLibGUI", |
"CreateWindow","SetWindowSizeRequest", |
"PackControls","DestroyControl","SetControlSizeRequest","GetControlSizeX", |
"GetControlSizeY","SetControlNewPosition","GetControlPositionX", |
"GetControlPositionY","SetFocuse","RedrawControl","SpecialRedrawControl", |
"SetCallbackFunction","BlockCallbackFunction","UnblockCallbackFunction", |
"SetIDL_Function","DestroyIDL_Function", |
"SetTimerCallbackForFunction","DestroyTimerCallbackForFunction", |
"SetCallbackFunctionForEvent","DestroyCallbackFunctionForEvent", |
"CreateButton","CreateButtonWithText", |
"CreateProgressBar","SetProgressBarPulse","ProgressBarSetText","ProgressBarGetText", |
"CreateHorizontalScrollBar","CreateVerticalScrollBar", |
"CreateScrolledWindow","ScrolledWindowPackControls", |
"CreateImage", |
"CreateText","TextBackgroundOn","TextBackgroundOff", |
"LoadFont","FreeFont"}; |
static inline void* gui_ksys_load_dll(char *path) |
{ |
void *dll_export; |
__asm__ __volatile__( |
"int $0x40" |
:"=a"(dll_export) |
:"a"(68),"b"(19),"c"(path)); |
return(dll_export); |
} |
static inline void gui_ksys_debug_out(int c) |
{ |
__asm__ __volatile__( |
"int $0x40" |
: |
:"a"(63),"b"(1),"c"(c)); |
} |
static void gui_debug_out_str(char *s) |
{ |
while(*s) |
{ |
if (*s=='\n') gui_ksys_debug_out(13); |
gui_ksys_debug_out(*s); |
s++; |
} |
} |
static int gui_strcmp(const char* string1, const char* string2) |
{ |
while (1) |
{ |
if (*string1<*string2) |
return -1; |
if (*string1>*string2) |
return 1; |
if (*string1=='\0') |
return 0; |
string1++; |
string2++; |
} |
} |
static void* gui_cofflib_getproc(import_t *lib, char *name) |
{ |
int i; |
for(i = 0; lib[i].name && gui_strcmp(name, lib[i].name); i++); |
if(lib[i].name) return lib[i].function; |
else return NULL; |
} |
static inline void gui_ksys_exit(int value) |
{ |
__asm__ __volatile__( |
"int $0x40" |
: |
:"a"(-1),"b"(value)); |
} |
void link_libGUI(import_t *exp,char **imports) |
{ |
LibGUIversion=(DWORD (stdcall *)(void)) |
gui_cofflib_getproc(exp,imports[0]); |
InitLibGUI=(char (stdcall *)(void)) |
gui_cofflib_getproc(exp,imports[1]); |
LibGUImain=(void (stdcall *)(parent_t *WindowParent)) |
gui_cofflib_getproc(exp,imports[2]); |
QuitLibGUI=(void (stdcall *)(parent_t *window)) |
gui_cofflib_getproc(exp,imports[3]); |
CreateWindow=(void* (stdcall *)(void)) |
gui_cofflib_getproc(exp,imports[4]); |
SetWindowSizeRequest=(void (stdcall *)(parent_t *WindowParent,int size_x,int size_y)) |
gui_cofflib_getproc(exp,imports[5]); |
PackControls=(void (stdcall *)(void *Parent,void *control)) |
gui_cofflib_getproc(exp,imports[6]); |
DestroyControl=(void (stdcall *)(void *control)) |
gui_cofflib_getproc(exp,imports[7]); |
SetControlSizeRequest=(void (stdcall *)(void *Control,int new_size_x,int new_size_y)) |
gui_cofflib_getproc(exp,imports[8]); |
GetControlSizeX=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[9]); |
GetControlSizeY=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[10]); |
SetControlNewPosition=(void (stdcall *)(void *Control,int new_x,int new_y)) |
gui_cofflib_getproc(exp,imports[11]); |
GetControlPositionX=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[12]); |
GetControlPositionY=(int (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[13]); |
SetFocuse=(void* (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[14]); |
RedrawControl=(void (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[15]); |
SpecialRedrawControl=(void (stdcall *)(void *Control)) |
gui_cofflib_getproc(exp,imports[16]); |
SetCallbackFunction=(gui_callback_t* (stdcall *)(void *Control, |
int event_name,void *callback_func,void *callback_func_data)) |
gui_cofflib_getproc(exp,imports[17]); |
BlockCallbackFunction=(void (stdcall *)(void *Control,gui_callback_t *callback_ID)) |
gui_cofflib_getproc(exp,imports[18]); |
UnblockCallbackFunction=(void (stdcall *)(void *Control,gui_callback_t *callback_ID)) |
gui_cofflib_getproc(exp,imports[19]); |
SetIDL_Function=(void (stdcall *)(parent_t *Parent,void *function,void *function_data)) |
gui_cofflib_getproc(exp,imports[20]); |
DestroyIDL_Function=(void (stdcall *)(parent_t *Parent)) |
gui_cofflib_getproc(exp,imports[21]); |
SetTimerCallbackForFunction=(gui_timer_t* (stdcall *)(parent_t *parent_window, |
int time_tick,void *func,void *func_data)) |
gui_cofflib_getproc(exp,imports[22]); |
DestroyTimerCallbackForFunction=(void (stdcall *)(gui_timer_t *timer)) |
gui_cofflib_getproc(exp,imports[23]); |
SetCallbackFunctionForEvent=(gui_callbackevent_t* (stdcall *)(parent_t *parent_window, |
int event_type,void *func,void *func_data)) |
gui_cofflib_getproc(exp,imports[24]); |
DestroyCallbackFunctionForEvent=(void (stdcall *)(gui_callbackevent_t *callback_event)) |
gui_cofflib_getproc(exp,imports[25]); |
CreateButton=(gui_button_t* (stdcall *)(gui_button_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[26]); |
CreateButtonWithText=(gui_button_t* (stdcall *)(gui_button_data_t *info,char *txt)) |
gui_cofflib_getproc(exp,imports[27]); |
CreateProgressBar=(gui_progress_bar_t* (stdcall *)(gui_progress_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[28]); |
SetProgressBarPulse=(void (stdcall *)(gui_progress_bar_t *ProgressBar,int time_update)) |
gui_cofflib_getproc(exp,imports[29]); |
ProgressBarSetText=(void (stdcall *)(gui_progress_bar_t *pbar,char *txt)) |
gui_cofflib_getproc(exp,imports[30]); |
ProgressBarGetText=(char* (stdcall *)(gui_progress_bar_t *pbar)) |
gui_cofflib_getproc(exp,imports[31]); |
CreateHorizontalScrollBar=(gui_scroll_bar_t* (stdcall *)(gui_scroll_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[32]); |
CreateVerticalScrollBar=(gui_scroll_bar_t* (stdcall *)(gui_scroll_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[33]); |
CreateScrolledWindow=(gui_scrolled_window_t* (stdcall *)(gui_scrolled_window_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[34]); |
ScrolledWindowPackControls=(void (stdcall *)(gui_scrolled_window_t *parent,void *Control)) |
gui_cofflib_getproc(exp,imports[35]); |
CreateImage=(gui_image_t* (stdcall *)(gui_image_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[36]); |
CreateText=(gui_text_t* (stdcall *)(gui_text_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[37]); |
TextBackgroundOn=(void (stdcall *)(gui_text_t *Text)) |
gui_cofflib_getproc(exp,imports[38]); |
TextBackgroundOff=(void (stdcall *)(gui_text_t *Text)) |
gui_cofflib_getproc(exp,imports[39]); |
LoadFont=(font_t* (stdcall *)(char *fullfontname)) |
gui_cofflib_getproc(exp,imports[40]); |
FreeFont=(void (stdcall *)(font_t *font)) |
gui_cofflib_getproc(exp,imports[41]); |
} |
void LoadLibGUI(char *lib_path) |
{ |
import_t *export; |
char *path; |
DWORD vers; |
if (lib_path==NULL) |
{ |
path=sys_libGUI_path; |
export=(import_t*)gui_ksys_load_dll(path); |
} |
else |
{ |
path=lib_path; |
export=(import_t*)gui_ksys_load_dll(path); |
} |
if (export==NULL) |
{ |
gui_debug_out_str("\ncan't load lib="); |
gui_debug_out_str(path); |
gui_ksys_exit(0); |
} |
else |
{ |
link_libGUI(export,funcnames); |
if (InitLibGUI()) |
{ |
gui_debug_out_str("\ncan't initialize libGUI"); |
gui_ksys_exit(0); |
} |
gui_debug_out_str(" initialized"); |
} |
} |
/programs/develop/sdk/trunk/libGUI/MinGW(windows)/libGUI.h |
---|
0,0 → 1,592 |
/* |
service structures of libGUI |
*/ |
#define NULL (void*)0 |
typedef unsigned int DWORD; |
typedef unsigned char BYTE; |
typedef unsigned short int WORD; |
typedef unsigned int size_t; |
#define stdcall __stdcall |
#define cdecl __cdecl |
///////////////////////////////////////////////////////////////////////// |
// libGUI sysyem messages types |
///////////////////////////////////////////////////////////////////////// |
#define MESSAGE_FULL_REDRAW_ALL 1 |
#define MESSAGE_KEYS_EVENT 2 |
#define MESSAGE_SPECIALIZED 3 |
#define MESSAGE_SET_FOCUSE 4 |
#define MESSAGE_CHANGE_FOCUSE 5 |
#define MESSAGE_MOUSE_EVENT 6 |
#define MESSAGE_CHANGE_POSITION_EVENT 7 |
#define MESSAGE_CHANGESIZE_EVENT 8 |
#define MESSAGE_CALL_TIMER_EVENT 9 |
#define MESSAGE_FULL_REDRAW_ALL_WITH_FINITION 10 |
#define MESSAGE_SET_MAIN_PARENT 11 |
#define MESSAGE_DESTROY_CONTROL -1 |
///////////////////////////////////////////////////////////////////////// |
// system keys states |
///////////////////////////////////////////////////////////////////////// |
#define KEY_DOWN 16 |
#define KEY_UP 17 |
#define KEY_HOTKEY 18 |
///////////////////////////////////////////////////////////////////////// |
// system mouse buttons states |
///////////////////////////////////////////////////////////////////////// |
#define MOUSE_LEFT_BUTTON_DOWN 19 |
#define MOUSE_LEFT_BUTTON_UP 20 |
#define MOUSE_RIGHT_BUTTON_DOWN 21 |
#define MOUSE_RIGHT_BUTTON_UP 22 |
#define MOUSE_MIDDLE_BUTTON_DOWN 23 |
#define MOUSE_MIDDLE_BUTTON_UP 24 |
#define MOUSE_4_BUTTON_DOWN 25 |
#define MOUSE_4_BUTTON_UP 26 |
#define MOUSE_5_BUTTON_DOWN 27 |
#define MOUSE_5_BUTTON_UP 28 |
//----------------------------------------------------------------------- |
// CONNECT EVENTS FOR CALLBACKs |
//----------------------------------------------------------------------- |
//////////////////////////////////////////////////////////////// |
// connect events for button |
//////////////////////////////////////////////////////////////// |
#define BUTTON_ENTER_EVENT 29 |
#define BUTTON_LEAVE_EVENT 30 |
#define BUTTON_PRESSED_EVENT 31 |
#define BUTTON_RELEASED_EVENT 32 |
//////////////////////////////////////////////////////////////// |
// connect events for scroll bar |
//////////////////////////////////////////////////////////////// |
#define SCROLLBAR_CHANGED_EVENT 33 |
//////////////////////////////////////////////////////////////// |
// connect events for main parent window |
//////////////////////////////////////////////////////////////// |
#define DELETE_EVENT 36 |
//////////////////////////////////////////////////////////////// |
// font type structure |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct FONT |
{ |
DWORD *fnt_draw; |
DWORD *fnt_unpacker; |
DWORD *fnt_fd; |
DWORD *fnt_bk; |
int sizex; |
int sizey; |
int size; |
int encoding_type; |
char *font; |
char *fnt_name; |
DWORD type; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct FONT font_t; |
//////////////////////////////////////////////////////////////// |
// header of parent of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct HEADERPARENT |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
DWORD **control_for_callback_function; |
DWORD **callback_for_control_callback; |
DWORD number_callbacks; |
DWORD *global_active_control_for_keys; |
DWORD *message; |
DWORD *timer_bk; |
DWORD *timer_fd; |
DWORD number_timers_for_controls; |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *IDL_func; |
DWORD *IDL_func_data; |
}; |
#pragma pack(pop) |
typedef struct HEADERPARENT parent_t; |
//////////////////////////////////////////////////////////////// |
// header of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct HEADER |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct HEADER header_t; |
//////////////////////////////////////////////////////////////// |
// callback structure for callback function of control |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct CALLBACK |
{ |
DWORD *clb_bk; |
DWORD *clb_fd; |
DWORD *clb_control; |
DWORD *func; |
DWORD *func_data; |
DWORD connect_event; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct CALLBACK gui_callback_t; |
//////////////////////////////////////////////////////////////// |
// timer |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct TIMER |
{ |
DWORD *tmr_bk; |
DWORD *tmr_fd; |
DWORD *tmr_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD last_time; |
DWORD time_tick; |
DWORD flags; |
}; |
#pragma pack(pop) |
typedef struct TIMER gui_timer_t; |
//////////////////////////////////////////////////////////////// |
// structure for callback events |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct CALLBACKEVENT |
{ |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *calev_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD event_type; |
}; |
#pragma pack(pop) |
typedef struct CALLBACKEVENT gui_callbackevent_t; |
//////////////////////////////////////////////////////////////// |
// type of data - structure message |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct MESSAGE |
{ |
DWORD type; |
DWORD arg1; |
DWORD arg2; |
DWORD arg3; |
DWORD arg4; |
}; |
#pragma pack(pop) |
typedef struct MESSAGE gui_message_t; |
//////////////////////////////////////////////////////////////// |
// button |
//////////////////////////////////////////////////////////////// |
#pragma pack(push,1) |
struct ControlButton |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//button's data |
+ |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ControlButton gui_button_t; |
+ |
+// information for creating control Button |
+#pragma pack(push,1) |
+struct ButtonData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ButtonData gui_button_data_t; |
+ |
+//////////////////////////////////////////////////////////////// |
+// scroller |
+//////////////////////////////////////////////////////////////// |
+#pragma pack(push,1) |
+struct ControlScrollBar |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ //scroll bar's data |
+ float ruller_size; |
+ float ruller_pos; |
+ float ruller_step; |
+ BYTE scb_flags; |
+}; |
+ |
+typedef struct ControlScrollBar gui_scroll_bar_t; |
+ |
+#pragma pack(push,1) |
+struct ScrollBarData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+ float ruller_size; |
+ float ruller_pos; |
+ float ruller_step; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ScrollBarData gui_scroll_bar_data_t; |
+//////////////////////////////////////////////////////////////// |
+// progressbar |
+//////////////////////////////////////////////////////////////// |
+#pragma pack(push,1) |
+struct ControlProgressBar |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ //progress bar's data |
+ float progress; |
+ BYTE prb_flags; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ControlProgressBar gui_progress_bar_t; |
+ |
+#pragma pack(push,1) |
+struct ProgressBarData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+ float progress; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ProgressBarData gui_progress_bar_data_t; |
+//////////////////////////////////////////////////////////////// |
+// scrolled window |
+//////////////////////////////////////////////////////////////// |
+#pragma pack(push,1) |
+struct ControlScrolledWindow |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ //scrolled windows's data |
+ DWORD virtual_x; |
+ DWORD virtual_y; |
+ DWORD virtual_sizex; |
+ DWORD virtual_sizey; |
+ DWORD *virtual_controls_x; |
+ DWORD *virtual_controls_y; |
+ DWORD number_virtual_controls; |
+ DWORD scroll_arrea_sizex; |
+ DWORD scroll_arrea_sizey; |
+ DWORD *horizontal_scroll; |
+ DWORD *vertical_scroll; |
+ BYTE scw_flags; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ControlScrolledWindow gui_scrolled_window_t; |
+ |
+#pragma pack(push,1) |
+struct ScrolledWindowData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ScrolledWindowData gui_scrolled_window_data_t; |
+ |
+//////////////////////////////////////////////////////////////// |
+// image |
+//////////////////////////////////////////////////////////////// |
+#pragma pack(push,1) |
+struct ControlImage |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ char bits_per_pixel; |
+ char bytes_per_pixel; |
+ char *img; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ControlImage gui_image_t; |
+ |
+#pragma pack(push,1) |
+struct ImageData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+ char bits_per_pixel; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ImageData gui_image_data_t; |
+ |
+//////////////////////////////////////////////////////////////// |
+// text |
+//////////////////////////////////////////////////////////////// |
+#pragma pack(push,1) |
+struct ControlText |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ DWORD *font; |
+ DWORD color; |
+ DWORD background_color; |
+ char *text; |
+ BYTE txt_flags; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct ControlText gui_text_t; |
+ |
+#pragma pack(push,1) |
+struct TextData |
+{ |
+ int x; |
+ int y; |
+ DWORD *font; |
+ DWORD color; |
+ DWORD background_color; |
+ char background; |
+ char *text; |
+}; |
+#pragma pack(pop) |
+ |
+typedef struct TextData gui_text_data_t; |
+///////////////////////////////////////////////////////////////// |
+// load libGUI library and link functions |
+///////////////////////////////////////////////////////////////// |
+void LoadLibGUI(char *lib_path); |
+ |
+//********************************************************************** |
+// libGUI service functions |
+//********************************************************************** |
+ |
+DWORD (stdcall *LibGUIversion)(void); |
+char (stdcall *InitLibGUI)(void); |
+void (stdcall *LibGUImain)(parent_t *WindowParent); |
+void (stdcall *QuitLibGUI)(parent_t *window); |
+ |
+void* (stdcall *CreateWindow)(void); |
+void (stdcall *SetWindowSizeRequest)(parent_t *WindowParent,int size_x,int size_y); |
+ |
+void (stdcall *PackControls)(void *Parent,void *control); |
+void (stdcall *DestroyControl)(void *control); |
+void (stdcall *SetControlSizeRequest)(void *Control,int new_size_x,int new_size_y); |
+int (stdcall *GetControlSizeX)(void *Control); |
+int (stdcall *GetControlSizeY)(void *Control); |
+void (stdcall *SetControlNewPosition)(void *Control,int new_x,int new_y); |
+int (stdcall *GetControlPositionX)(void *Control); |
+int (stdcall *GetControlPositionY)(void *Control); |
+void* (stdcall *SetFocuse)(void *Control); |
+void (stdcall *RedrawControl)(void *Control); |
+void (stdcall *SpecialRedrawControl)(void *Control); |
+ |
+gui_callback_t* (stdcall *SetCallbackFunction)(void *Control, |
+ int event_name,void *callback_func, |
+ void *callback_func_data); |
+void (stdcall *BlockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
+void (stdcall *UnblockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
+ |
+void (stdcall *SetIDL_Function)(parent_t *Parent,void *function,void *function_data); |
+void (stdcall *DestroyIDL_Function)(parent_t *Parent); |
+ |
+gui_timer_t* (stdcall *SetTimerCallbackForFunction)(parent_t *parent_window, |
+ int time_tick,void *func,void *func_data); |
+void (stdcall *DestroyTimerCallbackForFunction)(gui_timer_t *timer); |
+ |
+gui_callbackevent_t* (stdcall *SetCallbackFunctionForEvent)(parent_t *parent_window, |
+ int event_type,void *func,void *func_data); |
+void (stdcall *DestroyCallbackFunctionForEvent)(gui_callbackevent_t *callback_event); |
+ |
+gui_button_t* (stdcall *CreateButton)(gui_button_data_t *info_for_control); |
+gui_button_t* (stdcall *CreateButtonWithText)(gui_button_data_t *info,char *txt); |
+ |
+gui_progress_bar_t* (stdcall *CreateProgressBar)(gui_progress_bar_data_t *info_for_control); |
+void (stdcall *SetProgressBarPulse)(gui_progress_bar_t *ProgressBar,int time_update); |
+void (stdcall *ProgressBarSetText)(gui_progress_bar_t *pbar,char *txt); |
+char* (stdcall *ProgressBarGetText)(gui_progress_bar_t *pbar); |
+ |
+gui_scroll_bar_t* (stdcall *CreateHorizontalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
+gui_scroll_bar_t* (stdcall *CreateVerticalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
+ |
+gui_scrolled_window_t* (stdcall *CreateScrolledWindow)(gui_scrolled_window_data_t *info_for_control); |
+void (stdcall *ScrolledWindowPackControls)(gui_scrolled_window_t *parent,void *Control); |
+ |
+gui_image_t* (stdcall *CreateImage)(gui_image_data_t *info_for_control); |
+ |
+gui_text_t* (stdcall *CreateText)(gui_text_data_t *info_for_control); |
+void (stdcall *TextBackgroundOn)(gui_text_t *Text); |
+void (stdcall *TextBackgroundOff)(gui_text_t *Text); |
+ |
+font_t* (stdcall *LoadFont)(char *fullfontname); |
+void (stdcall *FreeFont)(font_t *font); |
+ |
/programs/develop/sdk/trunk/libGUI/MinGW(windows) |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/sdk/trunk/libGUI/gcc(unix)/libGUI.c |
---|
0,0 → 1,241 |
/* |
libGUI dinamic library SDK |
load library and link function |
*/ |
#include "libGUI.h" |
struct IMPORT |
{ |
char *name; |
void *function; |
}__attribute__((packed)); |
typedef struct IMPORT import_t; |
static char *sys_libGUI_path="/sys/lib/libGUI.obj"; |
static char* funcnames[] = {"LibGUIversion","InitLibGUI","LibGUImain","QuitLibGUI", |
"CreateWindow","SetWindowSizeRequest", |
"PackControls","DestroyControl","SetControlSizeRequest","GetControlSizeX", |
"GetControlSizeY","SetControlNewPosition","GetControlPositionX", |
"GetControlPositionY","SetFocuse","RedrawControl","SpecialRedrawControl", |
"SetCallbackFunction","BlockCallbackFunction","UnblockCallbackFunction", |
"SetIDL_Function","DestroyIDL_Function", |
"SetTimerCallbackForFunction","DestroyTimerCallbackForFunction", |
"SetCallbackFunctionForEvent","DestroyCallbackFunctionForEvent", |
"CreateButton","CreateButtonWithText", |
"CreateProgressBar","SetProgressBarPulse","ProgressBarSetText","ProgressBarGetText", |
"CreateHorizontalScrollBar","CreateVerticalScrollBar", |
"CreateScrolledWindow","ScrolledWindowPackControls", |
"CreateImage", |
"CreateText","TextBackgroundOn","TextBackgroundOff", |
"LoadFont","FreeFont"}; |
static inline void* gui_ksys_load_dll(char *path) |
{ |
void *dll_export; |
__asm__ __volatile__( |
"int $0x40" |
:"=a"(dll_export) |
:"a"(68),"b"(19),"c"(path)); |
return(dll_export); |
} |
static inline void gui_ksys_debug_out(int c) |
{ |
__asm__ __volatile__( |
"int $0x40" |
: |
:"a"(63),"b"(1),"c"(c)); |
} |
static void gui_debug_out_str(char *s) |
{ |
while(*s) |
{ |
if (*s=='\n') gui_ksys_debug_out(13); |
gui_ksys_debug_out(*s); |
s++; |
} |
} |
static int gui_strcmp(const char* string1, const char* string2) |
{ |
while (1) |
{ |
if (*string1<*string2) |
return -1; |
if (*string1>*string2) |
return 1; |
if (*string1=='\0') |
return 0; |
string1++; |
string2++; |
} |
} |
static void* gui_cofflib_getproc(import_t *lib, char *name) |
{ |
int i; |
for(i = 0; lib[i].name && gui_strcmp(name, lib[i].name); i++); |
if(lib[i].name) return lib[i].function; |
else return NULL; |
} |
static inline void gui_ksys_exit(int value) |
{ |
__asm__ __volatile__( |
"int $0x40" |
: |
:"a"(-1),"b"(value)); |
} |
void link_libGUI(import_t *exp,char **imports) |
{ |
LibGUIversion=(DWORD stdcall (*)(void)) |
gui_cofflib_getproc(exp,imports[0]); |
InitLibGUI=(char stdcall (*)(void)) |
gui_cofflib_getproc(exp,imports[1]); |
LibGUImain=(void stdcall (*)(parent_t *WindowParent)) |
gui_cofflib_getproc(exp,imports[2]); |
QuitLibGUI=(void stdcall (*)(parent_t *window)) |
gui_cofflib_getproc(exp,imports[3]); |
CreateWindow=(void* stdcall (*)(void)) |
gui_cofflib_getproc(exp,imports[4]); |
SetWindowSizeRequest=(void stdcall (*)(parent_t *WindowParent,int size_x,int size_y)) |
gui_cofflib_getproc(exp,imports[5]); |
PackControls=(void stdcall (*)(void *Parent,void *control)) |
gui_cofflib_getproc(exp,imports[6]); |
DestroyControl=(void stdcall (*)(void *control)) |
gui_cofflib_getproc(exp,imports[7]); |
SetControlSizeRequest=(void stdcall (*)(void *Control,int new_size_x,int new_size_y)) |
gui_cofflib_getproc(exp,imports[8]); |
GetControlSizeX=(int stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[9]); |
GetControlSizeY=(int stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[10]); |
SetControlNewPosition=(void stdcall (*)(void *Control,int new_x,int new_y)) |
gui_cofflib_getproc(exp,imports[11]); |
GetControlPositionX=(int stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[12]); |
GetControlPositionY=(int stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[13]); |
SetFocuse=(void* stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[14]); |
RedrawControl=(void stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[15]); |
SpecialRedrawControl=(void stdcall (*)(void *Control)) |
gui_cofflib_getproc(exp,imports[16]); |
SetCallbackFunction=(gui_callback_t* stdcall (*)(void *Control, |
int event_name,void *callback_func,void *callback_func_data)) |
gui_cofflib_getproc(exp,imports[17]); |
BlockCallbackFunction=(void stdcall (*)(void *Control,gui_callback_t *callback_ID)) |
gui_cofflib_getproc(exp,imports[18]); |
UnblockCallbackFunction=(void stdcall (*)(void *Control,gui_callback_t *callback_ID)) |
gui_cofflib_getproc(exp,imports[19]); |
SetIDL_Function=(void stdcall (*)(parent_t *Parent,void *function,void *function_data)) |
gui_cofflib_getproc(exp,imports[20]); |
DestroyIDL_Function=(void stdcall (*)(parent_t *Parent)) |
gui_cofflib_getproc(exp,imports[21]); |
SetTimerCallbackForFunction=(gui_timer_t* stdcall (*)(parent_t *parent_window, |
int time_tick,void *func,void *func_data)) |
gui_cofflib_getproc(exp,imports[22]); |
DestroyTimerCallbackForFunction=(void stdcall (*)(gui_timer_t *timer)) |
gui_cofflib_getproc(exp,imports[23]); |
SetCallbackFunctionForEvent=(gui_callbackevent_t* stdcall (*)(parent_t *parent_window, |
int event_type,void *func,void *func_data)) |
gui_cofflib_getproc(exp,imports[24]); |
DestroyCallbackFunctionForEvent=(void stdcall (*)(gui_callbackevent_t *callback_event)) |
gui_cofflib_getproc(exp,imports[25]); |
CreateButton=(gui_button_t* stdcall (*)(gui_button_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[26]); |
CreateButtonWithText=(gui_button_t* stdcall (*)(gui_button_data_t *info,char *txt)) |
gui_cofflib_getproc(exp,imports[27]); |
CreateProgressBar=(gui_progress_bar_t* stdcall (*)(gui_progress_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[28]); |
SetProgressBarPulse=(void stdcall (*)(gui_progress_bar_t *ProgressBar,int time_update)) |
gui_cofflib_getproc(exp,imports[29]); |
ProgressBarSetText=(void stdcall (*)(gui_progress_bar_t *pbar,char *txt)) |
gui_cofflib_getproc(exp,imports[30]); |
ProgressBarGetText=(char* stdcall (*)(gui_progress_bar_t *pbar)) |
gui_cofflib_getproc(exp,imports[31]); |
CreateHorizontalScrollBar=(gui_scroll_bar_t* stdcall (*)(gui_scroll_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[32]); |
CreateVerticalScrollBar=(gui_scroll_bar_t* stdcall (*)(gui_scroll_bar_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[33]); |
CreateScrolledWindow=(gui_scrolled_window_t* stdcall (*)(gui_scrolled_window_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[34]); |
ScrolledWindowPackControls=(void stdcall (*)(gui_scrolled_window_t *parent,void *Control)) |
gui_cofflib_getproc(exp,imports[35]); |
CreateImage=(gui_image_t* stdcall (*)(gui_image_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[36]); |
CreateText=(gui_text_t* stdcall (*)(gui_text_data_t *info_for_control)) |
gui_cofflib_getproc(exp,imports[37]); |
TextBackgroundOn=(void stdcall (*)(gui_text_t *Text)) |
gui_cofflib_getproc(exp,imports[38]); |
TextBackgroundOff=(void stdcall (*)(gui_text_t *Text)) |
gui_cofflib_getproc(exp,imports[39]); |
LoadFont=(font_t* stdcall (*)(char *fullfontname)) |
gui_cofflib_getproc(exp,imports[40]); |
FreeFont=(void stdcall (*)(font_t *font)) |
gui_cofflib_getproc(exp,imports[41]); |
} |
void LoadLibGUI(char *lib_path) |
{ |
import_t *export; |
char *path; |
if (lib_path==NULL) |
{ |
path=sys_libGUI_path; |
export=(import_t*)gui_ksys_load_dll(path); |
} |
else |
{ |
path=lib_path; |
export=(import_t*)gui_ksys_load_dll(path); |
} |
if (export==NULL) |
{ |
gui_debug_out_str("\ncan't load lib="); |
gui_debug_out_str(path); |
gui_ksys_exit(0); |
} |
else |
{ |
link_libGUI(export,funcnames); |
if (InitLibGUI()) |
{ |
gui_debug_out_str("\ncan't initialize libGUI"); |
gui_ksys_exit(0); |
} |
} |
} |
/programs/develop/sdk/trunk/libGUI/gcc(unix)/libGUI.h |
---|
0,0 → 1,590 |
/* |
service structures of libGUI |
*/ |
#define NULL (void*)0 |
typedef unsigned int DWORD; |
typedef unsigned char BYTE; |
typedef unsigned short int WORD; |
typedef unsigned int size_t; |
#define stdcall __attribute__ ((stdcall)) |
#define cdecl __attribute__ ((cdecl)) |
#define pack __attribute__ ((packed)) |
///////////////////////////////////////////////////////////////////////// |
// libGUI sysyem messages types |
///////////////////////////////////////////////////////////////////////// |
#define MESSAGE_FULL_REDRAW_ALL 1 |
#define MESSAGE_KEYS_EVENT 2 |
#define MESSAGE_SPECIALIZED 3 |
#define MESSAGE_SET_FOCUSE 4 |
#define MESSAGE_CHANGE_FOCUSE 5 |
#define MESSAGE_MOUSE_EVENT 6 |
#define MESSAGE_CHANGE_POSITION_EVENT 7 |
#define MESSAGE_CHANGESIZE_EVENT 8 |
#define MESSAGE_CALL_TIMER_EVENT 9 |
#define MESSAGE_FULL_REDRAW_ALL_WITH_FINITION 10 |
#define MESSAGE_SET_MAIN_PARENT 11 |
#define MESSAGE_DESTROY_CONTROL -1 |
///////////////////////////////////////////////////////////////////////// |
// system keys states |
///////////////////////////////////////////////////////////////////////// |
#define KEY_DOWN 16 |
#define KEY_UP 17 |
#define KEY_HOTKEY 18 |
///////////////////////////////////////////////////////////////////////// |
// system mouse buttons states |
///////////////////////////////////////////////////////////////////////// |
#define MOUSE_LEFT_BUTTON_DOWN 19 |
#define MOUSE_LEFT_BUTTON_UP 20 |
#define MOUSE_RIGHT_BUTTON_DOWN 21 |
#define MOUSE_RIGHT_BUTTON_UP 22 |
#define MOUSE_MIDDLE_BUTTON_DOWN 23 |
#define MOUSE_MIDDLE_BUTTON_UP 24 |
#define MOUSE_4_BUTTON_DOWN 25 |
#define MOUSE_4_BUTTON_UP 26 |
#define MOUSE_5_BUTTON_DOWN 27 |
#define MOUSE_5_BUTTON_UP 28 |
//----------------------------------------------------------------------- |
// CONNECT EVENTS FOR CALLBACKs |
//----------------------------------------------------------------------- |
//////////////////////////////////////////////////////////////// |
// connect events for button |
//////////////////////////////////////////////////////////////// |
#define BUTTON_ENTER_EVENT 29 |
#define BUTTON_LEAVE_EVENT 30 |
#define BUTTON_PRESSED_EVENT 31 |
#define BUTTON_RELEASED_EVENT 32 |
//////////////////////////////////////////////////////////////// |
// connect events for scroll bar |
//////////////////////////////////////////////////////////////// |
#define SCROLLBAR_CHANGED_EVENT 33 |
//////////////////////////////////////////////////////////////// |
// connect events for main parent window |
//////////////////////////////////////////////////////////////// |
#define DELETE_EVENT 36 |
//////////////////////////////////////////////////////////////// |
// font type structure |
//////////////////////////////////////////////////////////////// |
struct FONT |
{ |
DWORD *fnt_draw; |
DWORD *fnt_unpacker; |
DWORD *fnt_fd; |
DWORD *fnt_bk; |
int sizex; |
int sizey; |
int size; |
int encoding_type; |
char *font; |
char *fnt_name; |
DWORD type; |
DWORD flags; |
}pack; |
typedef struct FONT font_t; |
//////////////////////////////////////////////////////////////// |
// header of parent of control |
//////////////////////////////////////////////////////////////// |
struct HEADERPARENT |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
DWORD **control_for_callback_function; |
DWORD **callback_for_control_callback; |
DWORD number_callbacks; |
DWORD *global_active_control_for_keys; |
DWORD *message; |
DWORD *timer_bk; |
DWORD *timer_fd; |
DWORD number_timers_for_controls; |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *IDL_func; |
DWORD *IDL_func_data; |
}pack; |
typedef struct HEADERPARENT parent_t; |
//////////////////////////////////////////////////////////////// |
// header of control |
//////////////////////////////////////////////////////////////// |
struct HEADER |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
}pack; |
typedef struct HEADER header_t; |
//////////////////////////////////////////////////////////////// |
// callback structure for callback function of control |
//////////////////////////////////////////////////////////////// |
struct CALLBACK |
{ |
DWORD *clb_bk; |
DWORD *clb_fd; |
DWORD *clb_control; |
DWORD *func; |
DWORD *func_data; |
DWORD connect_event; |
DWORD flags; |
}pack; |
typedef struct CALLBACK gui_callback_t; |
//////////////////////////////////////////////////////////////// |
// timer |
//////////////////////////////////////////////////////////////// |
struct TIMER |
{ |
DWORD *tmr_bk; |
DWORD *tmr_fd; |
DWORD *tmr_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD last_time; |
DWORD time_tick; |
DWORD flags; |
}pack; |
typedef struct TIMER gui_timer_t; |
//////////////////////////////////////////////////////////////// |
// structure for callback events |
//////////////////////////////////////////////////////////////// |
struct CALLBACKEVENT |
{ |
DWORD *calev_bk; |
DWORD *calev_fd; |
DWORD *calev_parent; |
DWORD *func; |
DWORD *func_data; |
DWORD event_type; |
}pack; |
typedef struct CALLBACKEVENT gui_callbackevent_t; |
//////////////////////////////////////////////////////////////// |
// type of data - structure message |
//////////////////////////////////////////////////////////////// |
struct MESSAGE |
{ |
DWORD type; |
DWORD arg1; |
DWORD arg2; |
DWORD arg3; |
DWORD arg4; |
}pack; |
typedef struct MESSAGE gui_message_t; |
//////////////////////////////////////////////////////////////// |
// button |
//////////////////////////////////////////////////////////////// |
struct ControlButton |
{ |
DWORD *ctrl_proc; |
DWORD *ctrl_fd; |
DWORD *ctrl_bk; |
DWORD *child_fd; |
DWORD *child_bk; |
DWORD *parent; |
DWORD *main_parent; |
DWORD ctrl_x; |
DWORD ctrl_y; |
DWORD ctrl_sizex; |
DWORD ctrl_sizey; |
DWORD ctrl_ID; |
DWORD *active_control_for_keys; |
DWORD *active_control_for_mouse; |
DWORD *callback; |
DWORD *finition; |
DWORD *timer; |
DWORD flags; |
//button's data |
+ |
+}pack; |
+ |
+ |
+typedef struct ControlButton gui_button_t; |
+ |
+// information for creating control Button |
+ |
+struct ButtonData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+}pack; |
+ |
+ |
+typedef struct ButtonData gui_button_data_t; |
+ |
+//////////////////////////////////////////////////////////////// |
+// scroller |
+//////////////////////////////////////////////////////////////// |
+ |
+struct ControlScrollBar |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ //scroll bar's data |
+ float ruller_size; |
+ float ruller_pos; |
+ float ruller_step; |
+ BYTE scb_flags; |
+}pack; |
+ |
+ |
+typedef struct ControlScrollBar gui_scroll_bar_t; |
+ |
+ |
+struct ScrollBarData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+ float ruller_size; |
+ float ruller_pos; |
+ float ruller_step; |
+}pack; |
+ |
+ |
+typedef struct ScrollBarData gui_scroll_bar_data_t; |
+//////////////////////////////////////////////////////////////// |
+// progressbar |
+//////////////////////////////////////////////////////////////// |
+ |
+struct ControlProgressBar |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ //progress bar's data |
+ float progress; |
+ BYTE prb_flags; |
+}pack; |
+ |
+ |
+typedef struct ControlProgressBar gui_progress_bar_t; |
+ |
+ |
+struct ProgressBarData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+ float progress; |
+}pack; |
+ |
+ |
+typedef struct ProgressBarData gui_progress_bar_data_t; |
+//////////////////////////////////////////////////////////////// |
+// scrolled window |
+//////////////////////////////////////////////////////////////// |
+ |
+struct ControlScrolledWindow |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ //scrolled windows's data |
+ DWORD virtual_x; |
+ DWORD virtual_y; |
+ DWORD virtual_sizex; |
+ DWORD virtual_sizey; |
+ DWORD *virtual_controls_x; |
+ DWORD *virtual_controls_y; |
+ DWORD number_virtual_controls; |
+ DWORD scroll_arrea_sizex; |
+ DWORD scroll_arrea_sizey; |
+ DWORD *horizontal_scroll; |
+ DWORD *vertical_scroll; |
+ BYTE scw_flags; |
+}pack; |
+ |
+ |
+typedef struct ControlScrolledWindow gui_scrolled_window_t; |
+ |
+ |
+struct ScrolledWindowData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+}pack; |
+ |
+ |
+typedef struct ScrolledWindowData gui_scrolled_window_data_t; |
+ |
+//////////////////////////////////////////////////////////////// |
+// image |
+//////////////////////////////////////////////////////////////// |
+ |
+struct ControlImage |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ char bits_per_pixel; |
+ char bytes_per_pixel; |
+ char *img; |
+}pack; |
+ |
+ |
+typedef struct ControlImage gui_image_t; |
+ |
+ |
+struct ImageData |
+{ |
+ int x; |
+ int y; |
+ int width; |
+ int height; |
+ char bits_per_pixel; |
+}pack; |
+ |
+ |
+typedef struct ImageData gui_image_data_t; |
+ |
+//////////////////////////////////////////////////////////////// |
+// text |
+//////////////////////////////////////////////////////////////// |
+ |
+struct ControlText |
+{ |
+ DWORD *ctrl_proc; |
+ DWORD *ctrl_fd; |
+ DWORD *ctrl_bk; |
+ DWORD *child_fd; |
+ DWORD *child_bk; |
+ DWORD *parent; |
+ DWORD *main_parent; |
+ DWORD ctrl_x; |
+ DWORD ctrl_y; |
+ DWORD ctrl_sizex; |
+ DWORD ctrl_sizey; |
+ DWORD ctrl_ID; |
+ DWORD *active_control_for_keys; |
+ DWORD *active_control_for_mouse; |
+ DWORD *callback; |
+ DWORD *finition; |
+ DWORD *timer; |
+ DWORD flags; |
+ |
+ DWORD *font; |
+ DWORD color; |
+ DWORD background_color; |
+ char *text; |
+ BYTE txt_flags; |
+}pack; |
+ |
+ |
+typedef struct ControlText gui_text_t; |
+ |
+ |
+struct TextData |
+{ |
+ int x; |
+ int y; |
+ DWORD *font; |
+ DWORD color; |
+ DWORD background_color; |
+ char background; |
+ char *text; |
+}pack; |
+ |
+ |
+typedef struct TextData gui_text_data_t; |
+///////////////////////////////////////////////////////////////// |
+// load libGUI library and link functions |
+///////////////////////////////////////////////////////////////// |
+void LoadLibGUI(char *lib_path); |
+ |
+//********************************************************************** |
+// libGUI service functions |
+//********************************************************************** |
+ |
+DWORD stdcall (*LibGUIversion)(void); |
+char stdcall (*InitLibGUI)(void); |
+void stdcall (*LibGUImain)(parent_t *WindowParent); |
+void stdcall (*QuitLibGUI)(parent_t *window); |
+ |
+void* stdcall (*CreateWindow)(void); |
+void stdcall (*SetWindowSizeRequest)(parent_t *WindowParent,int size_x,int size_y); |
+ |
+void stdcall (*PackControls)(void *Parent,void *control); |
+void stdcall (*DestroyControl)(void *control); |
+void stdcall (*SetControlSizeRequest)(void *Control,int new_size_x,int new_size_y); |
+int stdcall (*GetControlSizeX)(void *Control); |
+int stdcall (*GetControlSizeY)(void *Control); |
+void stdcall (*SetControlNewPosition)(void *Control,int new_x,int new_y); |
+int stdcall (*GetControlPositionX)(void *Control); |
+int stdcall (*GetControlPositionY)(void *Control); |
+void* stdcall (*SetFocuse)(void *Control); |
+void stdcall (*RedrawControl)(void *Control); |
+void stdcall (*SpecialRedrawControl)(void *Control); |
+ |
+gui_callback_t* stdcall (*SetCallbackFunction)(void *Control, |
+ int event_name,void *callback_func, |
+ void *callback_func_data); |
+void stdcall (*BlockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
+void stdcall (*UnblockCallbackFunction)(void *Control,gui_callback_t *callback_ID); |
+ |
+void stdcall (*SetIDL_Function)(parent_t *Parent,void *function,void *function_data); |
+void stdcall (*DestroyIDL_Function)(parent_t *Parent); |
+ |
+gui_timer_t* stdcall (*SetTimerCallbackForFunction)(parent_t *parent_window, |
+ int time_tick,void *func,void *func_data); |
+void stdcall (*DestroyTimerCallbackForFunction)(gui_timer_t *timer); |
+ |
+gui_callbackevent_t* stdcall (*SetCallbackFunctionForEvent)(parent_t *parent_window, |
+ int event_type,void *func,void *func_data); |
+void stdcall (*DestroyCallbackFunctionForEvent)(gui_callbackevent_t *callback_event); |
+ |
+gui_button_t* stdcall (*CreateButton)(gui_button_data_t *info_for_control); |
+gui_button_t* stdcall (*CreateButtonWithText)(gui_button_data_t *info,char *txt); |
+ |
+gui_progress_bar_t* stdcall (*CreateProgressBar)(gui_progress_bar_data_t *info_for_control); |
+void stdcall (*SetProgressBarPulse)(gui_progress_bar_t *ProgressBar,int time_update); |
+void stdcall (*ProgressBarSetText)(gui_progress_bar_t *pbar,char *txt); |
+char* stdcall (*ProgressBarGetText)(gui_progress_bar_t *pbar); |
+ |
+gui_scroll_bar_t* stdcall (*CreateHorizontalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
+gui_scroll_bar_t* stdcall (*CreateVerticalScrollBar)(gui_scroll_bar_data_t *info_for_control); |
+ |
+gui_scrolled_window_t* stdcall (*CreateScrolledWindow)(gui_scrolled_window_data_t *info_for_control); |
+void stdcall (*ScrolledWindowPackControls)(gui_scrolled_window_t *parent,void *Control); |
+ |
+gui_image_t* stdcall (*CreateImage)(gui_image_data_t *info_for_control); |
+ |
+gui_text_t* stdcall (*CreateText)(gui_text_data_t *info_for_control); |
+void stdcall (*TextBackgroundOn)(gui_text_t *Text); |
+void stdcall (*TextBackgroundOff)(gui_text_t *Text); |
+ |
+font_t* stdcall (*LoadFont)(char *fullfontname); |
+void stdcall (*FreeFont)(font_t *font); |
+ |
/programs/develop/sdk/trunk/libGUI/gcc(unix) |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |