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.