From: Magnus H. <leg...@us...> - 2008-12-07 22:16:58
|
Update of /cvsroot/emacs-jabber/emacs-jabber In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv26632 Modified Files: jabber-menu.el Log Message: Revision: ma...@fr...--2005/emacs-jabber--cvs-head--0--patch-616 Creator: Magnus Henoch <ma...@fr...> Make Jabber menu autoloadable Index: jabber-menu.el =================================================================== RCS file: /cvsroot/emacs-jabber/emacs-jabber/jabber-menu.el,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- jabber-menu.el 23 Oct 2008 01:23:29 -0000 1.8 +++ jabber-menu.el 7 Dec 2008 21:45:13 -0000 1.9 @@ -21,9 +21,64 @@ (require 'jabber-util) (require 'jabber-autoloads) +(eval-when-compile (require 'cl)) -(defvar jabber-menu (make-sparse-keymap "jabber-menu")) +;;;###autoload +(defvar jabber-menu + (let ((map (make-sparse-keymap "jabber-menu"))) + (define-key map + [jabber-menu-connect] + '("Connect" . jabber-connect-all)) + + (define-key map + [jabber-menu-disconnect] + '("Disconnect" . jabber-disconnect)) + + (define-key map + [jabber-menu-roster] + '("Switch to roster" . jabber-switch-to-roster-buffer)) + + (define-key map + [jabber-menu-customize] + '("Customize" . jabber-customize)) + + (define-key map + [jabber-menu-info] + '("Help" . jabber-info)) + + (define-key map + [jabber-menu-status] + (cons "Set Status" (make-sparse-keymap "set-status"))) + + (define-key map + [jabber-menu-status jabber-menu-status-chat] + '("Chatty" . + (lambda () + (interactive) + (jabber-send-presence "chat" + (jabber-read-with-input-method "status message: " *jabber-current-status* '*jabber-status-history*) + *jabber-current-priority*)))) + (define-key map + [jabber-menu-status jabber-menu-status-dnd] + '("Do not Disturb" . + (lambda () + (interactive) + (jabber-send-presence "dnd" + (jabber-read-with-input-method "status message: " *jabber-current-status* '*jabber-status-history*) + *jabber-current-priority*)))) + (define-key map + [jabber-menu-status jabber-menu-status-xa] + '("Extended Away" . jabber-send-xa-presence)) + (define-key map + [jabber-menu-status jabber-menu-status-away] + '("Away" . jabber-send-away-presence)) + (define-key map + [jabber-menu-status jabber-menu-status-online] + '("Online" . jabber-send-default-presence)) + + map)) +;;;###autoload (defcustom jabber-display-menu 'maybe "Decide whether the \"Jabber\" menu is displayed in the menu bar. If t, always display. @@ -43,6 +98,7 @@ (force-mode-line-update)) (make-obsolete 'jabber-menu "set the variable `jabber-display-menu' instead.") +;;;###autoload (define-key-after global-map [menu-bar jabber-menu] (list 'menu-item "Jabber" jabber-menu @@ -51,59 +107,6 @@ (or jabber-account-list (bound-and-true-p jabber-connections)))))) -(define-key jabber-menu - [jabber-menu-connect] - '("Connect" . jabber-connect-all)) - -(define-key jabber-menu - [jabber-menu-disconnect] - '("Disconnect" . jabber-disconnect)) - -(define-key jabber-menu - [jabber-menu-roster] - '("Switch to roster" . jabber-switch-to-roster-buffer)) - -(define-key jabber-menu - [jabber-menu-customize] - '("Customize" . jabber-customize)) - -(define-key jabber-menu - [jabber-menu-info] - '("Help" . jabber-info)) - -(define-key jabber-menu - [jabber-menu-status] - (cons "Set Status" (make-sparse-keymap "set-status"))) - -(defmacro jabber-define-status-key (title show) - (list 'let (list ( list 'func (list 'make-symbol (list 'concat "jabber-send-presence-" show))) - (list 'menu-item (list 'make-symbol (list 'concat "jabber-menu-status-" show)))) - (list 'fset 'func `(lambda () (interactive) - (jabber-send-presence ,show - (jabber-read-with-input-method "status message: " *jabber-current-status* '*jabber-status-history*) - (format "%d" *jabber-current-priority*)))) - (list 'define-key 'jabber-menu - (list 'vector ''jabber-menu-status 'menu-item) - (list 'cons title 'func)))) - -;;;(dolist (presence jabber-presence-strings) -;;; (jabber-define-status-key (cdr presence) (car presence))) -;;(jabber-define-status-key "Online" "") - -(jabber-define-status-key "Chatty" "chat") -;;(jabber-define-status-key "Away" "away") -;;(jabber-define-status-key "Extended Away" "xa") -(jabber-define-status-key "Do not Disturb" "dnd") -(define-key jabber-menu - [jabber-menu-status jabber-menu-status-xa] - '("Extended Away" . jabber-send-xa-presence)) -(define-key jabber-menu - [jabber-menu-status jabber-menu-status-away] - '("Away" . jabber-send-away-presence)) -(define-key jabber-menu - [jabber-menu-status jabber-menu-status-online] - '("Online" . jabber-send-default-presence)) - (defvar jabber-jid-chat-menu nil "Menu items for chat menu") |