diff --git a/basis/cairo/gadgets/gadgets.factor b/basis/cairo/gadgets/gadgets.factor index 87942b4c91..a120f86539 100644 --- a/basis/cairo/gadgets/gadgets.factor +++ b/basis/cairo/gadgets/gadgets.factor @@ -26,7 +26,7 @@ GENERIC: render-cairo* ( gadget -- ) TUPLE: cairo-gadget < gadget ; : ( dim -- gadget ) - cairo-gadget new-gadget + cairo-gadget new swap >>dim ; M: cairo-gadget draw-gadget* diff --git a/basis/ui/gadgets/books/books.factor b/basis/ui/gadgets/books/books.factor index 5c24623f89..28cae56de9 100644 --- a/basis/ui/gadgets/books/books.factor +++ b/basis/ui/gadgets/books/books.factor @@ -17,7 +17,7 @@ M: book model-changed ( model book -- ) relayout ; : new-book ( model class -- book ) - new-gadget + new swap >>model ; inline : ( pages model -- book ) diff --git a/basis/ui/gadgets/canvas/canvas.factor b/basis/ui/gadgets/canvas/canvas.factor index 668a19e844..1c36f4f9fd 100644 --- a/basis/ui/gadgets/canvas/canvas.factor +++ b/basis/ui/gadgets/canvas/canvas.factor @@ -8,7 +8,7 @@ IN: ui.gadgets.canvas TUPLE: canvas < gadget dlist ; : new-canvas ( class -- canvas ) - new-gadget black >>interior ; inline + new black >>interior ; inline : delete-canvas-dlist ( canvas -- ) [ find-gl-context ] diff --git a/basis/ui/gadgets/debug/debug.factor b/basis/ui/gadgets/debug/debug.factor index 616ab81fad..3c66d06a16 100644 --- a/basis/ui/gadgets/debug/debug.factor +++ b/basis/ui/gadgets/debug/debug.factor @@ -8,7 +8,7 @@ TUPLE: baseline-gadget < gadget baseline ; M: baseline-gadget baseline baseline>> ; : ( baseline dim -- gadget ) - baseline-gadget new-gadget + baseline-gadget new swap >>dim swap >>baseline ; @@ -26,7 +26,7 @@ M: bad-gadget draw-gadget* "Lulz" throw ; M: bad-gadget pref-dim* drop { 100 100 } ; -: ( -- gadget ) bad-gadget new-gadget ; +: ( -- gadget ) bad-gadget new ; : bad-gadget-test ( -- ) "Test 1" open-window diff --git a/basis/ui/gadgets/frames/frames.factor b/basis/ui/gadgets/frames/frames.factor index 10a2f34c90..34f4686518 100644 --- a/basis/ui/gadgets/frames/frames.factor +++ b/basis/ui/gadgets/frames/frames.factor @@ -14,7 +14,7 @@ TUPLE: glue < gadget ; M: glue pref-dim* drop { 0 0 } ; -: ( -- glue ) glue new-gadget ; +: ( -- glue ) glue new ; : ( cols rows -- grid ) swap '[ _ [ ] replicate ] replicate ; diff --git a/basis/ui/gadgets/gadgets-tests.factor b/basis/ui/gadgets/gadgets-tests.factor index 72e740dfa0..2bfa2fb52a 100644 --- a/basis/ui/gadgets/gadgets-tests.factor +++ b/basis/ui/gadgets/gadgets-tests.factor @@ -75,7 +75,7 @@ IN: ui.gadgets.tests TUPLE: mock-gadget < gadget graft-called ungraft-called ; : ( -- gadget ) - mock-gadget new-gadget 0 >>graft-called 0 >>ungraft-called ; + mock-gadget new 0 >>graft-called 0 >>ungraft-called ; M: mock-gadget graft* [ 1+ ] change-graft-called drop ; diff --git a/basis/ui/gadgets/gadgets.factor b/basis/ui/gadgets/gadgets.factor index f424ffb1cc..967b14da78 100644 --- a/basis/ui/gadgets/gadgets.factor +++ b/basis/ui/gadgets/gadgets.factor @@ -36,10 +36,8 @@ M: gadget model-changed 2drop ; : nth-gadget ( n gadget -- child ) children>> nth ; -: new-gadget ( class -- gadget ) new ; inline - : ( -- gadget ) - gadget new-gadget ; + gadget new ; : control-value ( control -- value ) model>> value>> ; diff --git a/basis/ui/gadgets/glass/glass.factor b/basis/ui/gadgets/glass/glass.factor index 6b5dac6e36..0a91236bd4 100644 --- a/basis/ui/gadgets/glass/glass.factor +++ b/basis/ui/gadgets/glass/glass.factor @@ -17,7 +17,7 @@ M: gadget hide-glass-hook drop ; TUPLE: glass < gadget visible-rect owner ; : ( owner child visible-rect -- glass ) - glass new-gadget + glass new swap >>visible-rect swap add-gadget swap >>owner ; diff --git a/basis/ui/gadgets/grids/grids.factor b/basis/ui/gadgets/grids/grids.factor index 4e7882f826..dc4217438e 100644 --- a/basis/ui/gadgets/grids/grids.factor +++ b/basis/ui/gadgets/grids/grids.factor @@ -11,7 +11,7 @@ grid { fill? initial: t } ; : new-grid ( children class -- grid ) - new-gadget + new swap [ >>grid ] [ concat add-gadgets ] bi ; inline : ( children -- grid ) diff --git a/basis/ui/gadgets/incremental/incremental.factor b/basis/ui/gadgets/incremental/incremental.factor index 6cb2bdd98c..767b1a57b1 100644 --- a/basis/ui/gadgets/incremental/incremental.factor +++ b/basis/ui/gadgets/incremental/incremental.factor @@ -8,7 +8,7 @@ IN: ui.gadgets.incremental TUPLE: incremental < pack cursor ; : ( -- incremental ) - incremental new-gadget + incremental new vertical >>orientation { 0 0 } >>cursor ; diff --git a/basis/ui/gadgets/labels/labels.factor b/basis/ui/gadgets/labels/labels.factor index 7ac729c451..3740654898 100644 --- a/basis/ui/gadgets/labels/labels.factor +++ b/basis/ui/gadgets/labels/labels.factor @@ -38,7 +38,7 @@ M: label (>>string) ( string label -- ) sans-serif-font >>font ; inline : new-label ( string class -- label ) - new-gadget + new swap >>string label-theme ; inline diff --git a/basis/ui/gadgets/packs/packs.factor b/basis/ui/gadgets/packs/packs.factor index c588ed1b98..b23f0474f9 100644 --- a/basis/ui/gadgets/packs/packs.factor +++ b/basis/ui/gadgets/packs/packs.factor @@ -50,7 +50,7 @@ PRIVATE> [ [ packed-locs ] [ children>> ] bi [ (>>loc) ] 2each ] 2bi ; : ( orientation -- pack ) - pack new-gadget + pack new swap >>orientation ; : ( -- pack ) vertical ; diff --git a/basis/ui/gadgets/panes/panes.factor b/basis/ui/gadgets/panes/panes.factor index e9f88f774a..530bbaef49 100644 --- a/basis/ui/gadgets/panes/panes.factor +++ b/basis/ui/gadgets/panes/panes.factor @@ -50,7 +50,7 @@ M: pane gadget-selection ( pane -- string/f ) bi ; : new-pane ( input class -- pane ) - new-gadget + new swap >>input 1 >>fill vertical >>orientation diff --git a/basis/ui/gadgets/paragraphs/paragraphs-tests.factor b/basis/ui/gadgets/paragraphs/paragraphs-tests.factor index d0f9f325b2..0a759ab11d 100644 --- a/basis/ui/gadgets/paragraphs/paragraphs-tests.factor +++ b/basis/ui/gadgets/paragraphs/paragraphs-tests.factor @@ -5,7 +5,7 @@ sequences kernel ; TUPLE: fake-break < gadget ; -: ( -- gadget ) fake-break new-gadget { 5 5 } >>dim ; +: ( -- gadget ) fake-break new { 5 5 } >>dim ; INSTANCE: fake-break word-break diff --git a/basis/ui/gadgets/paragraphs/paragraphs.factor b/basis/ui/gadgets/paragraphs/paragraphs.factor index 9929ade177..f55e67f131 100644 --- a/basis/ui/gadgets/paragraphs/paragraphs.factor +++ b/basis/ui/gadgets/paragraphs/paragraphs.factor @@ -20,7 +20,7 @@ INSTANCE: word-break-gadget word-break TUPLE: paragraph < gadget margin ; : ( margin -- gadget ) - paragraph new-gadget + paragraph new horizontal >>orientation swap >>margin ; diff --git a/basis/ui/gadgets/sliders/sliders.factor b/basis/ui/gadgets/sliders/sliders.factor index 24607d3aef..6cfb83a49a 100644 --- a/basis/ui/gadgets/sliders/sliders.factor +++ b/basis/ui/gadgets/sliders/sliders.factor @@ -129,7 +129,7 @@ elevator H{ } set-gestures : ( vector -- elevator ) - elevator new-gadget + elevator new swap >>orientation ; : thumb-loc ( slider -- loc ) diff --git a/basis/ui/gadgets/worlds/worlds-tests.factor b/basis/ui/gadgets/worlds/worlds-tests.factor index 34ddc17767..aeef3a6e5d 100644 --- a/basis/ui/gadgets/worlds/worlds-tests.factor +++ b/basis/ui/gadgets/worlds/worlds-tests.factor @@ -49,12 +49,12 @@ IN: ui.gadgets.worlds.tests TUPLE: focusing < gadget ; : - focusing new-gadget ; + focusing new ; TUPLE: focus-test < gadget ; : - focus-test new-gadget + focus-test new dup add-gadget drop ; M: focus-test focusable-child* gadget-child ; diff --git a/basis/ui/gadgets/wrappers/wrappers.factor b/basis/ui/gadgets/wrappers/wrappers.factor index 33c67313e2..53010a3fed 100644 --- a/basis/ui/gadgets/wrappers/wrappers.factor +++ b/basis/ui/gadgets/wrappers/wrappers.factor @@ -6,7 +6,7 @@ IN: ui.gadgets.wrappers TUPLE: wrapper < gadget ; : new-wrapper ( child class -- wrapper ) - new-gadget swap add-gadget ; inline + new swap add-gadget ; inline : ( child -- wrapper ) wrapper new-wrapper ; diff --git a/basis/ui/tools/deploy/deploy.factor b/basis/ui/tools/deploy/deploy.factor index bedd5aded2..bb41c1c88d 100644 --- a/basis/ui/tools/deploy/deploy.factor +++ b/basis/ui/tools/deploy/deploy.factor @@ -104,7 +104,7 @@ deploy-gadget "toolbar" f { } define-command-map : ( vocab -- gadget ) - deploy-gadget new-gadget + deploy-gadget new over >>vocab vertical >>orientation swap >>settings diff --git a/basis/ui/ui-docs.factor b/basis/ui/ui-docs.factor index 6871fbffeb..6ef8696f46 100644 --- a/basis/ui/ui-docs.factor +++ b/basis/ui/ui-docs.factor @@ -1,7 +1,8 @@ USING: help.markup help.syntax strings quotations debugger namespaces ui.backend ui.gadgets ui.gadgets.worlds ui.gadgets.tracks ui.gadgets.packs ui.gadgets.grids -ui.gadgets.private math.rectangles colors ui.text fonts ; +ui.gadgets.private math.rectangles colors ui.text fonts +kernel ; IN: ui HELP: windows @@ -226,8 +227,8 @@ ARTICLE: "new-gadgets" "Implementing new gadgets" $nl "Bare gadgets can be constructed directly, which is useful if all you need is a custom appearance with no further behavior (see " { $link "ui-pen-protocol" } "):" { $subsection } -"New gadgets are defined as subclasses of an existing gadget type, perhaps even " { $link gadget } " itself. A parametrized constructor should be used to construct subclasses:" -{ $subsection new-gadget } +"New gadgets are defined as subclasses of an existing gadget type, perhaps even " { $link gadget } " itself. Direct subclasses of " { $link gadget } " can be constructed using " { $link new } ", however some subclasses may define their own parametrized constructors (see " { $link "parametrized-constructors" } ")." +$nl "Further topics:" { $subsection "ui-gestures" } { $subsection "ui-paint" } diff --git a/extra/joystick-demo/joystick-demo.factor b/extra/joystick-demo/joystick-demo.factor index 96bac7c72e..bfb5ad56fd 100755 --- a/extra/joystick-demo/joystick-demo.factor +++ b/extra/joystick-demo/joystick-demo.factor @@ -67,7 +67,7 @@ M: axis-gadget pref-dim* drop SIZE ; pov-polygons [ add-pov-gadget ] assoc-map >>pov ; : ( -- gadget ) - axis-gadget new-gadget + axis-gadget new add-pov-gadgets black [ >>z-indicator ] [ add-gadget ] bi red [ >>indicator ] [ add-gadget ] bi @@ -97,7 +97,7 @@ TUPLE: joystick-demo-gadget < pack axis raxis controller buttons alarm ; [ (add-button-gadgets) ] 2keep ; : ( controller -- gadget ) - joystick-demo-gadget new-gadget + joystick-demo-gadget new { 0 1 } >>orientation swap add-controller-label add-axis-gadget add-raxis-gadget add-gadget diff --git a/extra/key-caps/key-caps.factor b/extra/key-caps/key-caps.factor index 1c9011cc84..6fe15e2ca0 100755 --- a/extra/key-caps/key-caps.factor +++ b/extra/key-caps/key-caps.factor @@ -151,7 +151,7 @@ TUPLE: key-caps-gadget < gadget keys alarm ; [ >>keys ] tri ; : ( -- gadget ) - key-caps-gadget new-gadget + key-caps-gadget new add-keys-gadgets ; M: key-caps-gadget pref-dim* drop KEYBOARD-SIZE ; diff --git a/extra/nehe/2/2.factor b/extra/nehe/2/2.factor index 29d4ccffc1..3ee153bbd6 100644 --- a/extra/nehe/2/2.factor +++ b/extra/nehe/2/2.factor @@ -8,7 +8,7 @@ TUPLE: nehe2-gadget < gadget ; : height 256 ; : ( -- gadget ) - nehe2-gadget new-gadget ; + nehe2-gadget new ; M: nehe2-gadget pref-dim* ( gadget -- dim ) drop width height 2array ; diff --git a/extra/nehe/3/3.factor b/extra/nehe/3/3.factor index 75f2e573cc..af9b37f73e 100644 --- a/extra/nehe/3/3.factor +++ b/extra/nehe/3/3.factor @@ -8,7 +8,7 @@ TUPLE: nehe3-gadget < gadget ; : height 256 ; : ( -- gadget ) - nehe3-gadget new-gadget ; + nehe3-gadget new ; M: nehe3-gadget pref-dim* ( gadget -- dim ) drop width height 2array ; diff --git a/extra/nehe/4/4.factor b/extra/nehe/4/4.factor index fda22d2f1e..0938bb366a 100644 --- a/extra/nehe/4/4.factor +++ b/extra/nehe/4/4.factor @@ -10,7 +10,7 @@ TUPLE: nehe4-gadget < gadget rtri rquad thread quit? ; : redraw-interval ( -- dt ) 10 milliseconds ; : ( -- gadget ) - nehe4-gadget new-gadget + nehe4-gadget new 0.0 >>rtri 0.0 >>rquad ; diff --git a/extra/nehe/5/5.factor b/extra/nehe/5/5.factor index 30d0991fd8..5cf312b9f8 100755 --- a/extra/nehe/5/5.factor +++ b/extra/nehe/5/5.factor @@ -9,7 +9,7 @@ TUPLE: nehe5-gadget < gadget rtri rquad thread quit? ; : redraw-interval ( -- dt ) 10 milliseconds ; : ( -- gadget ) - nehe5-gadget new-gadget + nehe5-gadget new 0.0 >>rtri 0.0 >>rquad ; diff --git a/extra/opengl/demo-support/demo-support.factor b/extra/opengl/demo-support/demo-support.factor index c8fe2b4882..0f8529b3d7 100755 --- a/extra/opengl/demo-support/demo-support.factor +++ b/extra/opengl/demo-support/demo-support.factor @@ -12,7 +12,7 @@ SYMBOL: last-drag-loc TUPLE: demo-gadget < gadget yaw pitch distance ; : new-demo-gadget ( yaw pitch distance class -- gadget ) - new-gadget + new swap >>distance swap >>pitch swap >>yaw ; diff --git a/extra/tetris/tetris.factor b/extra/tetris/tetris.factor index bb90f082b7..66f69bb053 100644 --- a/extra/tetris/tetris.factor +++ b/extra/tetris/tetris.factor @@ -6,7 +6,7 @@ IN: tetris TUPLE: tetris-gadget < gadget { tetris tetris } { alarm } ; : ( tetris -- gadget ) - tetris-gadget new-gadget swap >>tetris ; + tetris-gadget new swap >>tetris ; M: tetris-gadget pref-dim* drop { 200 400 } ;