35 lines
1.6 KiB
Common Lisp
35 lines
1.6 KiB
Common Lisp
|
(ql:quickload :cl-cffi-gtk)
|
||
|
|
||
|
; Main window
|
||
|
(defvar window (make-instance 'gtk:gtk-window :type :toplevel :title "GTK Test"))
|
||
|
(defvar vbox (make-instance 'gtk:gtk-box :orientation :vertical
|
||
|
:spacing 10
|
||
|
:margin 10))
|
||
|
|
||
|
(defvar text-panel-box (make-instance 'gtk:gtk-box :orientation :horizontal :spacing 1 :margin 10))
|
||
|
(defvar panel-left-window (make-instance 'gtk:gtk-scrolled-window :height-request 500 :width-request 100))
|
||
|
(defvar panel-left (make-instance 'gtk:gtk-text-view :height-request 300 :width-request 100 :wrap-mode :word-char :vscroll-policy :natural))
|
||
|
(defvar panel-right-window (make-instance 'gtk:gtk-scrolled-window :height-request 500 :width-request 300))
|
||
|
(defvar panel-right (make-instance 'gtk:gtk-text-view :height-request 300 :width-request 300 :wrap-mode :word-char :vscroll-policy :natural))
|
||
|
|
||
|
(gtk:gtk-box-pack-start vbox text-panel-box)
|
||
|
(gtk:gtk-container-add panel-left-window panel-left)
|
||
|
(gtk:gtk-box-pack-start text-panel-box panel-left-window)
|
||
|
(gtk:gtk-container-add panel-right-window panel-right)
|
||
|
(gtk:gtk-box-pack-end text-panel-box panel-right-window)
|
||
|
|
||
|
(gtk:within-main-loop
|
||
|
; Quit program when window closed
|
||
|
(gobject:g-signal-connect window "destroy" (lambda (widget)
|
||
|
(declare (ignore widget))
|
||
|
(gtk:leave-gtk-main)))
|
||
|
; Display GUI
|
||
|
(gtk:gtk-container-add window vbox)
|
||
|
(gtk:gtk-widget-show-all window))
|
||
|
|
||
|
(loop
|
||
|
(sleep 3)
|
||
|
(setf (gtk:gtk-text-buffer-text (gtk:gtk-text-view-buffer panel-right)) (format nil "~a~a" (gtk:gtk-text-buffer-text (gtk:gtk-text-view-buffer panel-right)) "
|
||
|
Hello, world!
|
||
|
")))
|