-(defvar riece-menu-items
- `("Riece"
- ["Version" riece-version t]
- "----"
- ("Change Window Layout..." :filter riece-menu-create-layouts-menu)
- ["Toggle Freeze Channel Buffer"
- riece-command-toggle-freeze t]
- ["Toggle Freeze Channel Buffer Until Next Message"
- riece-command-toggle-own-freeze t]
- ["Toggle Display Channel Buffer"
- riece-command-toggle-channel-buffer-mode t]
- ["Toggle Display Channel List Buffer"
- riece-command-toggle-channel-list-buffer-mode t]
- ["Toggle Display User List Buffer"
- riece-command-toggle-user-list-buffer-mode t]
- "----"
- ["Join Channel" riece-command-join t]
- ["Change Nickname" riece-command-change-nickname t]
- ["Quit IRC" riece-command-quit t]
- "----"
- ("Channels" :filter riece-menu-create-channels-menu)
- ("Servers" :filter riece-menu-create-servers-menu))
- "Menu used in command mode.")
-
-(defun riece-menu-create-layouts-menu (menu)
+(require 'riece-options)
+(require 'riece-globals)
+(require 'riece-identity)
+(require 'riece-layout)
+(require 'riece-server)
+(require 'riece-mcat)
+
+(defcustom riece-menu-items
+ (list
+ "Riece"
+ (vector (riece-mcat "Next Channel") 'riece-command-next-channel
+ 'riece-current-channels)
+ (vector (riece-mcat "Previous Channel") 'riece-command-previous-channel
+ 'riece-current-channels)
+ "----"
+ (list (riece-mcat "Channels")
+ :filter 'riece-menu-create-channels-menu)
+ (list (riece-mcat "Servers")
+ :filter 'riece-menu-create-servers-menu)
+ "----"
+ (vector (riece-mcat "Redraw Layout") 'riece-command-configure-windows t)
+ (list (riece-mcat "Change Window Layout...")
+ :filter 'riece-menu-create-layouts-menu)
+ (list (riece-mcat "Toggle...")
+ (vector (riece-mcat "Freeze Channel Buffer")
+ 'riece-command-toggle-freeze t)
+ (vector (riece-mcat "Freeze Channel Buffer Until Next Message")
+ 'riece-command-toggle-own-freeze t)
+ (vector (riece-mcat "Display Channel Buffer")
+ 'riece-command-toggle-channel-buffer-mode t)
+ (vector (riece-mcat "Display Channel List Buffer")
+ 'riece-command-toggle-channel-list-buffer-mode t)
+ (vector (riece-mcat "Display User List Buffer")
+ 'riece-command-toggle-user-list-buffer-mode t))
+ "----"
+ (vector (riece-mcat "Join Channel") 'riece-command-join t)
+ (vector (riece-mcat "Part Channel") 'riece-command-part
+ 'riece-current-channel)
+ (vector (riece-mcat "Set Channel Topic") 'riece-command-topic
+ 'riece-current-channel)
+ (vector (riece-mcat "Kick User") 'riece-command-kick
+ 'riece-current-channel)
+ (vector (riece-mcat "Invite User") 'riece-command-invite
+ 'riece-current-channel)
+ "----"
+ (vector (riece-mcat "Manage Add-ons") 'riece-command-list-addons t)
+ (vector (riece-mcat "Version") 'riece-version t)
+ (vector (riece-mcat "Submit Bug Report") 'riece-submit-bug-report t)
+ "----"
+ (vector (riece-mcat "Mark As Away") 'riece-command-toggle-away t)
+ (vector (riece-mcat "Change Nickname") 'riece-command-change-nickname t)
+ (vector (riece-mcat "Quit IRC") 'riece-command-quit t))
+ "Menu used in command mode."
+ :type 'sexp
+ :group 'riece-options)
+
+(defconst riece-menu-description
+ "Setup Riece's command menus.")
+
+(defun riece-menu-create-layouts-menu (_menu)