#!/bin/env perl6 use NativeCall; constant LIBGTK = 'libgtk-3.so'; constant GTK_WINDOW_TOPLEVEL = 0; sub gtk_init(int, Str) returns OpaquePointer is native(LIBGTK) is export { ... }; sub gtk_window_new(int) returns OpaquePointer is native(LIBGTK) is export { ... }; sub gtk_window_set_title(OpaquePointer, Str) is native(LIBGTK) is export { ... }; sub gtk_container_set_border_width(OpaquePointer, int) is native(LIBGTK) is export { ... }; sub gtk_widget_show(OpaquePointer) is native(LIBGTK) is export { ... }; sub gtk_main() is native(LIBGTK) is export { ... }; gtk_init(0, ""); my $window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title($window, "Test"); gtk_container_set_border_width($window, 200); gtk_widget_show($window); gtk_main(); exit(); #### /* Exit when the window is closed */ g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);