mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-05 18:20:36 -08:00
source editor
This commit is contained in:
parent
1cf6758abb
commit
ebecb2269e
2 changed files with 90 additions and 1 deletions
|
|
@ -52,7 +52,7 @@
|
||||||
var editor_~A = ace.edit('~A-body');
|
var editor_~A = ace.edit('~A-body');
|
||||||
editor_~A.setTheme('ace/theme/xcode');
|
editor_~A.setTheme('ace/theme/xcode');
|
||||||
editor_~A.session.setMode('ace/mode/lisp');
|
editor_~A.session.setMode('ace/mode/lisp');
|
||||||
editor_~A.session.setTabSize(3);
|
editor_~A.session.setTabSize(2);
|
||||||
editor_~A.focus();
|
editor_~A.focus();
|
||||||
</script>"
|
</script>"
|
||||||
(html-id win) (html-id win)
|
(html-id win) (html-id win)
|
||||||
|
|
|
||||||
|
|
@ -1991,6 +1991,93 @@ of controls and double click to select control."
|
||||||
:client-movement t)))
|
:client-movement t)))
|
||||||
(create-quick-start (window-content win))))
|
(create-quick-start (window-content win))))
|
||||||
|
|
||||||
|
(defun on-open-file (obj)
|
||||||
|
(let* ((win (create-gui-window obj :title "New Source Editor"
|
||||||
|
:top 40 :left 225
|
||||||
|
:width 645 :height 430
|
||||||
|
:client-movement t))
|
||||||
|
(box (create-panel-box-layout (window-content win)
|
||||||
|
:left-width 0 :right-width 0
|
||||||
|
:top-height 33 :bottom-height 0))
|
||||||
|
(tool-bar (create-div (top-panel box) :class "w3-center"))
|
||||||
|
(btn-class "w3-button w3-white w3-border w3-border-black w3-ripple")
|
||||||
|
(btn-copy (create-img tool-bar :alt-text "copy" :url-src img-btn-copy :class btn-class))
|
||||||
|
(btn-paste (create-img tool-bar :alt-text "paste" :url-src img-btn-paste :class btn-class))
|
||||||
|
(btn-cut (create-img tool-bar :alt-text "cut" :url-src img-btn-cut :class btn-class))
|
||||||
|
(btn-del (create-img tool-bar :alt-text "delete" :url-src img-btn-del :class btn-class))
|
||||||
|
(btn-undo (create-img tool-bar :alt-text "undo" :url-src img-btn-undo :class btn-class))
|
||||||
|
(btn-redo (create-img tool-bar :alt-text "redo" :url-src img-btn-redo :class btn-class))
|
||||||
|
(btn-test (create-img tool-bar :alt-text "eval" :url-src img-btn-test :class btn-class))
|
||||||
|
(btn-save (create-img tool-bar :alt-text "save" :url-src img-btn-save :class btn-class))
|
||||||
|
(btn-load (create-img tool-bar :alt-text "load" :url-src img-btn-load :class btn-class))
|
||||||
|
(content (center-panel box))
|
||||||
|
(ace (clog-ace:create-clog-ace-element content))
|
||||||
|
(file-name ""))
|
||||||
|
(setf (background-color tool-bar) :black)
|
||||||
|
(setf (advisory-title btn-paste) "paste")
|
||||||
|
(setf (advisory-title btn-cut) "cut")
|
||||||
|
(setf (advisory-title btn-del) "delete")
|
||||||
|
(setf (advisory-title btn-undo) "undo")
|
||||||
|
(setf (advisory-title btn-redo) "redo")
|
||||||
|
(setf (advisory-title btn-test) "evaluate")
|
||||||
|
(setf (advisory-title btn-save) "save")
|
||||||
|
(setf (advisory-title btn-load) "load")
|
||||||
|
(setf (height btn-copy) "12px")
|
||||||
|
(setf (height btn-paste) "12px")
|
||||||
|
(setf (height btn-cut) "12px")
|
||||||
|
(setf (height btn-del) "12px")
|
||||||
|
(setf (height btn-undo) "12px")
|
||||||
|
(setf (height btn-redo) "12px")
|
||||||
|
(setf (height btn-test) "12px")
|
||||||
|
(setf (height btn-save) "12px")
|
||||||
|
(setf (height btn-load) "12px")
|
||||||
|
(set-geometry ace :units "" :width "100%" :height "100%" :top 0 :bottom 0)
|
||||||
|
(clog-ace:resize ace)
|
||||||
|
(set-on-window-size-done win
|
||||||
|
(lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:resize ace)))
|
||||||
|
(set-on-click btn-load (lambda (obj)
|
||||||
|
(server-file-dialog obj "Load Source" (directory-namestring file-name)
|
||||||
|
(lambda (fname)
|
||||||
|
(window-focus win)
|
||||||
|
(when fname
|
||||||
|
(setf file-name fname)
|
||||||
|
(setf (window-title win) fname)
|
||||||
|
(setf (clog-ace:text-value ace)
|
||||||
|
(read-file fname)))))))
|
||||||
|
(set-on-click btn-save (lambda (obj)
|
||||||
|
(server-file-dialog obj "Save Source As.." file-name
|
||||||
|
(lambda (fname)
|
||||||
|
(window-focus win)
|
||||||
|
(when fname
|
||||||
|
(setf file-name fname)
|
||||||
|
(setf (window-title win) fname)
|
||||||
|
(write-file (text-value ace) fname)))
|
||||||
|
:initial-filename file-name)))
|
||||||
|
(set-on-click btn-copy (lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:clipboard-copy ace)))
|
||||||
|
(set-on-click btn-cut (lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:clipboard-cut ace)))
|
||||||
|
(set-on-click btn-paste (lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:clipboard-paste ace)))
|
||||||
|
(set-on-click btn-del (lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:execute-command ace "del")))
|
||||||
|
(set-on-click btn-undo (lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:execute-command ace "undo")))
|
||||||
|
(set-on-click btn-redo (lambda (obj)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(clog-ace:execute-command ace "redo")))
|
||||||
|
(set-on-click btn-test (lambda (obj)
|
||||||
|
(alert-dialog obj
|
||||||
|
(capture-eval (text-value ace))
|
||||||
|
:title "Eval Result")))))
|
||||||
|
|
||||||
(defun on-new-builder (body)
|
(defun on-new-builder (body)
|
||||||
"Launch instance of the CLOG Builder"
|
"Launch instance of the CLOG Builder"
|
||||||
(set-html-on-close body "Connection Lost")
|
(set-html-on-close body "Connection Lost")
|
||||||
|
|
@ -2007,6 +2094,7 @@ of controls and double click to select control."
|
||||||
(icon (create-gui-menu-icon menu :image-url img-clog-icon
|
(icon (create-gui-menu-icon menu :image-url img-clog-icon
|
||||||
:on-click #'on-help-about-builder))
|
:on-click #'on-help-about-builder))
|
||||||
(file (create-gui-menu-drop-down menu :content "Builder"))
|
(file (create-gui-menu-drop-down menu :content "Builder"))
|
||||||
|
(src (create-gui-menu-drop-down menu :content "Project"))
|
||||||
(tools (create-gui-menu-drop-down menu :content "Tools"))
|
(tools (create-gui-menu-drop-down menu :content "Tools"))
|
||||||
(win (create-gui-menu-drop-down menu :content "Window"))
|
(win (create-gui-menu-drop-down menu :content "Window"))
|
||||||
(help (create-gui-menu-drop-down menu :content "Help")))
|
(help (create-gui-menu-drop-down menu :content "Help")))
|
||||||
|
|
@ -2018,6 +2106,7 @@ of controls and double click to select control."
|
||||||
(create-gui-menu-item file :content "New CLOG-WEB Delay Launch" :on-click 'on-new-builder-launch-page)
|
(create-gui-menu-item file :content "New CLOG-WEB Delay Launch" :on-click 'on-new-builder-launch-page)
|
||||||
(create-gui-menu-item file :content "New Custom Boot Page" :on-click 'on-new-builder-custom)
|
(create-gui-menu-item file :content "New Custom Boot Page" :on-click 'on-new-builder-custom)
|
||||||
(create-gui-menu-item file :content "New Application Template" :on-click 'on-new-app-template)
|
(create-gui-menu-item file :content "New Application Template" :on-click 'on-new-app-template)
|
||||||
|
(create-gui-menu-item src :content "New Source Editor" :on-click 'on-open-file)
|
||||||
(create-gui-menu-item tools :content "Control Events" :on-click 'on-show-control-events-win)
|
(create-gui-menu-item tools :content "Control Events" :on-click 'on-show-control-events-win)
|
||||||
(create-gui-menu-item tools :content "Copy/Cut History" :on-click 'on-show-copy-history-win)
|
(create-gui-menu-item tools :content "Copy/Cut History" :on-click 'on-show-copy-history-win)
|
||||||
(create-gui-menu-item tools :content "Image to Data" :on-click 'on-image-to-data)
|
(create-gui-menu-item tools :content "Image to Data" :on-click 'on-image-to-data)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue