(defun create-ga-window ()
  (unless *ga-main-window*
    (let* ((wtitle "Genetic algorithms")
           
      (setq *ga-main-window*
            (make-instance 'ga-main-dialog
              :window-type :document
              ;              :view-position '(:left 225)
              :window-title ""
              :view-size (make-point
                          window-width
                          (+ (* 5 *main-indent*)
                             *heading-height*
                             (* 2 *button-height*)
                             height))
              :view-font *heading-font*
              :window-do-first-click t
              :close-box-p nil
              :view-subviews
              (list 
                    (make-dialog-item 'button-dialog-item
                                      (make-point *main-indent* button-y)  
                                      (make-point *button-width* *button-height*)
                                      
                                      "Help"
                                      
                                      #'(lambda (item) item
                                         (make-instance 'help-window
                                           :filename (concatenate
                                                      'string
                                                      *pail-directory*
                                                      "ga:help:ga-main-help.tec")
                                           :view-size #@(350 250)
                                           :direction :output
                                           :grow-icon-p t
                                           :window-title "GA: MAIN HELP"))
                                      :view-font *button-font*)
                    
                    (make-dialog-item 'button-dialog-item
                                      (make-point (+ *main-indent*
                                                     (* 2 (+ *button-width*
                                                             spacing)))
                                                  button-y)
                                      (make-point *button-width* *button-height*)
                                      
                                      "Interrupt"
                                      
                                      #'(lambda (item)
                                          item
                                          (setq *proceed* nil))
                                      :view-font *button-font*
                                      :view-nick-name 'stop
                                      :default-button nil
                                      :dialog-item-enabled-p nil
                                      )
                    (make-dialog-item 'button-dialog-item
                                      (make-point (+ *main-indent*
                                                     (* 3 (+ *button-width*
                                                             spacing)))
                                                  button-y)
                                      (make-point *button-width* *button-height*)
                                      
                                      "Continue"
                                      
                                      #'(lambda (item)
                                          item
                                          (open-monitor)
                                          (eval-enqueue '(start-evolving)))
                                      :view-font *button-font*
                                      :view-nick-name 'continue
                                      :default-button nil
                                      :dialog-item-enabled-p nil
                                      )
                    
                    
                    (make-dialog-item 'button-dialog-item
                                      (make-point (+ *main-indent*
                                                     (* 2 (+ *button-width*
                                                             spacing)))
                                                  button-y2)
                                      (make-point *button-width* *button-height*)
                                      
                                      "Function"
                                      
                                      #'(lambda (item) item (select-fitness-function))
                                      :view-font *button-font*
                                      :view-nick-name 'fitness-fnct
                                      :default-button nil)
                    (make-dialog-item 'button-dialog-item
                                      (make-point (+ *main-indent*
                                                     (* 3 (+ *button-width*
                                                             spacing)))
                                                  button-y2)
                                      (make-point *button-width* *button-height*)
                                      
                                      "Analyze"
                                      
                                      #'(lambda (item) item (open-analyze-display 0))
                                      :view-font *button-font*
                                      :view-nick-name 'analyze
                                      :default-button nil
                                      :dialog-item-enabled-p nil))))
      (setq *ga-output-window* (aref (view-subviews *ga-main-window*) 0)))))