diff --git a/config.lisp b/config.lisp index 82e8a1b7abd253aba36a9454a6cbe47aea5a7f9d..0b3aa2237f3148b1f6fc9b454381fe588a96ef23 100644 --- a/config.lisp +++ b/config.lisp @@ -51,10 +51,12 @@ (defparameter *key-new-file* "" "Create a new file") (defparameter *key-open-file* "" "Open a new file") +(defparameter *key-open-file-browser* "" "Open a new file, with browser GUI") (defparameter *key-load-file* "" "Load a file from disc") (defparameter *key-close-file* "" "Close a file") (defparameter *key-save-file* "" "Save the current file") (defparameter *key-save-as-file* "" "Save the current file under a new name") +(defparameter *key-save-as-file-browser* "" "Save the current file under a new name, with browser GUI") (defparameter *key-reload-file* "" "Re-load the current file") (defparameter *key-compile-file* "" "Compile the current file") (defparameter *key-next-file* "" "Cycle through open files") diff --git a/main.lisp b/main.lisp index 0af3fa0d5625c0a5cf9647c8223089caac435571..dc9d8857bbeb470a147cd756ed2c8db0d081c2af 100644 --- a/main.lisp +++ b/main.lisp @@ -964,8 +964,10 @@ (list *key-new-file* 'on-new-file) (list *key-close-file* 'on-close-file) (list *key-open-file* 'on-open-file) + (list *key-open-file-browser* 'on-open-file-browser) (list *key-save-file* 'on-save-file) (list *key-save-as-file* 'on-save-as-file) + (list *key-save-as-file-browser* 'on-save-as-file-browser) (list *key-load-file* 'on-load-file) (list *key-find* 'on-search) (list *key-find-again* 'on-search-again) @@ -1024,9 +1026,11 @@ (with-menu mfile (action "New file" on-new-file) (action "Open file" on-open-file) + (action "Open file browser" on-open-file-browser) (separator) (action "Save file" on-save-file) (action "Save as file" on-save-as-file) + (action "Save as file browser" on-save-as-file-browser) (separator) (action "Exit" on-quit)) (with-menu medit @@ -1101,6 +1105,10 @@ (let ((filepath (get-filename *listener*))) (open-file filepath))) +(defun on-open-file-browser (&optional event) + (declare (ignore event)) + (open-file (ltk:get-open-file))) + (defun on-load-file (&optional event) (let* ((filepath (get-filename *listener* "load:")) (pathname (open-file filepath))) @@ -1133,6 +1141,11 @@ (path (get-filename *listener* "save:"))) (save-file file path))) +(defun on-save-as-file-browser (&optional event) + (save-file + (selected-buffer *buffer-manager*) + (ltk:get-save-file))) + (defun on-reload-file (&optional event) (let* ((buffer (selected-buffer *buffer-manager*)) (file-path (file-path buffer)))