Update of /project/beirc/cvsroot/beirc
In directory clnet:/tmp/cvs-serv26685
Modified Files:
application.lisp
Log Message:
Added *auto-connect-list*, which initially defaults to NIL. As the
name suggests, beirc will attempt to connect to these servers
automagically on startup.
Auto-connect is achieved by :after method on adopt-frame added in this
file. Idea courtesy of CLIM Guided Tour article.
--- /project/beirc/cvsroot/beirc/application.lisp 2006/03/17 17:44:22 1.65
+++ /project/beirc/cvsroot/beirc/application.lisp 2006/03/21 15:23:35 1.66
@@ -582,12 +582,20 @@
(define-beirc-command (com-names :name t) ()
(irc:names (current-connection *application-frame*) (target)))
-(define-beirc-command (com-away :name t) ((reason 'mumble :prompt "reason"))
+(define-beirc-command (com-away :name t) ((reason 'mumble
+ :prompt (if (away-status *application-frame* (current-connection *application-frame*))
+ "reason: to come back from away use /back instead of away"
+ "reason")))
(irc:away (current-connection *application-frame*) reason))
(define-beirc-command (com-back :name t) ()
(irc:away (current-connection *application-frame*) ""))
+(defmethod command-enabled ((command-name (eql 'com-back)) frame)
+ "Turn off the back command when it's not appropriate -- i.e., when you are
+not away."
+ (away-status frame (current-connection frame)))
+
(define-beirc-command (com-quit :name t) (&key (reason 'mumble :prompt "reason" :default "Client Quit"))
(disconnect-all *application-frame* reason)
(frame-exit *application-frame*))
@@ -997,3 +1005,13 @@
(defmethod allocate-space :after ((pane climi::viewport-pane) w h)
(let ((pane (first (sheet-children pane))))
(redisplay-frame-pane (pane-frame pane) pane)))
+
+;;; proposed addition to auto-connect to servers in the
+;;; *auto-connect-list* [2006/03/21:rpg]
+(defmethod adopt-frame :after (frame-manager (frame beirc))
+ (declare (ignore frame-manager))
+ (loop for server in *auto-connect-list*
+ do (execute-frame-command frame
+ `(com-connect ,server))))
+
+