Faire apparaître un bouton OK avec gtk
Introduction
De la même façon que l'on a fait apparaître 'hello world' dans une fenêtre graphique avec gtk, faisons apparaître un bouton à cliquer 'OK'.
Attention, ici l'action du clic n'est pas définie.
Créer le programme boutonOK.asm
section .data
window_title db 'Cliquez-moi', 0
button_label db 'OK', 0
section .text
global main
extern gtk_init, gtk_main, gtk_widget_show_all, gtk_window_new, gtk_window_set_title, gtk_button_new_with_label, gtk_container_add
main:
; Initialiser GTK
push rbp
mov rbp, rsp
sub rsp, 16
mov qword [rbp-16], 0 ; argc
mov qword [rbp-8], 0 ; argv
lea rdi, [rbp-16] ; argc
lea rsi, [rbp-8] ; argv
call gtk_init
; Créer la fenêtre
mov edi, 0 ; GTK_WINDOW_TOPLEVEL
call gtk_window_new
mov rbx, rax ; Sauvegarder le pointeur de fenêtre
; Définir le titre de la fenêtre
mov rdi, rbx
mov rsi, window_title
call gtk_window_set_title
; Créer le bouton
mov rdi, button_label
call gtk_button_new_with_label
mov r12, rax ; Sauvegarder le pointeur du bouton
; Ajouter le bouton à la fenêtre
mov rdi, rbx
mov rsi, r12
call gtk_container_add
; Afficher la fenêtre
mov rdi, rbx
call gtk_widget_show_all
; Exécuter la boucle principale de GTK
call gtk_main
; Nettoyer la pile
leave
ret
section .note.GNU-stack noalloc noexec nowrite progbits
Assembler
nasm -f elf64 boutonOK.asm -o boutonOK.o
Linker
gcc -o boutonOK boutonOK.o `pkg-config --cflags --libs gtk+-3.0`
Lancer le programme
./boutonOK
↑ Haut de page