* liece-misc.el: Don't require pccl and broken.
[elisp/liece.git] / lisp / liece-menu.el
index dc80af4..69f04c3 100644 (file)
     ["CTCP PING" liece-menu-callback-ctcp-ping
      liece-nick-region-nicks]
     "----"
-    ["Set Channel Operator(s)" liece-menu-callback-mode+o
+    ["Set Channel Operator(s)" liece-menu-callback-set-operators
      liece-nick-region-nicks]
-    ["Set Channel Voice(s)" liece-menu-callback-mode+v
+    ["Set Channel Voice(s)" liece-menu-callback-set-voices
      liece-nick-region-nicks]
-    ["Unset Channel Operator(s)" liece-menu-callback-mode-o
+    ["Unset Channel Operator(s)" liece-menu-callback-unset-operators
      liece-nick-region-nicks]
-    ["Unset Channel Voice(s)" liece-menu-callback-mode-v
+    ["Unset Channel Voice(s)" liece-menu-callback-unset-voices
      liece-nick-region-nicks]
     "----"
     ["Kick" liece-menu-callback-kick
   
 (defvar liece-menu-ctcp-menu
   '("CTCP"
-    ["ACTION" liece-command-client-action
+    ["ACTION" liece-command-ctcp-action
      liece-current-channel]
-    ["VERSION" liece-command-client-version
+    ["VERSION" liece-command-ctcp-version
      liece-current-channel]
-    ["USERINFO" liece-command-client-userinfo
+    ["USERINFO" liece-command-ctcp-userinfo
      liece-current-channel]
-    ["HELP" liece-command-client-help
+    ["HELP" liece-command-ctcp-help
      liece-current-channel]
-    ["CLIENTINFO" liece-command-client-clientinfo
+    ["CLIENTINFO" liece-command-ctcp-clientinfo
      liece-current-channel]
-    ["PING" liece-command-client-ping
+    ["PING" liece-command-ctcp-ping
      liece-current-channel]
     "----"
-    ["Request X-Face" liece-command-client-x-face
+    ["Request X-Face" liece-command-ctcp-x-face
      liece-current-channel]
-    ["Set my X-Face" liece-command-client-x-face-from-xbm-file
+    ["Set my X-Face" liece-command-ctcp-x-face-from-xbm-file
      liece-current-channel]))
 
 (defvar liece-menu-channel-menu
       (or liece-current-channels liece-current-chat-partners)]
      ["Go to previous channel" liece-command-previous-channel
       (or liece-current-channels liece-current-chat-partners)]
+     ["Go to unread channel" liece-command-unread-channel
+      (or liece-current-channels liece-current-chat-partners)]
      ["Rotate left channels" liece-command-pop
       (or liece-current-channels liece-current-chat-partners)]
      ["Rotate right channels" liece-command-push
      ["Set topic of this channel" liece-command-topic
       liece-current-channel]
      "----"
+     ["Toggle freeze of this channel" liece-command-freeze
+      liece-current-channel]
+     ["Toggle own freeze of this channel" liece-command-own-freeze
+      liece-current-channel]
+     ["Toggle beep notice of this channel" liece-dialogue-beep
+      liece-current-channel]
+     "----"
      ["List channel" liece-command-list
       (liece-server-opened)]
      ["Display names of channel" liece-command-names
     ["Toggle nick buffer display state"
      liece-command-toggle-nick-buffer-mode t]
     "----"
-    ["Freeze buffer" liece-command-freeze t]
-    ["Own freeze buffer" liece-command-own-freeze t]
     ["Enter debug mode" liece-command-debug t]
     ["Quit IRC" liece-command-quit t]))
 
          (featurep 'menu-bar))
   (add-hook 'liece-command-mode-hook 'liece-command-define-menus)
   (add-hook 'liece-command-mode-hook 'liece-command-add-menus 'append)
-  (add-hook 'liece-url-add-hook 'liece-menu-add-url))
+  (add-hook 'liece-add-url-functions 'liece-menu-add-url))
 
 (defun liece-menu-define (menu)
   (eval (list 'easy-menu-define
 
 (defun liece-menu-add-url (url)
   (when (boundp 'liece-menu-url-menu-map)
-    (easy-menu-add-item
-     liece-menu-url-menu-map nil
-     (vector url (list 'liece-command-browse-url url) t))))
+    (with-current-buffer liece-command-buffer
+      (easy-menu-add-item
+       nil (list (car liece-menu-url-menu))
+       (vector url (list 'liece-command-browse-url url) t)))))
 
 ;;; @ menu callbacks
 ;;;
   (dolist (nick liece-nick-region-nicks)
     (liece-command-kick nick)))
 
-(defun liece-menu-callback-mode+o ()
+(defun liece-menu-callback-set-operators ()
   (interactive)
-  (dolist (oper liece-nick-region-opers)
+  (let ((opers (liece-channel-get-operators)))
     (setq liece-nick-region-nicks
-         (string-list-remove-ignore-case oper liece-nick-region-nicks)))
-  (liece-command-mode+o liece-nick-region-nicks))
+         (filter-elements nick liece-nick-region-nicks
+           (not (liece-nick-member nick opers)))))
+  (liece-command-set-operators liece-nick-region-nicks))
 
-(defun liece-menu-callback-mode+v ()
+(defun liece-menu-callback-set-voices ()
   (interactive)
-  (dolist (voice liece-nick-region-voices)
+  (let ((voices (liece-channel-get-voices)))
     (setq liece-nick-region-nicks
-         (string-list-remove-ignore-case voice liece-nick-region-nicks)))
-  (liece-command-mode+v liece-nick-region-nicks))
+         (filter-elements nick liece-nick-region-nicks
+           (not (liece-nick-member nick voices)))))
+  (liece-command-set-voices liece-nick-region-nicks))
 
-(defun liece-menu-callback-mode-o ()
+(defun liece-menu-callback-unset-operators ()
   (interactive)
-  (liece-command-mode-o liece-nick-region-opers))
+  (let ((opers (liece-channel-get-operators)))
+    (setq liece-nick-region-nicks
+         (filter-elements nick liece-nick-region-nicks
+           (liece-nick-member nick opers))))
+  (liece-command-set-operators liece-nick-region-nicks t))
 
-(defun liece-menu-callback-mode-v ()
+(defun liece-menu-callback-unset-voices ()
   (interactive)
-  (liece-command-mode-v liece-nick-region-voices))
+  (let ((voices (liece-channel-get-voices)))
+    (setq liece-nick-region-nicks
+         (filter-elements nick liece-nick-region-nicks
+           (liece-nick-member nick voices))))
+  (liece-command-set-voices liece-nick-region-nicks t))
 
 (provide 'liece-menu)