Introduction

## Various Windows Explained...

### Project Window Area

Understand's GUI is broken into two main areas, the Project Window Area and the Document Area. The Project Window Area, which can be hidden or shown, provides a quick way to find entities and information about them.

The Document Area is where source files, graphical views and a variety of other browsers and windows are displayed, including:

· Graphical Hierarchy Browsers
· Graphical Declaration Browsers
· Source Code Editor
· additional Info Browsers
· Locator Window
· Search Results
· Command Results

### Filter Area

The Project Window is further divided into two areas, the Filter Area and the Information Browser.

The Filter Area provides a quick list of entities of each kind shown in the selected Filter Area Tab. Options are Files, Files Tree, Classes, Functions, Global Objects, Types, Macros, Root Classes, Root Calls, Root Callbys, and Root Includebys. In each of these, any entity that has been declared (or used) in the source code can quickly be found.

### Root Filters

Note the tabs above beginning with "Root", as in Root IncludeBys or Root Classes. "Root" tabs filter entities to only what is on the top of a given tree. The tops (or bottoms) of relationship trees are often helpful points to being exploration of code new or unknown to you.

· Root IncludeBys - list only files that are included by others, but do not include any files themselves. These are "lower" level include files
· Root Classes - list only classes that do not derive from other classes. These are candidates for lower level classes, or library classes.
· Root Calls - list only functions that call other functions, but are not called by anyone. These functions are your main routes (e.g. main(), or are interrupt handlers (called by hardware), or are dead code (unused in the source analyzed).
· Root CallBys - list only functions that are called by others, but call no other function. These functions will be lower level routines.

### Files Tree

When browsing files, you can either use the Files tab or the Files Tree tab. The Files tab shows an alphabetical listing of all project files. The Files Tree tab shows the project files in the directory hierarchy.

Click on any file folder to expand or collapse the file tree.

### Tabs or Pulldown

Because there can be a lot of tabs, you also have the option of showing the Filter Area options as a Pulldown menu:

The default uses Tabs, change this setting in the Options->Preferences Dialog, General Tab.

### Information Browser

Any time you left click on an item in the Filter Area the Information Browser updates to show everything that Understand for C++ knows about that entity. The Information Browser shows this data as a tree which whose branches can be expanded individually or in bulk.

There is always an Information Browser in the Project Window. In addition, by holding down the CTRL key while right clicking and choosing View Information, new Information Browser Windows can be displayed in the Document Area.

All information in an Information Window can be saved to a text file, or copied and pasted via standard Windows or X11 copying functions.

For more details on using the Information Browser, refer to Information Browser.

### Locator Window

Not all entities fall into one of the tab categories shown in the Filter Area. I n past versions of Understand for C++ the Locator Window was the initial startup window that appeared when you start Understand for C++. In the newer versions it is opened via the Search menu on the menubar. It has a filterable list of entities in the database. You may filter by name, by entity type, or by a kind of relationship (e.g. invocation, with, callby, etc...). You may also filter by looking at entities at the top of a given relationship tree (e.g. top of Call Tree).

The purpose of the Locator Window is to help you find entities and/or views that you want to learn more about. The Locator Window is opened via the Search->Locate Entities or Search->Browse Entities menu on the main menubar.

### Hyper Grep

Similar to the Unix command grep, you may search the project files or another selection of files for the occurence of a text string or regular expression. Matches are shown in the Search Results window and can be visited in the source code by double-clicking on any line.

For more details on using Hyper Grep, refer to Using Hyper Grep to Find Things.

### Hierarchy Browser

The Hierarchy Browser shows multiple level relationships between entities. All relationships are multi-level and are shown to the top or bottom of their respective tree unless a level option is set in the browser.

Following is an invocation view for a function:

Understand for C++ offers information about these relationships:

- Callby - view of who calls a given entity
- Invocations - who this entity calls
- Class Base- shows how a class is built (from other classes)
- Class Inheritence -who inherits from a given class .
- Include- shows who this file includes
- IncludeBy - shows who includes this file.

### Declaration Browser

Declaration views offer a one glance way to see important structure and relational information about a given entity. Understand for C++ offers these declaration views:

- File Declaration - shows what functions, macros, and variables are defined within a given fileClass - shows what members are provided by a given class. Also shows who inherits this class, and also who it is based on.
- Function - shows the parameters, invocations, and callbys of a given function.

Following is an example of a function declaration:

Scientific Toolworks, Inc. http://www.scitools.com Voice: (802) 763-2995 Fax: (802) 763-3066 support@scitools.com sales@scitools.com