forked from KolibriOS/kolibrios
Added SDK for FASM and some assembler examples.
git-svn-id: svn://kolibrios.org@1180 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
115
programs/develop/libraries/libGUI/examples/src/ASM/BUTTON.ASM
Normal file
115
programs/develop/libraries/libGUI/examples/src/ASM/BUTTON.ASM
Normal file
@@ -0,0 +1,115 @@
|
||||
;Hello world example
|
||||
|
||||
use32
|
||||
db 'MENUET01'
|
||||
dd 1
|
||||
dd start
|
||||
dd i_end
|
||||
dd 0x1500
|
||||
dd 0x1500
|
||||
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],90,60
|
||||
|
||||
;set callback function for button close window
|
||||
SetCallbackFunction [window],DELETE_EVENT,callback_func_delete_window,NULL
|
||||
|
||||
;create control Button with text
|
||||
mov [bdata.x],5
|
||||
mov [bdata.y],5
|
||||
mov [bdata.wight],70
|
||||
mov [bdata.height],20
|
||||
CreateButtonWithText bdata,btext
|
||||
mov [button],eax
|
||||
|
||||
;set callback functions for button
|
||||
SetCallbackFunction [button],BUTTON_ENTER_EVENT,callback_func1,NULL
|
||||
SetCallbackFunction [button],BUTTON_PRESSED_EVENT,callback_func2,NULL
|
||||
SetCallbackFunction [button],BUTTON_RELEASED_EVENT,callback_func3,NULL
|
||||
SetCallbackFunction [button],BUTTON_LEAVE_EVENT,callback_func4,NULL
|
||||
|
||||
;pack control Text in window
|
||||
PackControls [window],[button]
|
||||
|
||||
;start libGUI main loop
|
||||
LibGUImain [window]
|
||||
|
||||
|
||||
;void callback_func_delete_window(header_t *control,void *data)
|
||||
callback_func_delete_window:
|
||||
|
||||
mov eax,[esp+4] ;control
|
||||
|
||||
QuitLibGUI eax
|
||||
|
||||
ret
|
||||
|
||||
;void callback_func1(header_t *control,void *data)
|
||||
callback_func1:
|
||||
;save esi befor use
|
||||
push esi
|
||||
mov esi,btext1
|
||||
call gui_ksys_debug_out_str
|
||||
pop esi
|
||||
|
||||
ret
|
||||
|
||||
;void callback_func2(header_t *control,void *data)
|
||||
callback_func2:
|
||||
;save esi befor use
|
||||
push esi
|
||||
mov esi,btext2
|
||||
call gui_ksys_debug_out_str
|
||||
pop esi
|
||||
|
||||
ret
|
||||
|
||||
;void callback_func3(header_t *control,void *data)
|
||||
callback_func3:
|
||||
;save esi befor use
|
||||
push esi
|
||||
mov esi,btext3
|
||||
call gui_ksys_debug_out_str
|
||||
pop esi
|
||||
|
||||
ret
|
||||
|
||||
;void callback_func4(header_t *control,void *data)
|
||||
callback_func4:
|
||||
;save esi befor use
|
||||
push esi
|
||||
mov esi,btext4
|
||||
call gui_ksys_debug_out_str
|
||||
pop esi
|
||||
|
||||
ret
|
||||
|
||||
align 4
|
||||
;----------------------data--------------------
|
||||
btext db 'Click Me!',0
|
||||
btext1 db 13,10,'entry in button',0
|
||||
btext2 db 13,10,'button pressed',0
|
||||
btext3 db 13,10,'button released',0
|
||||
btext4 db 13,10,'leave button',0
|
||||
|
||||
bdata gui_button_data_t
|
||||
window rd 1;parent_t *window
|
||||
button rd 1;gui_button_t *button
|
||||
|
||||
i_end:
|
Reference in New Issue
Block a user