;Hello world example
use32
db 'MENUET01'
dd 1
dd start
dd i_end
dd 0x10000
dd 0x10000
dd 0
dd 0
TRUE = 1
FALSE = 0
include 'libGUI.inc'
start:
;load libGUI labrari
push NULL ;use default system path to library
call LoadLibGUI
;create main window
CreateWindow
mov [window],eax
;change size of main window
SetWindowSizeRequest [window],270,282
;set callback function for button close window
SetCallbackFunction [window],DELETE_EVENT,callback_func_delete_window,NULL
;create control HorizontalScrollBar
mov [swdata.x],5
mov [swdata.y],5
mov [swdata.wight],250
mov [swdata.height],250
CreateScrolledWindow swdata
mov [scrolled_window],eax
;create buttons
mov ecx,10
next_j:
mov edx,10
next_i:
mov esi,edx ;i
mov edi,ecx ;j
dec esi ;i-1
dec edi ;j-1
imul esi,75 ;(i-1)*75
imul edi,25 ;(j-1)*25
add esi,10 ;10+(i-1)*75
add edi,10 ;10+(j-1)*25
mov [bdata.x],esi
mov [bdata.y],edi
mov [bdata.wight],70
mov [bdata.height],20
push ecx edx esi edi;save registers befor call
CreateButtonWithText bdata,btxt
mov [button],eax
;set callback functions for scroll bars
SetCallbackFunction [button],BUTTON_PRESSED_EVENT,callback_func,NULL
;pack control Button in ScrolledWindow
ScrolledWindowPackControls [scrolled_window],[button]
pop edi esi edx ecx
dec edx
jnz next_i
dec ecx
jnz next_j
;pack scrolled window in window
PackControls [window],[scrolled_window]
;start libGUI main loop
LibGUImain [window]
;void callback_func(header_t *control,void *data)
callback_func:
mov eax,[esp+4];pointer to control
push esi;save befor use
mov esi,message
call gui_ksys_debug_out_str
pop esi
ret
;void callback_func_delete_window(header_t *control,void *data)
callback_func_delete_window:
mov eax,[esp+4] ;control
QuitLibGUI eax
ret
align 4
;----------------data-----------------
btxt db 'button',0
message db 13,10,'pressed button',0
bdata gui_button_data_t
swdata gui_scrolled_window_data_t
window rd 1
scrolled_window rd 1
button rd 1
i_end: