Page 321 | Table of Contents | Index | Page 323 |
Chapters | |||
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30 A, B, C, D, E |
(defmethod highlight-button ((pane push-button-pane) medium) (with-bounding-rectangle* (left top right bottom) (sheet-region pane) (draw-rectangle* medium left top right bottom :ink +flipping-ink+ :filled t))) ;; Compute the amount of space required by a PUSH-BUTTON-PANE (defmethod compose-space ((pane push-button-pane) &key width height) (multiple-value-bind (width height) (compute-gadget-label-size pane) (make-space-requirement :width width :height height))) ;; This gets invoked to draw the push button. (defmethod repaint-sheet ((pane push-button-pane) region) (declare (ignore region)) (with-sheet-medium (medium pane) (let ((text (gadget-label pane)) (text-style (slot-value pane 'text-style)) (armed (slot-value pane 'armed)) (region (sheet-region pane))) (multiple-value-call #'draw-rectangle* medium (bounding-rectangle* (sheet-region pane)) :filled nil) (draw-text medium text (clim-utils::bounding-rectangle-center region) :text-style text-style :align-x ':center :align-y ':top) (when (eql armed ':button-press) (highlight-button pane medium))))) ;; When we enter the push button's region, arm it. (defmethod handle-event ((pane push-button-pane) (event pointer-enter-event)) (with-slots (armed) pane (unless armed (setf armed t) (armed-callback pane (gadget-client pane) (gadget-id pane))))) ;; When we leave the push button's region, disarm it. (defmethod handle-event ((pane push-button-pane) (event pointer-exit-event)) (with-slots (armed) pane (when armed (when (eql armed ':button-press) (highlight-button pane medium)) (setf armed nil) (disarmed-callback pane (gadget-client pane) (gadget-id pane))))) ;; When the user presses a pointer button, ensure that the button ;; is armed, and highlight it. (defmethod handle-event ((pane push-button-pane) (event pointer-button-press-event)) (with-slots (armed) pane (unless armed (setf armed ':button-press)
Page 321 | Table of Contents | Index | Page 323 |
Chapters | |||
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30 A, B, C, D, E |