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:
|
||||
|
||||
- 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
|
||||
|
|
|
@ -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 ;
|
||||
|
||||
|
|
|
@ -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? ]
|
||||
|
|
|
@ -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 ;
|
||||
|
||||
|
|
|
@ -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 ;
|
||||
|
||||
|
|
|
@ -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> ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue