added set-orientation method to panel:dragable (lets the panels
change from being vertically aligned to horizontally aligned, even after they have been created) original commit: 9a485dd49270da20445eeb1c8b664f8f12b414ea
This commit is contained in:
parent
0591eccbe6
commit
3c58e55730
|
@ -182,9 +182,15 @@
|
|||
(define dragable-mixin
|
||||
(mixin (window<%> area-container<%>) (dragable<%>)
|
||||
(init parent)
|
||||
|
||||
(define/public (get-vertical?)
|
||||
(error 'get-vertical "abstract method"))
|
||||
|
||||
(init-field vertical?)
|
||||
|
||||
(define/public-final (get-vertical?) vertical?)
|
||||
(define/public-final (set-orientation h?)
|
||||
(define v? (not h?))
|
||||
(unless (eq? vertical? v?)
|
||||
(set! vertical? v?)
|
||||
(container-flow-modified)))
|
||||
(define/private (min-extent child)
|
||||
(let-values ([(w h) (send child get-graphical-min-size)])
|
||||
(if (get-vertical?)
|
||||
|
@ -413,18 +419,15 @@
|
|||
(stretchable-height #f)
|
||||
(min-height 10)))
|
||||
|
||||
|
||||
(define vertical-dragable-mixin
|
||||
(mixin (dragable<%>) (vertical-dragable<%>)
|
||||
(define/override (get-vertical?) #t)
|
||||
(super-instantiate ())))
|
||||
(super-new [vertical? #t])))
|
||||
|
||||
(define horizontal-dragable-mixin
|
||||
(mixin (dragable<%>) (vertical-dragable<%>)
|
||||
(define/override (get-vertical?) #f)
|
||||
(super-instantiate ())))
|
||||
(super-new [vertical? #f])))
|
||||
|
||||
(define vertical-dragable% (vertical-dragable-mixin (dragable-mixin vertical-panel%)))
|
||||
(define vertical-dragable% (vertical-dragable-mixin (dragable-mixin panel%)))
|
||||
|
||||
(define horizontal-dragable% (horizontal-dragable-mixin (dragable-mixin horizontal-panel%)))
|
||||
(define horizontal-dragable% (horizontal-dragable-mixin (dragable-mixin panel%)))
|
||||
|
||||
|
|
|
@ -98,6 +98,12 @@
|
|||
horizontally aligned.
|
||||
|
||||
}
|
||||
|
||||
@defmethod[(set-orientation [horizontal? boolean?]) void?]{
|
||||
Sets the orientation of the panel, switching it from behaving
|
||||
like a @racket[panel:horizontal-dragable<%>] and
|
||||
@racket[panel:vertical-dragable<%>].
|
||||
}
|
||||
}
|
||||
@definterface[panel:vertical-dragable<%> (panel:dragable<%>)]{
|
||||
A panel that implements
|
||||
|
|
Loading…
Reference in New Issue
Block a user