summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Dominik <carsten.dominik@gmail.com>2009-03-21 19:39:17 +0100
committerCarsten Dominik <carsten.dominik@gmail.com>2009-03-21 19:39:17 +0100
commit225e2111fe1bc4533ad637277dfd7ce0ac3a0cf7 (patch)
treea1f413df6a8f9f71f149e42ac525bf8dd5169bfb
parentd6e81d3150bd7f6d0f759a4d19a40544c70dba3b (diff)
downloadorg-mode-225e2111fe1bc4533ad637277dfd7ce0ac3a0cf7.tar.gz
Mouse: Create better TODO menu
The TODO keyword made with org-mouse.el now calls org-todo to change the keyword, so that the logging and note-taking works properly.
-rwxr-xr-xlisp/ChangeLog4
-rw-r--r--lisp/org-mouse.el22
2 files changed, 17 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e404577..881adc5 100755
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,9 @@
2009-03-21 Carsten Dominik <carsten.dominik@gmail.com>
+ * org-mouse.el (org-mouse-todo-menu): New function.
+ (org-mouse-todo-keywords): Function removed.
+ (org-mouse-context-menu): Use `org-mouse-todo-menu'.
+
* org-table.el (org-table-beginning-of-field)
(org-table-end-of-field): New commands
(org-table-previous-field, org-table-beginning-of-field): Better
diff --git a/lisp/org-mouse.el b/lisp/org-mouse.el
index 58637ae..3252bb4 100644
--- a/lisp/org-mouse.el
+++ b/lisp/org-mouse.el
@@ -422,7 +422,17 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
(loop for priority from ?A to org-lowest-priority
collect (char-to-string priority)))
+(defun org-mouse-todo-menu (state)
+ "Create the menu with TODO keywords."
+ (append
+ (let ((kwds org-todo-keywords-1))
+ (org-mouse-keyword-menu
+ kwds
+ `(lambda (kwd) (org-todo kwd))
+ (lambda (kwd) (equal state kwd))))))
+
(defun org-mouse-tag-menu () ;todo
+ "Create the tags menu"
(append
(let ((tags (org-get-tags)))
(org-mouse-keyword-menu
@@ -441,7 +451,6 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
["Set Tags ..." (org-set-tags) t])))
-
(defun org-mouse-set-tags (tags)
(save-excursion
;; remove existing tags first
@@ -621,9 +630,6 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
(set-match-data ',match)
(apply ',function rest)))))
-(defun org-mouse-todo-keywords ()
- (if (boundp 'org-todo-keywords-1) org-todo-keywords-1 org-todo-keywords))
-
(defun org-mouse-match-todo-keyword ()
(save-excursion
(org-back-to-heading)
@@ -691,10 +697,10 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
(org-mouse-remove-match-and-spaces))))]
)))
((and (org-mouse-looking-at "\\b\\w+" "a-zA-Z0-9_")
- (member (match-string 0) (org-mouse-todo-keywords)))
+ (member (match-string 0) org-todo-keywords-1))
(popup-menu
`(nil
- ,@(org-mouse-keyword-replace-menu (org-mouse-todo-keywords))
+ ,@(org-mouse-todo-menu (match-string 0))
"--"
["Check TODOs" org-show-todo-tree t]
["List all TODO keywords" org-todo-list t]
@@ -832,9 +838,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
"--"
,@(org-mouse-tag-menu))
("TODO Status"
- ,@(progn (org-mouse-match-todo-keyword)
- (org-mouse-keyword-replace-menu (org-mouse-todo-keywords)
- 1)))
+ ,@(org-mouse-todo-menu (org-get-todo-state)))
["Show Tags"
(with-current-buffer org-mouse-main-buffer (org-agenda-show-tags))
:visible (not org-mouse-direct)]