poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[COMMITTED] pk-settings: add a toolbar to the output of .set


From: Jose E. Marchesi
Subject: [COMMITTED] pk-settings: add a toolbar to the output of .set
Date: Mon, 17 Jan 2022 04:41:56 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

This commit adds a toolbar to the output of .set, to include [toggle]
buttons (terminal hyperlinks) for boolean settings.  The toolbar is
emitted only if the hyperserver is active.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

        * poke/pk-settings.pk (pk_settings_dump): Add [toggle] button for
        boolean settings.
---
 ChangeLog           |  5 +++++
 poke/pk-settings.pk | 15 ++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 3e168c20..ab77deaf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>
 
+       * poke/pk-settings.pk (pk_settings_dump): Add [toggle] button for
+       boolean settings.
+       
+2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+
        * poke/poke.c (initialize): Initialize the value of pk_hserver_p.
        * poke/poke.pk (pk_hserver_p): Define.
 
diff --git a/poke/pk-settings.pk b/poke/pk-settings.pk
index 264b3bc5..5dda3479 100644
--- a/poke/pk-settings.pk
+++ b/poke/pk-settings.pk
@@ -525,7 +525,7 @@ This setting is `no' by default.",
 
 fun pk_settings_dump = void:
   {
-    var table = Pk_Table { num_columns = 2 };
+    var table = Pk_Table { num_columns = pk_hserver_p ? 3 : 2 };
 
     for (setting in pk_settings.entries)
       {
@@ -540,6 +540,19 @@ fun pk_settings_dump = void:
         table.column (setting.name, "",
                       hserver_make_hyperlink ('e', ".help " + setting.name));
         table.column (setting_value);
+
+        /* Add a toolbar if the hyperserver is running.  */
+        if (pk_hserver_p)
+        {
+          if (setting.kind == POKE_SETTING_BOOL)
+            table.column ("[toggle]", "",
+                          hserver_make_hyperlink ('c', "",
+                                                  lambda void: {
+                                                   setting.setter 
(!(setting.getter as int));
+                                                  }));
+          else
+            table.column ("");
+        }
       }
 
     table.print_table;
-- 
2.11.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]