diff --git a/README.md b/README.md index ed3d624..5789d1e 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,9 @@ * ENTER: Complete and remove the active task, or (if the input field is active) add a new task -* ESCAPE: Close the window (every action is autosaved) +* RIGHT/LEFT Switch between the task view and the notes view + +* ESCAPE: Close the window (tasks are autosaved, notes not yet) Your TODO list is saved under `~/.todo`. @@ -37,11 +39,22 @@ ln -s /path/to/cl-todo ~/.quicklisp/local-projects/cl-todo ``` -Then, you can open up a REPL and use `(ql:quickload :cl-todo)` to run. +Then, you can open up a REPL to run: + + +``` +(ql:quickload :cl-todo) +(cl-todo:launch) +``` + To produce a stand-alone executable, run `(asdf:make :cl-todo)`. ## Project TODO +* save text pane content to file + +* add tabs with multiple todo lists + * add task priorities * implement directory-specific todo files (with Nautilus plugin) diff --git a/README.md b/README.md index ed3d624..5789d1e 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,9 @@ * ENTER: Complete and remove the active task, or (if the input field is active) add a new task -* ESCAPE: Close the window (every action is autosaved) +* RIGHT/LEFT Switch between the task view and the notes view + +* ESCAPE: Close the window (tasks are autosaved, notes not yet) Your TODO list is saved under `~/.todo`. @@ -37,11 +39,22 @@ ln -s /path/to/cl-todo ~/.quicklisp/local-projects/cl-todo ``` -Then, you can open up a REPL and use `(ql:quickload :cl-todo)` to run. +Then, you can open up a REPL to run: + + +``` +(ql:quickload :cl-todo) +(cl-todo:launch) +``` + To produce a stand-alone executable, run `(asdf:make :cl-todo)`. ## Project TODO +* save text pane content to file + +* add tabs with multiple todo lists + * add task priorities * implement directory-specific todo files (with Nautilus plugin) diff --git a/cl-todo.lisp b/cl-todo.lisp index f876765..948e0a9 100644 --- a/cl-todo.lisp +++ b/cl-todo.lisp @@ -8,6 +8,8 @@ (in-package :cl-todo) +;;TODO change into a list of lists +;;TODO add text field at end of file (defvar *task-list* NIL) (defvar *runfile* (uiop:native-namestring "~/.todo")) diff --git a/README.md b/README.md index ed3d624..5789d1e 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,9 @@ * ENTER: Complete and remove the active task, or (if the input field is active) add a new task -* ESCAPE: Close the window (every action is autosaved) +* RIGHT/LEFT Switch between the task view and the notes view + +* ESCAPE: Close the window (tasks are autosaved, notes not yet) Your TODO list is saved under `~/.todo`. @@ -37,11 +39,22 @@ ln -s /path/to/cl-todo ~/.quicklisp/local-projects/cl-todo ``` -Then, you can open up a REPL and use `(ql:quickload :cl-todo)` to run. +Then, you can open up a REPL to run: + + +``` +(ql:quickload :cl-todo) +(cl-todo:launch) +``` + To produce a stand-alone executable, run `(asdf:make :cl-todo)`. ## Project TODO +* save text pane content to file + +* add tabs with multiple todo lists + * add task priorities * implement directory-specific todo files (with Nautilus plugin) diff --git a/cl-todo.lisp b/cl-todo.lisp index f876765..948e0a9 100644 --- a/cl-todo.lisp +++ b/cl-todo.lisp @@ -8,6 +8,8 @@ (in-package :cl-todo) +;;TODO change into a list of lists +;;TODO add text field at end of file (defvar *task-list* NIL) (defvar *runfile* (uiop:native-namestring "~/.todo")) diff --git a/gtk-ui.lisp b/gtk-ui.lisp index 795e138..0e229d6 100644 --- a/gtk-ui.lisp +++ b/gtk-ui.lisp @@ -16,13 +16,16 @@ :type :toplevel :title "cl-todo" :window-position :center - :default-width 300 - :default-height 200 + :default-width 320 + :default-height 350 :border-width 10)) - (input-field (make-instance 'gtk-entry)) (outer-box (make-instance 'gtk-box :orientation :vertical :spacing 5)) + (input-field (gtk-entry-new)) + (text-field (gtk-text-view-new)) + (text-scroller (gtk-scrolled-window-new)) + (tabs (gtk-notebook-new)) (scroller (make-instance 'gtk-scrolled-window :hscrollbar-policy :automatic :vscrollbar-policy :automatic)) @@ -42,7 +45,10 @@ (gtk-container-add outer-box input-field) (gtk-container-add scroller (create-task-widgets inner-box)) (gtk-box-pack-start outer-box scroller) - (gtk-container-add window outer-box) + (gtk-notebook-append-page tabs outer-box (gtk-label-new "Tasks")) + (gtk-container-add text-scroller text-field) + (gtk-notebook-append-page tabs text-scroller (gtk-label-new "Notes")) + (gtk-container-add window tabs) ;;ESCAPE quits the program (g-signal-connect window "key-press-event" #'(lambda (window event) @@ -50,7 +56,8 @@ (gtk-widget-destroy window) (leave-gtk-main)))) ;;show the window - (setf (gtk-window-decorated window) decorated) + ;;TODO make window decoration switchable + ;;(setf (gtk-window-decorated window) decorated) (gtk-widget-show-all window)))) (defun create-task-widgets (box)