Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 1179 → Rev 1180

/programs/develop/sdk/trunk/libGUI/MinGW(windows)/libGUI.c
File deleted
/programs/develop/sdk/trunk/libGUI/MinGW(windows)/libGUI.h
File deleted
/programs/develop/sdk/trunk/libGUI/MinGW(windows)
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/programs/develop/sdk/trunk/libGUI/Cygwin and 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/Cygwin and 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/Cygwin and MinGW (windows)
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/develop/sdk/trunk/libGUI/FASM/LIBGUI.INC
0,0 → 1,1070
;-----------------------------------------------------------------------
; assembler SDK for libGUI
;-----------------------------------------------------------------------
 
HEADER_SIZE = 18*4
NULL = 0
 
;///////////////////////////////////////////////////////////////////////
;// libGUI system messages types
;///////////////////////////////////////////////////////////////////////
MESSAGE_FULL_REDRAW_ALL = 1
MESSAGE_KEYS_EVENT = 2
MESSAGE_SPECIALIZED = 3
MESSAGE_SET_FOCUSE = 4
MESSAGE_CHANGE_FOCUSE = 5
MESSAGE_MOUSE_EVENT = 6
MESSAGE_CHANGE_POSITION_EVENT = 7
MESSAGE_CHANGESIZE_EVENT = 8
MESSAGE_CALL_TIMER_EVENT = 9
MESSAGE_FULL_REDRAW_ALL_WITH_FINITION = 10
MESSAGE_SET_MAIN_PARENT = 11
MESSAGE_DESTROY_CONTROL = -1
 
;///////////////////////////////////////////////////////////////////////
;// system keys states
;///////////////////////////////////////////////////////////////////////
KEY_DOWN = 16
KEY_UP = 17
KEY_HOTKEY = 18
;///////////////////////////////////////////////////////////////////////
;// system mouse buttons states
;///////////////////////////////////////////////////////////////////////
MOUSE_LEFT_BUTTON_DOWN = 19
MOUSE_LEFT_BUTTON_UP = 20
MOUSE_RIGHT_BUTTON_DOWN = 21
MOUSE_RIGHT_BUTTON_UP = 22
MOUSE_MIDDLE_BUTTON_DOWN = 23
MOUSE_MIDDLE_BUTTON_UP = 24
MOUSE_4_BUTTON_DOWN = 25
MOUSE_4_BUTTON_UP = 26
MOUSE_5_BUTTON_DOWN = 27
MOUSE_5_BUTTON_UP = 28
 
;---------------------------------------------------------------------
; CONNECT EVENTS FOR CALLBACKs
;---------------------------------------------------------------------
 
;////////////////////////////////////////////////////////////////
;// connect events for button
;////////////////////////////////////////////////////////////////
BUTTON_ENTER_EVENT = 29
BUTTON_LEAVE_EVENT = 30
BUTTON_PRESSED_EVENT = 31
BUTTON_RELEASED_EVENT = 32
 
;////////////////////////////////////////////////////////////////
;// connect events for scroll bar
;////////////////////////////////////////////////////////////////
SCROLLBAR_CHANGED_EVENT = 33
 
;////////////////////////////////////////////////////////////////
;// connect events for main parent window
;////////////////////////////////////////////////////////////////
DELETE_EVENT = 36
 
;-----------------------------------------------------------------------
;------------------------libGUI functions-------------------------------
;-----------------------------------------------------------------------
 
;DWORD LibGUIversion(void);
macro LibGUIversion
{
call [imp_LibGUIversion]
}
;char InitLibGUI(void);
macro InitLibGUI
{
call [imp_InitLibGUI]
}
 
;void LibGUImain(parent_t *WindowParent);
macro LibGUImain WindowParent
{
pushd WindowParent
call [imp_LibGUImain]
add esp,1*4
}
 
;void QuitLibGUI(parent_t *window);
macro QuitLibGUI window
{
pushd window
call [imp_QuitLibGUI]
add esp,1*4
}
;void* CreateWindow(void)
macro CreateWindow
{
call [imp_CreateWindow]
}
;void SetWindowSizeRequest(parent_t *WindowParent,int size_x,int size_y)
macro SetWindowSizeRequest WindowParent,sizex,sizey
{
pushd sizey
pushd sizex
pushd WindowParent
call [imp_SetWindowSizeRequest]
add esp,3*4
}
;void PackControls(void *Parent,void *control);
macro PackControls Parent,control
{
pushd control
pushd Parent
call [imp_PackControls]
add esp,2*4
}
;void DestroyControl(void *control);
macro DestroyControl control
{
pushd control
call [imp_DestroyControl]
add esp,1*4
}
;void SetControlSizeRequest(void *Control,int new_size_x,int new_size_y);
macro SetControlSizeRequest Control,new_size_x,new_size_y
{
pushd new_size_y
pushd new_size_x
pushd Control
call [imp_SetControlSizeRequest]
add esp 3*4
}
;int GetControlSizeX(void *Control);
macro GetControlSizeX Control
{
pushd Control
call [imp_GetControlSizeX]
add esp 1*4
}
;int GetControlSizeY(void *Control);
macro GetControlSizeY Control
{
pushd Control
call [imp_GetControlSizeY]
add esp 1*4
}
;void SetControlNewPosition(void *Control,int new_x,int new_y)
macro SetControlNewPosition Control,new_x,new_y
{
pushd new_y
pushd new_x
pushd Control
call [imp_SetControlNewPosition]
add esp,3*4
}
;int GetControlPositionX(void *Control);
macro GetControlPositionX Control
{
pushd Control
call [imp_GetControlPositionX]
add esp,1*4
}
;int GetControlPositionY(void *Control);
macro GetControlPositionY Control
{
pushd Control
call [imp_GetControlPositionY]
add esp,1*4
}
;void* SetFocuse(void *Control);
macro SetFocuse Control
{
pushd Control
call [imp_SetFocuse]
add esp,1*4
}
;void RedrawControl(void *Control)
macro RedrawControl Control
{
pushd Control
call [imp_RedrawControl]
add esp,1*4
}
;void SpecialRedrawControl(void *Control)
macro SpecialRedrawControl Control
{
pushd Control
call [imp_SpecialRedrawControl]
add esp,1*4
}
;SetCallbackFunction(void *Control,int event_name,void *callback_func,void *callback_func_data);
macro SetCallbackFunction Control,event_name,callback_func,callback_func_data
{
pushd callback_func_data
pushd callback_func
pushd event_name
pushd Control
call [imp_SetCallbackFunction]
add esp,4*4
}
;BlockCallbackFunction(void *Control,gui_callback_t *callback_ID)
macro BlockCallbackFunction Control,callback_ID
{
pushd callback_ID
pushd Control
call [imp_BlockCallbackFunction]
add esp,2*4
}
;void UnblockCallbackFunction(void *Control,gui_callback_t *callback_ID)
macro UnblockCallbackFunction Control,callback_ID
{
pushd callback_ID
pushd Control
call [imp_UnblockCallbackFunction]
add esp,2*4
}
;void SetIDL_Function(parent_t *Parent,void *function,void *function_data)
macro SetIDL_Function Parent,function,function_data
{
pushd function_data
pushd function
pushd Parent
call [imp_SetIDL_Function]
add esp,3*4
}
;void DestroyIDL_Function(parent_t *Parent)
macro DestroyIDL_Function Parent
{
pushd Parent
call [imp_DestroyIDL_Function]
add eso,1*4
}
;SetTimerCallbackForFunction(parent_t *parent_window,int time_tick,void *func,void *func_data)
macro SetTimerCallbackForFunction parent_window,time_tick,func,func_data
{
pushd func_data
pushd func
pushd time_tick
pushd parent_window
call [imp_SetTimerCallbackForFunction]
add esp,4*4
}
;DestroyTimerCallbackForFunction(gui_timer_t *timer)
macro DestroyTimerCallbackForFunction timer
{
pushd timer
call [imp_DestroyTimerCallbackForFunction]
add esp,1*4
}
;SetCallbackFunctionForEvent)(parent_t *parent_window,int event_type,void *func,void *func_data)
macro SetCallbackFunctionForEvent parent_window,event_type,func,func_data
{
pushd func_data
pushd func
pushd event_type
pushd parent_window
call [imp_SetCallbackFunctionForEvent]
add esp,4*4
}
;DestroyCallbackFunctionForEvent(gui_callbackevent_t *callback_event)
macro DestroyCallbackFunctionForEvent callback_event
{
pushd callback_event
call [imp_DestroyCallbackFunctionForEvent]
add esp,1*4
}
;CreateButton(gui_button_data_t *info_for_control)
macro CreateButton info_for_control
{
pushd info_for_control
call [imp_CreateButton]
add esp,1*4
}
;CreateButtonWithText(gui_button_data_t *info,char *txt)
macro CreateButtonWithText info,txt
{
pushd txt
pushd info
call [imp_CreateButtonWithText]
add esp,2*4
}
;CreateProgressBar(gui_progress_bar_data_t *info_for_control)
macro CreateProgressBar info_for_control
{
pushd info_for_control
call [imp_CreateProgressBar]
add esp,1*4
}
;SetProgressBarPulse)(gui_progress_bar_t *ProgressBar,int time_update)
macro SetProgressBarPulse ProgressBar,time_update
{
pushd time_update
pushd ProgressBar
call [imp_SetProgressBarPulse]
add esp,2*4
}
;ProgressBarSetText(gui_progress_bar_t *pbar,char *txt)
macro ProgressBarSetText pbar,txt
{
pushd txt
pushd pbar
call [imp_ProgressBarSetText]
add esp,2*4
}
;ProgressBarGetText(gui_progress_bar_t *pbar)
macro ProgressBarGetText pbar
{
pushd pbar
call [imp_ProgressBarGetText]
add esp,1*4
}
;CreateHorizontalScrollBar(gui_scroll_bar_data_t *info_for_control)
macro CreateHorizontalScrollBar info_for_control
{
pushd info_for_control
call [imp_CreateHorizontalScrollBar]
add esp,1*4
}
;CreateVerticalScrollBar(gui_scroll_bar_data_t *info_for_control)
macro CreateVerticalScrollBar info_for_control
{
pushd info_for_control
call [imp_CreateVerticalScrollBar]
add esp,1*4
}
;CreateScrolledWindow)(gui_scrolled_window_data_t *info_for_control)
macro CreateScrolledWindow info_for_control
{
pushd info_for_control
call [imp_CreateScrolledWindow]
add esp,1*4
}
;ScrolledWindowPackControls(gui_scrolled_window_t *parent,void *Control)
macro ScrolledWindowPackControls parent,Control
{
pushd Control
pushd parent
call [imp_ScrolledWindowPackControls]
add esp,2*4
}
;CreateImage(gui_image_data_t *info_for_control)
macro CreateImage info_for_control
{
pushd info_for_control
call [imp_CreateImage]
add esp,1*4
}
;CreateText(gui_text_data_t *info_for_control)
macro CreateText info_for_control
{
pushd info_for_control
call [imp_CreateText]
add esp,1*4
}
;TextBackgroundOn(gui_text_t *Text)
macro TextBackgroundOn Txt
{
pushd Txt
call [imp_TextBackgroundOn]
add esp,1*4
}
;TextBackgroundOff(gui_text_t *Text)
macro TextBackgroundOff Txt
{
pushd Txt
call [imp_TextBackgroundOff]
add esp,1*4
}
;LoadFont(char *fullfontname)
macro LoadFont fullfontname
{
pushd fullfontname
call [imp_LoadFont]
add esp,1*4
}
;FreeFont(font_t *font)
macro FreeFont font
{
pushd font
call [imp_FreeFont]
add esp,1*4
}
 
;----------------------------------------------------------------
;----------------------debug output------------------------------
;----------------------------------------------------------------
;IN
;esi=stirng
align 4
gui_ksys_debug_out_str:
 
pushad
mov eax,63
mov ebx,1
 
next_simbol_print:
 
xor edx,edx
mov dl,[esi]
test dl,dl
jz exit_print_str
 
cmp dl,10
jne no_new_line
mov ecx,13
int 0x40
no_new_line:
 
xor ecx,ecx
mov cl, dl
int 0x40
 
add esi,1
 
jmp next_simbol_print
 
exit_print_str:
popad
 
ret
 
;-------------------------------------------------------------------
;-------------------get proc from export table----------------------
;-------------------------------------------------------------------
;INPUT
;ebx=pointer to export table
;esi=pointer to function name
;OUTPUT
;eax=pointer to function
align 4
gui_ksys_cofflib_getproc:
 
next_name_check:
 
mov ecx,[ebx]
 
test ecx,ecx
jz end_export
 
push esi
;cmp export string with name
next_simbol_check:
 
xor eax,eax
mov al,[ecx];load byte of func name from export
xor edx,edx
mov dl,[esi]
 
cmp al,dl
jne exit_check_simbol
test al,al
jne no_end_string
mov eax,[ebx+4]
pop esi
jmp end_export
no_end_string:
 
add ecx,1
add esi,1
jmp next_simbol_check
 
exit_check_simbol:
pop esi
 
add ebx,8
jmp next_name_check
 
end_export:
 
ret
 
;-------------------------------------------------------------------
;-----------------------Link libGUI---------------------------------
;-------------------------------------------------------------------
 
link_libGUI:
 
mov edi,eax;save export table pointer
mov esi,libGUI_imp
 
next_libGUI_func_link:
 
push esi
mov eax,esi
mov esi,[eax]
 
mov ebx,edi;pointer to export table
call gui_ksys_cofflib_getproc
pop esi
mov [esi],eax ;func proc
 
add esi,4
cmp [esi],dword 0
jne next_libGUI_func_link
 
ret
 
;////////////////////////////////////////////////////////////////
;// Load libGUI
;////////////////////////////////////////////////////////////////
;IN
;pointer to path or
LoadLibGUI:
 
push eax
push ebx
push ecx
push edx
push esi
push edi
 
mov ecx,[esp+28];path
 
test ecx,ecx
jnz have_other_path
mov ecx,sys_libGUI_path
have_other_path:
 
;try to load libGUI library
mov eax,68
mov ebx,19
int 0x40
 
test eax,eax
jnz libGUI_loaded_successfully
mov esi,message_cant_load_lib
call gui_ksys_debug_out_str
 
xor eax,eax
dec eax
int 0x40;system exit program
libGUI_loaded_successfully:
 
call link_libGUI
 
mov eax,68
mov ebx,11
int 0x40
 
InitLibGUI
 
test eax,eax
jz libGUI_initialized_successfully
mov esi,message_cant_initialize_lib
call gui_ksys_debug_out_str
 
xor eax,eax
dec eax
int 0x40;system exit program
libGUI_initialized_successfully:
 
pop edi
pop esi
pop edx
pop ecx
pop ebx
pop eax
 
ret 4
 
;////////////////////////////////////////////////////////////////
;// font type structure
;////////////////////////////////////////////////////////////////
struc font_t
{
.fnt_draw rd 1;pointer
.fnt_unpacker rd 1;pointer
.fnt_fd rd 1;pointer
.fnt_bk rd 1;pointer
.sizex rd 1;
.sizey rd 1;
.size rd 1;
.encoding_type rd 1;
.font rd 1;pointer
.fnt_name rd 1;pointer
.type rd 1;
.flags rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// header of parent of control
;////////////////////////////////////////////////////////////////
struc parent_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.control_for_callback_function rd 1;array of pointers
.callback_for_control_callback rd 1;array of pointers
.number_callbacks rd 1;
.global_active_control_for_keys rd 1;pointer
.message rd 1;pointer
.timer_bk rd 1;pointer
.timer_fd rd 1;pointer
.number_timers_for_controls rd 1;
.calev_bk rd 1;pointer
.calev_fd rd 1;pointer
.IDL_func rd 1;pointer
.IDL_func_data rd 1;pointer
}
 
;////////////////////////////////////////////////////////////////
;// header of control
;////////////////////////////////////////////////////////////////
struc header_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// callback structure for callback function of control
;////////////////////////////////////////////////////////////////
struc gui_callback_t
{
.clb_bk rd 1;pointer
.clb_fd rd 1;pointer
.clb_control rd 1;pointer
.func rd 1;pointer
.func_data rd 1;pointer
.connect_event rd 1;
.flags rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// timer
;////////////////////////////////////////////////////////////////
struc gui_timer_t
{
.tmr_bk rd 1;pointer
.tmr_fd rd 1;pointer
.tmr_parent rd 1;pointer
.func rd 1;pointer
.func_data rd 1;pointer
.last_time rd 1;
.time_tick rd 1;
.flags rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// structure for callback events
;////////////////////////////////////////////////////////////////
struc gui_callbackevent_t
{
.calev_bk rd 1;pointer
.calev_fd rd 1;pointer
.calev_parent rd 1;pointer
.func rd 1;pointer
.func_data rd 1;pointer
.event_type rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// type of data - structure message
;////////////////////////////////////////////////////////////////
struc gui_message_t
{
.type rd 1;
.arg1 rd 1;
.arg2 rd 1;
.arg3 rd 1;
.arg4 rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// button
;////////////////////////////////////////////////////////////////
 
struc gui_button_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.btn_flags rb 1;
}
 
;information for creating control Button
 
struc gui_button_data_t
{
.x rd 1;
.y rd 1;
.wight rd 1;
.height rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// scroll bar
;////////////////////////////////////////////////////////////////
 
struc gui_scroll_bar_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.ruller_size rd 1;float
.ruller_pos rd 1;float
.ruller_step rd 1;float
.scb_flags rb 1;
}
 
struc gui_scroll_bar_data_t
{
.x rd 1;
.y rd 1;
.wight rd 1;
.height rd 1;
.ruller_size rd 1;float
.ruller_pos rd 1;float
.ruller_step rd 1;float
}
 
;////////////////////////////////////////////////////////////////
;// progressbar
;////////////////////////////////////////////////////////////////
 
struc gui_progress_bar_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.progress rd 1;float
.prb_flags rb 1;
}
 
struc gui_progress_bar_data_t
{
.x rd 1;
.y rd 1;
.wight rd 1;
.height rd 1;
.progress rd 1;float
}
 
;////////////////////////////////////////////////////////////////
;// scrolled window
;////////////////////////////////////////////////////////////////
 
struc gui_scrolled_window_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.virtual_x rd 1;
.virtual_y rd 1;
.virtual_sizex rd 1;
.virtual_sizey rd 1;
.virtual_controls_x rd 1;pointer
.virtual_controls_y rd 1;pointer
.number_virtual_controls rd 1;
.scroll_arrea_sizex rd 1;
.scroll_arrea_sizey rd 1;
.horizontal_scroll rd 1;pointer
.vertical_scroll rd 1;pointer
.scw_flags rb 1;
}
 
struc gui_scrolled_window_data_t
{
.x rd 1;
.y rd 1;
.wight rd 1;
.height rd 1;
}
 
;////////////////////////////////////////////////////////////////
;// image
;////////////////////////////////////////////////////////////////
 
struc gui_image_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.bits_per_pixel rb 1;
.bytes_per_pixel rb 1;
.img rd 1;pointer
}
 
 
struc gui_image_data_t
{
.x rd 1;
.y rd 1;
.wight rd 1;
.height rd 1;
.bits_per_pixel rb 1;
}
 
;////////////////////////////////////////////////////////////////
;// text
;////////////////////////////////////////////////////////////////
 
struc gui_text_t
{
.ctrl_proc rd 1;pointer
.ctrl_fd rd 1;pointer
.ctrl_bk rd 1;pointer
.child_fd rd 1;pointer
.child_bk rd 1;pointer
.parent rd 1;pointer
.main_parent rd 1;pointer
.ctrl_x rd 1;
.ctrl_y rd 1;
.ctrl_sizex rd 1;
.ctrl_sizey rd 1;
.ctrl_ID rd 1;
.active_control_for_keys rd 1;pointer
.active_control_for_mouse rd 1;pointer
.callback rd 1;pointer
.finition rd 1;pointer
.timer rd 1;pointer
.flags rd 1;
 
.font rd 1;pointer
.color rd 1;
.background_color rd 1;
.text rd 1;pointer
.txt_flags rb 1;
}
 
struc gui_text_data_t
{
.x rd 1;
.y rd 1;
.font rd 1;pointer
.color rd 1;
.background_color rd 1;
.background rb 1;
.text rd 1;pointer
}
 
;//**********************************************************************
;// libGUI service functions
;//**********************************************************************
 
;default system path to libGUI
sys_libGUI_path db '/sys/lib/libGUI.obj',0
message_cant_load_lib db 'cant load lib',13,10,0
message_cant_initialize_lib db 'cant initialize libGUI',13,10,0
 
szLibGUIversion db 'LibGUIversion',0
szInitLibGUI db 'InitLibGUI',0
szLibGUImain db 'LibGUImain',0
szQuitLibGUI db 'QuitLibGUI',0
 
szCreateWindow db 'CreateWindow',0
szSetWindowSizeRequest db 'SetWindowSizeRequest',0
 
szPackControls db 'PackControls',0
szDestroyControl db 'DestroyControl',0
szSetControlSizeRequest db 'SetControlSizeRequest',0
szGetControlSizeX db 'GetControlSizeX',0
szGetControlSizeY db 'GetControlSizeY',0
szSetControlNewPosition db 'SetControlNewPosition',0
szGetControlPositionX db 'GetControlPositionX',0
szGetControlPositionY db 'GetControlPositionY',0
szSetFocuse db 'SetFocuse',0
szRedrawControl db 'RedrawControl',0
szSpecialRedrawControl db 'SpecialRedrawControl',0
 
szSetCallbackFunction db 'SetCallbackFunction',0
szBlockCallbackFunction db 'BlockCallbackFunction',0
szUnblockCallbackFunction db 'UnblockCallbackFunction',0
 
szSetIDL_Function db 'SetIDL_Function',0
szDestroyIDL_Function db 'DestroyIDL_Function',0
 
szSetTimerCallbackForFunction db 'SetTimerCallbackForFunction',0
szDestroyTimerCallbackForFunction db 'DestroyTimerCallbackForFunction',0
 
szSetCallbackFunctionForEvent db 'SetCallbackFunctionForEvent',0
szDestroyCallbackFunctionForEvent db 'DestroyCallbackFunctionForEvent',0
 
szCreateButton db 'CreateButton',0
szCreateButtonWithText db 'CreateButtonWithText',0
 
szCreateProgressBar db 'CreateProgressBar',0
szSetProgressBarPulse db 'SetProgressBarPulse',0
szProgressBarSetText db 'ProgressBarSetText',0
szProgressBarGetText db 'ProgressBarGetText',0
 
szCreateHorizontalScrollBar db 'CreateHorizontalScrollBar',0
szCreateVerticalScrollBar db 'CreateVerticalScrollBar',0
 
szCreateScrolledWindow db 'CreateScrolledWindow',0
szScrolledWindowPackControls db 'ScrolledWindowPackControls',0
 
szCreateImage db 'CreateImage',0
 
szCreateText db 'CreateText',0
szTextBackgroundOn db 'TextBackgroundOn',0
szTextBackgroundOff db 'TextBackgroundOff',0
 
szLoadFont db 'LoadFont',0
szFreeFont db 'FreeFont',0
 
libGUI_imp:
 
imp_LibGUIversion dd szLibGUIversion
imp_InitLibGUI dd szInitLibGUI
imp_LibGUImain dd szLibGUImain
imp_QuitLibGUI dd szQuitLibGUI
 
imp_CreateWindow dd szCreateWindow
imp_SetWindowSizeRequest dd szSetWindowSizeRequest
 
imp_PackControls dd szPackControls
imp_DestroyControl dd szDestroyControl
imp_SetControlSizeRequest dd szSetControlSizeRequest
imp_GetControlSizeX dd szGetControlSizeX
imp_GetControlSizeY dd szGetControlSizeY
imp_SetControlNewPosition dd szSetControlNewPosition
imp_GetControlPositionX dd szGetControlPositionX
imp_GetControlPositionY dd szGetControlPositionY
imp_SetFocuse dd szSetFocuse
imp_RedrawControl dd szRedrawControl
imp_SpecialRedrawControl dd szSpecialRedrawControl
 
imp_SetCallbackFunction dd szSetCallbackFunction
imp_BlockCallbackFunction dd szBlockCallbackFunction
imp_UnblockCallbackFunction dd szUnblockCallbackFunction
 
imp_SetIDL_Function dd szSetIDL_Function
imp_DestroyIDL_Function dd szDestroyIDL_Function
 
imp_SetTimerCallbackForFunction dd szSetTimerCallbackForFunction
imp_DestroyTimerCallbackForFunction dd szDestroyTimerCallbackForFunction
 
imp_SetCallbackFunctionForEvent dd szSetCallbackFunctionForEvent
imp_DestroyCallbackFunctionForEvent dd szDestroyCallbackFunctionForEvent
 
imp_CreateButton dd szCreateButton
imp_CreateButtonWithText dd szCreateButtonWithText
 
imp_CreateProgressBar dd szCreateProgressBar
imp_SetProgressBarPulse dd szSetProgressBarPulse
imp_ProgressBarSetText dd szProgressBarSetText
imp_ProgressBarGetText dd szProgressBarGetText
 
imp_CreateHorizontalScrollBar dd szCreateHorizontalScrollBar
imp_CreateVerticalScrollBar dd szCreateVerticalScrollBar
 
imp_CreateScrolledWindow dd szCreateScrolledWindow
imp_ScrolledWindowPackControls dd szScrolledWindowPackControls
 
imp_CreateImage dd szCreateImage
 
imp_CreateText dd szCreateText
imp_TextBackgroundOn dd szTextBackgroundOn
imp_TextBackgroundOff dd szTextBackgroundOff
 
imp_LoadFont dd szLoadFont
imp_FreeFont dd szFreeFont
 
dd 0
 
/programs/develop/sdk/trunk/libGUI/FASM
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property