aboutsummaryrefslogtreecommitdiffhomepage
path: root/gui/menus.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/menus.lisp')
-rw-r--r--gui/menus.lisp24
1 files changed, 14 insertions, 10 deletions
diff --git a/gui/menus.lisp b/gui/menus.lisp
index 25abd7b..a477dd9 100644
--- a/gui/menus.lisp
+++ b/gui/menus.lisp
@@ -2,12 +2,13 @@
(in-package :wheelwork)
-(defclass/std menu (unit interactive)
- ((items :with :std nil
- :doc "A list of interactive units")
- (focus :with :std nil
- :doc "The item that is focused in this menu, if any.")
- (region :std (error "Menus require an explicit region"))))
+(def:class menu (unit interactive)
+ ((items "list of interactive units in the menu")
+ :prefix :type list :initform nil)
+ ((focus "Object of menu with current focus.")
+ :prefix :type (or null unit) :initform nil)
+ ((region "Region where menu is displayed.")
+ :required :type region))
(defmethod cleanup :after ((menu menu))
(loop for item in (menu-items menu) do (cleanup item)))
@@ -85,10 +86,13 @@
(render o)))
-(defclass/std vscroller (menu)
- ((scroll-speed :std 1)
- (vert-scroll :std 0
- :doc "Vertical distance items have been displaced.")))
+(def:class vscroller (menu)
+ (scroll-speed :type fixnum :initform 1)
+ (vert-scroll
+ :type fixnum
+ :initform 0
+ :documentation "Vertical distance items have been displaced."))
+
(defmethod (setf vert-scroll) :after (val (vs vscroller))
(loop