mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
Capability to open files and panels in new browser windows
This commit is contained in:
parent
14a4f3630d
commit
2a2ef18c11
7 changed files with 161 additions and 83 deletions
|
|
@ -22,9 +22,13 @@
|
||||||
(unless (equal item "")
|
(unless (equal item "")
|
||||||
(cond ((and (> (length item) 5)
|
(cond ((and (> (length item) 5)
|
||||||
(equal (subseq item (- (length item) 5)) ".clog"))
|
(equal (subseq item (- (length item) 5)) ".clog"))
|
||||||
(on-new-builder-panel panel :open-file item))
|
(if (checkedp (open-file-ext panel))
|
||||||
|
(on-new-builder-panel-ext panel :open-file item)
|
||||||
|
(on-new-builder-panel panel :open-file item)))
|
||||||
(t
|
(t
|
||||||
(on-open-file panel :open-file item))))))
|
(if (checkedp (open-file-ext panel))
|
||||||
|
(on-open-file-ext panel :open-file item)
|
||||||
|
(on-open-file panel :open-file item)))))))
|
||||||
|
|
||||||
(defun on-delete-dir-win (panel)
|
(defun on-delete-dir-win (panel)
|
||||||
(let ((item (value (files panel))))
|
(let ((item (value (files panel))))
|
||||||
|
|
|
||||||
|
|
@ -332,7 +332,7 @@
|
||||||
(pprint n s)))))
|
(pprint n s)))))
|
||||||
(projects-load system))
|
(projects-load system))
|
||||||
|
|
||||||
(defun open-projects-component (target system list)
|
(defun open-projects-component (target panel system list)
|
||||||
(let ((disp (select-text target))
|
(let ((disp (select-text target))
|
||||||
(item (text-value target)))
|
(item (text-value target)))
|
||||||
(cond ((equal item "")
|
(cond ((equal item "")
|
||||||
|
|
@ -348,6 +348,10 @@
|
||||||
(add-select-option list path name))))
|
(add-select-option list path name))))
|
||||||
((and (> (length item) 5)
|
((and (> (length item) 5)
|
||||||
(equal (subseq item (- (length item) 5)) ".clog"))
|
(equal (subseq item (- (length item) 5)) ".clog"))
|
||||||
(on-new-builder-panel target :open-file item))
|
(if (checkedp (open-ext panel))
|
||||||
|
(on-new-builder-panel-ext target :open-file item)
|
||||||
|
(on-new-builder-panel target :open-file item)))
|
||||||
(t
|
(t
|
||||||
(on-open-file target :open-file item)))))
|
(if (checkedp (open-ext panel))
|
||||||
|
(on-open-file-ext target :open-file item)
|
||||||
|
(on-open-file target :open-file item))))))
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
(in-package :clog-tools)
|
(in-package :clog-tools)
|
||||||
|
|
||||||
(defparameter *start-project* nil)
|
(defparameter *start-project* nil)
|
||||||
|
(defparameter *start-dir* nil)
|
||||||
|
|
||||||
(defparameter *client-side-movement* nil)
|
(defparameter *client-side-movement* nil)
|
||||||
|
|
||||||
|
|
@ -1779,6 +1780,17 @@ It parse the string TEXT without using READ functions."
|
||||||
(setf (hiddenp (right-panel app)) (not bool))
|
(setf (hiddenp (right-panel app)) (not bool))
|
||||||
(setf (hiddenp (left-panel app)) (not bool))))
|
(setf (hiddenp (left-panel app)) (not bool))))
|
||||||
|
|
||||||
|
(defun on-new-builder-panel-ext (obj &key open-file popup)
|
||||||
|
(open-window (window (connection-body obj))
|
||||||
|
(if open-file
|
||||||
|
(format nil "/panel-editor?open-file=~A"
|
||||||
|
open-file)
|
||||||
|
"/source-editor")
|
||||||
|
:specs (if popup
|
||||||
|
"width=645,height-430"
|
||||||
|
"")
|
||||||
|
:name "_blank"))
|
||||||
|
|
||||||
(defun on-new-builder-panel (obj &key (open-file nil))
|
(defun on-new-builder-panel (obj &key (open-file nil))
|
||||||
"Open new panel"
|
"Open new panel"
|
||||||
(unless (and open-file
|
(unless (and open-file
|
||||||
|
|
@ -2599,12 +2611,24 @@ It parse the string TEXT without using READ functions."
|
||||||
|
|
||||||
(defun on-open-file-window (body)
|
(defun on-open-file-window (body)
|
||||||
(set-html-on-close body "Connection Lost")
|
(set-html-on-close body "Connection Lost")
|
||||||
(let ((app (make-instance 'builder-app-data)))
|
(let ((app (make-instance 'builder-app-data))
|
||||||
|
(file (form-data-item (form-get-data body) "open-file")))
|
||||||
(setf (connection-data-item body "builder-app-data") app)
|
(setf (connection-data-item body "builder-app-data") app)
|
||||||
(setf (title (html-document body)) "CLOG Builder - Source Editor")
|
(setf (title (html-document body)) "CLOG Builder - Source Editor")
|
||||||
(clog-gui-initialize body)
|
(clog-gui-initialize body)
|
||||||
(add-class body "w3-blue-grey")
|
(add-class body "w3-blue-grey")
|
||||||
(on-open-file body :maximized t)))
|
(on-open-file body :open-file file :maximized t)))
|
||||||
|
|
||||||
|
(defun on-open-file-ext (obj &key open-file popup)
|
||||||
|
(open-window (window (connection-body obj))
|
||||||
|
(if open-file
|
||||||
|
(format nil "/source-editor?open-file=~A"
|
||||||
|
open-file)
|
||||||
|
"/source-editor")
|
||||||
|
:specs (if popup
|
||||||
|
"width=645,height-430"
|
||||||
|
"")
|
||||||
|
:name "_blank"))
|
||||||
|
|
||||||
(defun on-open-file (obj &key open-file
|
(defun on-open-file (obj &key open-file
|
||||||
(title "New Source Editor")
|
(title "New Source Editor")
|
||||||
|
|
@ -2715,22 +2739,26 @@ It parse the string TEXT without using READ functions."
|
||||||
(clog-ace:resize ace)))
|
(clog-ace:resize ace)))
|
||||||
(flet ((open-file-name (fname)
|
(flet ((open-file-name (fname)
|
||||||
(window-focus win)
|
(window-focus win)
|
||||||
(when fname
|
(handler-case
|
||||||
(setf last-date (file-write-date fname))
|
(when fname
|
||||||
(setf file-name fname)
|
(setf last-date (file-write-date fname))
|
||||||
(setf (window-title win) fname)
|
(setf file-name fname)
|
||||||
(let ((c (or (read-file fname) "" :clog-obj obj)))
|
(setf (window-title win) fname)
|
||||||
(cond ((or (equalp (pathname-type fname) "lisp")
|
(let ((c (or (read-file fname) "" :clog-obj obj)))
|
||||||
(equalp (pathname-type fname) "asd"))
|
(cond ((or (equalp (pathname-type fname) "lisp")
|
||||||
(setf (clog-ace:mode ace) "ace/mode/lisp")
|
(equalp (pathname-type fname) "asd"))
|
||||||
(setf (text-value pac-line) (get-package-from-string c))
|
(setf (clog-ace:mode ace) "ace/mode/lisp")
|
||||||
(setf lisp-file t)
|
(setf (text-value pac-line) (get-package-from-string c))
|
||||||
(setf (current-editor-is-lisp app) (text-value pac-line)))
|
(setf lisp-file t)
|
||||||
(t
|
(setf (current-editor-is-lisp app) (text-value pac-line)))
|
||||||
(setf lisp-file nil)
|
(t
|
||||||
(setf (current-editor-is-lisp app) nil)
|
(setf lisp-file nil)
|
||||||
(setf (clog-ace:mode ace) (clog-ace:get-mode-from-extension ace fname))))
|
(setf (current-editor-is-lisp app) nil)
|
||||||
(setf (clog-ace:text-value ace) c)))))
|
(setf (clog-ace:mode ace) (clog-ace:get-mode-from-extension ace fname))))
|
||||||
|
(setf (clog-ace:text-value ace) c)))
|
||||||
|
(error (condition)
|
||||||
|
(alert-toast obj "File Error" (format nil "Error: ~A" condition))
|
||||||
|
(format t "Error: ~A" condition)))))
|
||||||
(when open-file
|
(when open-file
|
||||||
(open-file-name open-file))
|
(open-file-name open-file))
|
||||||
(set-on-click btn-load (lambda (obj)
|
(set-on-click btn-load (lambda (obj)
|
||||||
|
|
@ -2888,9 +2916,10 @@ It parse the string TEXT without using READ functions."
|
||||||
:title-class "w3-red"
|
:title-class "w3-red"
|
||||||
:text c)))))))
|
:text c)))))))
|
||||||
|
|
||||||
(defun on-dir-win (obj &key dir)
|
(defun on-dir-win (obj &key dir top left)
|
||||||
"Open dir window"
|
"Open dir window"
|
||||||
(let* ((win (create-gui-window obj :title "Directory Window"
|
(let* ((win (create-gui-window obj :title "Directory Window"
|
||||||
|
:top top :left left
|
||||||
:width 600 :height 400
|
:width 600 :height 400
|
||||||
:client-movement *client-side-movement*))
|
:client-movement *client-side-movement*))
|
||||||
(d (create-dir-view (window-content win))))
|
(d (create-dir-view (window-content win))))
|
||||||
|
|
@ -2898,10 +2927,14 @@ It parse the string TEXT without using READ functions."
|
||||||
(when dir
|
(when dir
|
||||||
(populate-dir-win d dir))))
|
(populate-dir-win d dir))))
|
||||||
|
|
||||||
|
(defun on-open-panel-window (body)
|
||||||
|
(on-new-builder body))
|
||||||
|
|
||||||
(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")
|
||||||
(let ((app (make-instance 'builder-app-data)))
|
(let ((app (make-instance 'builder-app-data))
|
||||||
|
(open-file (form-data-item (form-get-data body) "open-file")))
|
||||||
(setf (connection-data-item body "builder-app-data") app)
|
(setf (connection-data-item body "builder-app-data") app)
|
||||||
(setf (title (html-document body)) "CLOG Builder")
|
(setf (title (html-document body)) "CLOG Builder")
|
||||||
(clog-gui-initialize body :body-left-offset 10 :body-right-offset 10)
|
(clog-gui-initialize body :body-left-offset 10 :body-right-offset 10)
|
||||||
|
|
@ -2926,12 +2959,13 @@ It parse the string TEXT without using READ functions."
|
||||||
(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 "Project Window" :on-click 'on-show-project)
|
(create-gui-menu-item src :content "Project Window" :on-click 'on-show-project)
|
||||||
|
(create-gui-menu-item src :content "Directory Window" :on-click 'on-dir-win)
|
||||||
(create-gui-menu-item src :content "New Source Editor" :on-click 'on-open-file)
|
(create-gui-menu-item src :content "New Source Editor" :on-click 'on-open-file)
|
||||||
(create-gui-menu-item src :content "New Source Editor (New Tab)" :on-click
|
(create-gui-menu-item src :content "New Source Editor (New Tab)" :on-click
|
||||||
(lambda (obj)
|
(lambda (obj)
|
||||||
(declare (ignore obj))
|
(declare (ignore obj))
|
||||||
(open-window (window body) "/source-editor")))
|
(open-window (window body) "/source-editor")))
|
||||||
(Create-gui-menu-item src :content "New System Browser" :on-click 'on-new-sys-browser)
|
(create-gui-menu-item src :content "New System Browser" :on-click 'on-new-sys-browser)
|
||||||
(create-gui-menu-item src :content "New ASDF System Browser" :on-click 'on-new-asdf-browser)
|
(create-gui-menu-item src :content "New ASDF System Browser" :on-click 'on-new-asdf-browser)
|
||||||
(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 "Directory Window" :on-click 'on-dir-win)
|
(create-gui-menu-item tools :content "Directory Window" :on-click 'on-dir-win)
|
||||||
|
|
@ -2991,7 +3025,13 @@ It parse the string TEXT without using READ functions."
|
||||||
(on-show-control-properties-win body)
|
(on-show-control-properties-win body)
|
||||||
(on-show-control-list-win body)
|
(on-show-control-list-win body)
|
||||||
(on-show-copy-history-win body)
|
(on-show-copy-history-win body)
|
||||||
(on-show-project body :project *start-project*)
|
(cond
|
||||||
|
(open-file
|
||||||
|
(on-new-builder-panel body :open-file open-file))
|
||||||
|
(*start-dir*
|
||||||
|
(on-dir-win body :dir *start-dir* :top 60 :left 232))
|
||||||
|
(t
|
||||||
|
(on-show-project body :project *start-project*)))
|
||||||
(set-on-before-unload (window body) (lambda(obj)
|
(set-on-before-unload (window body) (lambda(obj)
|
||||||
(declare (ignore obj))
|
(declare (ignore obj))
|
||||||
;; return empty string to prevent nav off page
|
;; return empty string to prevent nav off page
|
||||||
|
|
@ -3006,15 +3046,17 @@ It parse the string TEXT without using READ functions."
|
||||||
clog-builder window.")
|
clog-builder window.")
|
||||||
|
|
||||||
(defun clog-builder (&key (port 8080) (start-browser t)
|
(defun clog-builder (&key (port 8080) (start-browser t)
|
||||||
app project static-root system clogframe)
|
app project dir static-root system clogframe)
|
||||||
"Start clog-builder. When PORT is 0 choose a random port. When APP is
|
"Start clog-builder. When PORT is 0 choose a random port. When APP is
|
||||||
t, shutdown applicatoin on termination of first window. If APP eq :BATCH then
|
t, shutdown applicatoin on termination of first window. If APP eq :BATCH then
|
||||||
must specific default project :PROJECT and it will be batch rerendered
|
must specific default project :PROJECT and it will be batch rerendered
|
||||||
and shutdown application. You can set the specific STATIC-ROOT or set SYSTEM
|
and shutdown application. You can set the specific STATIC-ROOT or set SYSTEM
|
||||||
to use that asdf system's static root."
|
to use that asdf system's static root. if DIR then the directory window
|
||||||
|
instead of the project window will be displayed."
|
||||||
(if project
|
(if project
|
||||||
(setf *start-project* (string-downcase (format nil "~A" project)))
|
(setf *start-project* (string-downcase (format nil "~A" project)))
|
||||||
(setf *start-project* nil))
|
(setf *start-project* nil))
|
||||||
|
(setf *start-dir* dir)
|
||||||
(when system
|
(when system
|
||||||
(setf static-root (merge-pathnames "./www/"
|
(setf static-root (merge-pathnames "./www/"
|
||||||
(asdf:system-source-directory system))))
|
(asdf:system-source-directory system))))
|
||||||
|
|
@ -3028,6 +3070,7 @@ to use that asdf system's static root."
|
||||||
(set-on-new-window 'on-new-db-admin :path "/dbadmin")
|
(set-on-new-window 'on-new-db-admin :path "/dbadmin")
|
||||||
(set-on-new-window 'on-attach-builder-page :path "/builder-page")
|
(set-on-new-window 'on-attach-builder-page :path "/builder-page")
|
||||||
(set-on-new-window 'on-convert-image :path "/image-to-data")
|
(set-on-new-window 'on-convert-image :path "/image-to-data")
|
||||||
|
(set-on-new-window 'on-open-panel-window :path "/panel-editor")
|
||||||
(set-on-new-window 'on-open-file-window :path "/source-editor")
|
(set-on-new-window 'on-open-file-window :path "/source-editor")
|
||||||
(when clogframe
|
(when clogframe
|
||||||
(uiop:run-program (list "./clogframe"
|
(uiop:run-program (list "./clogframe"
|
||||||
|
|
|
||||||
2
tools/dir-view.clog
vendored
2
tools/dir-view.clog
vendored
|
|
@ -1 +1 @@
|
||||||
<data id="I3872110834" data-in-package="clog-tools" data-custom-slots="(current-dir :accessor current-dir :initform ".")" data-clog-next-id="21" data-clog-title="dir-view"></data><select data-clog-type="listbox" size="4" data-clog-name="folders" style="box-sizing: content-box; position: absolute; left: 10px; top: 10px; right: 10px; height: 115px; overflow: auto;" data-on-create="(populate-dir-win panel "./")" data-on-mouse-double-click="(populate-dir-win panel (value target))"></select><div data-clog-type="div" data-clog-name="divider" style="box-sizing: content-box; position: absolute; left: 10px; height: 5px; background-attachment: scroll; background-color: rgb(0, 0, 0); right: 10px; top: 166px;"></div><select data-clog-type="listbox" size="4" data-clog-name="files" style="box-sizing: content-box; position: absolute; inset: 175px 10px 40px; overflow: auto;" data-on-double-click="(on-select-dir-win panel)"></select><input type="BUTTON" value="Open" data-clog-type="fbutton" data-clog-name="open-dir-button" style="box-sizing: content-box; position: absolute; left: 10px; top: 132px; width: 70px;" data-on-click="(populate-dir-win panel (value (folders panel)))"><input type="BUTTON" value="New" data-clog-type="fbutton" data-clog-name="new-dir-button" style="box-sizing: content-box; position: absolute; left: 100px; top: 132px; width: 70px;" data-on-click="(on-new-dir-dir-win panel)"><input type="BUTTON" value="Delete" data-clog-type="fbutton" data-clog-name="del-dir-button" style="box-sizing: content-box; position: absolute; left: 190px; top: 132px; width: 70px;" data-on-click="(on-delete-dir-dir-win panel (value (folders panel)))"><input type="BUTTON" value="Rename" data-clog-type="fbutton" data-clog-name="rename-dir-button" style="box-sizing: content-box; position: absolute; left: 280px; top: 132px; width: 70px;" data-on-click="(on-rename-dir-dir-win panel (value (folders panel)))"><input type="BUTTON" value="Open" data-clog-type="fbutton" data-clog-name="open-button" style="box-sizing: content-box; position: absolute; left: 10px; bottom: 5px; width: 70px;" data-on-click="(on-select-dir-win panel)"><input type="BUTTON" value="Delete" data-clog-type="fbutton" data-clog-name="del-button" style="box-sizing: content-box; position: absolute; left: 100px; bottom: 5px; width: 70px;" data-on-click="(on-delete-dir-win panel)"><input type="BUTTON" value="Rename" data-clog-type="fbutton" data-clog-name="rename-button" style="box-sizing: content-box; position: absolute; left: 190px; bottom: 5px; width: 70px;" data-on-click="(on-rename-dir-win panel)">
|
<data id="I3918824408" data-in-package="clog-tools" data-custom-slots="(current-dir :accessor current-dir :initform ".")" data-clog-next-id="23" data-clog-title="dir-view"></data><select data-clog-type="listbox" size="4" data-clog-name="folders" style="box-sizing: content-box; position: absolute; left: 10px; top: 10px; right: 10px; height: 115px; overflow: auto;" data-on-create="(populate-dir-win panel "./")" data-on-mouse-double-click="(populate-dir-win panel (value target))"></select><div data-clog-type="div" data-clog-name="divider" style="box-sizing: content-box; position: absolute; left: 10px; height: 5px; background-attachment: scroll; background-color: rgb(0, 0, 0); right: 10px; top: 166px;"></div><select data-clog-type="listbox" size="4" data-clog-name="files" style="box-sizing: content-box; position: absolute; inset: 175px 10px 40px; overflow: auto;" data-on-double-click="(on-select-dir-win panel)"></select><input type="BUTTON" value="Open" data-clog-type="fbutton" data-clog-name="open-dir-button" style="box-sizing: content-box; position: absolute; left: 10px; top: 132px; width: 70px;" data-on-click="(populate-dir-win panel (value (folders panel)))"><input type="BUTTON" value="New" data-clog-type="fbutton" data-clog-name="new-dir-button" style="box-sizing: content-box; position: absolute; left: 100px; top: 132px; width: 70px;" data-on-click="(on-new-dir-dir-win panel)"><input type="BUTTON" value="Delete" data-clog-type="fbutton" data-clog-name="del-dir-button" style="box-sizing: content-box; position: absolute; left: 190px; top: 132px; width: 70px;" data-on-click="(on-delete-dir-dir-win panel (value (folders panel)))"><input type="BUTTON" value="Rename" data-clog-type="fbutton" data-clog-name="rename-dir-button" style="box-sizing: content-box; position: absolute; left: 280px; top: 132px; width: 70px;" data-on-click="(on-rename-dir-dir-win panel (value (folders panel)))"><input type="BUTTON" value="Open" data-clog-type="fbutton" data-clog-name="open-button" style="box-sizing: content-box; position: absolute; left: 10px; bottom: 5px; width: 70px;" data-on-click="(on-select-dir-win panel)"><input type="BUTTON" value="Delete" data-clog-type="fbutton" data-clog-name="del-button" style="box-sizing: content-box; position: absolute; left: 100px; bottom: 5px; width: 70px;" data-on-click="(on-delete-dir-win panel)"><input type="BUTTON" value="Rename" data-clog-type="fbutton" data-clog-name="rename-button" style="box-sizing: content-box; position: absolute; left: 190px; bottom: 5px; width: 70px;" data-on-click="(on-rename-dir-win panel)"><input type="CHECKBOX" value="" data-clog-type="checkbox" data-clog-name="open-file-ext" style="box-sizing: content-box; position: absolute; bottom: 12px; left: 290px;"><label for="CLOGB3918824377" data-clog-type="label" data-clog-for="open-file-ext" data-clog-name="open-ext-label" style="box-sizing: content-box; position: absolute; left: 308px; bottom: 7px;">Open External</label>
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
;;;; CLOG Builder generated code - modify original clog file
|
;;;; CLOG Builder generated code - modify original .clog file and rerender
|
||||||
(in-package :clog-tools)
|
(in-package :clog-tools)
|
||||||
(defclass dir-view (clog:clog-panel)
|
(defclass dir-view (clog:clog-panel)
|
||||||
((rename-button :reader rename-button)
|
((open-ext-label :reader open-ext-label)
|
||||||
|
(open-file-ext :reader open-file-ext)
|
||||||
|
(rename-button :reader rename-button)
|
||||||
(del-button :reader del-button) (open-button :reader open-button)
|
(del-button :reader del-button) (open-button :reader open-button)
|
||||||
(rename-dir-button :reader rename-dir-button)
|
(rename-dir-button :reader rename-dir-button)
|
||||||
(del-dir-button :reader del-dir-button)
|
(del-dir-button :reader del-dir-button)
|
||||||
|
|
@ -14,43 +16,54 @@
|
||||||
(let ((panel
|
(let ((panel
|
||||||
(change-class
|
(change-class
|
||||||
(clog:create-div clog-obj :content
|
(clog:create-div clog-obj :content
|
||||||
"<select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 10px; top: 10px; right: 10px; height: 115px; overflow: auto;\" id=\"CLOGB3872109090\" data-clog-name=\"folders\"></select><div style=\"box-sizing: content-box; position: absolute; left: 10px; height: 5px; background-attachment: scroll; background-color: rgb(0, 0, 0); right: 10px; top: 166px;\" id=\"CLOGB3872109091\" data-clog-name=\"divider\"></div><select size=\"4\" style=\"box-sizing: content-box; position: absolute; inset: 175px 10px 40px; overflow: auto;\" id=\"CLOGB3872109092\" data-clog-name=\"files\"></select><input type=\"BUTTON\" value=\"Open\" style=\"box-sizing: content-box; position: absolute; left: 10px; top: 132px; width: 70px;\" id=\"CLOGB3872109093\" data-clog-name=\"open-dir-button\"><input type=\"BUTTON\" value=\"New\" style=\"box-sizing: content-box; position: absolute; left: 100px; top: 132px; width: 70px;\" id=\"CLOGB3872109094\" data-clog-name=\"new-dir-button\"><input type=\"BUTTON\" value=\"Delete\" style=\"box-sizing: content-box; position: absolute; left: 190px; top: 132px; width: 70px;\" id=\"CLOGB387210909815\" data-clog-name=\"del-dir-button\"><input type=\"BUTTON\" value=\"Rename\" style=\"box-sizing: content-box; position: absolute; left: 280px; top: 132px; width: 70px;\" id=\"CLOGB387211008317\" data-clog-name=\"rename-dir-button\"><input type=\"BUTTON\" value=\"Open\" style=\"box-sizing: content-box; position: absolute; left: 10px; bottom: 5px; width: 70px;\" id=\"CLOGB3872109095\" data-clog-name=\"open-button\"><input type=\"BUTTON\" value=\"Delete\" style=\"box-sizing: content-box; position: absolute; left: 100px; bottom: 5px; width: 70px;\" id=\"CLOGB3872109096\" data-clog-name=\"del-button\"><input type=\"BUTTON\" value=\"Rename\" style=\"box-sizing: content-box; position: absolute; left: 190px; bottom: 5px; width: 70px;\" id=\"CLOGB387211077419\" data-clog-name=\"rename-button\">"
|
"<select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 10px; top: 10px; right: 10px; height: 115px; overflow: auto;\" id=\"CLOGB3918824367\" data-clog-name=\"folders\"></select><div style=\"box-sizing: content-box; position: absolute; left: 10px; height: 5px; background-attachment: scroll; background-color: rgb(0, 0, 0); right: 10px; top: 166px;\" id=\"CLOGB3918824368\" data-clog-name=\"divider\"></div><select size=\"4\" style=\"box-sizing: content-box; position: absolute; inset: 175px 10px 40px; overflow: auto;\" id=\"CLOGB3918824369\" data-clog-name=\"files\"></select><input type=\"BUTTON\" value=\"Open\" style=\"box-sizing: content-box; position: absolute; left: 10px; top: 132px; width: 70px;\" id=\"CLOGB3918824370\" data-clog-name=\"open-dir-button\"><input type=\"BUTTON\" value=\"New\" style=\"box-sizing: content-box; position: absolute; left: 100px; top: 132px; width: 70px;\" id=\"CLOGB3918824371\" data-clog-name=\"new-dir-button\"><input type=\"BUTTON\" value=\"Delete\" style=\"box-sizing: content-box; position: absolute; left: 190px; top: 132px; width: 70px;\" id=\"CLOGB3918824372\" data-clog-name=\"del-dir-button\"><input type=\"BUTTON\" value=\"Rename\" style=\"box-sizing: content-box; position: absolute; left: 280px; top: 132px; width: 70px;\" id=\"CLOGB3918824373\" data-clog-name=\"rename-dir-button\"><input type=\"BUTTON\" value=\"Open\" style=\"box-sizing: content-box; position: absolute; left: 10px; bottom: 5px; width: 70px;\" id=\"CLOGB3918824374\" data-clog-name=\"open-button\"><input type=\"BUTTON\" value=\"Delete\" style=\"box-sizing: content-box; position: absolute; left: 100px; bottom: 5px; width: 70px;\" id=\"CLOGB3918824375\" data-clog-name=\"del-button\"><input type=\"BUTTON\" value=\"Rename\" style=\"box-sizing: content-box; position: absolute; left: 190px; bottom: 5px; width: 70px;\" id=\"CLOGB3918824376\" data-clog-name=\"rename-button\"><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; bottom: 12px; left: 290px;\" id=\"CLOGB3918824377\" data-clog-name=\"open-file-ext\"><label for=\"CLOGB3918824377\" style=\"box-sizing: content-box; position: absolute; left: 308px; bottom: 7px;\" id=\"CLOGB3918824378\" data-clog-name=\"open-ext-label\">Open External</label>"
|
||||||
:hidden hidden :class class :html-id html-id
|
:hidden hidden :class class :html-id html-id
|
||||||
:auto-place auto-place)
|
:auto-place auto-place)
|
||||||
'dir-view)))
|
'dir-view)))
|
||||||
|
(setf (slot-value panel 'open-ext-label)
|
||||||
|
(attach-as-child clog-obj "CLOGB3918824378" :clog-type
|
||||||
|
'clog:clog-label :new-id t))
|
||||||
|
(setf (slot-value panel 'open-file-ext)
|
||||||
|
(attach-as-child clog-obj "CLOGB3918824377" :clog-type
|
||||||
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'rename-button)
|
(setf (slot-value panel 'rename-button)
|
||||||
(attach-as-child clog-obj "CLOGB387211077419" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824376" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'del-button)
|
(setf (slot-value panel 'del-button)
|
||||||
(attach-as-child clog-obj "CLOGB3872109096" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824375" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'open-button)
|
(setf (slot-value panel 'open-button)
|
||||||
(attach-as-child clog-obj "CLOGB3872109095" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824374" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'rename-dir-button)
|
(setf (slot-value panel 'rename-dir-button)
|
||||||
(attach-as-child clog-obj "CLOGB387211008317" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824373" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'del-dir-button)
|
(setf (slot-value panel 'del-dir-button)
|
||||||
(attach-as-child clog-obj "CLOGB387210909815" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824372" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'new-dir-button)
|
(setf (slot-value panel 'new-dir-button)
|
||||||
(attach-as-child clog-obj "CLOGB3872109094" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824371" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'open-dir-button)
|
(setf (slot-value panel 'open-dir-button)
|
||||||
(attach-as-child clog-obj "CLOGB3872109093" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824370" :clog-type
|
||||||
'clog:clog-form-element :new-id t))
|
'clog:clog-form-element :new-id t))
|
||||||
(setf (slot-value panel 'files)
|
(setf (slot-value panel 'files)
|
||||||
(attach-as-child clog-obj "CLOGB3872109092" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824369" :clog-type
|
||||||
'clog:clog-select :new-id t))
|
'clog:clog-select :new-id t))
|
||||||
(setf (slot-value panel 'divider)
|
(setf (slot-value panel 'divider)
|
||||||
(attach-as-child clog-obj "CLOGB3872109091" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824368" :clog-type
|
||||||
'clog:clog-div :new-id t))
|
'clog:clog-div :new-id t))
|
||||||
(setf (slot-value panel 'folders)
|
(setf (slot-value panel 'folders)
|
||||||
(attach-as-child clog-obj "CLOGB3872109090" :clog-type
|
(attach-as-child clog-obj "CLOGB3918824367" :clog-type
|
||||||
'clog:clog-select :new-id t))
|
'clog:clog-select :new-id t))
|
||||||
(let ((target (folders panel)))
|
(let ((target (folders panel)))
|
||||||
(declare (ignorable target))
|
(declare (ignorable target))
|
||||||
(populate-dir-win panel "./"))
|
(populate-dir-win panel "./"))
|
||||||
|
(let ((target (open-ext-label panel)))
|
||||||
|
(declare (ignorable target))
|
||||||
|
(setf (attribute target "for")
|
||||||
|
(clog:js-query target
|
||||||
|
"$('[data-clog-name=\\'open-file-ext\\']').attr('id')")))
|
||||||
(clog:set-on-mouse-double-click (folders panel)
|
(clog:set-on-mouse-double-click (folders panel)
|
||||||
(lambda (target data)
|
(lambda (target data)
|
||||||
(declare (ignorable target data))
|
(declare (ignorable target data))
|
||||||
|
|
|
||||||
7
tools/projects.clog
vendored
7
tools/projects.clog
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
<data id="I3871066023" data-in-package="clog-tools" data-custom-slots="" data-clog-next-id="45" data-clog-title="projects"></data><label for="undefined" data-clog-type="label" data-clog-for="projects-list" data-clog-name="projects-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 6.99858px;">Current Project</label><select data-clog-type="dropdown" data-clog-name="project-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 35px; width: 386.54px; height: 22px; bottom: 309.041px;" data-on-create="(projects-setup panel)" data-on-change="(projects-populate panel)"></select><button data-clog-type="button" data-clog-name="edit-asd" style="box-sizing: content-box; position: absolute; left: 400px; top: 32px; height: 22px; width: 90px;" data-on-click="(let ((sel (text-value (project-list panel))))
|
<data id="I3918817107" data-in-package="clog-tools" data-custom-slots="" data-clog-next-id="47" data-clog-title="projects"></data><label for="undefined" data-clog-type="label" data-clog-for="projects-list" data-clog-name="projects-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 6.99858px;">Current Project</label><select data-clog-type="dropdown" data-clog-name="project-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 35px; width: 386.54px; height: 22px; bottom: 309.041px;" data-on-create="(projects-setup panel)" data-on-change="(projects-populate panel)"></select><button data-clog-type="button" data-clog-name="edit-asd" style="box-sizing: content-box; position: absolute; left: 400px; top: 32px; height: 22px; width: 90px;" data-on-click="(let ((sel (text-value (project-list panel))))
|
||||||
(on-open-file panel :open-file (asdf:system-source-file
|
(on-open-file panel :open-file (asdf:system-source-file
|
||||||
(asdf:find-system sel))))" title="Manualy projects .asd file">Edit .asd</button><label for="CLOGB386871257741" data-clog-type="label" data-clog-for="entry-point" data-clog-name="entry-point-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 69px;">Entry Point - package:function</label><input type="TEXT" value="" data-clog-type="input" data-clog-name="entry-point" style="box-sizing: content-box; position: absolute; left: 5px; top: 94px; width: 381px; height: 22.5px;" data-on-change="(projects-entry-point-change panel)"><button data-clog-type="button" data-clog-name="run-button" style="box-sizing: content-box; position: absolute; left: 400px; top: 92px; width: 90px; height: 22.5px;" data-on-click="(projects-run panel)">Run</button><button data-clog-type="button" data-clog-name="new-project-button" style="box-sizing: content-box; position: absolute; left: 520px; top: 8px; width: 100px; height: 22px;" data-on-click="(on-new-app-template panel)" title="Create new project from template">New</button><button data-clog-type="button" data-clog-name="unload-project-button" style="box-sizing: content-box; position: absolute; left: 520px; top: 43px; width: 100px; height: 22px; bottom: 309.041px;" data-on-click="(let ((sel (text-value (project-list panel))))
|
(asdf:find-system sel))))" title="Manualy projects .asd file">Edit .asd</button><label for="CLOGB386871257741" data-clog-type="label" data-clog-for="entry-point" data-clog-name="entry-point-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 69px;">Entry Point - package:function</label><input type="TEXT" value="" data-clog-type="input" data-clog-name="entry-point" style="box-sizing: content-box; position: absolute; left: 5px; top: 94px; width: 381px; height: 22.5px;" data-on-change="(projects-entry-point-change panel)"><button data-clog-type="button" data-clog-name="run-button" style="box-sizing: content-box; position: absolute; left: 400px; top: 92px; width: 90px; height: 22.5px;" data-on-click="(projects-run panel)">Run</button><button data-clog-type="button" data-clog-name="new-project-button" style="box-sizing: content-box; position: absolute; left: 520px; top: 8px; width: 100px; height: 22px;" data-on-click="(on-new-app-template panel)" title="Create new project from template">New</button><button data-clog-type="button" data-clog-name="unload-project-button" style="box-sizing: content-box; position: absolute; left: 520px; top: 43px; width: 100px; height: 22px; bottom: 309.041px;" data-on-click="(let ((sel (text-value (project-list panel))))
|
||||||
(unless (equal sel "None")
|
(unless (equal sel "None")
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
(projects-populate panel)))" title="ASDF unload project from Lisp image">Unload</button><button data-clog-type="button" data-clog-name="reload-project-button" style="box-sizing: content-box; position: absolute; left: 521px; top: 79px; width: 100px; height: 22px; bottom: 309.041px;" data-on-click="(let ((sel (text-value (project-list panel))))
|
(projects-populate panel)))" title="ASDF unload project from Lisp image">Unload</button><button data-clog-type="button" data-clog-name="reload-project-button" style="box-sizing: content-box; position: absolute; left: 521px; top: 79px; width: 100px; height: 22px; bottom: 309.041px;" data-on-click="(let ((sel (text-value (project-list panel))))
|
||||||
(unless (equal sel "None")
|
(unless (equal sel "None")
|
||||||
(asdf:clear-system sel)
|
(asdf:clear-system sel)
|
||||||
(projects-populate panel)))" title="ASDF reload project in to Lisp image">Reload</button><button data-clog-type="button" data-clog-name="rerender-button" style="box-sizing: content-box; position: absolute; left: 521px; top: 116px; width: 100px;" tabindex="0" title="Rerender all clog files to Lisp" data-on-click="(projects-rerender panel)">Rerender</button><div data-clog-type="div" data-clog-name="file-group" style="box-sizing: content-box; position: absolute; left: 0px; top: 69px; width: 512px; height: 10px;"><label for="CLOGB3868393710" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="runtime-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 65px;">Runtime System</label><label for="CLOGB3868452429" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="dbl-click1" style="box-sizing: content-box; position: absolute; left: 5px; top: 85px;">(double click to launch)</label><select data-clog-type="listbox" size="4" data-clog-name="runtime-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 115px; width: 260px; height: 196px;" data-on-double-click="(open-projects-component target (text-value (project-list panel)) target)"></select><button data-clog-type="button" data-clog-name="runtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 5px; top: 320px;" data-on-click="(let ((sys (text-value (project-list panel))))
|
(projects-populate panel)))" title="ASDF reload project in to Lisp image">Reload</button><button data-clog-type="button" data-clog-name="rerender-button" style="box-sizing: content-box; position: absolute; left: 521px; top: 116px; width: 100px;" tabindex="0" title="Rerender all clog files to Lisp" data-on-click="(projects-rerender panel)">Rerender</button><div data-clog-type="div" data-clog-name="file-group" style="box-sizing: content-box; position: absolute; left: 0px; top: 69px; width: 512px; height: 10px;"><label for="CLOGB3868393710" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="runtime-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 65px;">Runtime System</label><label for="CLOGB3868452429" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="dbl-click1" style="box-sizing: content-box; position: absolute; left: 5px; top: 85px;">(double click to launch)</label><select data-clog-type="listbox" size="4" data-clog-name="runtime-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 115px; width: 260px; height: 196px;" data-on-double-click="(open-projects-component target panel (text-value (project-list panel)) target)"></select><button data-clog-type="button" data-clog-name="runtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 5px; top: 320px;" data-on-click="(let ((sys (text-value (project-list panel))))
|
||||||
(projects-add-lisp panel sys))">Add .lisp</button><button data-clog-type="button" data-clog-name="runtime-delete" style="box-sizing: content-box; position: absolute; left: 93px; top: 320px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
|
(projects-add-lisp panel sys))">Add .lisp</button><button data-clog-type="button" data-clog-name="runtime-delete" style="box-sizing: content-box; position: absolute; left: 93px; top: 320px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
|
||||||
(file (select-text (runtime-list panel))))
|
(file (select-text (runtime-list panel))))
|
||||||
(unless (equal file "")
|
(unless (equal file "")
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
(projects-add-dep panel sys))">Add</button><button data-clog-type="button" data-clog-name="runtime-del-dep" style="box-sizing: content-box; position: absolute; left: 95px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
|
(projects-add-dep panel sys))">Add</button><button data-clog-type="button" data-clog-name="runtime-del-dep" style="box-sizing: content-box; position: absolute; left: 95px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
|
||||||
(file (select-text (runtime-deps panel))))
|
(file (select-text (runtime-deps panel))))
|
||||||
(remove-dep-from-defsystem sys file)
|
(remove-dep-from-defsystem sys file)
|
||||||
(projects-populate panel))">Remove</button><label for="CLOGB3868393704" data-clog-type="label" data-clog-for="designtime-list" data-clog-name="designtime-label" style="box-sizing: content-box; position: absolute; left: 290.007px; top: 65px;">Design Time System (/tools)</label><select data-clog-type="listbox" size="4" data-clog-name="designtime-list" style="box-sizing: content-box; position: absolute; left: 290px; top: 115px; width: 265px; height: 195.545px;" data-on-double-click="(open-projects-component target
|
(projects-populate panel))">Remove</button><label for="CLOGB3868393704" data-clog-type="label" data-clog-for="designtime-list" data-clog-name="designtime-label" style="box-sizing: content-box; position: absolute; left: 290.007px; top: 65px;">Design Time System (/tools)</label><select data-clog-type="listbox" size="4" data-clog-name="designtime-list" style="box-sizing: content-box; position: absolute; left: 290px; top: 115px; width: 265px; height: 195.545px;" data-on-double-click="(open-projects-component target panel
|
||||||
(format nil "~A/tools" (text-value (project-list panel))) target)"></select><button data-clog-type="button" data-clog-name="designtime-add-clog" style="box-sizing: content-box; position: absolute; left: 290px; top: 320px;" data-on-click="(let ((sys (text-value (project-list panel))))
|
(format nil "~A/tools" (text-value (project-list panel))) target)"></select><button data-clog-type="button" data-clog-name="designtime-add-clog" style="box-sizing: content-box; position: absolute; left: 290px; top: 320px;" data-on-click="(let ((sys (text-value (project-list panel))))
|
||||||
(projects-add-clog panel sys))
|
(projects-add-clog panel sys))
|
||||||
">Add .clog</button><button data-clog-type="button" data-clog-name="designtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 386px; top: 320px;" data-on-click="(let ((sys (format nil "~A/tools" (text-value (project-list panel)))))
|
">Add .clog</button><button data-clog-type="button" data-clog-name="designtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 386px; top: 320px;" data-on-click="(let ((sys (format nil "~A/tools" (text-value (project-list panel)))))
|
||||||
|
|
@ -37,3 +37,4 @@
|
||||||
(projects-populate panel))">Remove</button><button data-clog-type="button" data-clog-name="design-plugin" style="box-sizing: content-box; position: absolute; left: 470px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel))))
|
(projects-populate panel))">Remove</button><button data-clog-type="button" data-clog-name="design-plugin" style="box-sizing: content-box; position: absolute; left: 470px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel))))
|
||||||
(projects-add-plugin panel sys))
|
(projects-add-plugin panel sys))
|
||||||
">Plugin</button></div>
|
">Plugin</button></div>
|
||||||
|
<label for="CLOGB391881683346" data-clog-type="label" data-clog-for="open-ext" data-clog-name="ext-win-label" style="box-sizing: content-box; position: absolute; left: 531px; top: 151px;" class="">Open External</label><input type="CHECKBOX" value="" data-clog-type="checkbox" data-clog-name="open-ext" style="box-sizing: content-box; position: absolute; left: 513px; top: 155px;">
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue