TODO items for PLIB as of Version 0.2

:Author:        Peter A. Donis
:Last Updated:  07 February 2008

- ``PTCPServer`` needs to have a more robust method of
  determining where its log file resides.

- Alter meaning of 'class type' class fields like
  menuclass, toolbarclass, etc.; make them give
  the 'base name' of the class, like 'Menu', and
  then auto-calculate the name based on the GUI
  toolkit and load the class dynamically.

- The wxWidgets tab widget is firing a tab changed
  event on shutdown, after the status bar has been
  deleted (causes exception in ``pxmlview.py``--currently
  a hack is being used to mask this).

- The wxWidgets tree/list view spaces lines differently
  for the 2nd tab than the 1st in ``pxmlview.py``.

- The status bar "custom widgets" may be too much;
  may only need to allow more text fields after the
  first, with some way of getting/setting the text.

- The GTK message dialog doesn't work correctly
  with OK/Cancel buttons; both buttons appear to
  return the "OK" response.

- The GTK file open/save dialogs won't open; need
  bug fix (parent window of dialog seems incorrect).

- Need to figure out whether it's worth allowing
  user-defined handlers for ``SIGNAL_QUERYCLOSE`` and
  ``SIGNAL_BEFOREQUIT``; alternatively, change
  ``SIGNAL_QUERYCLOSE`` to ``SIGNAL_BEFORECLOSE``, to be
  emitted when the widget has already accepted the
  close but has not yet executed it.

- The current GUI layout code does not support setting
  different margins for top/bottom vs. left/right sides
  of a panel; this is because there is no easy way to
  do this in GTK. As a result, currently if margins are
  not set all around, buttons and combos in GTK will
  expand to the edge of their containing panel, which is
  usually not what is wanted. The only workarounds are
  to use margins on all sides (meaning a little extra
  spacing at the edges of panels that contain buttons
  and combos) or to enclose each individual button and
  combo in its own panel (which is messy).

- The GTK table widget is much too crude. If I can figure
  out workarounds for the quirks of wxWidgets when using
  GTK under the hood, this issue will probably be what
  drives me to drop direct GTK support in ``PLIB.GUI``.

- The GTK table widget also doesn't size itself correctly
  (or, rather, the GTK main window widget doesn't
  size itself correctly to a GTK table client).

- Also need to add some real bonus functionality to the
  KDE GUI support (otherwise there's no point to having it
  in addition to Qt). For example: add an 'About KDE'
  action that is only present when using KDE. (BTW, also
  need to figure out why the program icon displays in the
  system menu corner of the KDE About dialog instead of
  in the main dialog area--huh?)

- Make sure that coverage is complete for common widget
  methods.

- Enforce consistent ordering of base classes for widgets.

- Add abstract base class support and enhancements to
  ``PLIB.STDLIB``.

- Is there a way to refactor the ``PLIB.XML`` sub-package so
  that DTD generation is an overlay that can be imported only
  when it is needed?

- Add editing of ``scrips.ini`` file to ``scrips-edit``. May be a
  good excuse to add a preferences dialog to ``PMainWindow``. :)

- Enforce common conventions for method and attribute names.

- Add lots more tests. :)

- Expand information in all docstrings.
