<border> now takes a pair instead of an integer

db4
Slava Pestov 2009-02-02 00:00:45 -06:00
parent f93b2f1c29
commit 7b2a705352
10 changed files with 29 additions and 28 deletions

View File

@ -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> } "." } ;
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." } ;
ARTICLE: "ui.gadgets.borders" "Border gadgets"

View File

@ -2,15 +2,15 @@ IN: ui.gadgets.borders.tests
USING: tools.test accessors namespaces kernel
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
[ ] [ "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
[ ] [ "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

View File

@ -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.
USING: accessors arrays ui.gadgets kernel math
namespaces vectors sequences math.vectors math.geometry.rect ;
@ -14,14 +14,16 @@ TUPLE: border < gadget
: <border> ( child gap -- border )
swap border new-border
swap dup 2array >>size ;
swap >>size ;
: <filled-border> ( child gap -- border )
<border> { 1 1 } >>fill ;
M: border pref-dim*
[ size>> 2 v*n ] keep
gadget-child pref-dim v+ ;
[ size>> 2 v*n ] [ gadget-child pref-dim ] bi v+ ;
M: border baseline
[ size>> second ] [ gadget-child baseline ] bi + ;
: border-major-dim ( border -- dim )
[ dim>> ] [ size>> 2 v*n ] bi v- ;
@ -43,9 +45,8 @@ M: border pref-dim*
dup border-dim [ border-loc ] keep <rect> ;
M: border layout*
dup border-child-rect swap gadget-child
over loc>> >>loc
swap dim>> >>dim
[ gadget-child ] [ border-child-rect ] bi
[ loc>> >>loc ] [ dim>> >>dim ] bi
drop ;
M: border focusable-child*

View File

@ -26,7 +26,7 @@ IN: ui.gadgets.menus
: <commands-menu> ( target hook commands -- menu )
[ <filled-pile> ] 3dip
[ <menu-item> add-gadget ] with with each
5 <border> menu-theme ;
{ 5 5 } <border> menu-theme ;
: show-commands-menu ( target commands -- )
[ dup [ ] ] dip <commands-menu> show-menu ;

View File

@ -4,7 +4,7 @@ USING: accessors kernel delegate fry sequences
models models.search models.delay calendar locals
ui.gadgets.editors ui.gadgets.labels ui.gadgets.scrollers
ui.gadgets.tables ui.gadgets.tracks ui.gadgets.borders
ui.gadgets.buttons ;
ui.gadgets.buttons ui.gadgets ;
IN: ui.gadgets.search-tables
TUPLE: search-field < track field ;
@ -16,7 +16,7 @@ TUPLE: search-field < track field ;
"X" swap '[ drop _ clear-search-field ] <roll-button> ;
: <search-field> ( model -- gadget )
{ 1 0 } search-field new-track
horizontal search-field new-track
{ 5 5 } >>gap
"Search:" <label> f track-add
swap <model-field> 10 >>min-width >>field
@ -45,10 +45,10 @@ CONSULT: table-protocol search-table table>> ;
:: <search-table> ( values quot -- gadget )
f <model> :> search
{ 0 1 } search-table new-track
vertical search-table new-track
values >>model
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
dup table>> <scroller> 1 track-add ;

View File

@ -104,16 +104,16 @@ deploy-gadget "toolbar" f {
: <deploy-gadget> ( vocab -- gadget )
deploy-gadget new-gadget
over >>vocab
{ 0 1 } >>orientation
swap <deploy-settings> >>settings
dup settings>> add-gadget
dup <toolbar> { 10 10 } >>gap add-gadget
over >>vocab
vertical >>orientation
swap <deploy-settings> >>settings
dup settings>> add-gadget
dup <toolbar> { 10 10 } >>gap add-gadget
deploy-settings-theme
dup com-revert ;
: deploy-tool ( vocab -- )
vocab-name
[ <deploy-gadget> 10 <border> ]
[ <deploy-gadget> { 10 10 } <border> ]
[ "Deploying \"" "\"" surround ] bi
open-window ;

View File

@ -13,7 +13,7 @@ IN: hello-unicode
"안녕하세요" print
"שָׁלוֹם " print
] with-style
] make-pane 10 <border> ;
] make-pane { 10 10 } <border> ;
: hello-unicode ( -- ) <hello-gadget> "გამარჯობა" open-window ;

View File

@ -76,7 +76,7 @@ M: axis-gadget pref-dim* drop SIZE ;
TUPLE: joystick-demo-gadget < pack axis raxis controller buttons alarm ;
: 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 )
[ >>controller ] [ product-string <label> add-gadget ] bi ;

View File

@ -174,7 +174,7 @@ M: key-caps-gadget handle-gesture
: key-caps ( -- )
[
open-game-input
<key-caps-gadget> 5 <border> "Key Caps" open-window
<key-caps-gadget> { 5 5 } <border> "Key Caps" open-window
] with-ui ;
MAIN: key-caps

View File

@ -59,11 +59,11 @@ M: take-screenshot draw-boundary
<gadget>
black <solid> >>interior
{ 98 98 } >>dim
1 <border> add-gadget
{ 1 1 } <border> add-gadget
<gadget>
gray <solid> >>boundary
{ 94 94 } >>dim
3 <border>
{ 3 3 } <border>
red <solid> >>boundary
add-gadget
<line-gadget> <line-gadget> <line-gadget> 3array
@ -77,7 +77,7 @@ M: take-screenshot draw-boundary
{ 14 14 } >>dim
black <checkmark-paint> >>interior
black <solid> >>boundary
4 <border>
{ 4 4 } <border>
add-gadget ;
: ui-render-test ( -- )