				SHORT TERM TODOS

1. libTT

	FIXME merge tttype into ttclass (compare with java)
	      TClass_void ... TClass_ttarg should be real libTT objects

	FIXME test array length calculations in server/extensions/libTT.c,
		    libs/libTT/HW/twin_*tunnel_c, libs/libTT/method.c.
	      test ttfield/ttmethod attributes encoding,
	      finish (?) attributes decoding


        finish twin_tunnel and twin_detunnel libTT tunneling drivers:
	       fixme ttclass args are passed through tunneling as pointers, not by id.
	       write twin_detunnel methods

        FIXME test null_CacheThemeShape_ttprogressbar() and
	      test drawing widgets with non-zero xl,yl

	DONE  tweak libtw to send CallBExtension return value through socket
		     ONLY when needed

2. libTT, part 2

	write garbage collector

	write fake_field(,,r) for o->FN (= Class), o->AVL.AVL* (= AVL*)

        write ttscrollpane scrollbar policy: always/auto

        write ttfn_*->FN_super field and recode TTGetSuper_ttfn()

        write utility to prepend/append components to parents

	write more widgets: menus, tttabpanel
	      (see Java JTabbedPane and other Java swing components)

	problem how to draw a ttscrollframe (ttframe plus scrollbars)?
	      libtw twindow scrollbars are not powerful enough, they
	      miss "change event" support.

3. clients

	add menu options to builtin terminal emulator and to twterm (requires
	      sending some kind of events) to set some of the following options:

	      (ONLY the most useful ones among):

	      utf-8 (unicode) mode
	      charset encoding (latin1, cp437, user, graph),
	      numeric/application keypad,
	      alternate cursor keys,
	      inverted screen,
	      relative/absolute origin,
	      autowrap,
	      autorepeat,
	      mouse reporting (old, new, new+motion),
	      cursor visibility,
	      show ctrl chars,
	      insert mode,
	      cr-lf mapping,
	      color palette.


	add boldfont= to X11 and xft drivers, to be used instead of thigh
	      foreground.

	write -hw=fbdev driver.









				LONG TERM TODOS

1.writing (and documenting) a gtk-like toolkit on top of libtw.

  DIFFICULTY: don't ask
  STATUS: assigned (I am currently doing this myself)
  NOTES: need theme file parser, finish object methods, TTReopen()

3.finish writing 'twdialog' (libtw equivalent of 'dialog'). Does not
  require a lot of Unix knowledge, but libtw API has almost no documentation
  yet.

  DIFFICULTY: intermediate (no docs)
  STATUS: available

4.writing a libtw screensaver. Quite easy, as really few libtw functions
  are needed (create a fullscreen window, write in it, quit on keypress);

  DIFFICULTY: beginner
  STATUS: available

5.writing whatever libtw client comes to anyone's mind.
  (more a hope than a TODO);

  DIFFICULTY: ymmv (Your Mileage May Vary)
  STATUS: available

6.writing down libtw API documentation. Would be *VERY* useful too, but it's
  not a trivial task as in many cases one would need to figure out by himself
  (of course can ask me if he doesn't understand something) what the various
  functions do. Suggested format for documentation: doxygen javadoc-style
  comments (i.e. /** comment */ ) inserted in twin/libs/libtw/libtw.c and in
  include/m4/sockproto.m4h;

  DIFFICULTY: intermediate (many things are obscure)
  STATUS: available

7.writing wtmp logging. Requires some knowledge of programming under Unix;

  DIFFICULTY: beginner
  STATUS: available

8.random thoughts:

   "paste" command in menu
   twclip - show clipboard
   twdisplay on win32
   ?-geometry option to tw* clients

   keyboard shortcuts and hotkeys for screen scroll

   cleanup overflows with shadows at window [xy]width = almost max, move arithmetic to [ul]dat

   Flame libgpm people for /tmp/gpm* sockets, gpm_tried, syslogging, ncurses
