src/main.lisp @ 6c1b8faa5569

Initial commit
author Steve Losh <steve@stevelosh.com>
date Mon, 01 Aug 2016 15:16:37 +0000
parents (none)
children 9fada4d535fc
(in-package #:silt)


(defparameter *running* nil)
(defparameter *running* t)

(defparameter *width* 1)
(defparameter *height* 1)

(defun render ()
  (charms:move-cursor charms:*standard-window*
                      (- (floor *width* 2) 3)
                      (floor *height* 2))
  (charms:write-string-at-cursor charms:*standard-window* "S I L T")
  (charms:move-cursor charms:*standard-window* 0 0))


(defun tick ()
  )

(defun handle-input ()
  (let ((input (charms:get-char charms:*standard-window* :ignore-error t)))
    (case input
      ((nil) nil)
      (#\q (setf *running* nil)))))

(defun manage-screen ()
  (multiple-value-bind (w h)
      (charms:window-dimensions charms:*standard-window*)
    (setf *width* w *height* h)))

(defun run ()
  (setf *running* t)
  (charms:with-curses ()
    (charms:disable-echoing)
    (charms:enable-raw-input :interpret-control-characters t)
    (charms:enable-non-blocking-mode charms:*standard-window*)

    (iterate
      (while *running*)
      (charms:clear-window charms:*standard-window*)
      (manage-screen)
      (handle-input)
      (tick)
      (render)
      (charms:refresh-window charms:*standard-window*)
      (sleep 0.03))))


; (run)