Previous commit was using an old version by mistake, new one fixes the PR and deals with double-click too
svn: r4765
This commit is contained in:
parent
1effeb6a7c
commit
4c94fd0305
|
@ -170,39 +170,39 @@
|
||||||
(λ (x y) (cancel-callback))))
|
(λ (x y) (cancel-callback))))
|
||||||
(define grow-box-spacer (make-object grow-box-spacer-pane% button-panel))
|
(define grow-box-spacer (make-object grow-box-spacer-pane% button-panel))
|
||||||
|
|
||||||
(define-values (get-selected-language get-selected-language-settings)
|
|
||||||
(fill-language-dialog language-dialog-meat-panel
|
|
||||||
button-panel
|
|
||||||
language-settings-to-show
|
|
||||||
#f
|
|
||||||
manuals?
|
|
||||||
ok-button))
|
|
||||||
|
|
||||||
;; cancelled? : boolean
|
;; cancelled? : boolean
|
||||||
;; flag that indicates if the dialog was cancelled.
|
;; flag that indicates if the dialog was cancelled.
|
||||||
(define cancelled? #t)
|
(define cancelled? #t)
|
||||||
|
|
||||||
;; ok-callback : -> void
|
;; enter-callback : -> bool
|
||||||
(define (ok-callback)
|
;; similar to the above, but return #f if no language is selected, so
|
||||||
(cond [(get-selected-language)
|
;; the event will be processed by the list (which will toggle
|
||||||
(set! cancelled? #f)
|
;; subtrees)
|
||||||
(send dialog show #f)]
|
|
||||||
[else
|
|
||||||
(message-box (string-constant drscheme)
|
|
||||||
(string-constant please-select-a-language))]))
|
|
||||||
;; enter-callback : -> void similar to the above, but return #f if no
|
|
||||||
;; language is selected, so the event will be processed by the list
|
|
||||||
;; (which will toggle subtrees)
|
|
||||||
(define (enter-callback)
|
(define (enter-callback)
|
||||||
(cond [(get-selected-language)
|
(cond [(get-selected-language)
|
||||||
(set! cancelled? #f)
|
(set! cancelled? #f)
|
||||||
(send dialog show #f)]
|
(send dialog show #f)]
|
||||||
[else #f]))
|
[else #f]))
|
||||||
|
|
||||||
|
;; ok-callback : -> void
|
||||||
|
(define (ok-callback)
|
||||||
|
(unless (enter-callback)
|
||||||
|
(message-box (string-constant drscheme)
|
||||||
|
(string-constant please-select-a-language))))
|
||||||
|
|
||||||
;; cancel-callback : -> void
|
;; cancel-callback : -> void
|
||||||
(define (cancel-callback)
|
(define (cancel-callback)
|
||||||
(send dialog show #f))
|
(send dialog show #f))
|
||||||
|
|
||||||
|
(define-values (get-selected-language get-selected-language-settings)
|
||||||
|
(fill-language-dialog language-dialog-meat-panel
|
||||||
|
button-panel
|
||||||
|
language-settings-to-show
|
||||||
|
#f
|
||||||
|
manuals?
|
||||||
|
ok-button
|
||||||
|
enter-callback))
|
||||||
|
|
||||||
(when show-welcome?
|
(when show-welcome?
|
||||||
(add-welcome dialog welcome-before-panel welcome-after-panel))
|
(add-welcome dialog welcome-before-panel welcome-after-panel))
|
||||||
|
|
||||||
|
@ -225,7 +225,9 @@
|
||||||
;; as the defaults in the dialog and the output language setting is the user's choice
|
;; as the defaults in the dialog and the output language setting is the user's choice
|
||||||
;; if re-center is a dialog, when the show details button is clicked, the dialog is recenterd.
|
;; if re-center is a dialog, when the show details button is clicked, the dialog is recenterd.
|
||||||
(define fill-language-dialog
|
(define fill-language-dialog
|
||||||
(opt-lambda (parent show-details-parent language-settings-to-show [re-center #f] [manuals? #f] [ok-button #f])
|
(opt-lambda (parent show-details-parent language-settings-to-show
|
||||||
|
[re-center #f] [manuals? #f]
|
||||||
|
[ok-button #f] [enter-callback #f])
|
||||||
|
|
||||||
(define-values (language-to-show settings-to-show)
|
(define-values (language-to-show settings-to-show)
|
||||||
(let ([request-lang-to-show (language-settings-language language-settings-to-show)])
|
(let ([request-lang-to-show (language-settings-language language-settings-to-show)])
|
||||||
|
@ -318,16 +320,20 @@
|
||||||
|
|
||||||
(define/override (on-select i)
|
(define/override (on-select i)
|
||||||
(if (and i (is-a? i hieritem-language<%>))
|
(if (and i (is-a? i hieritem-language<%>))
|
||||||
(something-selected)
|
(something-selected i)
|
||||||
(nothing-selected)))
|
(nothing-selected)))
|
||||||
;; this is not used, since all lists are selectable
|
;; this is not used, since all lists are selectable
|
||||||
(define/override (on-click i)
|
;; (define/override (on-click i)
|
||||||
(when (and i (is-a? i hierarchical-list-compound-item<%>))
|
;; (when (and i (is-a? i hierarchical-list-compound-item<%>))
|
||||||
(send i toggle-open/closed)))
|
;; (send i toggle-open/closed)))
|
||||||
;; use this instead
|
;; use this instead
|
||||||
(define/override (on-double-select i)
|
(define/override (on-double-select i)
|
||||||
(when (and i (is-a? i hierarchical-list-compound-item<%>))
|
(when i
|
||||||
(send i toggle-open/closed)))
|
(cond [(is-a? i hierarchical-list-compound-item<%>)
|
||||||
|
(send i toggle-open/closed)]
|
||||||
|
[(is-a? i hieritem-language<%>)
|
||||||
|
(something-selected i)
|
||||||
|
(enter-callback)])))
|
||||||
(super-instantiate (parent))))
|
(super-instantiate (parent))))
|
||||||
|
|
||||||
(define outermost-panel (make-object horizontal-pane% parent))
|
(define outermost-panel (make-object horizontal-pane% parent))
|
||||||
|
@ -398,10 +404,11 @@
|
||||||
(when ok-button (send ok-button enable #f))
|
(when ok-button (send ok-button enable #f))
|
||||||
(send details-button enable #f))
|
(send details-button enable #f))
|
||||||
|
|
||||||
;; something-selected : -> void
|
;; something-selected : item -> void
|
||||||
(define (something-selected)
|
(define (something-selected item)
|
||||||
(when ok-button (send ok-button enable #t))
|
(when ok-button (send ok-button enable #t))
|
||||||
(send details-button enable #t))
|
(send details-button enable #t)
|
||||||
|
(send item selected))
|
||||||
|
|
||||||
;; update-manual-ordering-text : -> void
|
;; update-manual-ordering-text : -> void
|
||||||
;; updates the manual ordering text with the order the manuals are searched for this language
|
;; updates the manual ordering text with the order the manuals are searched for this language
|
||||||
|
|
Loading…
Reference in New Issue
Block a user