removed default language from language dialgo

svn: r1470
This commit is contained in:
Robby Findler 2005-12-01 21:44:41 +00:00
parent 88bb2b39ee
commit 0588b527c3

View File

@ -12,8 +12,6 @@
(lib "list.ss")
(lib "etc.ss")
(lib "file.ss")
(lib "pconvert.ss")
(lib "bitmap-label.ss" "mrlib")
(lib "getinfo.ss" "setup")
(lib "toplevel.ss" "syntax"))
@ -43,7 +41,7 @@
;; default-language-position : (listof string)
;; if a language is registered with this position, it is
;; considered the default language
(define default-language-position
(define initial-language-position
(list (string-constant initial-language-category)
(string-constant no-language-chosen)))
@ -85,7 +83,7 @@
(error 'get-default-language-settings "no languages registered!"))
(let ([lang (or (ormap (λ (x)
(and (equal? (send x get-language-position)
default-language-position)
initial-language-position)
x))
(get-languages))
(first (get-languages)))])
@ -210,8 +208,15 @@
(define fill-language-dialog
(opt-lambda (parent show-details-parent language-settings-to-show [re-center #f] [manuals? #f])
(define language-to-show (language-settings-language language-settings-to-show))
(define settings-to-show (language-settings-settings language-settings-to-show))
(define-values (language-to-show settings-to-show)
(let ([request-lang-to-show (language-settings-language language-settings-to-show)])
(cond
[(equal? initial-language-position (send request-lang-to-show get-language-position))
(values (first (get-languages))
(send (first (get-languages)) default-settings))
(values #f #f)]
[else (values request-lang-to-show
(language-settings-settings language-settings-to-show))])))
;; hier-list items that implement this interface correspond to
;; actual language selections
@ -452,6 +457,9 @@
(define (add-language-to-dialog language)
(let ([positions (send language get-language-position)]
[numbers (send language get-language-numbers)])
;; don't show the initial language ...
(unless (equal? positions initial-language-position)
(unless (and (list? positions)
(list? numbers)
(pair? positions)
@ -486,8 +494,10 @@
(case-lambda
[()
(cond
[(equal? (send language-to-show get-language-position)
(send language get-language-position))
[(and language-to-show
settings-to-show
(equal? (send language-to-show get-language-position)
(send language get-language-position)))
settings-to-show]
[else
(send language default-settings)])]
@ -518,11 +528,15 @@
(set! real-get/set-settings get/set-settings))
(let-values ([(vis-lang vis-settings)
(if selected-language
(values selected-language
(send selected-language default-settings))
(values language-to-show settings-to-show))])
(cond
[selected-language
(values selected-language
(send selected-language default-settings))]
[(and language-to-show settings-to-show)
(values language-to-show settings-to-show)]
[else (values #f #f)])])
(cond
[(not vis-lang) (void)]
[(equal? (send vis-lang get-language-position)
(send language get-language-position))
(get/set-settings vis-settings)
@ -602,7 +616,7 @@
(cdr positions)
(cdr numbers)
#f
(if first? number #f)))]))))
(if first? number #f)))])))))
(define number<%>
(interface ()
@ -662,6 +676,7 @@
;; opens the tabs that lead to the current language
;; and selects the current language
(define (open-current-language)
(when (and language-to-show settings-to-show)
(let loop ([hi languages-hier-list]
;; skip the first position, since it is flattened into the dialog
@ -679,7 +694,7 @@
(send child select #t)]
[else
(send child open)
(loop child (car position) (cdr position))]))))
(loop child (car position) (cdr position))])))))
;; docs-callback : -> void
(define (docs-callback)
@ -687,7 +702,9 @@
;; details-shown? : boolean
;; indicates if the details are currently visible in the dialog
(define details-shown? (not (send language-to-show default-settings? settings-to-show)))
(define details-shown? (and language-to-show
settings-to-show
(not (send language-to-show default-settings? settings-to-show))))
;; details-callback : -> void
;; flips the details-shown? flag and resets the GUI