58 lines
1 KiB
Text
58 lines
1 KiB
Text
|
|
;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
|
||
|
|
|