diff --git a/extra/color-picker/color-picker.factor b/extra/color-picker/color-picker.factor index b494dbc188..99968ca3c3 100755 --- a/extra/color-picker/color-picker.factor +++ b/extra/color-picker/color-picker.factor @@ -11,10 +11,10 @@ IN: color-picker : ( model -- gadget ) 1 over set-slider-line ; -TUPLE: color-preview ; +TUPLE: color-preview < gadget ; : ( model -- gadget ) - color-preview construct-control + color-preview new-gadget { 100 100 } over set-rect-dim ; M: color-preview model-changed diff --git a/extra/slides/slides.factor b/extra/slides/slides.factor index 1c8b4fcbb3..61829e5936 100755 --- a/extra/slides/slides.factor +++ b/extra/slides/slides.factor @@ -1,3 +1,5 @@ +! Copyright (C) 2007, 2008 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. USING: arrays hashtables help.markup help.stylesheet io io.styles kernel math models namespaces sequences ui ui.gadgets ui.gadgets.books ui.gadgets.panes ui.gestures ui.render @@ -70,12 +72,10 @@ IN: slides $divider $list ; -TUPLE: slides ; +TUPLE: slides < book ; : ( slides -- gadget ) - [ ] map 0 - slides construct-gadget - [ set-gadget-delegate ] keep ; + [ ] map 0 slides new-book ; : change-page ( book n -- ) over control-value + over gadget-children length rem @@ -103,5 +103,3 @@ TUPLE: slides ; : slides-window ( slides -- ) [ "Slides" open-window ] with-ui ; - -MAIN: slides-window diff --git a/extra/ui/cocoa/cocoa.factor b/extra/ui/cocoa/cocoa.factor index b0653ffa39..bf28740ecc 100755 --- a/extra/ui/cocoa/cocoa.factor +++ b/extra/ui/cocoa/cocoa.factor @@ -1,11 +1,11 @@ ! Copyright (C) 2006, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: math arrays cocoa cocoa.application command-line -kernel memory namespaces cocoa.messages cocoa.runtime -cocoa.subclassing cocoa.pasteboard cocoa.types cocoa.windows -cocoa.classes cocoa.application sequences system ui ui.backend -ui.clipboards ui.gadgets ui.gadgets.worlds ui.cocoa.views -core-foundation threads ; +USING: accessors math arrays cocoa cocoa.application +command-line kernel memory namespaces cocoa.messages +cocoa.runtime cocoa.subclassing cocoa.pasteboard cocoa.types +cocoa.windows cocoa.classes cocoa.application sequences system +ui ui.backend ui.clipboards ui.gadgets ui.gadgets.worlds +ui.cocoa.views core-foundation threads ; IN: ui.cocoa TUPLE: handle view window ; @@ -38,7 +38,7 @@ M: pasteboard set-clipboard-contents selection set-global ; : world>NSRect ( world -- NSRect ) - dup world-loc first2 rot rect-dim first2 ; + dup window-loc>> first2 rot rect-dim first2 ; : gadget-window ( world -- ) [ @@ -68,7 +68,7 @@ M: cocoa-ui-backend fullscreen* ( world -- ? ) world-handle handle-view -> isInFullScreenMode zero? not ; : auto-position ( world -- ) - dup world-loc { 0 0 } = [ + dup window-loc>> { 0 0 } = [ world-handle handle-window -> center ] [ drop diff --git a/extra/ui/cocoa/views/views.factor b/extra/ui/cocoa/views/views.factor index 20e6e19de5..68db5954d5 100755 --- a/extra/ui/cocoa/views/views.factor +++ b/extra/ui/cocoa/views/views.factor @@ -1,9 +1,10 @@ ! Copyright (C) 2006, 2008 Slava Pestov ! See http://factorcode.org/license.txt for BSD license. -USING: alien alien.c-types arrays assocs cocoa kernel math cocoa.messages -cocoa.subclassing cocoa.classes cocoa.views cocoa.application -cocoa.pasteboard cocoa.types cocoa.windows sequences ui ui.gadgets -ui.gadgets.worlds ui.gestures core-foundation threads combinators ; +USING: accessors alien alien.c-types arrays assocs cocoa kernel +math cocoa.messages cocoa.subclassing cocoa.classes cocoa.views +cocoa.application cocoa.pasteboard cocoa.types cocoa.windows +sequences ui ui.gadgets ui.gadgets.worlds ui.gestures +core-foundation threads combinators ; IN: ui.cocoa.views : send-mouse-moved ( view event -- ) @@ -377,7 +378,7 @@ CLASS: { [ 2nip -> object dup window-content-rect NSRect-x-y 2array - swap -> contentView window set-world-loc + swap -> contentView window (>>window-loc) ] } diff --git a/extra/ui/gadgets/books/books.factor b/extra/ui/gadgets/books/books.factor index 92520e0266..219a970943 100755 --- a/extra/ui/gadgets/books/books.factor +++ b/extra/ui/gadgets/books/books.factor @@ -1,9 +1,9 @@ -! Copyright (C) 2006, 2007 Slava Pestov. +! Copyright (C) 2006, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: kernel sequences models ui.gadgets ; +USING: accessors kernel sequences models ui.gadgets ; IN: ui.gadgets.books -TUPLE: book ; +TUPLE: book < gadget ; : hide-all ( book -- ) gadget-children [ hide-gadget ] each ; @@ -16,8 +16,13 @@ M: book model-changed dup current-page show-gadget relayout ; +: new-book ( pages model class -- book ) + new-gadget + swap >>model + [ add-gadgets ] keep ; inline + : ( pages model -- book ) - book construct-control [ add-gadgets ] keep ; + book new-book ; M: book pref-dim* gadget-children pref-dims max-dim ; diff --git a/extra/ui/gadgets/borders/borders.factor b/extra/ui/gadgets/borders/borders.factor index 91d20e9c99..ce7ea32008 100644 --- a/extra/ui/gadgets/borders/borders.factor +++ b/extra/ui/gadgets/borders/borders.factor @@ -1,15 +1,16 @@ -! Copyright (C) 2005, 2007 Slava Pestov. +! Copyright (C) 2005, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: arrays ui.gadgets generic hashtables kernel math +USING: accessors arrays ui.gadgets kernel math namespaces vectors sequences math.vectors ; IN: ui.gadgets.borders -TUPLE: border size fill ; +TUPLE: border < gadget size fill ; : ( child gap -- border ) - dup 2array { 0 0 } border boa - over set-delegate - tuck add-gadget ; + border new-gadget + swap dup 2array >>size + { 0 0 } >>fill + [ add-gadget ] keep ; M: border pref-dim* [ border-size 2 v*n ] keep diff --git a/extra/ui/gadgets/buttons/buttons-tests.factor b/extra/ui/gadgets/buttons/buttons-tests.factor index 6c5d757dd4..94801145e3 100755 --- a/extra/ui/gadgets/buttons/buttons-tests.factor +++ b/extra/ui/gadgets/buttons/buttons-tests.factor @@ -16,7 +16,7 @@ TUPLE: foo-gadget ; T{ foo-gadget } "t" set [ 2 ] [ "t" get gadget-children length ] unit-test -[ "Foo A" ] [ "t" get gadget-child gadget-child label-string ] unit-test +[ "Foo A" ] [ "t" get gadget-child gadget-child gadget-child label-string ] unit-test [ ] [ 2 { diff --git a/extra/ui/gadgets/buttons/buttons.factor b/extra/ui/gadgets/buttons/buttons.factor index c36d2050c9..ab71081c87 100755 --- a/extra/ui/gadgets/buttons/buttons.factor +++ b/extra/ui/gadgets/buttons/buttons.factor @@ -1,14 +1,15 @@ ! Copyright (C) 2005, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays ui.commands ui.gadgets ui.gadgets.borders -ui.gadgets.labels ui.gadgets.theme +USING: accessors arrays kernel math models namespaces sequences +strings quotations assocs combinators classes colors +classes.tuple opengl math.vectors +ui.commands ui.gadgets ui.gadgets.borders +ui.gadgets.labels ui.gadgets.theme ui.gadgets.wrappers ui.gadgets.tracks ui.gadgets.packs ui.gadgets.worlds ui.gestures -ui.render kernel math models namespaces sequences strings -quotations assocs combinators classes colors classes.tuple -opengl math.vectors ; +ui.render ; IN: ui.gadgets.buttons -TUPLE: button pressed? selected? quot ; +TUPLE: button < wrapper pressed? selected? quot ; : buttons-down? ( -- ? ) hand-buttons get-global empty? not ; @@ -39,10 +40,13 @@ button H{ { T{ mouse-enter } [ button-update ] } } set-gestures +: new-button ( label quot class -- button ) + new-gadget + swap >>quot + [ >r >label r> add-gadget ] keep ; inline + :