Ph  Source Files

Main Directory
Ph_main.m	Generated by Interface Builder.
	
Ph.m		Main routine.  Responsible for app initialization, among other things.  There is only
		one Ph object.

PhListener.m	Generated by msgwrap Ph.msg.  Listens for Ph speaker messages from other apps.
		There is only one PhListener object.

PhSpeaker.m	Generated by msgwrap Ph.msg.    Ph does not use the PhSpeaker object.  It is
		used by other applications to send messages to Ph.
		
Ph.m		Main routine.  Responsible for app initialization, among other things.  There is only
		one Ph object.

info.subproj Directory
Animator.m	Timer routine used for Info panel animation.  Other objects (eg., Query) use
		Animator objects too.  There are multiple Animator objects.

Info.m		Main routine for the Info panel.  Loads the info.nib file.  There is only one Info object.

InfoView.m	Performs the Info panel animation.  There is only one InfoView object.

GNULicense.m	Loads the GNULicense.nib file and displays the GNU License panel.  There is only
		one GNULicense object.

HelpIntro.m	Loads the HelpIntro.nib file and displays the very basic Help panel.  There is only
		one HelpIntro object.

HelpServer.m	Loads the HelpServer.nib file and displays the Help window for a remote server.		There is a HelpServer object for each Server.

HelpServerMgr.m	Manages the HelpServer objects.  There is only one HelpServerMgr object.

Prefs.m		Loads the Prefs.nib file, displays the Prefs window, and updates the defaults data base.
		There is only one Prefs object.

qiServers.subproj Directory
Qi.m		Interacts with a Query Interpreter server.  There is one Qi object for each server.

QiField.m		Each QiField object contains the number, name, keywords, and description for a
		specific field.  There are multiple QiField objects per server.
		
QiManager.m	Manages the Qi objects.  There is only one QiManager object.

Servers.m		Main routine for the Servers window.  Loads the Servers.nib file.  There is only one
		Servers object.

Site.m		Each Site object contains the name, server, and domain information for a specific site.
		There are usually multiple Site objects.

query.subproj Directory
BoxViewSwitcher.m	Performs the switching between the Fields & Name box views.  There is a
		BoxViewSwitcher object for each Query object.

Query.m		Main routine for the Query windows.  Loads the Query.nib file.  There is a Query
		object for each Query window.

QueryFieldView.m	Custom view for the two matrixes holding the icons and field forms.  There is a
		QueryFieldView object for each Query object.
		
QueryManager.m	Manages the Query objects.  There is only one QueryManager object.

Specify.m		Creates and manages the window containing the return field switches.  There is a
		Specify object for each Query object.