This commit is contained in:
2025-08-06 23:24:16 +02:00
parent 58371229f0
commit 5e0ba4602d
3 changed files with 15 additions and 5 deletions

View File

@@ -13,7 +13,7 @@
) )
(define deps (define deps
'("racket/gui")) '("racket/gui" "racket/base" "racket/core"))
(define build-deps (define build-deps
'("racket-doc" '("racket-doc"

View File

@@ -86,6 +86,8 @@
(col-min-width (vector-ref column-min-widths c)) (col-min-width (vector-ref column-min-widths c))
(w* (if (> col-min-width w) col-min-width w)) (w* (if (> col-min-width w) col-min-width w))
) )
(when (eq? (vector-ref column-keep-min-widths c) #t)
(vector-set! column-min-widths c w*))
(set-min-width* c 0 w*))) (set-min-width* c 0 w*)))
(define/private (arrange*) (define/private (arrange*)
@@ -103,6 +105,7 @@
;; Internal data ;; Internal data
(define column-min-widths (make-vector columns 0)) (define column-min-widths (make-vector columns 0))
(define column-aligns (make-vector columns 'left)) (define column-aligns (make-vector columns 'left))
(define column-keep-min-widths (make-vector columns #f))
;; Public methods ;; Public methods
(define/public (column-min-width c . w) (define/public (column-min-width c . w)
@@ -126,6 +129,11 @@
(f 0)))))) (f 0))))))
(vector-ref column-aligns c)) (vector-ref column-aligns c))
(define/public (column-keep-min-width c . k)
(unless (null? k)
(vector-set! column-keep-min-widths c (car k)))
(vector-ref column-keep-min-widths c))
;; Overridden methods ;; Overridden methods
(define/override (after-new-child child) (define/override (after-new-child child)
(super after-new-child child) (super after-new-child child)
@@ -154,21 +162,22 @@
;(define g (new columns-pane% [parent grid-group] [columns 3])) ;(define g (new columns-pane% [parent grid-group] [columns 3]))
;(send g column-min-width 1 500) ;(send g column-min-width 1 500)
;(send g column-align 2 'right) ;(send g column-align 2 'center)
;(send g column-keep-min-width 2 #t)
;(define btn1 (new button% [parent g] [label "Button 1"] ;(define btn1 (new button% [parent g] [label "Button 1"]
; [callback (lambda (b e) (send lbl1 set-label "New label"))])) ; [callback (lambda (b e) (send lbl1 set-label "New label"))]))
;(define g1 (new gauge% [parent g] [stretchable-width #t] [label "gauge 1"] [range 100])) ;(define g1 (new gauge% [parent g] [stretchable-width #t] [label "gauge 1"] [range 100]))
;(define lbl1 (new message% [parent g] [label "This is lbl 1 and long"])) ;(define lbl1 (new message% [parent g] [label "This is lbl 1 and long"] [auto-resize #t]))
;(define btn2 (new button% [parent g] [label "Btn 2"])) ;(define btn2 (new button% [parent g] [label "Btn 2"]))
;(define g2-lbl (new message% [parent g] [label "This is something else then a gauge"])) ;(define g2-lbl (new message% [parent g] [label "This is something else then a gauge"]))
;(define lbl2 (new message% [parent g] [label "This is lbl 2"])) ;(define lbl2 (new message% [parent g] [label "This is lbl 2"] [auto-resize #t]))
;(define btn3 (new button% [parent g] [label "Btn 3"] ;(define btn3 (new button% [parent g] [label "Btn 3"]
; [callback (lambda (b e) (send lbl3 set-label "Longer label now"))])) ; [callback (lambda (b e) (send lbl3 set-label "Longer label now"))]))
;(define g3-lbl (new message% [parent g] [label "This is something else then a gauge, another message"])) ;(define g3-lbl (new message% [parent g] [label "This is something else then a gauge, another message"]))
;(define lbl3 (new message% [parent g] [label "short"])) ;(define lbl3 (new message% [parent g] [label "short"] [auto-resize #t]))
;(send win show #t) ;(send win show #t)

View File

@@ -4,6 +4,7 @@
scribble/example scribble/example
(for-label racket/base (for-label racket/base
racket/string racket/string
racket/core
racket/gui racket/gui
racket/file)) racket/file))