Items which are somewhat harder, and require more work
------------------------------------------------------------------------------
- finish advanced options dialog and options.  do this a little at a
  time, since there's a lot in that dialog.  items left to be done:
	- permissions
	- owner
	- type / size
	- misc

- add/save/load preferences.  The only preferences in mind are the
  advanced search options.  If you look at the advanced search options
  dialog, you'll notice two buttons at the bottom: "Ok" and "Save".
  "Save" is supposed to save the currently selected items as the
  default settings.

  This is probably not as much work as it seems since options selected
  other than the "tests" can be simply saved as they are, and the
  corresponding checkbutton/spinbutton/etc set.  The only thing that
  needs to be saved for the "tests" is the data in the "tests
  selected" clist.  There's no need for corresponding
  button/spinbutton/etc state display since there can be more than one
  of these options in the selected window.

  This item and the previous one are somewhat tied together.


Items which are fairly straight-forward, and somewhat easy.
------------------------------------------------------------------------------
- Add a "Windows->Window List" command to popup a small dialog box
  which lists all the windows.  The new dialog box allows some
  primitive operations (close selected window, raise it, hide it,
  create a new window, close all).

  This item is probably the easiest one to do, such that anyone can
  jump in and do it.  Be sure to use libglade.

- finish file ops toolbar in results window.  can this leverage some
  stuff in existing apps (e.g., gmc)?

  this is probably the next easiest (most straight forward) to do.

- For the list widget in the multi-files dialog, multi-dirs dialog,
  and the tests selected page in the advanced search options dialog,
  implement the rest of the toolbar functionality.

- Also for the list widgets, implement drag and drop to move list
  items up and down.  This may mean changing it from a GtkList to a
  GtkClist.

- For advanced search options, support "-fstype" test.

- Add/save/load preferences for:
	- Height and width of multi-file dialog
	- Height and width of multi-directory dialog
	- Height and width of results dialog
	- Height and width of main window
	- Height and width of advanced options dialog
	- Height and width of window list dialog
	- Height and width of preferences dialog

- Better error handling.  The original "find" code uses the function
  error(), which can exit the entire application on a "fatal" error.
  "Fatal" errors should be changed so that they're not-so-fatal, and
  simply print the error message (possibly into a dialog window), stop
  the search, but not exit the whole application.


Items which require investigation
------------------------------------------------------------------------------
- implement manually entering a find command.  the toolbar button is
  there on the main window as a placeholder.

  this is probably the third easiest one.  it might be kind of ugly
  though, since the most obvious solution would be to implement
  command line shell-like parsing.

- investigate gdk_input_*() and gdk_idle_*() as a method to provide
  non-GTK-blocking execution such that multiple searches can occur
  "simultaneously".  See the BUGS regarding multiple searches.

- Update the window title to reflect the filename and directory
  searched for.  This is easy except for one small factor: if
  advanced options are used, more than one filename and directory
  could be specified.  In this case, what should be shown in the
  title?  Surely not all options selected.  Perhaps showing what the
  command line string would be that is being executed is sufficient.

- Another very related item is if advanced options are used, perhaps
  there should be someway to indicate on the main window that more
  than filename and/or directory has been specified?  The point is
  that it could be confusing seeing the "Find" and "Directory" text
  entries have one thing, while the advanced options have specified
  another.
