Index: main/flat-menu.lisp
===================================================================
--- main/flat-menu.lisp	(revision main,39)
+++ main/flat-menu.lisp	(revision main,48)
@@ -1,4 +1,4 @@
 (defpackage #:flat-menu
-  (:use #:cl #:cffi)
+  (:use #:cl #:cffi #:dso-util #:tui-input #:tui-output #:tui-window)
   (:export #:*shortcut-style* #:*highlight-style* #:menu #:selected
            #:make-menu))
@@ -26,12 +26,12 @@
     (multiple-value-bind (s1 s2 s3) (break-text text shortcut-pos)
       (when highlight
-        (cdk::c-wattron window *highlight-style*))
-      (cdk::move-and-add-string window row column s1)
-      (cdk::c-wattron window *shortcut-style*)
-      (cdk::move-and-add-string window row (incf column (length s1)) s2)
-      (cdk::c-wattroff window *shortcut-style*)
-      (cdk::move-and-add-string window row (incf column (length s2)) s3)
+        (cdk::c-wattron (window-pointer window) *highlight-style*))
+      (move-and-add-string window row column s1)
+      (cdk::c-wattron (window-pointer window) *shortcut-style*)
+      (move-and-add-string window row (incf column (length s1)) s2)
+      (cdk::c-wattroff (window-pointer window) *shortcut-style*)
+      (move-and-add-string window row (incf column (length s2)) s3)
       (when highlight
-        (cdk::c-wattroff window *highlight-style*)))))
+        (cdk::c-wattroff (window-pointer window) *highlight-style*)))))
 
 
@@ -89,21 +89,20 @@
     (with-accessors ((selected selected)) menu
       (loop
-         (cdk::c-refresh-window window)
-         (let ((ch (cdk::c-wgetch window)))
-           (cond
-             ((= ch 258)
+         (refresh window)
+         (let ((ch (read-key window)))
+           (case ch
+             (:key-down
               (incf selected))
-             ((= ch 259)
+             (:key-up
               (decf selected))
              (t (return))))))))
 
 (defun test ()
-  (let ((screen (cdk::c-init-curses-screen)))
+  (with-screen (screen)
     (cdk::c-cbreak)
     (cdk::c-noecho)
     (cdk::c-nonl)
-    (cdk::c-keypad screen t)
-    (cdk::c-erase-window screen)
+    (cdk::c-keypad (window-pointer screen) t)
+    (erase screen)
     (let ((menu (make-menu screen 5 10 '(("Hello, world!" 7) ("Goodbye, galaxy!" 9)))))
-      (activate-menu menu))
-    (cdk::c-end-curses)))
+      (activate-menu menu))))
Index: main/window/screen.lisp
===================================================================
--- main/window/screen.lisp	(revision main,41)
+++ main/window/screen.lisp	(revision main,48)
@@ -36,5 +36,5 @@
             (dotimes (i 63)
               (let ((j (1+ i)))
-                (init-pair j (floor j 8) (mod j 8))))
+                (init-pair j (mod j 8) (floor j 8))))
             (let ((,screen (make-instance 'screen-window :ptr ,ptr)))
               ,@body)
