;;; cal-menu.el --- calendar functions for menu bar and popup menu support
-;; Copyright (C) 1994, 1995, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
;; Lara Rios <lrios@coewl.cen.uiuc.edu>
;;; Code:
-(defvar date)
(defvar displayed-month)
(defvar displayed-year)
-(defvar event)
-(eval-when-compile (require 'calendar))
+;; Don't require calendar because calendar requires us.
+;; (eval-when-compile (require 'calendar))
+(defvar calendar-mode-map)
(define-key calendar-mode-map [menu-bar edit] 'undefined)
(define-key calendar-mode-map [menu-bar search] 'undefined)
(define-key calendar-mode-map [menu-bar diary ent]
'("Insert Diary Entry" . insert-diary-entry))
(define-key calendar-mode-map [menu-bar diary all]
- '("Show All" . show-all-diary-entries))
+ '("Show All" . diary-show-all-entries))
(define-key calendar-mode-map [menu-bar diary mark]
'("Mark All" . mark-diary-entries))
(define-key calendar-mode-map [menu-bar diary view]
- '("Cursor Date" . view-diary-entries))
+ '("Cursor Date" . diary-view-entries))
(define-key calendar-mode-map [menu-bar diary view]
'("Other File" . view-other-diary-entries))
(condition-case nil
(if (eq major-mode 'calendar-mode)
(let ((l))
- (calendar-for-loop;; Show 11 years--5 before, 5 after year of
- ;; middle month
- i from (- displayed-year 5) to (+ displayed-year 5) do
- (setq l (cons (vector (format "For Year %s" i)
- (list (list 'lambda 'nil '(interactive)
- (list 'list-holidays i i)))
- t)
- l)))
+ ;; Show 11 years--5 before, 5 after year of middle month
+ (dotimes (i 11)
+ (let ((y (+ displayed-year -5 i)))
+ (push (vector (format "For Year %s" y)
+ (list (list 'lambda 'nil '(interactive)
+ (list 'list-holidays y y)))
+ t)
+ l)))
(setq l (cons ["Mark Holidays" mark-calendar-holidays t]
(cons ["Unmark Calendar" calendar-unmark t]
(cons "--" l))))
(calendar-date-string (calendar-current-date) t t))
. cal-menu-today-holidays))
(let ((title
- (let ((m1 displayed-month)
- (y1 displayed-year)
- (m2 displayed-month)
- (y2 displayed-year))
- (increment-calendar-month m1 y1 -1)
- (increment-calendar-month m2 y2 1)
- (if (= y1 y2)
+ (let ((my1 (calendar-increment-month -1))
+ (my2 (calendar-increment-month 1)))
+ (if (= (cdr my1) (cdr my2))
(format "%s-%s, %d"
- (calendar-month-name m1 'abbrev)
- (calendar-month-name m2 'abbrev)
- y2)
+ (calendar-month-name (car my1) 'abbrev)
+ (calendar-month-name (car my2) 'abbrev)
+ (cdr my2))
(format "%s, %d-%s, %d"
- (calendar-month-name m1 'abbrev)
- y1
- (calendar-month-name m2 'abbrev)
- y2)))))
+ (calendar-month-name (car my1) 'abbrev)
+ (cdr my1)
+ (calendar-month-name (car my2) 'abbrev)
+ (cdr my2))))))
(define-key calendar-mode-map [menu-bar Holidays 3-month]
`(,(format "For Window (%s)" title)
. list-calendar-holidays)))
(autoload 'check-calendar-holidays "holidays")
(autoload 'diary-list-entries "diary-lib")
-(defun calendar-mouse-holidays ()
+(defun calendar-mouse-holidays (&optional event)
"Pop up menu of holidays for mouse selected date."
- (interactive)
+ (interactive "e")
(let* ((date (calendar-event-to-date))
(l (mapcar 'list (check-calendar-holidays date)))
(selection
(if l l '("None")))))))
(and selection (call-interactively selection))))
-(defun calendar-mouse-view-diary-entries (&optional date diary)
+(defun calendar-mouse-view-diary-entries (&optional date diary event)
"Pop up menu of diary entries for mouse-selected date.
Use optional DATE and alternative file DIARY.
Any holidays are shown if `holidays-in-diary-buffer' is t."
- (interactive)
+ (interactive "i\ni\ne")
(let* ((date (if date date (calendar-event-to-date)))
(diary-file (if diary diary diary-file))
(diary-list-include-blanks nil)
(calendar-mouse-goto-date (calendar-event-to-date))
(cal-tex-cursor-year-landscape nil)))
-(defun calendar-mouse-print-dates ()
+(defun calendar-mouse-print-dates (&optional event)
"Pop up menu of equivalent dates to mouse selected date."
- (interactive)
- (let ((date (calendar-event-to-date))
+ (interactive "e")
+ (let* ((date (calendar-event-to-date))
(selection
(cal-menu-x-popup-menu
event
(list
(list (format "Chinese date: %s"
(calendar-chinese-date-string date))))
-; (list '("Chinese date (select to echo Chinese date)"
-; . calendar-mouse-chinese-date))
+ ;; (list '("Chinese date (select to echo Chinese date)"
+ ;; . calendar-mouse-chinese-date))
(let ((c (calendar-coptic-date-string date)))
(if (not (string-equal c ""))
(list (list (format "Coptic date: %s" c)))))
(let* ((selection
(cal-menu-x-popup-menu
event
- (list (calendar-date-string date t nil)
+ (list (calendar-date-string (calendar-event-to-date t) t nil)
(list
""
'("Daily (1 page)" . cal-tex-mouse-day)
(let* ((selection
(cal-menu-x-popup-menu
event
- (list (calendar-date-string date t nil)
+ (list (calendar-date-string (calendar-event-to-date t) t nil)
(list
""
'("Filofax Daily (one-day-per-page)" .
(define-key calendar-mouse-3-map [exit-calendar]
'("Exit calendar" . exit-calendar))
(define-key calendar-mouse-3-map [show-diary]
- '("Show diary" . show-all-diary-entries))
+ '("Show diary" . diary-show-all-entries))
(define-key calendar-mouse-3-map [lunar-phases]
'("Lunar phases" . calendar-phases-of-moon))
(define-key calendar-mouse-3-map [unmark]
(provide 'cal-menu)
-;;; arch-tag: aa81cf73-ce89-48a4-97ec-9ef861e87fe9
+;; arch-tag: aa81cf73-ce89-48a4-97ec-9ef861e87fe9
;;; cal-menu.el ends here