58 lines
1.0 KiB
Plaintext
58 lines
1.0 KiB
Plaintext
;GTK imports and defines etc.
|
|
%define GTK_WINDOW_TOPLEVEL 0
|
|
|
|
extern gtk_init
|
|
extern gtk_window_new
|
|
extern gtk_widget_show
|
|
extern gtk_signal_connect
|
|
extern gtk_main
|
|
extern g_print
|
|
extern gtk_main_quit
|
|
|
|
bits 32
|
|
|
|
section .text
|
|
global _main
|
|
|
|
;exit signal
|
|
sig_main_exit:
|
|
push exit_sig_msg
|
|
call g_print
|
|
add esp, 4
|
|
call gtk_main_quit
|
|
ret
|
|
|
|
_main:
|
|
mov ebp, esp
|
|
sub esp, 8
|
|
push argv
|
|
push argc
|
|
call gtk_init
|
|
add esp, 8 ;stack alignment.
|
|
push GTK_WINDOW_TOPLEVEL
|
|
call gtk_window_new
|
|
add esp, 4
|
|
mov [ebp-4], eax ;ebp-4 now holds our GTKWindow pointer.
|
|
push 0
|
|
push sig_main_exit
|
|
push gtk_delete_event
|
|
push dword [ebp-4]
|
|
call gtk_signal_connect
|
|
add esp, 16
|
|
push dword [ebp-4]
|
|
call gtk_widget_show
|
|
add esp, 4
|
|
call gtk_main
|
|
|
|
section .data
|
|
;sudo argv
|
|
argc dd 1
|
|
argv dd args
|
|
args dd title
|
|
dd 0
|
|
|
|
title db "GTK Window",0
|
|
gtk_delete_event db 'delete_event',0
|
|
exit_sig_msg db "-> Rage quitting..",10,0
|
|
|