45 lines
1.3 KiB
EmacsLisp
45 lines
1.3 KiB
EmacsLisp
;;; app/calendar/autoload.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###autoload
|
|
(defun =calendar ()
|
|
"Activate (or switch to) `calendar' in its workspace."
|
|
(interactive)
|
|
(unless (featurep! :feature workspaces)
|
|
(user-error ":feature workspaces is required, but disabled"))
|
|
(+workspace-switch "Calendar" t)
|
|
(if-let* ((buf (cl-find-if (lambda (it) (string-match-p "^\\*cfw" (buffer-name (window-buffer it))))
|
|
(doom-visible-windows))))
|
|
(select-window (get-buffer-window buf)) (call-interactively +calendar-open-calendar-function))
|
|
(+workspace/display))
|
|
|
|
;;;###autoload
|
|
(defun +calendar/quit ()
|
|
"TODO"
|
|
(interactive)
|
|
(+workspace/delete "Calendar"))
|
|
|
|
;;;###autoload
|
|
(defun +calendar/open-calendar ()
|
|
"TODO"
|
|
(interactive)
|
|
(cfw:open-calendar-buffer
|
|
;; :custom-map cfw:my-cal-map
|
|
:contents-sources
|
|
(list
|
|
(cfw:org-create-source (doom-color 'fg)) ; orgmode source
|
|
)))
|
|
|
|
;;;###autoload
|
|
(defun +calendar*cfw:render-button (title command &optional state)
|
|
"render-button
|
|
TITLE
|
|
COMMAND
|
|
STATE"
|
|
(let ((text (concat " " title " "))
|
|
(keymap (make-sparse-keymap)))
|
|
(cfw:rt text (if state 'cfw:face-toolbar-button-on
|
|
'cfw:face-toolbar-button-off))
|
|
(define-key keymap [mouse-1] command)
|
|
(cfw:tp text 'keymap keymap)
|
|
(cfw:tp text 'mouse-face 'highlight)
|
|
text))
|