From 2c811527929e57fd6493b54f224dbc2de0cd84f2 Mon Sep 17 00:00:00 2001 From: zenith391 Date: Wed, 6 Nov 2019 17:15:40 +0100 Subject: [PATCH] Back to working --- .gitignore | 3 +++ gtk3/gtk3.v | 27 +++++++++++++++++++++++---- test.v | 13 ++++--------- 3 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..227ba79 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Executables files +test +test.exe diff --git a/gtk3/gtk3.v b/gtk3/gtk3.v index aafec98..e199f12 100644 --- a/gtk3/gtk3.v +++ b/gtk3/gtk3.v @@ -5,7 +5,7 @@ struct C.GtkWidget { } interface Widgeter { - set_size(int,int) + get_gtk_widget() &C.GtkWidget } interface Container { @@ -18,8 +18,6 @@ struct Window { struct Button { gtk_widget &C.GtkWidget - pub mut: - parent ?Container } fn init() { @@ -33,11 +31,23 @@ pub fn new_window() Window { return win } +pub fn new_button(label string) Button { + btn := Button{ + gtk_widget: C.gtk_button_new_with_label(label.str) + } + return btn +} + // This function is blocking! pub fn run() { C.gtk_main() } +// Window struct +pub fn (w Window) add(widget Widgeter) { + C.gtk_container_add(w.gtk_widget, widget.get_gtk_widget()) +} + pub fn (w Window) show() { C.gtk_widget_show_all(w.gtk_widget) } @@ -52,4 +62,13 @@ pub fn (w Window) center() { pub fn (w Window) set_title(title string) { C.gtk_window_set_title(w.gtk_widget, title.str) -} \ No newline at end of file +} + +pub fn (w Window) get_gtk_widget() &C.GtkWidget { + return w.gtk_widget +} + +// Button struct +pub fn (b Button) get_gtk_widget() &C.GtkWidget { + return b.gtk_widget +} diff --git a/test.v b/test.v index 5c3944e..f23e1c6 100644 --- a/test.v +++ b/test.v @@ -2,18 +2,13 @@ import gtk3 fn main() { window := gtk3.new_window() + btn := gtk3.new_button("Bouton") + window.set_size(640, 480) window.center() window.set_title("Bonjour Monde") + window.add(btn) window.show() - go run() - while true { - - } - println("test") -} - -fn run() { gtk3.run() -} \ No newline at end of file +}