User Interface

Below is a technical introduction to the GUI to the HOOPScheduler.


The HOOPS interface consists of a single tab strip called the CampEditor. The CampEditor base class is CEdiMain, which extends a CPropertySheet, and each tab extends a CPropertyPage. Below is a diagram with all of the interface classes.

All the information that the user enters in the CampEditor is saved as either an object or a member of an object of the current camp; whenever the CampEditor is open, the global variable, CCamp* theCamp, is a valid object.

The major functionality of the HOOPS interface is as follows:

  • Validate the data entered by the user on each page. These data is checked for validity before the user changes to a different page in the CampEditor (or exits the editor). For more information regarding data validation, see the Interface Specifications.
  • Call functions to add the data the the current camp (theCamp).
For each of the interface components, the following nomenclature rules were used to name the controls:

Nomenclature Rules

PropertyPage ID CPropertyPage Class
ID = id
D = dialog
NEW, EDI, DEF = CampEditor
Component/Control ID Variable
Check boxes IDC_CHK_NAME m_chkName
Static text IDC_STC_NAME m_stcName 
Edit (text) boxes IDC_TXT_NAME m_txtName
Command buttons IDC_CMD_NAME m_cmdName
Group boxes IDC_GRP_NAME m_grpName
Radio buttons  IDC_RAD_NAME m_radName
List boxes IDC_LST_NAME m_lstName
Combo boxes IDC_CMB_NAME m_cmbName
Lines IDC_LNE_NAME m_lneName
ID = id
C = Component
m_ = member variable


The controls on each property page are standard MFC controls (check boxes, radio buttons, text fields, edit boxes, combo boxes, buttons, etc.), MFC Flexgrids, and Grid Controls.  Grid Control is a third-party control posted to the CodeGuru web site.  To see which classes are associated with the Grid Control, see the Class Index.

The Grid Control Code was written by Chris Maunder (, Copyright (c) 1998.  The Grid Control code is based on the original WorldCom Grid control written by Joe Willcoxson (, 

The Grid Controls are used in the Master Schedule View to allow the use of combo boxes to edit parts of the schedule.  The Grid Control is also used in almost all of the other CampEditor pages in order to display lists of data, sort the lists, and add printing functionality.  

One MFC Flexgrid is used in the General page, but the general grid could easily be converted to a Grid Control for consistency.


The User Interface Specifications list the major interface classes and their purpose within the interface. For each class a list of the member variables is provided, along with any of the checks done on the inputs to ensure data integrity.