Generalize menu item ordering to datum-order
This commit is contained in:
parent
08dd0f16d1
commit
ad177f2d74
11
gui.rkt
11
gui.rkt
|
@ -1,6 +1,7 @@
|
|||
#lang syndicate/actor
|
||||
|
||||
(require racket/set)
|
||||
(require data/order)
|
||||
(require (prefix-in i: 2htdp/image))
|
||||
(require (prefix-in p: pict))
|
||||
(require syndicate-gl/2d)
|
||||
|
@ -111,8 +112,11 @@
|
|||
(run-pop-up-menu menu-id x y x-pin y-pin release-event)))
|
||||
|
||||
(define (menu-item-order-key i)
|
||||
(cond [(menu-item? i) (menu-item-order i)]
|
||||
[(menu-separator? i) (menu-separator-order i)]))
|
||||
(define v (cond [(menu-item? i) (menu-item-order i)]
|
||||
[(menu-separator? i) (menu-separator-order i)]))
|
||||
(if (number? v)
|
||||
(exact->inexact v)
|
||||
v))
|
||||
|
||||
(define (run-pop-up-menu menu-id pop-up-cursor-x pop-up-cursor-y x-pin y-pin release-event)
|
||||
(define instance-id (list menu-id (gensym 'instance)))
|
||||
|
@ -125,7 +129,8 @@
|
|||
(define/query-set separators ($ s (menu-separator menu-id _)) s)
|
||||
(define/dataflow ordered-items (sort (append (set->list (items))
|
||||
(set->list (separators)))
|
||||
< #:key menu-item-order-key)
|
||||
(order-<? datum-order)
|
||||
#:key menu-item-order-key)
|
||||
#:default '())
|
||||
(define/dataflow menu-table (for/list [(i (ordered-items))]
|
||||
(match i
|
||||
|
|
Loading…
Reference in New Issue