gadget-title protocol uses models

slava 2006-07-05 21:12:30 +00:00
parent 84ea50c726
commit c3bfbbe6b7
6 changed files with 66 additions and 56 deletions

View File

@ -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:
- unix i/o: problems with passing f to syscalls
@ -6,83 +27,60 @@
- gdb triggers 'mutliple i/o ops on port' error
- "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:
- 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
- cocoa: starting the UI with +foo switches opens them as files
- if the listener is running a command when the image is saved, it
restores to an unresponsive gadget
- fix top level window positioning
- services do not launch if factor not running
- prettyprinter's highlighting of non-leaves doesn't really work
- rollover is not updated on window focus changes
- fix listener scroll to
- multiple listener-run-files is broken
- table line styles
- x11 input methods
- roundoff is still not quite right with tracks
- new browser:
- browse generic words and classes
- need actions for reloading the source file and opening word in jEdit
- highlight showing panes in originating list
- single set of tabs across the top
- 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
- cocoa:
- horizontal wheel scrolling
- polish OS X menu bar code
- dock menu
- variable width word wrap
- use models for the following:
- editor gadgets
- validator models
- search tool
- slider needs range-model or similar
- outliner
+ compiler/ffi:
- faster sequence= for UI
- fix compiled gc check
- there was a performance hit, investigate
- float boxing and overflow checks need a gc check too
- amd64 crash
- get factor running on mac intel
- constant branch folding
- type inference at branch merge points
- free up r11, r12 as a vreg on ppc
- float= on powerpc doesn't consider nans equal
- intrinsic fixnum>float float>fixnum
- win64 port
- complex float type
- complex float intrinsics
- remove literal table
- 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
- the invalid recursion form case needs to be fixed, for inlines too
- code gc
+ misc:
- if a primitive throws an error, :c doesn't show the call frame there
- hashed generic method dispatch
- 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 ] .
@ -90,6 +88,4 @@
]
- 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

View File

@ -151,7 +151,7 @@ C: browser ( -- browser )
{ [ <browser-tracks> ] set-browser-track f @center }
} make-frame* ;
M: browser gadget-title drop "Browser" ;
M: browser gadget-title drop "Browser" <model> ;
: browser-window ( -- ) <browser> open-window ;

View File

@ -9,8 +9,7 @@ TUPLE: help-gadget history ;
: show-help ( link help -- )
dup help-gadget-history add-history
[ help-gadget-history set-model ] keep
dup update-title ;
help-gadget-history set-model ;
: go-home ( help -- ) "handbook" swap show-help ;
@ -35,8 +34,8 @@ C: help-gadget ( -- gadget )
} make-frame* ;
M: help-gadget gadget-title
"Help - " swap help-gadget-history model-value
article-title append ;
help-gadget-history
[ "Help - " swap article-title append ] <filter> ;
: help-tool
[ help-gadget? ]

View File

@ -4,7 +4,7 @@ IN: gadgets-listener
USING: arrays gadgets gadgets-editors gadgets-frames
gadgets-labels gadgets-panes gadgets-presentations
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 ;
TUPLE: listener-gadget pane stack ;
@ -56,7 +56,7 @@ M: listener-gadget pref-dim*
M: listener-gadget focusable-child* ( listener -- gadget )
listener-gadget-pane ;
M: listener-gadget gadget-title drop "Listener" ;
M: listener-gadget gadget-title drop "Listener" <model> ;
: listener-window ( -- ) <listener-gadget> open-window ;

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license.
IN: gadgets
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 ;
! Assoc mapping aliens to gadgets
@ -55,7 +55,7 @@ SYMBOL: windows
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 ;
@ -69,15 +69,11 @@ C: titled-gadget ( gadget title -- )
[ set-titled-gadget-title ] keep
{ { 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 -- )
<world> dup pref-dim over set-gadget-dim open-window* ;
: open-titled-window ( gadget title -- )
<titled-gadget> open-window ;
<model> <titled-gadget> open-window ;
: find-window ( quot -- world )
windows get [ second ] map
@ -97,7 +93,6 @@ C: titled-gadget ( gadget title -- )
: start-world ( world -- )
dup graft
dup gadget-title over set-title
dup relayout
world-gadget request-focus ;

View File

@ -14,7 +14,7 @@ kernel math models namespaces opengl sequences ;
! we don't store this in the world's rect-loc, since the
! co-ordinate system might be different, and generally the
! 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 -- )
dup world-handle select-gl-context
@ -23,6 +23,7 @@ TUPLE: world gadget status focus focused? fonts handle loc ;
DEFER: request-focus
C: world ( gadget -- world )
f <model> over set-world-title
f <model> over set-world-status
{ { f set-world-gadget f @center } } make-frame*
t over set-gadget-root?
@ -35,6 +36,25 @@ C: world ( gadget -- world )
M: world pref-dim* ( world -- dim )
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 )
world-focus parents <reversed> ;