;;; org-mouse.el --- Better mouse support for org-mode
-;; Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation
;;
;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
-;; Version: 6.19a
+;; Version: 6.33x
;;
;; This file is part of GNU Emacs.
;;
(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
["Set Tags ..." (org-set-tags) t])))
-
(defun org-mouse-set-tags (tags)
(save-excursion
;; remove existing tags first
(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)
(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]
["Open" org-open-at-point t]
["Open in Emacs" (org-open-at-point t) t]
"--"
- ["Copy link" (kill-new (match-string 0))]
+ ["Copy link" (org-kill-new (match-string 0))]
["Cut link"
(progn
(kill-region (match-beginning 0) (match-end 0))
"--"
,@(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)]
(org-mouse-direct nil)
(org-mouse-main-buffer (current-buffer)))
(when (eq (with-current-buffer buffer major-mode) 'org-mode)
- (let ((endmarker (save-excursion
- (set-buffer buffer)
- (outline-end-of-subtree)
- (forward-char 1)
- (copy-marker (point)))))
+ (let ((endmarker (with-current-buffer buffer
+ (outline-end-of-subtree)
+ (forward-char 1)
+ (copy-marker (point)))))
(org-with-remote-undo buffer
(with-current-buffer buffer
(widen)
(add-hook 'org-agenda-mode-hook
'(lambda ()
(setq org-mouse-context-menu-function 'org-mouse-agenda-context-menu)
- (define-key org-agenda-keymap
+ (define-key org-agenda-mode-map
(if (featurep 'xemacs) [button3] [mouse-3])
'org-mouse-show-context-menu)
- (define-key org-agenda-keymap [down-mouse-3] 'org-mouse-move-tree-start)
- (define-key org-agenda-keymap [C-mouse-4] 'org-agenda-earlier)
- (define-key org-agenda-keymap [C-mouse-5] 'org-agenda-later)
- (define-key org-agenda-keymap [drag-mouse-3]
+ (define-key org-agenda-mode-map [down-mouse-3] 'org-mouse-move-tree-start)
+ (define-key org-agenda-mode-map (if (featurep 'xemacs) [(control mouse-4)] [C-mouse-4]) 'org-agenda-earlier)
+ (define-key org-agenda-mode-map (if (featurep 'xemacs) [(control mouse-5)] [C-mouse-5]) 'org-agenda-later)
+ (define-key org-agenda-mode-map [drag-mouse-3]
'(lambda (event) (interactive "e")
(case (org-mouse-get-gesture event)
(:left (org-agenda-earlier 1))