From f189c84d1174713c36d3f2c1d172e1ad76776b47 Mon Sep 17 00:00:00 2001 From: s-ol Date: Fri, 24 Apr 2020 11:26:29 +0200 Subject: better logging interface --- bin/alv | 2 +- bin/alv-wx | 28 +++++++++++++++------------- 2 files changed, 16 insertions(+), 14 deletions(-) (limited to 'bin') diff --git a/bin/alv b/bin/alv index 6abe6c8..02aee7e 100755 --- a/bin/alv +++ b/bin/alv @@ -13,7 +13,7 @@ for a in *arg else table.insert arguments, a -Logger.init arguments.log +Logger\init arguments.log assert arguments[1], "no filename given" copilot = Copilot arguments[1] diff --git a/bin/alv-wx b/bin/alv-wx index 85d1875..7a61bbe 100755 --- a/bin/alv-wx +++ b/bin/alv-wx @@ -10,14 +10,18 @@ from wx STARTSTOP = 100 -class GUIStream - new: (@ctrl) => - - write: (...) => - message = table.concat {...}, '' - @ctrl\AppendText message - - flush: => +class GUILogger extends Logger + new: (level, @eval_ctrl, @run_ctrl) => + super level + + set_time: (time) => + @ctrl = switch time + when 'eval' then @eval_ctrl + when 'run' then @run_ctrl + else error "invalid time '#{time}'" + + put: (message) => + @ctrl\AppendText message .. '\n' class GUICopilot extends Copilot new: (...) => @@ -48,11 +52,9 @@ class GUICopilot extends Copilot splitter = wxSplitterWindow @frame, wx.wxID_ANY - eval, ctrl = @mkPanel splitter, 'eval-time messages' - @eval_stream = GUIStream ctrl + eval, @eval_ctrl = @mkPanel splitter, 'eval-time messages' - run, ctrl = @mkPanel splitter, 'run-time messages' - @run_stream = GUIStream ctrl + run, @run_ctrl = @mkPanel splitter, 'run-time messages' splitter\SetMinimumPaneSize 60 splitter\SplitHorizontally eval, run, 0 @@ -136,5 +138,5 @@ for a in *arg table.insert arguments, a copilot = GUICopilot arguments[1] -Logger.init arguments.log, copilot.eval_stream +GUILogger\init arguments.log, copilot.eval_ctrl, copilot.run_ctrl copilot.app\MainLoop! -- cgit v1.2.3