OSDN Git Service

view: entities-list in plane and fixes
[rulp/rulp.git] / gui / skeleton.lisp
1 (in-package :gui)
2
3 (defvar +window-title+ (format nil "Ru*** roLeplay Playground - v~A"
4                                parameters:+rulp-version+))
5
6 (defun lobby ()
7   (within-main-loop
8    (let ((window (make-instance 'gtk-window
9                                 :type :toplevel
10                                 :title +window-title+
11                                 :margin 0
12                                 :default-width 800 ;; remember to remove them later
13                                 :default-height 600))
14          (gui-grid (make-instance 'gtk-grid
15                                   :column-homogeneous nil
16                                   :row-homogeneous nil
17                                   :column-spacing 0
18                                   :row-spacing 0))
19          (canvas (make-instance 'gtk-drawing-area))
20          (menu (make-instance 'gtk-menu-bar
21                               :hexpand t
22                               :halign :fill))
23          (file-item (gtk-menu-item-new-with-label "File"))
24          (file-menu (gtk-menu-new))
25          (close-item (gtk-menu-item-new-with-label "Exit"))
26          (general-box (make-instance 'gtk-box ; rename later to toolbox or something similar
27                                      :spacing 0
28                                      :homogeneous nil
29                                      :orientation :vertical)))
30      (gtk-grid-attach gui-grid menu 0 0 2 1)
31      (gtk-grid-attach gui-grid general-box 0 1 1 1)
32      (gtk-grid-attach gui-grid canvas 1 1 1 1)
33      (gtk-container-add window gui-grid)
34
35      (gtk-menu-shell-append menu file-item)
36      (setf (gtk-menu-item-submenu file-item) file-menu)
37      (gtk-menu-shell-append file-menu close-item)
38
39      (g-signal-connect close-item "activate"
40                        (lambda (widget)
41                          (declare (ignore widget))
42                          (gtk-widget-destroy window)))
43
44      (gtk-widget-show-all window)
45    )
46   )
47 )