Support re-insinuate.
[riece] / lisp / riece-menu.el
index 41cc01f..4023b7d 100644 (file)
@@ -1,4 +1,4 @@
-;;; riece-menu.el --- define command menu on menubar
+;;; riece-menu.el --- setup Riece's command menus
 ;; Copyright (C) 1998-2003 Daiki Ueno
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 ;; Copyright (C) 1998-2003 Daiki Ueno
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 
 ;;; Commentary:
 
 
 ;;; Commentary:
 
-;; To use, add the following line to your ~/.riece/init.el:
-;; (add-to-list 'riece-addons 'riece-menu)
+;; NOTE: This is an add-on module for Riece.
 
 ;;; Code:
 
 
 ;;; Code:
 
+(require 'riece-options)
+(require 'riece-globals)
+(require 'riece-identity)
+(require 'riece-layout)
+(require 'riece-server)
+
 (defvar riece-menu-items
   `("Riece"
     ["Version" riece-version t]
 (defvar riece-menu-items
   `("Riece"
     ["Version" riece-version t]
+    ["Submit Bug Report" riece-submit-bug-report t]
     "----"
     ("Change Window Layout..." :filter riece-menu-create-layouts-menu)
     ["Toggle Freeze Channel Buffer"
     "----"
     ("Change Window Layout..." :filter riece-menu-create-layouts-menu)
     ["Toggle Freeze Channel Buffer"
     "----"
     ["Join Channel" riece-command-join t]
     ["Change Nickname" riece-command-change-nickname t]
     "----"
     ["Join Channel" riece-command-join t]
     ["Change Nickname" riece-command-change-nickname t]
+    ["Mark As Away" riece-command-toggle-away t]
     ["Quit IRC" riece-command-quit t]
     "----"
     ["Quit IRC" riece-command-quit t]
     "----"
+    ["Part Channel" riece-command-part riece-current-channel]
+    ["Set Channel Topic" riece-command-topic riece-current-channel]
+    ["Kick User" riece-command-kick riece-current-channel]
+    ["Invite User" riece-command-invite riece-current-channel]
+    "----"
+    ["Next Channel" riece-command-next-channel riece-current-channels]
+    ["Previous Channel" riece-command-previous-channel riece-current-channels]
+    "----"
     ("Channels" :filter riece-menu-create-channels-menu)
     ("Servers" :filter riece-menu-create-servers-menu))
   "Menu used in command mode.")
 
     ("Channels" :filter riece-menu-create-channels-menu)
     ("Servers" :filter riece-menu-create-servers-menu))
   "Menu used in command mode.")
 
+(defconst riece-menu-description
+  "Setup Riece's command menus.")
+
 (defun riece-menu-create-layouts-menu (menu)
   (mapcar (lambda (entry)
            (vector (car entry) (list 'riece-command-change-layout (car entry))
 (defun riece-menu-create-layouts-menu (menu)
   (mapcar (lambda (entry)
            (vector (car entry) (list 'riece-command-change-layout (car entry))
                          (riece-server-opened (car entry)))))
          riece-server-alist))
 
                          (riece-server-opened (car entry)))))
          riece-server-alist))
 
+(defvar riece-command-mode-map)
+(defvar riece-menu)
+
+(defun riece-menu-command-mode-hook ()
+  (easy-menu-define riece-menu
+                   riece-command-mode-map
+                   "Riece Menu"
+                   riece-menu-items)
+  (easy-menu-add riece-menu))
+
 (defun riece-menu-insinuate ()
 (defun riece-menu-insinuate ()
+  (if riece-command-buffer
+      (with-current-buffer riece-command-buffer
+       (riece-menu-command-mode-hook)))
   (add-hook 'riece-command-mode-hook
   (add-hook 'riece-command-mode-hook
-           (lambda ()
-             (easy-menu-define riece-menu
-                               riece-command-mode-map
-                               "Riece Menu"
-                               riece-menu-items)
-             (easy-menu-add riece-menu))))
+           'riece-menu-command-mode-hook))
+
+(defun riece-menu-uninstall ()
+  (if riece-command-buffer
+      (with-current-buffer riece-command-buffer
+       (easy-menu-remove riece-menu)))
+  (remove-hook 'riece-command-mode-hook
+              'riece-menu-command-mode-hook))
 
 (provide 'riece-menu)
 
 
 (provide 'riece-menu)