Hello world/Graphical: Difference between revisions
Content added Content deleted
mNo edit summary |
(→UASM 2.52: Added GTK) |
||
Line 4,018: | Line 4,018: | ||
println endp |
println endp |
||
end |
|||
</lang> |
|||
===={{libheader|GTK}}==== |
|||
<lang asm> |
|||
option casemap:none |
|||
gtk_main proto |
|||
gtk_main_quit proto |
|||
gtk_window_get_type proto |
|||
gtk_widget_show_all proto :qword |
|||
exit proto :dword |
|||
gtk_window_new proto :dword |
|||
printf proto :dword, :vararg |
|||
g_type_check_instance_cast proto :qword, :qword |
|||
gtk_init proto :qword, :qword |
|||
gtk_window_set_title proto :qword, :qword |
|||
g_signal_connect_data proto :qword, :qword, :qword, :dword, :dword, :dword |
|||
del_event proto |
|||
.data |
|||
tlt db "hello_gtk",0 |
|||
agc dq 1 |
|||
agv dq ags |
|||
ags dq tlt |
|||
dq 0 |
|||
.code |
|||
main proc |
|||
local hwnd:qword |
|||
local tmp:qword |
|||
invoke printf, CSTR("-> Starting GTK with argc:%i - argv ptr: 0x%x",10), agc, agv |
|||
lea rax, agc |
|||
lea rbx, agv |
|||
invoke gtk_init, rax, rbx |
|||
invoke gtk_window_new, 0 |
|||
mov hwnd, rax |
|||
invoke printf, CSTR("-> Main window handle: %d",10), hwnd |
|||
call gtk_window_get_type |
|||
mov tmp, rax |
|||
invoke printf, CSTR("-> Window type: %d",10), tmp |
|||
invoke g_type_check_instance_cast, hwnd, tmp |
|||
mov tmp, rax |
|||
invoke gtk_window_set_title, tmp, CSTR("Goodbye, World.") |
|||
invoke g_type_check_instance_cast, hwnd, 0x50 |
|||
mov tmp, rax |
|||
lea rax, del_event |
|||
invoke g_signal_connect_data, tmp, CSTR("delete-event"), rax, 0, 0, 0 |
|||
invoke gtk_widget_show_all, hwnd |
|||
call gtk_main |
|||
;invoke exit, 0 |
|||
ret |
|||
main endp |
|||
del_event proc |
|||
invoke printf, CSTR("-> Exit event called..",10) |
|||
call gtk_main_quit |
|||
ret |
|||
del_event endp |
|||
end |
end |
||
</lang> |
</lang> |