tagging release
[dasher.git] / Src / MacOSX / TODO
blob981f62b99f5846e0f54f6abd712ce7737d1bbff5
1 TODO
3 - i18n, strings need extracting from the app and nibs
4 - help text
5 - about box; make sure it has got the right copyright notices and credits
6 - keyboard control - pref is there, the actual kb handling (arrow keys) is not
7 - file encoding pref - is that needed on MacOSX, or something different?  see ProjectBuilder Format->File Encodings! for example
8 - reading a training file is rather slow.  this is especially noticeable when it is read at startup, the icon bounces about 10 times rather than just 1 or 2
9 - need pretty splash window at startup to hide training file loading time
11 (NICE TO HAVE)
12 - make an image with "paused" in it, display that when it is, yes, paused
14 (BUGS)
15 - should display displayName rather than fontName in font pref
17 (ANNOYANCE)
18 - .inl files are being put in the app under Resources because PB doesn't recognise .inl
19 - because the caches in DasherView are lazily initialised, there is a noticeable hesitancy in the first few seconds.  Could be fixed by having the caches initialised at startup and on font change.  Would require being able to get a list of all the font sizes and all the characters in the alphabet from the Core.
20 - suppose the timer is firing 20 times per second.  But the app is working slower than that, say 15 fps.  Well, the overall speed will be about 10-12 fps!  I think this is because of the overhead of all those extra timers.  Maybe the timer rate should be adjusted dynamically depending on the fps?  Would require being able to get the fps from the Core.  It doesn't really make sense to hard-code the timer firing rate in the app - it depends on how fast the machine is and how much other work it is doing.  I know Windows machines won't be doing much else, but Macs have a plethora of other, important work to be getting on with!
22 DONE
24 05-06-2003
25 - put the English training file into the app's resources
26 - changed USERDIR from ~/.dasher to ~/Library/Application Support/Dasher
27 - cleaned up a large number of compiler warnings in DasherView (mostly by putting method declarations in DasherView.h)
28 - in DasherView, now instantiate colours in init and re-use
29 - fixed problems with rects for non left to right view orientation (see bugzilla report)
31 02-06-2003
32 - dasher timestamp pref removed from panel - not sure what it does, but the NSDocument architecture already has quite sophisticated timestamping, so we'll trust that
33 - implemented pause outside window functionality and preference
34 - major changes.  Dasher is now a multi-document application.  The dasher panel sits above all windows, and can be used to input text into the current document.  Added DasherController and TextDocument and DasherMenu classes and TextDocument nib files.  MainMenu.nib is no longer used.  The only type of document currently supported is text (.txt or .text).
36 01-06-2003
37 - refactored all dasher related functionality into DasherView
38 - created DasherUtil for utility functions
40 31-05-2003
41 - separated edit functionality into DasherEdit; new context, delete, flush, unflush should all work correctly now (i hope?)
43 30-05-2003
44 - in ZippyString, the image was over-retained
45 - strings of len > 1 are not cached nor have images created
46 - fixed bug where resizing blanked dasher view.  Too much flushing of rect and text caches.
48 26-05-2003
49 - masses of performance improvements.  Added ZippyCache.[hm] and ZippyString.[hm] and modified DasherView.  This is what has changed:
50      * in the drawing callbacks (text, rectangle, polyline), drawing isn't actually done, data is just saved to be rendered later
51      * characters are looked up in ZippyCache, if the character is not there, it is stored; and the character is rendered into an offscreen image; the image is what is rendered to the screen.
52      * the dispolayCallback tells the view machinery to display the view; the drawRect: method goes through the above caches rendering the rects, texts and polylines
53      * this reduces CPU consumption by from 30% - 50%; it seems to be able to render a steady 150 rects + 150 chars at 20 fps
54      
55 30-04-2003
56 - expat now linked in explicitly rather than with -l, so users don't have to install expat separately
57 - now handles foreign alphabets correctly; uses stringWithUTF8String rather than stringWithCString in function NSStringFromStdString
58 - range of speed slider now 0 - 8 to match other implementations
60 29-04-2003
61 - editbox no longer crashes in unflush when the number of flushed characters is larger than the number of characters in the edit box.
63 28-04-2003
64 - added the parameter_xxx_callback functions; now works correctly if user hasn't any Dasher defaults.
65 - initialise dasher at the size of DasherView stored in the nib, NOT 10, 10.
67 26-4-2003
68 - edit font pref
69 - speed is correctly set on app startup
70 - dasher font & font size is selectable in prefs
71 - put dasher font on appearance; edit font on files, got rid of fonts tab in prefs
72 - add standard text menus & editing functions for use in edit box
74 25-4-2003 
75 - user can select alphabet in preferences
76 - sets system and user dirs, system dir is resourcePath inside the app; user dir is ~/.dasher/.
77 - displays the edit text rather than the display text in the edit box 
78 - kb control pref, but doesn't do anything (the pref is saved and restored correctly)
79 - app icon added (DasherApp.icns from Iain Murray)
80 - copy all on stop works
81 - other clipboard functions implemented, not tested
82 - dasher font size pref