gadget-title protocol uses models
parent
84ea50c726
commit
c3bfbbe6b7
|
@ -1,3 +1,24 @@
|
||||||
|
+ tomorrow:
|
||||||
|
|
||||||
|
- help gadget: opens 'f' initially
|
||||||
|
- amd64 crash
|
||||||
|
- get factor running on mac intel
|
||||||
|
|
||||||
|
+ day after:
|
||||||
|
|
||||||
|
- multiple listener-run-files is broken
|
||||||
|
- roundoff is still not quite right with tracks
|
||||||
|
- world title a model? gadget-title returns one
|
||||||
|
- httpd search tools
|
||||||
|
- get embedded factor templates in httpd working better
|
||||||
|
- docs: slice: if sequence or seq start is changed, abstraction violation
|
||||||
|
tathi: hrm. wish I knew more about OpenGL.
|
||||||
|
[2:45pm] tathi: Factor's text display is a bit odd sometimes, until you mouse over (or click, if there's no "live" text)
|
||||||
|
[2:46pm] tathi: but the text display code looks good as far as I can tell
|
||||||
|
[2:48pm] tathi: it appears to be using the font metrics from the sprite tuple, but re-using the texture from the previous letter
|
||||||
|
[2:48pm] tathi: very odd
|
||||||
|
[2:59pm] tathi: hmm...and it looks like it's only be happening the first time you use a given character (from a given font face)
|
||||||
|
|
||||||
+ io:
|
+ io:
|
||||||
|
|
||||||
- unix i/o: problems with passing f to syscalls
|
- unix i/o: problems with passing f to syscalls
|
||||||
|
@ -6,83 +27,60 @@
|
||||||
- gdb triggers 'mutliple i/o ops on port' error
|
- gdb triggers 'mutliple i/o ops on port' error
|
||||||
- "localhost" 50 <client> won't fail
|
- "localhost" 50 <client> won't fail
|
||||||
|
|
||||||
+ help:
|
|
||||||
|
|
||||||
- document module system
|
|
||||||
- refactor style stack code so that nested styles are handled at a lower-level
|
|
||||||
- with-style & with-stream-style
|
|
||||||
- in HTML, we can nest div tags, etc
|
|
||||||
- automatically update help graph and search index when adding/removing
|
|
||||||
articles/words
|
|
||||||
- help search:
|
|
||||||
- store positions in index
|
|
||||||
- phrase scoring algorithm based on how close the terms occur?
|
|
||||||
- fix remaining HTML stream issues
|
|
||||||
- better line spacing in ui and html - related issue
|
|
||||||
|
|
||||||
+ ui:
|
+ ui:
|
||||||
|
|
||||||
- clipping seems off
|
- grid slows down with 2000 lines
|
||||||
|
- f should be clickable
|
||||||
|
- clickable vocabs
|
||||||
|
- x11 raise-window
|
||||||
|
- remaining HTML issues need fixing
|
||||||
|
- better component padding and spacing in UI
|
||||||
|
- see if its possible to only repaint dirty regions
|
||||||
- x11 title bars are funny
|
- x11 title bars are funny
|
||||||
- cocoa: starting the UI with +foo switches opens them as files
|
|
||||||
- if the listener is running a command when the image is saved, it
|
- if the listener is running a command when the image is saved, it
|
||||||
restores to an unresponsive gadget
|
restores to an unresponsive gadget
|
||||||
- fix top level window positioning
|
- fix top level window positioning
|
||||||
- services do not launch if factor not running
|
- services do not launch if factor not running
|
||||||
- prettyprinter's highlighting of non-leaves doesn't really work
|
- prettyprinter's highlighting of non-leaves doesn't really work
|
||||||
- rollover is not updated on window focus changes
|
- rollover is not updated on window focus changes
|
||||||
- fix listener scroll to
|
|
||||||
- multiple listener-run-files is broken
|
|
||||||
- table line styles
|
|
||||||
- x11 input methods
|
- x11 input methods
|
||||||
- roundoff is still not quite right with tracks
|
|
||||||
- new browser:
|
- new browser:
|
||||||
- browse generic words and classes
|
- browse generic words and classes
|
||||||
- need actions for reloading the source file and opening word in jEdit
|
- need actions for reloading the source file and opening word in jEdit
|
||||||
- highlight showing panes in originating list
|
- highlight showing panes in originating list
|
||||||
- single set of tabs across the top
|
|
||||||
- make-frame should compile
|
- make-frame should compile
|
||||||
- speed up ideas:
|
|
||||||
- only do clipping for certain gadgets
|
|
||||||
- use glRect
|
|
||||||
- use complex numbers instead of arrays for co-ordinates
|
|
||||||
- use vertex arrays
|
|
||||||
- use display lists
|
|
||||||
- reimplement tab completion
|
- reimplement tab completion
|
||||||
- cocoa:
|
- cocoa:
|
||||||
- horizontal wheel scrolling
|
- horizontal wheel scrolling
|
||||||
- polish OS X menu bar code
|
- polish OS X menu bar code
|
||||||
- dock menu
|
|
||||||
- variable width word wrap
|
- variable width word wrap
|
||||||
|
- use models for the following:
|
||||||
|
- editor gadgets
|
||||||
|
- validator models
|
||||||
|
- search tool
|
||||||
|
- slider needs range-model or similar
|
||||||
|
- outliner
|
||||||
|
|
||||||
+ compiler/ffi:
|
+ compiler/ffi:
|
||||||
|
|
||||||
|
- faster sequence= for UI
|
||||||
- fix compiled gc check
|
- fix compiled gc check
|
||||||
- there was a performance hit, investigate
|
- there was a performance hit, investigate
|
||||||
- float boxing and overflow checks need a gc check too
|
- float boxing and overflow checks need a gc check too
|
||||||
- amd64 crash
|
|
||||||
- get factor running on mac intel
|
|
||||||
- constant branch folding
|
- constant branch folding
|
||||||
- type inference at branch merge points
|
- type inference at branch merge points
|
||||||
- free up r11, r12 as a vreg on ppc
|
- free up r11, r12 as a vreg on ppc
|
||||||
- float= on powerpc doesn't consider nans equal
|
- float= on powerpc doesn't consider nans equal
|
||||||
- intrinsic fixnum>float float>fixnum
|
- intrinsic fixnum>float float>fixnum
|
||||||
- win64 port
|
|
||||||
- complex float type
|
|
||||||
- complex float intrinsics
|
|
||||||
- remove literal table
|
- remove literal table
|
||||||
- C functions returning structs by value
|
- C functions returning structs by value
|
||||||
- FIELD: char key_vector[32];
|
|
||||||
- FIELD: union { char b[20]; short s[10]; long l[5]; } data;
|
|
||||||
- MEMBER: long pad[24];
|
|
||||||
- C structs: use new-style string mode parsing
|
|
||||||
- [ [ dup call ] dup call ] infer hangs
|
- [ [ dup call ] dup call ] infer hangs
|
||||||
- the invalid recursion form case needs to be fixed, for inlines too
|
- the invalid recursion form case needs to be fixed, for inlines too
|
||||||
- code gc
|
- code gc
|
||||||
|
|
||||||
+ misc:
|
+ misc:
|
||||||
|
|
||||||
- if a primitive throws an error, :c doesn't show the call frame there
|
- hashed generic method dispatch
|
||||||
- fix this:
|
- fix this:
|
||||||
|
|
||||||
[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113 ] .
|
[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113 ] .
|
||||||
|
@ -90,6 +88,4 @@
|
||||||
]
|
]
|
||||||
|
|
||||||
- code walker & exceptions -- test and debug problems
|
- code walker & exceptions -- test and debug problems
|
||||||
- slice: if sequence or seq start is changed, abstraction violation
|
|
||||||
- make 3.4 bits>double an error
|
|
||||||
- break: perhaps use current stdio to run break listener
|
- break: perhaps use current stdio to run break listener
|
||||||
|
|
|
@ -151,7 +151,7 @@ C: browser ( -- browser )
|
||||||
{ [ <browser-tracks> ] set-browser-track f @center }
|
{ [ <browser-tracks> ] set-browser-track f @center }
|
||||||
} make-frame* ;
|
} make-frame* ;
|
||||||
|
|
||||||
M: browser gadget-title drop "Browser" ;
|
M: browser gadget-title drop "Browser" <model> ;
|
||||||
|
|
||||||
: browser-window ( -- ) <browser> open-window ;
|
: browser-window ( -- ) <browser> open-window ;
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,7 @@ TUPLE: help-gadget history ;
|
||||||
|
|
||||||
: show-help ( link help -- )
|
: show-help ( link help -- )
|
||||||
dup help-gadget-history add-history
|
dup help-gadget-history add-history
|
||||||
[ help-gadget-history set-model ] keep
|
help-gadget-history set-model ;
|
||||||
dup update-title ;
|
|
||||||
|
|
||||||
: go-home ( help -- ) "handbook" swap show-help ;
|
: go-home ( help -- ) "handbook" swap show-help ;
|
||||||
|
|
||||||
|
@ -35,8 +34,8 @@ C: help-gadget ( -- gadget )
|
||||||
} make-frame* ;
|
} make-frame* ;
|
||||||
|
|
||||||
M: help-gadget gadget-title
|
M: help-gadget gadget-title
|
||||||
"Help - " swap help-gadget-history model-value
|
help-gadget-history
|
||||||
article-title append ;
|
[ "Help - " swap article-title append ] <filter> ;
|
||||||
|
|
||||||
: help-tool
|
: help-tool
|
||||||
[ help-gadget? ]
|
[ help-gadget? ]
|
||||||
|
|
|
@ -4,7 +4,7 @@ IN: gadgets-listener
|
||||||
USING: arrays gadgets gadgets-editors gadgets-frames
|
USING: arrays gadgets gadgets-editors gadgets-frames
|
||||||
gadgets-labels gadgets-panes gadgets-presentations
|
gadgets-labels gadgets-panes gadgets-presentations
|
||||||
gadgets-scrolling gadgets-theme generic hashtables inspector io
|
gadgets-scrolling gadgets-theme generic hashtables inspector io
|
||||||
jedit kernel listener math namespaces parser prettyprint
|
jedit kernel listener math models namespaces parser prettyprint
|
||||||
sequences styles threads words ;
|
sequences styles threads words ;
|
||||||
|
|
||||||
TUPLE: listener-gadget pane stack ;
|
TUPLE: listener-gadget pane stack ;
|
||||||
|
@ -56,7 +56,7 @@ M: listener-gadget pref-dim*
|
||||||
M: listener-gadget focusable-child* ( listener -- gadget )
|
M: listener-gadget focusable-child* ( listener -- gadget )
|
||||||
listener-gadget-pane ;
|
listener-gadget-pane ;
|
||||||
|
|
||||||
M: listener-gadget gadget-title drop "Listener" ;
|
M: listener-gadget gadget-title drop "Listener" <model> ;
|
||||||
|
|
||||||
: listener-window ( -- ) <listener-gadget> open-window ;
|
: listener-window ( -- ) <listener-gadget> open-window ;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
IN: gadgets
|
IN: gadgets
|
||||||
USING: arrays gadgets gadgets-frames gadgets-labels
|
USING: arrays gadgets gadgets-frames gadgets-labels
|
||||||
gadgets-theme gadgets-viewports hashtables kernel math
|
gadgets-theme gadgets-viewports hashtables kernel math models
|
||||||
namespaces queues sequences threads ;
|
namespaces queues sequences threads ;
|
||||||
|
|
||||||
! Assoc mapping aliens to gadgets
|
! Assoc mapping aliens to gadgets
|
||||||
|
@ -55,7 +55,7 @@ SYMBOL: windows
|
||||||
|
|
||||||
GENERIC: gadget-title ( gadget -- string )
|
GENERIC: gadget-title ( gadget -- string )
|
||||||
|
|
||||||
M: gadget gadget-title drop "Factor" ;
|
M: gadget gadget-title drop "Factor" <model> ;
|
||||||
|
|
||||||
M: world gadget-title world-gadget gadget-title ;
|
M: world gadget-title world-gadget gadget-title ;
|
||||||
|
|
||||||
|
@ -69,15 +69,11 @@ C: titled-gadget ( gadget title -- )
|
||||||
[ set-titled-gadget-title ] keep
|
[ set-titled-gadget-title ] keep
|
||||||
{ { f f f @center } } make-frame* ;
|
{ { f f f @center } } make-frame* ;
|
||||||
|
|
||||||
: update-title ( gadget -- )
|
|
||||||
dup gadget-parent dup world?
|
|
||||||
[ >r gadget-title r> set-title ] [ 2drop ] if ;
|
|
||||||
|
|
||||||
: open-window ( gadget -- )
|
: open-window ( gadget -- )
|
||||||
<world> dup pref-dim over set-gadget-dim open-window* ;
|
<world> dup pref-dim over set-gadget-dim open-window* ;
|
||||||
|
|
||||||
: open-titled-window ( gadget title -- )
|
: open-titled-window ( gadget title -- )
|
||||||
<titled-gadget> open-window ;
|
<model> <titled-gadget> open-window ;
|
||||||
|
|
||||||
: find-window ( quot -- world )
|
: find-window ( quot -- world )
|
||||||
windows get [ second ] map
|
windows get [ second ] map
|
||||||
|
@ -97,7 +93,6 @@ C: titled-gadget ( gadget title -- )
|
||||||
|
|
||||||
: start-world ( world -- )
|
: start-world ( world -- )
|
||||||
dup graft
|
dup graft
|
||||||
dup gadget-title over set-title
|
|
||||||
dup relayout
|
dup relayout
|
||||||
world-gadget request-focus ;
|
world-gadget request-focus ;
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ kernel math models namespaces opengl sequences ;
|
||||||
! we don't store this in the world's rect-loc, since the
|
! we don't store this in the world's rect-loc, since the
|
||||||
! co-ordinate system might be different, and generally the
|
! co-ordinate system might be different, and generally the
|
||||||
! UI code assumes that everything starts at { 0 0 }.
|
! UI code assumes that everything starts at { 0 0 }.
|
||||||
TUPLE: world gadget status focus focused? fonts handle loc ;
|
TUPLE: world gadget title status focus focused? fonts handle loc ;
|
||||||
|
|
||||||
: free-fonts ( world -- )
|
: free-fonts ( world -- )
|
||||||
dup world-handle select-gl-context
|
dup world-handle select-gl-context
|
||||||
|
@ -23,6 +23,7 @@ TUPLE: world gadget status focus focused? fonts handle loc ;
|
||||||
DEFER: request-focus
|
DEFER: request-focus
|
||||||
|
|
||||||
C: world ( gadget -- world )
|
C: world ( gadget -- world )
|
||||||
|
f <model> over set-world-title
|
||||||
f <model> over set-world-status
|
f <model> over set-world-status
|
||||||
{ { f set-world-gadget f @center } } make-frame*
|
{ { f set-world-gadget f @center } } make-frame*
|
||||||
t over set-gadget-root?
|
t over set-gadget-root?
|
||||||
|
@ -35,6 +36,25 @@ C: world ( gadget -- world )
|
||||||
M: world pref-dim* ( world -- dim )
|
M: world pref-dim* ( world -- dim )
|
||||||
delegate pref-dim* { 1024 768 } vmin ;
|
delegate pref-dim* { 1024 768 } vmin ;
|
||||||
|
|
||||||
|
: activate-world-model ( world model -- )
|
||||||
|
[ add-connection ] keep activate-model ;
|
||||||
|
|
||||||
|
M: world graft* ( world -- )
|
||||||
|
dup dup world-title activate-world-model
|
||||||
|
dup dup world-status activate-world-model
|
||||||
|
model-changed ;
|
||||||
|
|
||||||
|
: deactivate-world-model ( world model -- )
|
||||||
|
[ remove-connection ] keep deactivate-model ;
|
||||||
|
|
||||||
|
M: world ungraft* ( world -- )
|
||||||
|
dup
|
||||||
|
dup world-title deactivate-world-model
|
||||||
|
dup world-status deactivate-world-model ;
|
||||||
|
|
||||||
|
M: world model-changed ( world -- )
|
||||||
|
dup world-title model-value swap set-title ;
|
||||||
|
|
||||||
: focused-ancestors ( world -- seq )
|
: focused-ancestors ( world -- seq )
|
||||||
world-focus parents <reversed> ;
|
world-focus parents <reversed> ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue