* riece.el (riece-dialogue-mode-map): Bind
[riece] / lisp / riece-options.el
index 371ada3..d694dba 100644 (file)
@@ -24,6 +24,7 @@
 
 ;;; Code:
 
+(require 'riece-version)
 (require 'riece-globals)
 
 ;; User modifiable variables.
 (defcustom riece-saved-forms
   '(riece-server-alist
     riece-channel-buffer-mode
-    riece-user-list-buffer-mode)
+    riece-others-buffer-mode
+    riece-user-list-buffer-mode
+    riece-channel-list-buffer-mode
+    riece-layout)
   "Variables saved after each session is completed."
   :type 'string
   :group 'riece-options)
   :type 'boolean
   :group 'riece-options)
 
+(defcustom riece-command-prefix "\C-c"
+  "Key sequence to be used as prefix for command mode key bindings."
+  :type 'string
+  :group 'riece-options)
+
 (defgroup riece-looks nil
   "Related to look and feel"
   :prefix "riece-"
   :group 'riece)
 
-(defcustom riece-truncate-partial-width-windows nil
-  "If non-nil, truncate lines in splitting windows such as others buffer."
-  :type 'boolean
-  :group 'riece-looks)
-
 (defcustom riece-use-full-window t
   "If non-nil, whole Emacs window is used to display dialogue."
   :type 'boolean
   :group 'riece-looks)
 
-(defcustom riece-tab-stop-list '(2 4 6 8 10 12 14 16)
-  "To override `tab-stop-list'."
-  :type '(repeat integer)
+(defcustom riece-window-center-line -2
+  "Line number of center point in window when scrolling.
+If nil, erases the entire frame and then redraws with point in the
+center of the window.  Negative means relative to bottom of window.
+See the document of the function `recenter'."
+  :type 'integer
   :group 'riece-looks)
 
-(defcustom riece-directory "~/.riece"
+(defcustom riece-directory (expand-file-name "~/.riece")
   "Where to look for data files."
   :type 'directory
   :group 'riece-options)
@@ -78,7 +85,7 @@
   "Where to look for add-on files."
   :type 'directory
   :group 'riece-options)
-  
+
 (defcustom riece-variables-file
   (expand-file-name "init" riece-directory)
   "Where to look for variables."
@@ -100,7 +107,21 @@ way is to put Riece variables on .emacs or file loaded from there."
   :type '(repeat (file :tag "Initialization File"))
   :group 'riece-options)
 
-(defcustom riece-addons '(riece-highlight riece-ctcp)
+(defcustom riece-addons '(riece-highlight
+                         riece-ctcp
+                         riece-guess
+                         riece-unread
+                         riece-history
+                         riece-url
+                         riece-button
+                         riece-menu
+                         riece-icon
+                         riece-ignore
+                         riece-log
+                         riece-toolbar
+                         riece-alias
+                         riece-ctlseq
+                         riece-keyword)
   "Add-ons insinuated into Riece."
   :type '(repeat symbol)
   :group 'riece-options)
@@ -148,7 +169,7 @@ way is to put Riece variables on .emacs or file loaded from there."
         (args (list spec)))
     (widget-put widget :args args)
     widget))
-  
+
 (defcustom riece-server-alist nil
   "An alist mapping server names to plist."
   :type 'riece-server-spec
@@ -159,14 +180,28 @@ way is to put Riece variables on .emacs or file loaded from there."
   :type 'string
   :group 'riece-server)
 
+(defcustom riece-protocol 'irc
+  "Protocol support."
+  :type 'symbol
+  :group 'riece-server)
+
+(defcustom riece-max-send-size 512
+  "Maximum size of messages to be sent at a time."
+  :type 'integer
+  :group 'riece-server)
+
+(defcustom riece-send-delay 2
+  "Duration of multiple send."
+  :type 'integer
+  :group 'riece-server)
+  
 (defcustom riece-default-password (getenv "IRCPASSWORD")
   "Your password."
   :type '(radio (string :tag "Password")
                (const :tag "No" nil))
   :group 'riece-server)
 
-(defcustom riece-username (or (getenv "IRCNAME")
-                             (user-real-login-name))
+(defcustom riece-username nil
   "Your user name."
   :type 'string
   :group 'riece-server)
@@ -177,6 +212,17 @@ way is to put Riece variables on .emacs or file loaded from there."
   :type 'string
   :group 'riece-server)
 
+(defcustom riece-startup-channel-list nil
+  "A list of channels to join automatically at startup."
+  :type '(repeat (choice (string :tag "Channel")
+                        (list (string :tag "Channel") (string :tag "Key"))))
+  :group 'riece-channel)
+
+(defcustom riece-startup-server-list nil
+  "A list of servers to connect automatically at startup."
+  :type '(repeat (string :tag "Server"))
+  :group 'riece-server)
+
 (defcustom riece-retry-with-new-nickname nil
   "When nickname has already been in use, grow-tail automatically."
   :type 'boolean
@@ -184,7 +230,13 @@ way is to put Riece variables on .emacs or file loaded from there."
 
 (defcustom riece-quit-timeout 10
   "Quit timeout when there is no response from server."
-  :type 'integer
+  :type '(radio (integer :tag "Seconds")
+               (const nil))
+  :group 'riece-server)
+
+(defcustom riece-default-open-connection-function #'open-network-stream
+  "Default function used for connecting to an IRC server."
+  :type 'function
   :group 'riece-server)
 
 (defcustom riece-channel-buffer-mode t
@@ -192,6 +244,11 @@ way is to put Riece variables on .emacs or file loaded from there."
   :type 'boolean
   :group 'riece-looks)
 
+(defcustom riece-others-buffer-mode t
+  "When non-nil, Riece will display an \"*Others*\" buffer."
+  :type 'boolean
+  :group 'riece-looks)
+
 (defcustom riece-user-list-buffer-mode t
   "When non-nil, Riece will display a nick list buffer."
   :type 'boolean
@@ -218,31 +275,48 @@ way is to put Riece variables on .emacs or file loaded from there."
   :type 'boolean
   :group 'riece-options)
 
-(defcustom riece-quit-message nil
+(defcustom riece-quit-message (riece-extended-version)
   "Default quit message."
-  :type '(radio (string :tag "Quit message"))
+  :type '(string :tag "Quit message")
+  :group 'riece-options)
+
+(defcustom riece-part-message nil
+  "Default part message."
+  :type '(choice (const :tag "No message" nil)
+                (string :tag "Part message"))
   :group 'riece-options)
 
-(defcustom riece-away-message nil
+(defcustom riece-away-message "Gone"
   "Default away message."
-  :type '(radio (string :tag "Away message"))
+  :type '(string :tag "Away message")
   :group 'riece-options)
 
-(defcustom riece-gather-channel-modes t
+(defcustom riece-gather-channel-modes nil
   "If non-nil, gather channel modes when we join a channel."
   :type 'boolean
   :group 'riece-options)
 
-(defcustom riece-connection-timeout 60
-  "Default timeout interval."
-  :type 'integer
-  :group 'riece-server)
-  
-(defcustom riece-buffer-dispose-function #'bury-buffer
+(defcustom riece-buffer-dispose-function #'kill-buffer
   "Function called after the buffer was disposed."
   :type 'function
   :group 'riece-options)
 
+(defcustom riece-shrink-buffer-idle-time-delay 5
+  "Number of idle seconds to wait before shrinking channel buffers."
+  :type 'integer
+  :group 'riece-options)
+
+(defcustom riece-max-buffer-size nil
+  "Maximum size of channel buffers."
+  :type '(radio (integer :tag "Number of characters")
+               (const nil))
+  :group 'riece-options)
+
+(defcustom riece-shrink-buffer-remove-chars (/ riece-max-send-size 2)
+  "Number of chars removed when shrinking channel buffers."
+  :type 'integer
+  :group 'riece-options)
+
 (defcustom riece-format-time-function #'current-time-string
   "Function to convert the specified time to the human readable form."
   :type 'function