From 38786d3790aa8f16da9f420ceae667c87a5c0f04 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Mon, 19 Dec 2022 20:57:23 +0000 Subject: [PATCH] add command line --- command.fnl | 17 +++++++++++++++++ dunlin.fnl | 5 ----- frame.fnl | 4 +++- 3 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 command.fnl diff --git a/command.fnl b/command.fnl new file mode 100644 index 0000000..1c87d88 --- /dev/null +++ b/command.fnl @@ -0,0 +1,17 @@ +(local { : Gtk } (require :lgi)) + +(local commands {}) + +(fn define-command [name function params] + (let [v {:name name :function function :params params}] + (tset commands name v))) + +(define-command "quit-browser" #(Gtk.main_quit) {}) + +(fn invoke [s] + (match (. commands s) + {:function f :params p} (f) + nil (print "undefined command " s))) + + +{ : invoke } diff --git a/dunlin.fnl b/dunlin.fnl index 4a323c4..6be809d 100644 --- a/dunlin.fnl +++ b/dunlin.fnl @@ -1,11 +1,6 @@ (local lgi (require :lgi)) (local { : Gtk : Gdk : WebKit2 : cairo } lgi) -(fn invoke-command [command] - ) - -(set _G.invoke-commad invoke-command) - (local frame (require :frame)) diff --git a/frame.fnl b/frame.fnl index ac8e045..16b0766 100644 --- a/frame.fnl +++ b/frame.fnl @@ -1,5 +1,7 @@ (local { : Gtk : Gdk : WebKit2 : cairo } (require :lgi)) +(local command (require :command)) + (fn new-frame [] (let [hpad 2 vpad 2 @@ -15,7 +17,7 @@ commander (Gtk.Entry { :on_activate (fn [event] - (_G.invoke-command event.text)) + (command.invoke event.text)) }) progress-bar (Gtk.ProgressBar { :orientation Gtk.Orientation.HORIZONTAL