...
original commit: 8b372620ae76c9a61067c61192f05fe32877c08a
This commit is contained in:
parent
ca0a970012
commit
c071b7efa2
|
@ -67,7 +67,8 @@
|
|||
with-syntax
|
||||
module
|
||||
let/cc let/ec letcc catch
|
||||
let-syntax letrec-syntax syntax-case
|
||||
let-syntax letrec-syntax
|
||||
syntax-case syntax-case*
|
||||
let-signature fluid-let
|
||||
let-struct let-macro let-values let*-values
|
||||
case when unless match
|
||||
|
|
|
@ -147,18 +147,24 @@
|
|||
is-selected?
|
||||
select
|
||||
user-data
|
||||
get-allow-selection?
|
||||
set-allow-selection
|
||||
get-clickable-snip))
|
||||
|
||||
(define hierarchical-list-item%
|
||||
(class100* object% (hierarchical-list-item<%>) (snp)
|
||||
(private-field
|
||||
[snip snp]
|
||||
[data #f])
|
||||
[data #f]
|
||||
[allow-selection #t])
|
||||
(public
|
||||
[get-allow-selection? (lambda () allow-selection)]
|
||||
[set-allow-selection (lambda (_a) (set! allow-selection _a))]
|
||||
|
||||
[get-clickable-snip (lambda () snip)]
|
||||
[get-editor (lambda () (send snip get-item-buffer))]
|
||||
[is-selected? (lambda () (send (send snip get-editor) is-selected?))]
|
||||
[select (lambda (on?) (send (send snip get-editor) select on?))]
|
||||
[select (lambda (on?) (send snip select on?))]
|
||||
[scroll-to (lambda () (let* ([admin (send snip get-admin)]
|
||||
[dc (send admin get-dc)]
|
||||
[h-box (box 0.0)])
|
||||
|
@ -176,6 +182,10 @@
|
|||
new-list
|
||||
delete-item
|
||||
get-items
|
||||
open
|
||||
close
|
||||
toggle-open/closed
|
||||
is-open?
|
||||
get-arrow-snip))
|
||||
|
||||
(define hierarchical-list-compound-item%
|
||||
|
@ -270,7 +280,8 @@
|
|||
(send dc set-brush b))))])
|
||||
(public
|
||||
[select (lambda (on?)
|
||||
(unless (eq? (not selected?) (not on?))
|
||||
(unless (eq? (not selected?)
|
||||
(not on?))
|
||||
(top-select (if on? item #f) snip)))]
|
||||
[double-select (lambda () (send top on-double-select item))]
|
||||
[select-prev (lambda () (send top select-prev))])
|
||||
|
@ -557,6 +568,7 @@
|
|||
[on-item-closed (lambda (i) (void))]
|
||||
[on-double-select (lambda (i) (void))]
|
||||
[on-select (lambda (i) (void))]
|
||||
[on-click (lambda (i) (void))]
|
||||
[new-item (lambda x (send top-buffer new-item . x))]
|
||||
[new-list (lambda x (send top-buffer new-list . x))]
|
||||
[delete-item (lambda (i) (send top-buffer delete-item i))]
|
||||
|
@ -682,13 +694,18 @@
|
|||
[show-focus? #f])
|
||||
(private
|
||||
[do-select (lambda (item s)
|
||||
(when selectable?
|
||||
(cond
|
||||
[(and selectable?
|
||||
item
|
||||
(send item get-allow-selection?))
|
||||
(unless (eq? item selected-item)
|
||||
(when selected (send selected show-select #f))
|
||||
(set! selected (if item s #f))
|
||||
(set! selected-item item)
|
||||
(when selected (send selected show-select #t))
|
||||
(on-select item))))])
|
||||
(on-select item))]
|
||||
[item
|
||||
(on-click item)]))])
|
||||
(private-field
|
||||
[top-buffer (make-object hierarchical-list-text% this (lambda (i s) (do-select i s)) 0 #f)]
|
||||
[selected #f]
|
||||
|
|
Loading…
Reference in New Issue
Block a user