Mercurial > emacs
comparison lisp/calendar/timeclock.el @ 37324:570c667b4d1c
(timeclock-completing-read): new function.
(timeclock-ask-for-project, timeclock-ask-for-reason): Call
`timeclock-completing-read', which works under XEmacs as well.
author | John Wiegley <johnw@newartisans.com> |
---|---|
date | Wed, 11 Apr 2001 15:50:01 +0000 |
parents | d30baa39a3b4 |
children | ed485de91fcf |
comparison
equal
deleted
inserted
replaced
37323:11b33211a908 | 37324:570c667b4d1c |
---|---|
538 ;;; Internal Functions: | 538 ;;; Internal Functions: |
539 | 539 |
540 (defvar timeclock-project-list nil) | 540 (defvar timeclock-project-list nil) |
541 (defvar timeclock-last-project nil) | 541 (defvar timeclock-last-project nil) |
542 | 542 |
543 (defun timeclock-completing-read (prompt alist &optional default) | |
544 "A version of `completing-read' that works on both Emacs and XEmacs." | |
545 (if (featurep 'xemacs) | |
546 (let ((str (completing-read prompt alist))) | |
547 (if (or (null str) (= (length str) 0)) | |
548 default | |
549 str)) | |
550 (completing-read prompt alist nil nil nil nil default))) | |
551 | |
543 (defun timeclock-ask-for-project () | 552 (defun timeclock-ask-for-project () |
544 "Ask the user for the project they are clocking into." | 553 "Ask the user for the project they are clocking into." |
545 (completing-read (format "Clock into which project (default \"%s\"): " | 554 (timeclock-completing-read |
546 (or timeclock-last-project | 555 (format "Clock into which project (default \"%s\"): " |
547 (car timeclock-project-list))) | 556 (or timeclock-last-project |
548 (mapcar 'list timeclock-project-list) | 557 (car timeclock-project-list))) |
549 nil nil nil nil (or timeclock-last-project | 558 (mapcar 'list timeclock-project-list) |
550 (car timeclock-project-list)))) | 559 (or timeclock-last-project |
560 (car timeclock-project-list)))) | |
551 | 561 |
552 (defvar timeclock-reason-list nil) | 562 (defvar timeclock-reason-list nil) |
553 | 563 |
554 (defun timeclock-ask-for-reason () | 564 (defun timeclock-ask-for-reason () |
555 "Ask the user for the reason they are clocking out." | 565 "Ask the user for the reason they are clocking out." |
556 (completing-read "Reason for clocking out: " | 566 (timeclock-completing-read "Reason for clocking out: " |
557 (mapcar 'list timeclock-reason-list))) | 567 (mapcar 'list timeclock-reason-list))) |
558 | 568 |
559 (defun timeclock-update-modeline () | 569 (defun timeclock-update-modeline () |
560 "Update the `timeclock-mode-string' displayed in the modeline." | 570 "Update the `timeclock-mode-string' displayed in the modeline." |
561 (interactive) | 571 (interactive) |
562 (let* ((remainder (timeclock-workday-remaining)) | 572 (let* ((remainder (timeclock-workday-remaining)) |