Browse Source

Make some features of org-mouse optional.

New variable org-mouse-features.
Carsten Dominik 16 years ago
parent
commit
722cbe8f5f
3 changed files with 50 additions and 18 deletions
  1. 4 0
      lisp/ChangeLog
  2. 45 17
      lisp/org-mouse.el
  3. 1 1
      lisp/org.el

+ 4 - 0
lisp/ChangeLog

@@ -1,5 +1,9 @@
 2008-10-22  Carsten Dominik  <dominik@science.uva.nl>
 2008-10-22  Carsten Dominik  <dominik@science.uva.nl>
 
 
+	* org-mouse.el (org-mouse-features): New option.
+	(org-mode-hook): Turn on features depending on
+	`org-mouse-features'.
+
 	* org.el (org-insert-heading-respect-content): Force heading
 	* org.el (org-insert-heading-respect-content): Force heading
 	creation.
 	creation.
 	(org-insert-heading): keep the folding state of the heading before
 	(org-insert-heading): keep the folding state of the heading before

+ 45 - 17
lisp/org-mouse.el

@@ -166,6 +166,18 @@ indirectly, for example, through the agenda buffer.")
   :group 'org-mouse
   :group 'org-mouse
   :type 'string)
   :type 'string)
 
 
+(defcustom org-mouse-features
+  '(context-menu yank-link activate-stars activate-bullets activate-checkboxes)
+  "The features of org-mouse that should be activated.
+Changing this variable requires a restart of Emacs to get activated."
+  :group 'org-mouse
+  :type '(set :greedy t
+	      (const :tag "Mouse-3 shows context menu" context-menu)
+	      (const :tag "C-mouse-1 and mouse-3 move trees" move-tree)
+	      (const :tag "S-mouse-2 and drag-mouse-3 yank link" yank-link)
+	      (const :tag "Activate headline stars" activate-stars)
+	      (const :tag "Activate item bullets" activate-bullets)
+	      (const :tag "Activate checkboxes" activate-checkboxes)))	      
 
 
 (defun org-mouse-re-search-line (regexp)
 (defun org-mouse-re-search-line (regexp)
   "Search the current line for a given regular expression."
   "Search the current line for a given regular expression."
@@ -410,7 +422,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
 
 
 (defun org-mouse-tag-menu ()		;todo
 (defun org-mouse-tag-menu ()		;todo
   (append
   (append
-   (let ((tags (org-split-string (org-get-tags) ":")))
+   (let ((tags (org-get-tags)))
      (org-mouse-keyword-menu
      (org-mouse-keyword-menu
       (sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
       (sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
       `(lambda (tag)
       `(lambda (tag)
@@ -890,26 +902,42 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
   '(lambda ()
   '(lambda ()
      (setq org-mouse-context-menu-function 'org-mouse-context-menu)
      (setq org-mouse-context-menu-function 'org-mouse-context-menu)
 
 
-;     (define-key org-mouse-map [follow-link] 'mouse-face)
-     (define-key org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) nil)
-     (define-key org-mode-map [mouse-3] 'org-mouse-show-context-menu)
+     (when (memq 'context-menu org-mouse-features)
+       (define-key org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) nil)
+       (define-key org-mode-map [mouse-3] 'org-mouse-show-context-menu))
      (define-key org-mode-map [down-mouse-1] 'org-mouse-down-mouse)
      (define-key org-mode-map [down-mouse-1] 'org-mouse-down-mouse)
-     (define-key org-mouse-map [C-drag-mouse-1] 'org-mouse-move-tree)
-     (define-key org-mouse-map [C-down-mouse-1] 'org-mouse-move-tree-start)
-     (define-key org-mode-map [S-mouse-2] 'org-mouse-yank-link)
-     (define-key org-mode-map [drag-mouse-3] 'org-mouse-yank-link)
-     (define-key org-mouse-map [drag-mouse-3] 'org-mouse-move-tree)
-     (define-key org-mouse-map [down-mouse-3] 'org-mouse-move-tree-start)
-
-     (font-lock-add-keywords nil
+     (when (memq 'context-menu org-mouse-features)
+       (define-key org-mouse-map [C-drag-mouse-1] 'org-mouse-move-tree)
+       (define-key org-mouse-map [C-down-mouse-1] 'org-mouse-move-tree-start))
+     (when (memq 'yank-link org-mouse-features)
+       (define-key org-mode-map [S-mouse-2] 'org-mouse-yank-link)
+       (define-key org-mode-map [drag-mouse-3] 'org-mouse-yank-link))
+     (when (memq 'move-tree org-mouse-features)
+       (define-key org-mouse-map [drag-mouse-3] 'org-mouse-move-tree)
+       (define-key org-mouse-map [down-mouse-3] 'org-mouse-move-tree-start))
+
+     (when (memq 'activate-stars org-mouse-features)
+       (font-lock-add-keywords
+	nil
 	`((,outline-regexp
 	`((,outline-regexp
 	   0 `(face org-link mouse-face highlight keymap ,org-mouse-map)
 	   0 `(face org-link mouse-face highlight keymap ,org-mouse-map)
-	   'prepend)
-	  ("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +"
-	   (1 `(face org-link keymap ,org-mouse-map mouse-face highlight) 'prepend))
-	  ("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
+	   'prepend))
+ 	t))
+
+     (when (memq 'activate-bullets org-mouse-features)
+       (font-lock-add-keywords
+	nil
+	`(("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +"
+	   (1 `(face org-link keymap ,org-mouse-map mouse-face highlight)
+	      'prepend)))
+ 	t))
+
+     (when (memq 'activate-checkboxes org-mouse-features)
+       (font-lock-add-keywords
+	nil
+	`(("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
 	   (2 `(face bold keymap ,org-mouse-map mouse-face highlight) t)))
 	   (2 `(face bold keymap ,org-mouse-map mouse-face highlight) t)))
- 	t)
+ 	t))
 
 
      (defadvice org-open-at-point (around org-mouse-open-at-point activate)
      (defadvice org-open-at-point (around org-mouse-open-at-point activate)
        (let ((context (org-context)))
        (let ((context (org-context)))

+ 1 - 1
lisp/org.el

@@ -1722,7 +1722,7 @@ This has influence for the following applications:
 
 
 IMPORTANT:  This is a feature whose implementation is and likely will
 IMPORTANT:  This is a feature whose implementation is and likely will
 remain incomplete.  Really, it is only here because past midnight seems to
 remain incomplete.  Really, it is only here because past midnight seems to
-ne the favorite working time of John Wiegley :-)"
+be the favorite working time of John Wiegley :-)"
   :group 'org-time
   :group 'org-time
   :type 'number)
   :type 'number)