Things still todo to gperfmeter to bring it up to the level of sdtperfmeter.
----------------------------------------------------------------------------
* fixe color settings for meters.

* Need to work out how to get the Usage() message printed out when the user
  gives '?' or "--help" on the command line.

* Need to hookup the "On Item" Help menu item.

* Need to work out the Gtk equivalents of all the places in the code that
  currently have #ifdef FIXUP's around them.

* Fixup tooltips.

* Need to resolve all the XXX comments in the code.

* Make sure that all text is properly localised.

* The dead and sick images are read into pixmaps in PmLoadResources using
  names of "dead.xpm" and "sick.xpm". Might have to adjust this to give
  full pathnames if the .xpm files are not in the same directory as the
  binary.

* Have removed everything from the PmShutdown() routine except the exit(1)
  call. Need to determine if all of the code that was there is really needed.

* perfmeter.c: MainWinKeyHandler(): not handling the "only" case in the 
  old ActionShow() routine.

* The following routines need to be totally converted:

  perfmeter.c:  PmResetDecor
  perfmeter.c:  WindowMessageCB

* A lot of the sdtperfmeter widgets have something like:

  XtAddCallback(UIP->Top, XmNhelpCallback, PmHelpCB, (XtPointer) "SetupDB");

  Will need to see if we can add the equivalent to the Gtk+ widgets.

* The design of the Glade UI for gperfmeter has hard-coded the width/height
  of a lot of the widgets in order to get the layout to look correct. This
  is just going to be plain broken if the font size is changed, and for other
  locales. The UI should be redesigned to take this into effect.

* There are probably lots of places where I should be doing the Gtk equivalent
  of freeing widgets, strings etc. Look for occurances of XtFree() in the
  original code.

* Calls to XmToggleButtonSetState() have a third parameter (a boolean value
  that indicates whether XmNvalueChangedCallback should be called). Need to
  determine if we need to do something else in the Gtk code if that value was
  true.

----

Future.
-------

* Work out what else can be removed/simplified now.

* Need to convert to Glade 2 and GTK 2.

* Need to get working as an applet in the panel. See applet tutorial at:
  http://developer.gnome.org/doc/tutorials/applet/index.html

  Need to fixup the following four routines which are applet specific:

  DisplayTooltip() 
  UpdateTooltipLabel()
  TooltipPopNotifyCallback()
  TooltipHandler()

* Adjust the code to use gnew0() and g_free() to create/destroy the various
  memory structures.

  Something like:

  PM->Meters = g_new0(PmMeterStruct, PmMAX_METERS);
 
  PMD = (PmDataStruct *) calloc(1, sizeof(PmDataStruct));
  PMD = g_new0(PmDataStruct, 1);

* The checkbox menu items should probably use the PM->... values as toggles
  for setting things instead of GTK_WIDGET_VISIBLE().

* There are a lot of places where the same piece of code (almost) is repeated
  several times. Look at ways to simplify this (eg. using a function to loop
  over values in a data structure).

* Create a GtkWidget to do the actual strip charts (given an array
  of values, above/below colors etc...). This might then be useful
  to other applications.

* Adjust to use libglade rather than Glade to build this.

* Abstract out all the Gtk/Gdk/Xlib specific calls into a set of routines
  in a gtk.c file, so that it will make it easier to port to other graphics
  libraries (if needed).

* Put back the code that lets the user specify their own versions of the
  dead, sick and icon bitmaps.

* Incorporate suggested changes from the HCI engineer(s) assigned to this
  project.

* Reimplement the sdtperfmeter graph separator (ie. a shadowed line)
  rather than the OpenWindows style separator that gperfmeter currently uses.

* Possibly adjust the PmAddHostToList() routine to not add a new host name
  to the remote host menu if italready exists in that menu.

* Adjust all perfmeter routine names to start with Pm.

* Consider adjusting the command line argument parsing to use popt.

====
