comparison lisp/calendar/cal-menu.el @ 93092:6c0dbddcd03a

(calendar-other-dates): Declare it, and removes the declarations it replaces. (calendar-mouse-print-dates): Use calendar-other-dates. (calendar-mouse-holidays): Re-use the title. (calendar-mouse-view-diary-entries): Use or. (calendar-mouse-chinese-date): Remove unused command. (cal-menu-load-hook): Mark as obsolete.
author Glenn Morris <rgm@gnu.org>
date Thu, 20 Mar 2008 04:46:51 +0000
parents b3d9a4a54d89
children e800589311a9
comparison
equal deleted inserted replaced
93091:b801762e0062 93092:6c0dbddcd03a
52 (declare-function calendar-set-mark "calendar" (arg)) 52 (declare-function calendar-set-mark "calendar" (arg))
53 (declare-function cal-tex-cursor-day "cal-tex" (&optional arg)) 53 (declare-function cal-tex-cursor-day "cal-tex" (&optional arg))
54 (declare-function cal-tex-cursor-week "cal-tex" (&optional arg)) 54 (declare-function cal-tex-cursor-week "cal-tex" (&optional arg))
55 (declare-function cal-tex-cursor-week2 "cal-tex" (&optional arg)) 55 (declare-function cal-tex-cursor-week2 "cal-tex" (&optional arg))
56 (declare-function cal-tex-cursor-week-iso "cal-tex" (&optional arg)) 56 (declare-function cal-tex-cursor-week-iso "cal-tex" (&optional arg))
57 (declare-function cal-tex-cursor-week-monday "cal-tex" (&optional arg)) 57 (declare-function cal-tex-cursor-week-monday "cal-tex" (&optional arg))
58 (declare-function cal-tex-cursor-filofax-daily "cal-tex" (&optional arg)) 58 (declare-function cal-tex-cursor-filofax-daily "cal-tex" (&optional arg))
59 (declare-function cal-tex-cursor-filofax-2week "cal-tex" (&optional arg)) 59 (declare-function cal-tex-cursor-filofax-2week "cal-tex" (&optional arg))
60 (declare-function cal-tex-cursor-filofax-week "cal-tex" (&optional arg)) 60 (declare-function cal-tex-cursor-filofax-week "cal-tex" (&optional arg))
61 (declare-function cal-tex-cursor-month "cal-tex" (arg)) 61 (declare-function cal-tex-cursor-month "cal-tex" (arg))
62 (declare-function cal-tex-cursor-month-landscape "cal-tex" (&optional arg)) 62 (declare-function cal-tex-cursor-month-landscape "cal-tex" (&optional arg))
63 (declare-function cal-tex-cursor-year "cal-tex" (&optional arg)) 63 (declare-function cal-tex-cursor-year "cal-tex" (&optional arg))
64 (declare-function cal-tex-cursor-filofax-year "cal-tex" (&optional arg)) 64 (declare-function cal-tex-cursor-filofax-year "cal-tex" (&optional arg))
65 (declare-function cal-tex-cursor-year-landscape "cal-tex" (&optional arg)) 65 (declare-function cal-tex-cursor-year-landscape "cal-tex" (&optional arg))
66 (declare-function calendar-day-of-year-string "calendar" (&optional date)) 66 (declare-function calendar-other-dates "calendar" (date))
67 (declare-function calendar-iso-date-string "cal-iso" (&optional date)) 67 (declare-function calendar-goto-date "cal-move" (date))
68 (declare-function calendar-julian-date-string "cal-julian" (&optional date))
69 (declare-function calendar-astro-date-string "cal-julian" (&optional date))
70 (declare-function calendar-absolute-from-gregorian "calendar" (date))
71 (declare-function calendar-hebrew-date-string "cal-hebrew" (&optional date))
72 (declare-function calendar-persian-date-string "cal-persia" (&optional date))
73 (declare-function calendar-bahai-date-string "cal-bahai" (&optional date))
74 (declare-function calendar-islamic-date-string "cal-islam" (&optional date))
75 (declare-function calendar-chinese-date-string "cal-china" (&optional date))
76 (declare-function calendar-coptic-date-string "cal-coptic" (&optional date))
77 (declare-function calendar-ethiopic-date-string "cal-coptic" (&optional date))
78 (declare-function calendar-french-date-string "cal-french" (&optional date))
79 (declare-function calendar-mayan-date-string "cal-mayan" (&optional date))
80 (declare-function calendar-print-chinese-date "cal-china" nil)
81 (declare-function calendar-goto-date "cal-move" (date))
82 68
83 (defconst cal-menu-moon-menu 69 (defconst cal-menu-moon-menu
84 '("Moon" 70 '("Moon"
85 ["Lunar Phases" calendar-phases-of-moon])) 71 ["Lunar Phases" calendar-phases-of-moon]))
86 72
260 "Pop up menu of holidays for mouse selected date. 246 "Pop up menu of holidays for mouse selected date.
261 EVENT is the event that invoked this command." 247 EVENT is the event that invoked this command."
262 (interactive "e") 248 (interactive "e")
263 (let* ((date (calendar-event-to-date)) 249 (let* ((date (calendar-event-to-date))
264 (l (mapcar 'list (calendar-check-holidays date))) 250 (l (mapcar 'list (calendar-check-holidays date)))
251 (title (format "Holidays for %s" (calendar-date-string date)))
265 (selection 252 (selection
266 (cal-menu-x-popup-menu 253 (cal-menu-x-popup-menu
267 event 254 event
268 (list 255 (list title
269 (format "Holidays for %s" (calendar-date-string date)) 256 (append (list title) (or l '("None")))))))
270 (append
271 (list (format "Holidays for %s" (calendar-date-string date)))
272 (if l l '("None")))))))
273 (and selection (call-interactively selection)))) 257 (and selection (call-interactively selection))))
274 258
275 (defvar holidays-in-diary-buffer) ; only called from calendar.el 259 (defvar holidays-in-diary-buffer) ; only called from calendar.el
276 260
277 (defun calendar-mouse-view-diary-entries (&optional date diary event) 261 (defun calendar-mouse-view-diary-entries (&optional date diary event)
279 Use optional DATE and alternative file DIARY. EVENT is the event 263 Use optional DATE and alternative file DIARY. EVENT is the event
280 that invoked this command. Shows holidays if `holidays-in-diary-buffer' 264 that invoked this command. Shows holidays if `holidays-in-diary-buffer'
281 is non-nil." 265 is non-nil."
282 (interactive "i\ni\ne") 266 (interactive "i\ni\ne")
283 (let* ((date (or date (calendar-event-to-date))) 267 (let* ((date (or date (calendar-event-to-date)))
284 (diary-file (if diary diary diary-file)) 268 (diary-file (or diary diary-file))
285 (diary-list-include-blanks nil) 269 (diary-list-include-blanks nil)
286 (diary-display-hook 'ignore) 270 (diary-display-hook 'ignore)
287 (diary-entries 271 (diary-entries
288 (mapcar (lambda (x) (split-string (cadr x) "\n")) 272 (mapcar (lambda (x) (split-string (cadr x) "\n"))
289 (diary-list-entries date 1 'list-only))) 273 (diary-list-entries date 1 'list-only)))
427 (defun calendar-mouse-print-dates (&optional event) 411 (defun calendar-mouse-print-dates (&optional event)
428 "Pop up menu of equivalent dates to mouse selected date. 412 "Pop up menu of equivalent dates to mouse selected date.
429 EVENT is the event that invoked this command." 413 EVENT is the event that invoked this command."
430 (interactive "e") 414 (interactive "e")
431 (let* ((date (calendar-event-to-date)) 415 (let* ((date (calendar-event-to-date))
432 (selection 416 (title (format "%s (Gregorian)" (calendar-date-string date)))
433 (cal-menu-x-popup-menu 417 (selection
434 event 418 (cal-menu-x-popup-menu
435 (list 419 event
436 (concat (calendar-date-string date) " (Gregorian)") 420 (list title
437 (append 421 (append (list title)
438 (list 422 (mapcar 'list (calendar-other-dates date)))))))
439 (concat (calendar-date-string date) " (Gregorian)") 423 (and selection (call-interactively selection))))
440 (list (calendar-day-of-year-string date))
441 (list (format "ISO date: %s" (calendar-iso-date-string date)))
442 (list (format "Julian date: %s"
443 (calendar-julian-date-string date)))
444 (list
445 (format "Astronomical (Julian) day number (at noon UTC): %s.0"
446 (calendar-astro-date-string date)))
447 (list
448 (format "Fixed (RD) date: %s"
449 (calendar-absolute-from-gregorian date)))
450 (list (format "Hebrew date (before sunset): %s"
451 (calendar-hebrew-date-string date)))
452 (list (format "Persian date: %s"
453 (calendar-persian-date-string date)))
454 (list (format "Baha'i date (before sunset): %s"
455 (calendar-bahai-date-string date))))
456 (let ((i (calendar-islamic-date-string date)))
457 (if (not (string-equal i ""))
458 (list (list (format "Islamic date (before sunset): %s" i)))))
459 (list
460 (list (format "Chinese date: %s"
461 (calendar-chinese-date-string date))))
462 ;; (list '("Chinese date (select to echo Chinese date)"
463 ;; . calendar-mouse-chinese-date))
464 (let ((c (calendar-coptic-date-string date)))
465 (if (not (string-equal c ""))
466 (list (list (format "Coptic date: %s" c)))))
467 (let ((e (calendar-ethiopic-date-string date)))
468 (if (not (string-equal e ""))
469 (list (list (format "Ethiopic date: %s" e)))))
470 (let ((f (calendar-french-date-string date)))
471 (if (not (string-equal f ""))
472 (list (list (format "French Revolutionary date: %s" f)))))
473 (list
474 (list
475 (format "Mayan date: %s"
476 (calendar-mayan-date-string date)))))))))
477 (and selection (call-interactively selection))))
478
479 (defun calendar-mouse-chinese-date ()
480 "Show Chinese equivalent for mouse-selected date."
481 (interactive)
482 (save-excursion
483 (calendar-mouse-goto-date (calendar-event-to-date))
484 (calendar-print-chinese-date)))
485 424
486 (defun cal-menu-set-date-title (menu) 425 (defun cal-menu-set-date-title (menu)
487 "Convert date of last event to title suitable for MENU." 426 "Convert date of last event to title suitable for MENU."
488 (easy-menu-filter-return 427 (easy-menu-filter-return
489 menu (calendar-date-string (calendar-event-to-date t) t nil))) 428 menu (calendar-date-string (calendar-event-to-date t) t nil)))
526 ["Unmark" calendar-unmark] 465 ["Unmark" calendar-unmark]
527 ["Lunar phases" calendar-phases-of-moon] 466 ["Lunar phases" calendar-phases-of-moon]
528 ["Show diary" diary-show-all-entries] 467 ["Show diary" diary-show-all-entries]
529 ["Exit calendar" exit-calendar])) 468 ["Exit calendar" exit-calendar]))
530 469
470 ;; Undocumented and probably useless.
471 (defvar cal-menu-load-hook nil
472 "Hook run on loading of the `cal-menu' package.")
473 (make-obsolete-variable 'cal-menu-load-hook
474 "it will be removed in future." "23.1")
475
531 (run-hooks 'cal-menu-load-hook) 476 (run-hooks 'cal-menu-load-hook)
532 477
533 (provide 'cal-menu) 478 (provide 'cal-menu)
534 479
535 ;; arch-tag: aa81cf73-ce89-48a4-97ec-9ef861e87fe9 480 ;; arch-tag: aa81cf73-ce89-48a4-97ec-9ef861e87fe9