1/14/1999  jms

	Proposed widget hierarchy for gxsnmp

The following widgets are included in the gxsnmp application:

Entries that are indented are derived from the class they are last
indented from, so a gxsnmp_ethernet_wire widget contains a
gxsnmp_ethernet_wire widget, layered on a gxsnmp_ethernet_item widget,
layered on a gxsnmp_network_item, layered on a gxsnmp_map_item,
for instance.

All widgets follow the gtk standard for widget construction.

The proposed widget hierarchy is as follows:

gxsnmp_window
gxsnmp_map
gxsnmp_map_item
	gxsnmp_host
		gxsnmp_host_*		-- not yet implemented
	gxsnmp_network
	gxsnmp_network_ring		-- not yet implemented
	gxsnmp_wire
	gxsnmp_control_point		-- not yet implemented
	gxsnmp_background		-- not yet implemented
gxsnmp_*_panel
gxsnmp_*_dialog


The following are descriptions of each widget class:

**  gxsnmp_window

gxsnmp_window is derived from type gnome_app.  It is the main application
window for the program.  

**  gxsnmp_map

The gxsnmp_map widget contains a gnome_canvas.  It is the 
graphical network map object.

**  gxsnmp_map_item

This widget class is derived from type gnome_canvas_item.  It contains
the following data and class methods:

data -- A flag to indicate whether this item has been selected, a
	handle for the selection bounding box, and a GList of all
	gxsnmp_wire objects that attach to this map_item.

methods -- Select this object
	   Deselect this object
	   Move this object on the screen
	   Add a wire connecting this object to some other object
	   Remove a connecting wire from this object
	   update the position of a connecting wire when this object moves.

Functions:

gxsnmp_map_item_set_location ()
gxsnmp_map_item_get_location ()

gxsnmp_map_item_select ()
gxsnmp_map_item_deselect ()
gxsnmp_map_item_selected ()


**  gxsnmp_host

This widget class defines a host object.

The default host methods display a pixmap and a description.

**  gxsnmp_host_*

This is a place for plugins.  The idea is to allow add-in widgets to
display different types of hosts differently.

**  gxsnmp_network

A gxsnmp_network widget defines a network.  The default network type
is a horizontal line.  All hosts connected to the network are connected
via gxsnmp_wire objects.

**  gxsnmp_network_ring

A network object, displayed as a circle or oval.

**  gxsnmp_wire

These objects connect other map_items together.  A wire object     
connects two map_items together through the shortest possible path.
Wire objects have no select or move methods.  Their positioning is
automatically derived from the items that they connect.

**  gxsnmp_control_point

This object adds a control point to a gxsnmp_wire object.  These items are
intended to be manually inserted by the end user in order to clarify
a confusing map.  Basically it adds a movable point to a gxsnmp_wire.

**  gxsnmp_background

This widget is responsible for drawing the background of the gxsnmp_canvas.
It might be an image of a building layout, or contain text, or even might
be dynamically controlled by a plugin.

**  gxsnmp_*_panel

These widgets comprise the various data entry panels in gxsnmp.

gxsnmp_*_dialog

**  gxsnmp_*_dialog

These widgets comprise the various data entry, viewing, and editing
dialogs in the gxsnmp application.  





