More 4DNav fixes
parent
987a89bc4d
commit
08c3842403
|
@ -3,6 +3,7 @@
|
||||||
USING: kernel
|
USING: kernel
|
||||||
namespaces
|
namespaces
|
||||||
accessors
|
accessors
|
||||||
|
assocs
|
||||||
make
|
make
|
||||||
math
|
math
|
||||||
math.functions
|
math.functions
|
||||||
|
@ -16,6 +17,7 @@ colors
|
||||||
colors.constants
|
colors.constants
|
||||||
prettyprint
|
prettyprint
|
||||||
vars
|
vars
|
||||||
|
call
|
||||||
quotations
|
quotations
|
||||||
io
|
io
|
||||||
io.directories
|
io.directories
|
||||||
|
@ -27,8 +29,6 @@ ui.gadgets.panes
|
||||||
ui.gadgets
|
ui.gadgets
|
||||||
ui.traverse
|
ui.traverse
|
||||||
ui.gadgets.borders
|
ui.gadgets.borders
|
||||||
ui.gadgets.handler
|
|
||||||
ui.gadgets.slate
|
|
||||||
ui.gadgets.frames
|
ui.gadgets.frames
|
||||||
ui.gadgets.tracks
|
ui.gadgets.tracks
|
||||||
ui.gadgets.labels
|
ui.gadgets.labels
|
||||||
|
@ -53,6 +53,7 @@ adsoda
|
||||||
adsoda.tools
|
adsoda.tools
|
||||||
;
|
;
|
||||||
QUALIFIED-WITH: ui.pens.solid s
|
QUALIFIED-WITH: ui.pens.solid s
|
||||||
|
QUALIFIED-WITH: ui.gadgets.wrappers w
|
||||||
|
|
||||||
|
|
||||||
IN: 4DNav
|
IN: 4DNav
|
||||||
|
@ -392,6 +393,13 @@ USE: ui.gadgets.labeled.private
|
||||||
add-gadget
|
add-gadget
|
||||||
menu-quick-views add-gadget ;
|
menu-quick-views add-gadget ;
|
||||||
|
|
||||||
|
TUPLE: handler < w:wrapper table ;
|
||||||
|
|
||||||
|
: <handler> ( child -- handler ) handler w:new-wrapper ;
|
||||||
|
|
||||||
|
M: handler handle-gesture ( gesture gadget -- ? )
|
||||||
|
tuck table>> at dup [ call( gadget -- ) f ] [ 2drop t ] if ;
|
||||||
|
|
||||||
: add-keyboard-delegate ( obj -- obj )
|
: add-keyboard-delegate ( obj -- obj )
|
||||||
<handler>
|
<handler>
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,7 +24,6 @@ ui.gadgets.panes
|
||||||
ui.gadgets.scrollers
|
ui.gadgets.scrollers
|
||||||
prettyprint
|
prettyprint
|
||||||
combinators
|
combinators
|
||||||
rewrite-closures
|
|
||||||
accessors
|
accessors
|
||||||
values
|
values
|
||||||
tools.walker
|
tools.walker
|
||||||
|
@ -67,7 +66,7 @@ file-chooser H{
|
||||||
[ directory? ] bi or ] filter
|
[ directory? ] bi or ] filter
|
||||||
;
|
;
|
||||||
|
|
||||||
: update-filelist-model ( file-chooser -- file-chooser )
|
: update-filelist-model ( file-chooser -- )
|
||||||
[ list-of-files ] [ model>> ] bi set-model ;
|
[ list-of-files ] [ model>> ] bi set-model ;
|
||||||
|
|
||||||
: init-filelist-model ( file-chooser -- file-chooser )
|
: init-filelist-model ( file-chooser -- file-chooser )
|
||||||
|
@ -86,7 +85,7 @@ file-chooser H{
|
||||||
: fc-go-home ( file-chooser -- )
|
: fc-go-home ( file-chooser -- )
|
||||||
[ home ] (fc-go) ;
|
[ home ] (fc-go) ;
|
||||||
|
|
||||||
: fc-change-directory ( file-chooser file -- file-chooser )
|
: fc-change-directory ( file-chooser file -- )
|
||||||
dupd [ path>> value>> normalize-path ] [ name>> ] bi*
|
dupd [ path>> value>> normalize-path ] [ name>> ] bi*
|
||||||
append-path over path>> set-model
|
append-path over path>> set-model
|
||||||
update-filelist-model
|
update-filelist-model
|
||||||
|
|
|
@ -10,9 +10,9 @@ IN: 4DNav.turtle
|
||||||
|
|
||||||
VAR: self
|
VAR: self
|
||||||
|
|
||||||
: with-self ( quot obj -- ) [ >self call ] with-scope ;
|
: with-self ( quot obj -- ) [ >self call ] with-scope ; inline
|
||||||
|
|
||||||
: save-self ( quot -- ) self> [ self> clone >self call ] dip >self ;
|
: save-self ( quot -- ) self> [ self> clone >self call ] dip >self ; inline
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Eduardo Cavazos
|
|
|
@ -1,11 +0,0 @@
|
||||||
|
|
||||||
USING: kernel assocs ui.gestures ui.gadgets.wrappers accessors ;
|
|
||||||
|
|
||||||
IN: ui.gadgets.handler
|
|
||||||
|
|
||||||
TUPLE: handler < wrapper table ;
|
|
||||||
|
|
||||||
: <handler> ( child -- handler ) handler new-wrapper ;
|
|
||||||
|
|
||||||
M: handler handle-gesture ( gesture gadget -- ? )
|
|
||||||
tuck table>> at dup [ call f ] [ 2drop t ] if ;
|
|
|
@ -1 +0,0 @@
|
||||||
Eduardo Cavazos
|
|
|
@ -1,13 +0,0 @@
|
||||||
! Copyright (C) 2009 Eduardo Cavazos
|
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
|
||||||
USING: help.markup help.syntax multiline ;
|
|
||||||
IN: ui.gadgets.slate
|
|
||||||
|
|
||||||
ARTICLE: "ui.gadgets.slate" "Slate gadget"
|
|
||||||
{ $description "A gadget with an 'action' slot which should be set to a callable."}
|
|
||||||
{ $heading "Example" }
|
|
||||||
{ $code <" USING: processing.shapes ui.gadgets.slate ui.gadgets.panes ;
|
|
||||||
[ { { 10 10 } { 50 30 } { 10 50 } } polygon fill-mode ] <slate>
|
|
||||||
gadget."> } ;
|
|
||||||
|
|
||||||
ABOUT: "ui.gadgets.slate"
|
|
|
@ -1,124 +0,0 @@
|
||||||
! Copyright (C) 2009 Eduardo Cavazos
|
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
|
||||||
USING: kernel namespaces opengl ui.render ui.gadgets accessors ;
|
|
||||||
|
|
||||||
IN: ui.gadgets.slate
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
TUPLE: slate < gadget action pdim graft ungraft ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
: init-slate ( slate -- slate )
|
|
||||||
[ ] >>action
|
|
||||||
{ 200 200 } >>pdim
|
|
||||||
[ ] >>graft
|
|
||||||
[ ] >>ungraft ;
|
|
||||||
|
|
||||||
: <slate> ( action -- slate )
|
|
||||||
slate new
|
|
||||||
init-slate
|
|
||||||
swap >>action ;
|
|
||||||
|
|
||||||
M: slate pref-dim* ( slate -- dim ) pdim>> ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
USING: combinators arrays sequences math
|
|
||||||
opengl.gl ui.gadgets.worlds ;
|
|
||||||
|
|
||||||
: width ( rect -- w ) dim>> first ;
|
|
||||||
: height ( rect -- h ) dim>> second ;
|
|
||||||
|
|
||||||
: screen-y* ( gadget -- loc )
|
|
||||||
{
|
|
||||||
[ find-world height ]
|
|
||||||
[ screen-loc second ]
|
|
||||||
[ height ]
|
|
||||||
}
|
|
||||||
cleave
|
|
||||||
+ - ;
|
|
||||||
|
|
||||||
: screen-loc* ( gadget -- loc )
|
|
||||||
{
|
|
||||||
[ screen-loc first ]
|
|
||||||
[ screen-y* ]
|
|
||||||
}
|
|
||||||
cleave
|
|
||||||
2array ;
|
|
||||||
|
|
||||||
: setup-viewport ( gadget -- gadget )
|
|
||||||
dup
|
|
||||||
{
|
|
||||||
[ screen-loc* ]
|
|
||||||
[ dim>> ]
|
|
||||||
}
|
|
||||||
cleave
|
|
||||||
gl-viewport ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
: default-coordinate-system ( gadget -- gadget )
|
|
||||||
dup
|
|
||||||
{
|
|
||||||
[ drop 0 ]
|
|
||||||
[ width 1 - ]
|
|
||||||
[ height 1 - ]
|
|
||||||
[ drop 0 ]
|
|
||||||
}
|
|
||||||
cleave
|
|
||||||
-1 1
|
|
||||||
glOrtho ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
M: slate graft* ( slate -- ) graft>> call ;
|
|
||||||
M: slate ungraft* ( slate -- ) ungraft>> call ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
GENERIC: establish-coordinate-system ( gadget -- gadget )
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
M: slate establish-coordinate-system ( slate -- slate )
|
|
||||||
default-coordinate-system ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
GENERIC: draw-slate ( slate -- slate )
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
M: slate draw-slate ( slate -- slate ) dup action>> call ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
M: slate draw-gadget* ( slate -- )
|
|
||||||
|
|
||||||
GL_PROJECTION glMatrixMode glPushMatrix glLoadIdentity
|
|
||||||
|
|
||||||
establish-coordinate-system
|
|
||||||
|
|
||||||
GL_MODELVIEW glMatrixMode glPushMatrix glLoadIdentity
|
|
||||||
|
|
||||||
setup-viewport
|
|
||||||
|
|
||||||
draw-slate
|
|
||||||
|
|
||||||
GL_PROJECTION glMatrixMode glPopMatrix glLoadIdentity
|
|
||||||
GL_MODELVIEW glMatrixMode glPopMatrix glLoadIdentity
|
|
||||||
|
|
||||||
dup
|
|
||||||
find-world
|
|
||||||
! The world coordinate system is a little wacky:
|
|
||||||
dup { [ drop 0 ] [ width ] [ height ] [ drop 0 ] } cleave -1 1 glOrtho
|
|
||||||
setup-viewport
|
|
||||||
drop
|
|
||||||
drop ;
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
Loading…
Reference in New Issue