(defparameter *key-new-file* "<Control-n>" "Create a new file")
(defparameter *key-open-file* "<Control-o>" "Open a new file")
+(defparameter *key-open-file-browser* "<Control-Alt-o>" "Open a new file, with browser GUI")
(defparameter *key-load-file* "<Control-l>" "Load a file from disc")
(defparameter *key-close-file* "<Control-w>" "Close a file")
(defparameter *key-save-file* "<Control-s>" "Save the current file")
(defparameter *key-save-as-file* "<Control-S>" "Save the current file under a new name")
+(defparameter *key-save-as-file-browser* "<Control-Alt-s>" "Save the current file under a new name, with browser GUI")
(defparameter *key-reload-file* "<Control-r>" "Re-load the current file")
(defparameter *key-compile-file* "<Control-k>" "Compile the current file")
(defparameter *key-next-file* "<Control-b>" "Cycle through open files")
(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)
(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
(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)))
(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)))