<border> now takes a pair instead of an integer
parent
f93b2f1c29
commit
7b2a705352
|
@ -5,7 +5,7 @@ HELP: border
|
||||||
{ $class-description "A border gadget contains a single child and centers it, with a fixed-width border. Borders are created by calling " { $link <border> } "." } ;
|
{ $class-description "A border gadget contains a single child and centers it, with a fixed-width border. Borders are created by calling " { $link <border> } "." } ;
|
||||||
|
|
||||||
HELP: <border>
|
HELP: <border>
|
||||||
{ $values { "child" gadget } { "gap" integer } { "border" "a new " { $link border } } }
|
{ $values { "child" gadget } { "gap" "a pair of integers" } { "border" "a new " { $link border } } }
|
||||||
{ $description "Creates a new border around the child with the specified horizontal and vertical gap." } ;
|
{ $description "Creates a new border around the child with the specified horizontal and vertical gap." } ;
|
||||||
|
|
||||||
ARTICLE: "ui.gadgets.borders" "Border gadgets"
|
ARTICLE: "ui.gadgets.borders" "Border gadgets"
|
||||||
|
|
|
@ -2,15 +2,15 @@ IN: ui.gadgets.borders.tests
|
||||||
USING: tools.test accessors namespaces kernel
|
USING: tools.test accessors namespaces kernel
|
||||||
ui.gadgets ui.gadgets.borders math.geometry.rect ;
|
ui.gadgets ui.gadgets.borders math.geometry.rect ;
|
||||||
|
|
||||||
[ { 110 210 } ] [ <gadget> { 100 200 } >>dim 5 <border> pref-dim ] unit-test
|
[ { 110 210 } ] [ <gadget> { 100 200 } >>dim { 5 5 } <border> pref-dim ] unit-test
|
||||||
|
|
||||||
[ ] [ <gadget> { 100 200 } >>dim "g" set ] unit-test
|
[ ] [ <gadget> { 100 200 } >>dim "g" set ] unit-test
|
||||||
|
|
||||||
[ ] [ "g" get 0 <border> { 100 200 } >>dim "b" set ] unit-test
|
[ ] [ "g" get { 0 0 } <border> { 100 200 } >>dim "b" set ] unit-test
|
||||||
|
|
||||||
[ T{ rect f { 0 0 } { 100 200 } } ] [ "b" get border-child-rect ] unit-test
|
[ T{ rect f { 0 0 } { 100 200 } } ] [ "b" get border-child-rect ] unit-test
|
||||||
|
|
||||||
[ ] [ "g" get 5 <border> { 210 210 } >>dim "b" set ] unit-test
|
[ ] [ "g" get { 5 5 } <border> { 210 210 } >>dim "b" set ] unit-test
|
||||||
|
|
||||||
[ T{ rect f { 55 5 } { 100 200 } } ] [ "b" get border-child-rect ] unit-test
|
[ T{ rect f { 55 5 } { 100 200 } } ] [ "b" get border-child-rect ] unit-test
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
! Copyright (C) 2005, 2008 Slava Pestov.
|
! Copyright (C) 2005, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays ui.gadgets kernel math
|
USING: accessors arrays ui.gadgets kernel math
|
||||||
namespaces vectors sequences math.vectors math.geometry.rect ;
|
namespaces vectors sequences math.vectors math.geometry.rect ;
|
||||||
|
@ -14,14 +14,16 @@ TUPLE: border < gadget
|
||||||
|
|
||||||
: <border> ( child gap -- border )
|
: <border> ( child gap -- border )
|
||||||
swap border new-border
|
swap border new-border
|
||||||
swap dup 2array >>size ;
|
swap >>size ;
|
||||||
|
|
||||||
: <filled-border> ( child gap -- border )
|
: <filled-border> ( child gap -- border )
|
||||||
<border> { 1 1 } >>fill ;
|
<border> { 1 1 } >>fill ;
|
||||||
|
|
||||||
M: border pref-dim*
|
M: border pref-dim*
|
||||||
[ size>> 2 v*n ] keep
|
[ size>> 2 v*n ] [ gadget-child pref-dim ] bi v+ ;
|
||||||
gadget-child pref-dim v+ ;
|
|
||||||
|
M: border baseline
|
||||||
|
[ size>> second ] [ gadget-child baseline ] bi + ;
|
||||||
|
|
||||||
: border-major-dim ( border -- dim )
|
: border-major-dim ( border -- dim )
|
||||||
[ dim>> ] [ size>> 2 v*n ] bi v- ;
|
[ dim>> ] [ size>> 2 v*n ] bi v- ;
|
||||||
|
@ -43,9 +45,8 @@ M: border pref-dim*
|
||||||
dup border-dim [ border-loc ] keep <rect> ;
|
dup border-dim [ border-loc ] keep <rect> ;
|
||||||
|
|
||||||
M: border layout*
|
M: border layout*
|
||||||
dup border-child-rect swap gadget-child
|
[ gadget-child ] [ border-child-rect ] bi
|
||||||
over loc>> >>loc
|
[ loc>> >>loc ] [ dim>> >>dim ] bi
|
||||||
swap dim>> >>dim
|
|
||||||
drop ;
|
drop ;
|
||||||
|
|
||||||
M: border focusable-child*
|
M: border focusable-child*
|
||||||
|
|
|
@ -26,7 +26,7 @@ IN: ui.gadgets.menus
|
||||||
: <commands-menu> ( target hook commands -- menu )
|
: <commands-menu> ( target hook commands -- menu )
|
||||||
[ <filled-pile> ] 3dip
|
[ <filled-pile> ] 3dip
|
||||||
[ <menu-item> add-gadget ] with with each
|
[ <menu-item> add-gadget ] with with each
|
||||||
5 <border> menu-theme ;
|
{ 5 5 } <border> menu-theme ;
|
||||||
|
|
||||||
: show-commands-menu ( target commands -- )
|
: show-commands-menu ( target commands -- )
|
||||||
[ dup [ ] ] dip <commands-menu> show-menu ;
|
[ dup [ ] ] dip <commands-menu> show-menu ;
|
||||||
|
|
|
@ -4,7 +4,7 @@ USING: accessors kernel delegate fry sequences
|
||||||
models models.search models.delay calendar locals
|
models models.search models.delay calendar locals
|
||||||
ui.gadgets.editors ui.gadgets.labels ui.gadgets.scrollers
|
ui.gadgets.editors ui.gadgets.labels ui.gadgets.scrollers
|
||||||
ui.gadgets.tables ui.gadgets.tracks ui.gadgets.borders
|
ui.gadgets.tables ui.gadgets.tracks ui.gadgets.borders
|
||||||
ui.gadgets.buttons ;
|
ui.gadgets.buttons ui.gadgets ;
|
||||||
IN: ui.gadgets.search-tables
|
IN: ui.gadgets.search-tables
|
||||||
|
|
||||||
TUPLE: search-field < track field ;
|
TUPLE: search-field < track field ;
|
||||||
|
@ -16,7 +16,7 @@ TUPLE: search-field < track field ;
|
||||||
"X" swap '[ drop _ clear-search-field ] <roll-button> ;
|
"X" swap '[ drop _ clear-search-field ] <roll-button> ;
|
||||||
|
|
||||||
: <search-field> ( model -- gadget )
|
: <search-field> ( model -- gadget )
|
||||||
{ 1 0 } search-field new-track
|
horizontal search-field new-track
|
||||||
{ 5 5 } >>gap
|
{ 5 5 } >>gap
|
||||||
"Search:" <label> f track-add
|
"Search:" <label> f track-add
|
||||||
swap <model-field> 10 >>min-width >>field
|
swap <model-field> 10 >>min-width >>field
|
||||||
|
@ -45,10 +45,10 @@ CONSULT: table-protocol search-table table>> ;
|
||||||
|
|
||||||
:: <search-table> ( values quot -- gadget )
|
:: <search-table> ( values quot -- gadget )
|
||||||
f <model> :> search
|
f <model> :> search
|
||||||
{ 0 1 } search-table new-track
|
vertical search-table new-track
|
||||||
values >>model
|
values >>model
|
||||||
search <search-field> >>field
|
search <search-field> >>field
|
||||||
dup field>> 2 <filled-border> f track-add
|
dup field>> { 2 2 } <filled-border> f track-add
|
||||||
values search 500 milliseconds <delay> quot <search> <table> >>table
|
values search 500 milliseconds <delay> quot <search> <table> >>table
|
||||||
dup table>> <scroller> 1 track-add ;
|
dup table>> <scroller> 1 track-add ;
|
||||||
|
|
||||||
|
|
|
@ -104,16 +104,16 @@ deploy-gadget "toolbar" f {
|
||||||
|
|
||||||
: <deploy-gadget> ( vocab -- gadget )
|
: <deploy-gadget> ( vocab -- gadget )
|
||||||
deploy-gadget new-gadget
|
deploy-gadget new-gadget
|
||||||
over >>vocab
|
over >>vocab
|
||||||
{ 0 1 } >>orientation
|
vertical >>orientation
|
||||||
swap <deploy-settings> >>settings
|
swap <deploy-settings> >>settings
|
||||||
dup settings>> add-gadget
|
dup settings>> add-gadget
|
||||||
dup <toolbar> { 10 10 } >>gap add-gadget
|
dup <toolbar> { 10 10 } >>gap add-gadget
|
||||||
deploy-settings-theme
|
deploy-settings-theme
|
||||||
dup com-revert ;
|
dup com-revert ;
|
||||||
|
|
||||||
: deploy-tool ( vocab -- )
|
: deploy-tool ( vocab -- )
|
||||||
vocab-name
|
vocab-name
|
||||||
[ <deploy-gadget> 10 <border> ]
|
[ <deploy-gadget> { 10 10 } <border> ]
|
||||||
[ "Deploying \"" "\"" surround ] bi
|
[ "Deploying \"" "\"" surround ] bi
|
||||||
open-window ;
|
open-window ;
|
||||||
|
|
|
@ -13,7 +13,7 @@ IN: hello-unicode
|
||||||
"안녕하세요" print
|
"안녕하세요" print
|
||||||
"שָׁלוֹם " print
|
"שָׁלוֹם " print
|
||||||
] with-style
|
] with-style
|
||||||
] make-pane 10 <border> ;
|
] make-pane { 10 10 } <border> ;
|
||||||
|
|
||||||
: hello-unicode ( -- ) <hello-gadget> "გამარჯობა" open-window ;
|
: hello-unicode ( -- ) <hello-gadget> "გამარჯობა" open-window ;
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ M: axis-gadget pref-dim* drop SIZE ;
|
||||||
TUPLE: joystick-demo-gadget < pack axis raxis controller buttons alarm ;
|
TUPLE: joystick-demo-gadget < pack axis raxis controller buttons alarm ;
|
||||||
|
|
||||||
: add-gadget-with-border ( parent child -- parent )
|
: add-gadget-with-border ( parent child -- parent )
|
||||||
2 <border> gray <solid> >>boundary add-gadget ;
|
{ 2 2 } <border> gray <solid> >>boundary add-gadget ;
|
||||||
|
|
||||||
: add-controller-label ( gadget controller -- gadget )
|
: add-controller-label ( gadget controller -- gadget )
|
||||||
[ >>controller ] [ product-string <label> add-gadget ] bi ;
|
[ >>controller ] [ product-string <label> add-gadget ] bi ;
|
||||||
|
|
|
@ -174,7 +174,7 @@ M: key-caps-gadget handle-gesture
|
||||||
: key-caps ( -- )
|
: key-caps ( -- )
|
||||||
[
|
[
|
||||||
open-game-input
|
open-game-input
|
||||||
<key-caps-gadget> 5 <border> "Key Caps" open-window
|
<key-caps-gadget> { 5 5 } <border> "Key Caps" open-window
|
||||||
] with-ui ;
|
] with-ui ;
|
||||||
|
|
||||||
MAIN: key-caps
|
MAIN: key-caps
|
||||||
|
|
|
@ -59,11 +59,11 @@ M: take-screenshot draw-boundary
|
||||||
<gadget>
|
<gadget>
|
||||||
black <solid> >>interior
|
black <solid> >>interior
|
||||||
{ 98 98 } >>dim
|
{ 98 98 } >>dim
|
||||||
1 <border> add-gadget
|
{ 1 1 } <border> add-gadget
|
||||||
<gadget>
|
<gadget>
|
||||||
gray <solid> >>boundary
|
gray <solid> >>boundary
|
||||||
{ 94 94 } >>dim
|
{ 94 94 } >>dim
|
||||||
3 <border>
|
{ 3 3 } <border>
|
||||||
red <solid> >>boundary
|
red <solid> >>boundary
|
||||||
add-gadget
|
add-gadget
|
||||||
<line-gadget> <line-gadget> <line-gadget> 3array
|
<line-gadget> <line-gadget> <line-gadget> 3array
|
||||||
|
@ -77,7 +77,7 @@ M: take-screenshot draw-boundary
|
||||||
{ 14 14 } >>dim
|
{ 14 14 } >>dim
|
||||||
black <checkmark-paint> >>interior
|
black <checkmark-paint> >>interior
|
||||||
black <solid> >>boundary
|
black <solid> >>boundary
|
||||||
4 <border>
|
{ 4 4 } <border>
|
||||||
add-gadget ;
|
add-gadget ;
|
||||||
|
|
||||||
: ui-render-test ( -- )
|
: ui-render-test ( -- )
|
||||||
|
|
Loading…
Reference in New Issue