fix get-column-width' method of list-box%'

by changing the name to match the docs, plus some other
  bug fixes triggered by better testing
 Closes PR 11780

original commit: fdef90e482ddd066f8a131343308e856c76df902
This commit is contained in:
Matthew Flatt 2011-02-28 18:13:52 -07:00
parent 851c476430
commit d8c8812f87
5 changed files with 48 additions and 20 deletions

View File

@ -630,8 +630,8 @@
[(zero? i) (cons str (cdr l))] [(zero? i) (cons str (cdr l))]
[else (cons (car l) (loop (sub1 i) (cdr l)))]))) [else (cons (car l) (loop (sub1 i) (cdr l)))])))
(send wx set-column-label i str)))] (send wx set-column-label i str)))]
[set-column-size (lambda (i w min-size max-size) [set-column-width (lambda (i w min-size max-size)
(let ([who '(method list-box% set-column-size)]) (let ([who '(method list-box% set-column-width)])
(check-column-number who i) (check-column-number who i)
(check-dimension who w) (check-dimension who w)
(check-dimension who min-size) (check-dimension who min-size)
@ -649,8 +649,8 @@
w) w)
max-size))) max-size)))
(send wx set-column-size i w min-size max-size))] (send wx set-column-size i w min-size max-size))]
[get-column-size (lambda (i) [get-column-width (lambda (i)
(check-column-number '(method list-box% get-column-size) i) (check-column-number '(method list-box% get-column-width) i)
(send wx get-column-size i))] (send wx get-column-size i))]
[delete-column (lambda (i) [delete-column (lambda (i)
(let ([who '(method list-box% delete-column)]) (let ([who '(method list-box% delete-column)])

View File

@ -143,7 +143,7 @@
(values (values
(int (tell #:type _CGFloat col width)) (int (tell #:type _CGFloat col width))
(int (tell #:type _CGFloat col minWidth)) (int (tell #:type _CGFloat col minWidth))
(int (tell #:type _CGFloat col maxWidth))))) (min 10000 (int (tell #:type _CGFloat col maxWidth))))))
(define/override (get-cocoa-content) content-cocoa) (define/override (get-cocoa-content) content-cocoa)
(define/override (get-cocoa-control) content-cocoa) (define/override (get-cocoa-control) content-cocoa)
@ -274,7 +274,8 @@
(set! num-columns (sub1 num-columns)) (set! num-columns (sub1 num-columns))
(tellv content-cocoa removeTableColumn: c) (tellv content-cocoa removeTableColumn: c)
(set! column-cocoas (drop-nth column-cocoas i)) (set! column-cocoas (drop-nth column-cocoas i))
(set! itemss (drop-nth itemss i)))) (set! itemss (drop-nth itemss i))
(reset-column-order)))
(reset)) (reset))
(define callback cb) (define callback cb)

View File

@ -62,9 +62,9 @@
(define-gtk gtk_tree_view_column_get_width (_fun _GtkTreeViewColumn -> _int)) (define-gtk gtk_tree_view_column_get_width (_fun _GtkTreeViewColumn -> _int))
(define-gtk gtk_tree_view_column_get_min_width (_fun _GtkTreeViewColumn -> _int)) (define-gtk gtk_tree_view_column_get_min_width (_fun _GtkTreeViewColumn -> _int))
(define-gtk gtk_tree_view_column_get_max_width (_fun _GtkTreeViewColumn -> _int)) (define-gtk gtk_tree_view_column_get_max_width (_fun _GtkTreeViewColumn -> _int))
(define-gtk gtk_tree_view_column_set_fixed_width (_fun _GtkTreeViewColumn _int -> _int)) (define-gtk gtk_tree_view_column_set_fixed_width (_fun _GtkTreeViewColumn _int -> _void))
(define-gtk gtk_tree_view_column_set_min_width (_fun _GtkTreeViewColumn _int -> _int)) (define-gtk gtk_tree_view_column_set_min_width (_fun _GtkTreeViewColumn _int -> _void))
(define-gtk gtk_tree_view_column_set_max_width (_fun _GtkTreeViewColumn _int -> _int)) (define-gtk gtk_tree_view_column_set_max_width (_fun _GtkTreeViewColumn _int -> _void))
(define _GList (_cpointer 'List)) (define _GList (_cpointer 'List))
(define-glib g_list_foreach (_fun _GList (_fun _pointer -> _void) _pointer -> _void)) (define-glib g_list_foreach (_fun _GList (_fun _pointer -> _void) _pointer -> _void))

View File

@ -189,9 +189,9 @@ See also @method[list-box% set-column-order].}
@defmethod[(get-column-width [column exact-nonnegative-integer?]) @defmethod[(get-column-width [column exact-nonnegative-integer?])
(values exact-nonnegative-integer? (values (integer-in 0 10000)
exact-nonnegative-integer? (integer-in 0 10000)
exact-nonnegative-integer?)]{ (integer-in 0 10000))]{
Gets the width of the column identified by @racket[column] (in logical Gets the width of the column identified by @racket[column] (in logical
positions, as opposed to display positions), which must be between 0 positions, as opposed to display positions), which must be between 0
@ -316,9 +316,9 @@ See also @method[list-box% get-column-order].}
@defmethod[(set-column-width [column exact-nonnegative-integer?] @defmethod[(set-column-width [column exact-nonnegative-integer?]
[width exact-nonnegative-integer?] [width (integer-in 0 10000)]
[min-width exact-nonnegative-integer?] [min-width (integer-in 0 10000)]
[max-width exact-nonnegative-integer?]) [max-width (integer-in 0 10000)])
void?]{ void?]{
Sets the width of the column identified by @racket[column] (in logical Sets the width of the column identified by @racket[column] (in logical

View File

@ -830,7 +830,7 @@
(test-control-event e '(list-box)) (test-control-event e '(list-box))
(set! side-effect 'list-box) (set! side-effect 'list-box)
'oops) 'oops)
(list style))]) style)])
(label-test l "List Box") (label-test l "List Box")
(stv l command (make-object control-event% 'list-box)) (stv l command (make-object control-event% 'list-box))
(test 'list-box 'list-box-callback side-effect) (test 'list-box 'list-box-callback side-effect)
@ -838,15 +838,42 @@
(stv l set-data 0 'a) (stv l set-data 0 'a)
(stv l set-data 2 'c-&-d) (stv l set-data 2 'c-&-d)
(test-list-control l #f (and (memq style '(multiple extended)) #t)) (test-list-control l #f (and (or (memq 'multiple style)
(memq 'extended style))
#t))
(containee-window-tests l #t #t parent frame 2) (containee-window-tests l #t #t parent frame 2)
(st '("Column") l get-column-labels)
(st '(0) l get-column-order)
(let ([check-col-width
(lambda (col)
(let-values ([(val lo hi) (send l get-column-width col)])
(test #t 'col-width (<= 0 lo val hi 10000))))])
(check-col-width 0)
(when (memq 'variable-columns style)
(stv l append-column "Second")
(st '("Column" "Second") l get-column-labels)
(st '(0 1) l get-column-order)
(stv l set-column-order '(1 0))
(st '(1 0) l get-column-order)
(stv l set-string 0 "A2" 1)
(check-col-width 1)
(stv l append-column "Three")
(check-col-width 2)
(st '("Column" "Second" "Three") l get-column-labels)
(st '(1 0 2) l get-column-order)
(stv l delete-column 1)
(st '("Column" "Three") l get-column-labels)
(st '(0 1) l get-column-order)))
(stv parent delete-child l)))]) (stv parent delete-child l)))])
(mk-list 'single) (mk-list '(single))
(mk-list 'multiple) (mk-list '(multiple))
(mk-list 'extended)) (mk-list '(extended))
(mk-list '(single variable-columns)))
'done-lists) 'done-lists)
(let ([l (make-object list-box% "List Two" (let ([l (make-object list-box% "List Two"