;----------------------------------------------------------------------- ; 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