about summary refs log tree commit diff stats
path: root/cconv.lisp
diff options
context:
space:
mode:
authorDarren Bane <darren.bane@gmail.com>2021-01-17 00:54:23 +0000
committerDarren Bane <darren.bane@gmail.com>2021-01-17 00:54:23 +0000
commitec33fa3c80f852d60d7e2fcd046cc49c08fad803 (patch)
tree46d4952b98745fc2da89765ce1f228040cb6c526 /cconv.lisp
parent6222836c3b031ce6cf4bc98c3bbf7ff896d23786 (diff)
downloadlsp-ec33fa3c80f852d60d7e2fcd046cc49c08fad803.tar.gz
Making changes
Diffstat (limited to 'cconv.lisp')
-rw-r--r--cconv.lisp36
1 files changed, 33 insertions, 3 deletions
diff --git a/cconv.lisp b/cconv.lisp
index 1d4f949..b0e4479 100644
--- a/cconv.lisp
+++ b/cconv.lisp
@@ -1,11 +1,41 @@
+(ql:quickload "ltk")
 (defpackage :cconv
   (:use :common-lisp :ltk)
   (:export #:main))
 
 (in-package :cconv)
 
-(defun main ()
+;; (defun main ()
+;;   (setf *debug-tk* nil)
+;;   (with-ltk ()
+;;     (wm-title *tk* "Feet to Meters")
+;;     (let ((mainframe (make-instance 'frame)))
+;;       (configure mainframe :padding "3 3 12 12")
+;;       ())))
+
+(defun calculate (feet-widget meter-widget)
+  (setf (text meter-widget) (format nil "~,2F" (* (read-from-string (text feet-widget)) 0.3048d0))))
+
+(defun gui ()
   (setf *debug-tk* nil)
   (with-ltk ()
-    (wm-title "." "Feet to Meters")
-    ()))
+    (wm-title *tk* "Feet to Meters")
+    (let ((c (make-instance 'frame)))
+      (grid c 0 0 :sticky "ne")
+      (grid-columnconfigure *tk* 0 :weight 1)
+      (grid-rowconfigure *tk* 0 :weight 1)
+      (let* ((c.feet (grid (make-instance 'entry :width 7)
+                           1 2 :sticky "we" :padx 5 :pady 5))
+             (c.meters (grid (make-instance 'entry :state "readonly")
+                             2 2 :sticky "we" :padx 5 :pady 5)))
+        (grid (make-instance 'button
+                             :text "Calculate"
+                             :command (lambda () (calculate c.feet c.meters)))
+              3 3 :sticky "w" :padx 5 :pady 5)
+        (grid (make-instance 'label :text "feet")
+              1 3 :sticky "w" :padx 5 :pady 5)
+        (grid (make-instance 'label :text "is equivalent to")
+              2 1 :sticky "w" :padx 5 :pady 5)
+        (grid (make-instance 'label :text "meters")
+              2 3 :sticky "w" :padx 5 :pady 5)))))
+(provide "cconv")