aboutsummaryrefslogtreecommitdiffhomepage
path: root/gui/menus.lisp
diff options
context:
space:
mode:
authorColin Okay <colin@cicadas.surf>2022-07-23 10:56:19 -0500
committerColin Okay <colin@cicadas.surf>2022-07-23 10:56:19 -0500
commitc33701fc1c6cc18faf8ff5e02245ab94877b1f54 (patch)
treeb7f369932134a47fb915247ba62c49eed5c0f33d /gui/menus.lisp
parent8fc1317f0c3c32e3d75b17260b9b0c3ed810fd76 (diff)
[change] generic add/drop unit; [add] impls for menu class
Diffstat (limited to 'gui/menus.lisp')
-rw-r--r--gui/menus.lisp11
1 files changed, 8 insertions, 3 deletions
diff --git a/gui/menus.lisp b/gui/menus.lisp
index 1c4166c..2a2e938 100644
--- a/gui/menus.lisp
+++ b/gui/menus.lisp
@@ -32,16 +32,22 @@
(def-menu-accessors x y width height))
+(defmethod add-unit :after ((menu menu))
+ (dolist (o (menu-options menu))
+ (add-unit o)))
+
+(defmethod drop-unit :before ((menu menu))
+ (dolist (o (menu-options menu))
+ (drop-unit o)))
+
(defgeneric add-menu-option (menu option))
(defmethod add-menu-option ((menu menu) option)
(setf (unit-region option) (unit-region menu))
- (add-unit option)
(setf (menu-options menu)
(nconc (menu-options menu) (list option))))
(defun remove-menu-option (menu option)
(when (member option (menu-options menu))
- (drop-unit option)
(setf (unit-region option) *application*)
(setf (menu-options menu)
(delete option (menu-options menu)))))
@@ -66,7 +72,6 @@
(on-mousewheel (vs horiz vert)
(let ((oh (vscroller-options-height vs))
(h (height vs)))
- (format t "oh: ~a h: ~a scroll:~a ~%" oh h (vert-scroll vs))
(setf (vert-scroll vs)
(clamp 0
(+ (vert-scroll vs) (* vert (scroll-speed vs)))