[beirc-cvs] CVS update: beirc/application.lisp

Max-Gerd Retzlaff mretzlaff at common-lisp.net
Sun Oct 2 17:34:22 UTC 2005


Update of /project/beirc/cvsroot/beirc
In directory common-lisp.net:/tmp/cvs-serv9481

Modified Files:
	application.lisp 
Log Message:
Adds COM-WINDOW-NEXT and COM-WINDOW-PREVIOUS. The keystrokes do not yet
work (and are uncommented). I hope this will be changed soon.

(Also TAB-LAYOUT:ENABLED-PANE will perhaps be changed; an application that
uses the tab-layout-pane should really not get in touch with objects of
the class TAB-LAYOUT::TAB-PANE itself...)

Date: Sun Oct  2 19:34:18 2005
Author: mretzlaff

Index: beirc/application.lisp
diff -u beirc/application.lisp:1.25 beirc/application.lisp:1.26
--- beirc/application.lisp:1.25	Sun Oct  2 11:30:19 2005
+++ beirc/application.lisp	Sun Oct  2 19:34:15 2005
@@ -300,6 +300,28 @@
 (define-beirc-command (com-raise :name t) ((receiver 'receiver :prompt "receiver"))
   (raise-receiver receiver))
 
+(define-beirc-command (com-window-next :name t);; :keystroke (:right :meta))
+    ()
+  (let* ((current-pane (tab-layout::tab-pane-pane
+                        (enabled-pane (find-pane-named *application-frame* 'query))))
+         (list-of-panes (sheet-children (sheet-parent current-pane)))
+         (position     (position current-pane list-of-panes)))
+    (when list-of-panes
+      (if (>= position (1- (length list-of-panes)))
+          (switch-to-pane (car list-of-panes) 'tab-layout-pane)
+          (switch-to-pane (nth (1+ position) list-of-panes) 'tab-layout-pane)))))
+
+(define-beirc-command (com-window-previous :name t);; :keystroke (:left :meta))
+    ()
+  (let* ((current-pane (tab-layout::tab-pane-pane
+                        (enabled-pane (find-pane-named *application-frame* 'query))))
+         (list-of-panes (sheet-children (sheet-parent current-pane)))
+         (position     (position current-pane list-of-panes)))
+    (when list-of-panes
+      (if (<= position 0)
+          (switch-to-pane (car (last list-of-panes)) 'tab-layout-pane)
+          (switch-to-pane (nth (1- position) list-of-panes) 'tab-layout-pane)))))
+
 (define-beirc-command (com-close :name t) ((receiver 'receiver :prompt "receiver"))
   (when (eql receiver (server-receiver *application-frame*))
     (error "Can't close the server tab for this application!"))




More information about the Beirc-cvs mailing list