branch: externals/poke
commit 1de8a96a83fea6031a1ed787ad1510dd3af8f134
Author: Jose E. Marchesi <[email protected]>
Commit: Jose E. Marchesi <[email protected]>

    poke.el: more settings and frame layout
---
 poke.el | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/poke.el b/poke.el
index 55bbaf48ac..f73f334d5d 100644
--- a/poke.el
+++ b/poke.el
@@ -428,7 +428,7 @@ Commands:
       (poke-code-mode)
       (goto-char (point-min))
       (insert "/* This is a Poke evaluation code.\n"
-              "   Press C-cC-c to evaluate the current section. */\n")))
+              "   Press C-cC-c to evaluate. */\n")))
   (when (called-interactively-p)
     (switch-to-buffer-other-window "*poke-code*")))
 
@@ -1199,6 +1199,8 @@ at the top of the `poke-maps-stack' stack."
 
 (defvar poke-setting-pretty-print "no")
 (defvar poke-setting-omode "plain")
+(defvar poke-setting-omaps "no")
+(defvar poke-setting-obase 10)
 
 (defun poke-setting-set-pretty-print (val)
   (unless (member val '("yes" "no"))
@@ -1216,6 +1218,21 @@ at the top of the `poke-maps-stack' stack."
                             "VM_OMODE_TREE")
                           ");")))
 
+(defun poke-setting-set-obase (val)
+  (unless (member val '(2 8 10 16))
+    (error "Invalid setting for obase.
+Expected 2, 8, 10 or 16."))
+  (poke-code-send (concat "vm_set_obase ("
+                          (number-to-string val)
+                          ");")))
+
+(defun poke-setting-set-omaps (val)
+  (unless (member val '("yes" "no"))
+    (error "Invalid setting for omaps.  Expected \"yes\" or \"no\"."))
+  (poke-code-send (concat "vm_set_omaps ("
+                          (if (equal val "yes") "1" "0")
+                          ");")))
+
 (defun poke-init-settings ()
   (poke-setting-set-pretty-print poke-setting-pretty-print)
   (poke-setting-set-omode poke-setting-omode))
@@ -1233,6 +1250,14 @@ at the top of the `poke-maps-stack' stack."
                            (setq poke-setting-omode (widget-value widget)))
                  '(item "plain") '(item "tree"))
   (widget-insert "\n")
+  (widget-insert "Output base:\n")
+  (widget-create 'radio-button-choice
+                 :value poke-setting-obase
+                 :notify (lambda (widget &rest ignore)
+                           (poke-setting-set-obase (widget-value widget))
+                           (setq poke-setting-obase (widget-value widget)))
+                 '(item 2) '(item 8) '(item 10) '(item 16))
+  (widget-insert "\n")
   (widget-insert "Pretty-print:\n")
   (widget-create 'radio-button-choice
                  :value poke-setting-pretty-print
@@ -1241,6 +1266,14 @@ at the top of the `poke-maps-stack' stack."
                            (setq poke-setting-pretty-print (widget-value 
widget)))
                  '(item "yes") '(item "no"))
   (widget-insert "\n")
+  (widget-insert "Output offsets:\n")
+  (widget-create 'radio-button-choice
+                 :value poke-setting-omaps
+                 :notify (lambda (widget &rest ignore)
+                           (poke-setting-set-omaps (widget-value widget))
+                           (setq poke-setting-omaps (widget-value widget)))
+                 '(item "yes") '(item "no"))
+  (widget-insert "\n")
   (use-local-map widget-keymap)
   (widget-setup))
 
@@ -1421,5 +1454,22 @@ fun quit = void:
   (setq poke-repl-prompt poke-repl-default-prompt)
   (setq poke-ios-alist nil))
 
+;;;; window layouts
+
+(defun poke-frame-layout-1 ()
+  (setq display-buffer-alist
+        (append
+         `(("\\*poke-vu\\*" display-buffer-in-side-window
+            (side . top) (slot . 0)
+            (preserve-size . (nil . t)))
+           
("\\*\\(?:poke-edit\\|poke-code\\|poke-maps\\|poke-ios\\|poke-settings\\)\\*"
+            display-buffer-in-side-window
+            (side . right) (slot . 0) (window-width . fit-window-to-buffer)
+            (preserve-size . (t . nil)))
+           ("\\*poke-out\\*"
+            display-buffer-in-side-window
+            (side . bottom) (slot . -1) (preserve-size . (nil . t))))
+         display-buffer-alist)))
+
 (provide 'poke)
 ;;; poke.el ends here

Reply via email to