═══ 1. Getting Help ═══ The Browser comes with 3 sources of information: How Do I... The Browser: How Do I... information is a list of Browser specific tasks with step-by-step solutions, such as "How do I browse my files without having to recompile them". The tasks cover a wide range of things that you may want to do with the Browser. If you are ever stuck wondering how to do something, check the How Do I... information. If you want to know how to use any of the other VisualAge C++ tools, use the How Do I... Selections Cascade menu on the Help PullDown menu to access the various How Do I... information available for VisualAge C++. To get general VisualAge C++ usage or programming techniques, use the VisualAge C++: How Do I... information. User's Guide The User's Guide provides information on how to use the Browser. This information is not as exhaustive as the How Do I... help as far as covering all tasks, but it does provide more of the conceptual information that you may need to know in order to understand the fundamentals of the Browser. Online Help You are currently viewing the online help. Use the online help to help you understand the various components of the Browser interface. It will give you advice on how to use and fill in the various windows and dialogs, as well as show you the meaning of the PullDown and PopUp menu items. ═══ 2. Keys Help ═══ The following two lists outline the fast-path keys for using the Browser. The format is as follows: or - Note: The letter keys are shown in uppercase for clarity. You do NOT have to press the Shift key unless this key is specifically mentioned. Application-Provided Keys: F3 Close the Browser session F6 Perform the previous object-action pair. F7 Expand all the items in the List window container view F8 Collapse all the items in the List window container view Ctrl-C Centers the currently selected node on a graph Ctrl-E Edit the currently selected definition or file Ctrl-F Initiate Find dialog to find text in the current window. Ctrl-G Graph all the base and derived classes for the currently selected class Ctrl-H Show the documentation for the currently selected class Ctrl-L List all members with inheritance for the currently selected class Ctrl-N Find next instance of text in the current window. Ctrl-S Initiate Search dialog to search for text in the loaded Browser database. Ctrl-Insert Copies the current window contents to the clipboard. Ctrl-+ Zoom in on a graph. Ctrl-- Zoom out on a graph. Alt-+ Maximum zoom in on a graph Alt-- Maximum zoom out on a graph System-Provided Keys: Alt-F4 Close window. Alt-F7 Move window. Alt-F8 Size window. Alt-F9 Minimize window. Alt-F10 Maximize window. ═══ 3. What are Browser Objects? ═══ The Browser presents program elements to you in the form of objects on the screen. Objects can be classes, types, functions, variables, and source files. In addition, the Browser uses Label objects to organize the program elements in the List window container view. You can click Mouse Button 2 on any of these objects to invoke a PopUp menu of actions available for that object. To find out more about these objects and the actions that you can invoke on them, click on any of the following: Class Object Function Object Variable Object Type Object File Object Label Object ═══ 3.1. Class Object ═══ Various C++ program objects are referred to as class objects: C++ classes, structs, unions, class templates, and class template instantiations. It includes those classes defined at file (or global) scope and those nested inside of other classes. It does not include classes defined inside of function bodies. Class objects have been specialized for SOM. A SOM class is any class which derives from SOMObject, and a SOM metaclass is any class which is derived from SOMClass. C++ Direct-To-SOM classes are supported by the Browser. Bindings from the C++ SOM emitter may also be browsed, but the symbols produced by the emitter may not be easy to read or understand. SOM classes and metaclasses have the same PopUp menus and double click actions as regular classes, but you can change the color and shape to make them stand out visually in the Browser. In the Browser, by default, classes are displayed in cyan text, SOM classes are displayed in dark green text, and SOM metaclasses are displayed in light green text. You can change the default colors in either the List window or Graph window using the List Window Settings NoteBook Colors page or the Graph Window Settings NoteBook Colors page, respectively. While the mouse pointer is over the class object, click Mouse Button 2 to display the Class PopUp menu. The following functions are available for class objects: Edit Definition Show Documentation Graph All Base & Derived Classes Graph All Base Classes Graph All Derived Classes Graph Immediate Derived Classes List Members with Inheritance List Friends List Friendships List Implementing Files List Instantiations Depending on the program or library that you are browsing, some of these menu actions may be disabled if the Browser knows that there is no application information for that action. The following menu items are available from a List window container view. Expand Collapse The following menu item is available from a Graph window only: Center Note: When you QuickBrowse your source files that contain class template instantiations at file scope, these class templates will appear as global variables. When you List All Classes, these instantiations will not be listed. You can find these template class instantiations by performing a search for all non-member variables. This will list all non-member variables defined in your program. Now perform a find for the template class name. Note that the List Instantiations action will always result in the No Results Found message, even though these template instantiations are found. ═══ 3.2. Function Object ═══ Various C++ program objects are referred to as function objects: functions, member functions, function templates, function template instantiations, and SOM methods. It does not include class member functions defined inside of function bodies. Function objects are displayed in blue text. You can change this default color in the List window or Graph window using the List Window Settings NoteBook Colors page or the Graph window Settings NoteBook Colors page, respectively. In the List window, there may be a light blue letter at the start of the function name. These letters represent the following attributes: C Constant V Virtual S Static PV Pure Virtual While the mouse pointer is over the function object, click Mouse Button 2 to display the Function PopUp menu. The following functions are available for function objects: Edit Definition Show Documentation Graph All Callers Graph All Callees Graph All Callers & Callees Graph Immediate Callers & Callees List Immediate Callers & Callees List Possible Exceptions Thrown List Overriding Derived Classes List Friendships List Instantiations List Class Members with Inheritance Depending on the program or library that you are browsing, some of these menu actions may be disabled if the Browser knows that there is no application information for that action. The following menu item is available from a Graph window only: Center ═══ 3.3. Variable Object ═══ Various C++ program objects are referred to as variable objects: variables, class member variables, class template member variables, member variables of class template instantiations, and SOM data members. It does not include variables defined inside of function bodies. Variable objects are displayed in blue text and only appear in List windows. You can change this default color in the List window using the List window Settings NoteBook Colors page. In the List window, there may be a light blue letter at the start of the variable name. This letter represents the following attribute: S Static While the mouse pointer is over the variable object, click Mouse Button 2 to display the Variable PopUp menu. The following function is available for variable objects: Edit Definition Note: When you QuickBrowse your source files that contain class template instantiations at file scope, these class templates will appear as global variables. When you List All Classes, these templates will not be listed. You can find these template classes by performing a Search... for non-member variables. In addition, the List Instantiations action will always result in the No Results Found message, even though these template instantiations are found. ═══ 3.4. Type Object ═══ Two C++ program objects are referred to as type objects: typedefs and enums. It does not include enumeration values, nor does it include those enums and typedefs declared inside of function bodies, or built-in C types, such as int or char. Classes, structs and unions are referred to as class objects. Type objects are displayed in blue text and only appear in List windows. You can change this default color in the List window using the List window Settings NoteBook Colors page. In the List window, there may be a light blue letter at the start of the type name. This letter represents the following attribute: E Enumerator While the mouse pointer is over the type object, click Mouse Button 2 to display the Type PopUp menu. The following functions are available for type objects: Edit Definition Expand Typedef Note that the Expand Typedef option is only enabled if the currently selected object is a typedef. ═══ 3.5. File Object ═══ File objects are displayed in red text. You can change this default color in the List window or Graph window using the List Window Settings NoteBook Colors page or the Graph Window Settings NoteBook Colors page, respectively. While the mouse pointer is over the file object, click Mouse Button 2 to display the File PopUp menu. The following functions are available for file objects: Edit File Graph All Includers Graph All Includees Graph All Includers & Includees List Defined Objects The following menu item is available from a Graph window only: Center ═══ 3.6. Label Object ═══ When you perform one of the following actions:  List Members with Inheritance on a class  List Friends on a class  List Class Members with Inheritance on a function  List Defined Objects on a file  List Immediate Callers & Callees on a function the results are placed in a List window container view. In this type of view, Label objects are used to organize the results in the List window by category. Categories can be nested and include Public, Protected, Private, Constructors/Destructors, Classes, Functions, Types, Variables, Callers, and Callees. Also, the results displayed when you expand a typedef are label objects. Label objects are displayed in brown text and only appear in the List window. You can change this default color in the List window using the List Window Settings NoteBook Colors page. While the mouse pointer is over the label object, click Mouse Button 2 to display the Label PopUp menu. The following functions are available for label objects: Expand Collapse Note that those label objects which do not have a or , do not have a PopUp menu because there are no items grouped under them. Use Mouse Button 1 on the to expand the object one level, and on the to collapse the levels below it. Also, to expand the entire container view contents, use the F7 key. To collapse the entire container view contents, use the F8 key. ═══ 4. Browser Windows and Dialogs ═══ The Browser has two kinds of windows (List and Graph) that you can use to list program elements and graph program relationships. There are several dialogs which can be used: For Customization  Browser Settings NoteBook Pages: Paths and Help Level  List Window Settings NoteBook Pages: Settings, Colors, and Styles  Graph Window Settings NoteBook Pages: Settings, Colors, Styles, and Bitmap Which Perform Actions  Load Database Dialog  Merge Database Dialog  Save As Dialogs  Browser Print Dialog Setup: Print Setup and Page Setup  Find Dialog  Search Database Dialog  History Window  Font Dialogs  Browser Files Dialog  Profile Dialog  Choose Object Dialog Which Are Informational  New User Help Dialog  Overview Window  Progress Dialog ═══ 4.1. List Window Help ═══ The List window displays a list of program elements. Many aspects of a program or library can be described as a list. Other aspects can be described as relationships in a Graph window. Program elements are grouped in the Browser by the type of object they represent. These groups are described in Browser Objects. To browse your programs, use the Load Database dialog. The List window consists of:  A main menu bar whose PullDown menu actions affect the current window.  An Action Status Bar which describes what object and action produced the currently viewed list.  A count that indicates how many program elements are in the current list, excluding label objects.  A Hold CheckBox that, when checked, keeps the current List window contents from being replaced when an object-action pair results in a list. This can be useful, for instance, if you want to keep a list of all classes available at the same time that you want to focus on one given class. If the Hold CheckBox is not checked (the default behavior), the results of the next action overwrites the current window contents. There is a limit of four List windows.  A List Area where your program objects are listed. You can perform actions on the contents of the List Area using Mouse Button 2 on any of the listed items or on the background of the List window. You can also print, save to a file, or copy to the clipboard the contents of the List window.  An Information Bar at the bottom of the window quickly defines the currently selected menu item or explains how to invoke the Object PopUp menus. You can hide the Information Bar by selecting the Expert help level in the Browser Settings NoteBook. The maximum number of items you can list in a List window is 65533. The List window has a Background PopUp menu which allows you to perform actions on the window. You can access this PopUp using Mouse Button 2 on the background of the List window. When you are viewing the members of a class, the List window displays the members in a hierarchical view called the container view. You can use the and icons or the F7 and F8 keys to expand or collapse the various objects of the class. You can alter the settings for the List window using the List Window Settings NoteBook. ═══ 4.2. Graph Window Help ═══ A Graph window displays relationships between program objects graphically. Many aspects of a program or library can be described as relationships between program elements. Other aspects can best be described by listing some group of elements in a List window. Program elements are grouped in the Browser by the type of object they represent. These groups are described in Browser Objects. To browse your program relationships, use the Load Database dialog. The Graph window consists of:  A main menu bar whose PullDown menu actions affect the current window.  An Action Status Bar which describes what object and action produced the currently viewed graph,  A count that indicates how many program elements (nodes) are in the current graph.  A Hold CheckBox that, when checked, keeps the current Graph window contents from being replaced when an object-action pair results in a graph. This can be useful, for instance, if you want to keep an inheritance graph available at the same time that you want to focus on another relationship. If the Hold CheckBox is not checked (the default behavior), the results of the next action overwrites the current window contents. There is a limit of four Graph windows.  A Graph Area that contains the graphical results of your object-action pair. You can perform actions on the contents of the Graph Area using Mouse Button 2 on any of the nodes or on the background of the Graph window. You can also print, save to a file, or copy to the clipboard the contents of the Graph Area. When you select a node on the graph, the selected item is highlighted in the List Area of the Graph window.  A List Area that alphabetically lists all the nodes on the graph. You can click on the items in this list to see where in the graph the node appears. This node is highlighted in red, by default. You can perform actions on the contents of the List Area using Mouse Button 2 on any of the listed items or on the background of the List window. You can also print, save to a file, or copy to the clipboard the contents of the List Area.  A Slider on the left side to quickly zoom in and out on the graph. Move the Slider up to decrease the magnification of the graph and down to increase the magnification.  Scroll bars located on the right side and bottom of the Graph Area. Use these to scroll the Graph Area horizontally and vertically.  A divider located between the Graph Area and List Area. Use it to change the proportion of the screen allocated to each area.  An Information Bar located at the bottom of the window that briefly describes the currently selected menu item or explains how to invoke the Object PopUp menus. You can hide the Information Bar by selecting the Expert Help level in the Browser Settings NoteBook. A very large number of nodes may exhaust the system resources. Note that anything approaching this limit would not be clearly understandable. The Graph Area has a Background PopUp menu which allows you to perform actions on the window, such as, specifying the level of detail you want the graph to show, scrolling over the graph, zooming in and out, and changing the layout parameters. You can access this PopUp using the Mouse Button 2 on the background of the Graph Area. You can select a portion of the Graph Area by clicking and dragging the mouse over the area that you want to select. You can then get a PopUp menu specific for the selected region which allows you to zoom in on, copy, save, or print the selected area. You can alter the settings for the Graph window using the Graph Window Settings NoteBook. ═══ 4.3. Browser Settings NoteBook Help ═══ Use the Browser Settings NoteBook to set options which are used by the overall Browser environment. It has two pages:  Paths  Help Level You can also set options for the List and Graph windows using the List Window Settings NoteBook and the Graph Window Settings NoteBook. ═══ 4.3.1. Paths Page Help ═══ Use the Browser Settings Paths page to specify the path names that the Browser should use in searching for Browser files and library files. You can also specify where to store the Browser profile (icsbrs.ini). Use the File Search Path TextEntry field to enter directory names where you want the Browser to search for files. By default, the path name contains the INCLUDE environment variable of the IBM VisualAge C++ Open Class Library. Add your own directories to this list in the order in which the search should be performed. Place a semicolon (;) after each directory. If two directory names in the search path contain a file with the same file name, the file in the first directory will be used. Use the Library Files TextEntry field to enter the names of the library files (.LIB) that your program uses, but where you do not want to see the Browser information for those files. Such files are from another vendor or files whose internals are not important to you. The files you specify here will most likely be those that you know do not contain any relevant Browser information. By default, the IBM VisualAge C++ Open Class Library files are added to this list because they do not contain any Browser information. These library files are not used when the Browser loads all relevant information pertaining to your program or library. Place a semicolon (;) after each file name. You may prefer, or need to, keep the Browser profile (icsbrs.ini) in a location different from the one you specified when you first used it. You can use the Profile TextEntry field to change its location. When you exit the Browser, it will create the profile in this new location. Use the OK PushButton to accept the changed pathnames. The new settings will be saved to the Browser profile (icsbrs.ini) when you exit the Browser. Use the Cancel PushButton to close the dialog without changing the path names. Use the Default PushButton to reset the path and file names to the Browser defaults. Note: When you list files in the Browser, the paths where these files were when the program was created will be listed. These paths may not necessarily be correct, as may be the case with the Browser shipped .PDL files for the IBM VisualAge C++ Open Class Library that you can access from the Load  or Merge  Cascade menus. ═══ 4.3.2. Help Level Page Help ═══ Use the Help Level page to change the level of help provided by the Browser, and to disable the Close Browser Dialog. You can set the level of help that the Browser provides: New user New User Help and an Information Bar is provided. Intermediate No New User Help, but an Information Bar is provided. Expert No New User Help and no Information Bar provided. The Information Bar is located at the bottom of each Browser window and is used to describe the various menu items as you highlight them. You can turn off the Close Browser dialog which appears each time you close the Browser by deselecting the Confirm on exit CheckBox. ═══ 4.4. List Window Settings NoteBook Help ═══ Use the List Window Settings NoteBook to set options which are used by the List windows. The List Windows Settings NoteBook contains three pages:  Settings  Colors  Styles You can also set options for the Browser and Graph window using the Browser Settings NoteBook and the Graph Window Settings NoteBook. ═══ 4.4.1. Settings Page Help ═══ The List Window Settings NoteBook Settings page allows you to change the default display characteristics of the List window. You can change the Action Status Bar font independently of the font used in the List Area of the List window. Select the Select... PushButton to display the Action Status Bar Font dialog. You can select the type of font, the size of font, the style of font (bold or italics), and the emphasis (outline, underline or strikeout). Note that the font used here is set independently from the font set for the Graph window Action Status Bar. Use the Initial Action DropDown to select the action that is performed in the first List window when you load a new file into the Browser (List All Classes, List All Files, or None). Use the Double Click Actions section to change the default action that is performed when you double-click on an object in the List window. By default, all double-click actions on objects in the List window are set to edit. Select the object and corresponding action. Note that the Browser is able to detect whether an action is available for a given object, and will disable that action on the corresponding PopUp menu. Thus, if you have selected a default action which is not available for a particular object, the Browser will provide you with a message relating this fact. Note that the double-click action for objects in the Graph window are set independently from the settings made in the List window. Use the OK PushButton to accept the default changes. These settings will be saved to the Browser profile (icsbrs.ini) when you exit the Browser. Use the Cancel PushButton to cancel the changes you have made. Use the Default PushButton to reset to the default Browser settings for List windows. ═══ 4.4.2. Colors Page Help ═══ Use the Colors page to customize the colors used in the List window. The colors are set independently from the colors used by the Graph window. Note that making a color change will affect all open List windows and all subsequently opened List windows. The new defaults are saved to the Browser profile (icsbrs.ini) when you exit the Browser. On the left side of the page is a scrollable list of items for which you can set colors. On the upper right side is the color palette containing 16 colors to choose from. On the bottom right side is an Example Area that will give you a preview of the color selection that you are currently editing. To change an object's color: 1. Select the object from the scrollable list. 2. Click on the color from the 16 available colors. Your change appears in the Example Area. 3. Select the OK PushButton if you want to apply your color changes to the List Window, or select the Cancel PushButton if you want to exit without making any changes. The Default PushButton restores the default colors used by the Browser List windows. By default, the color settings are: Object Color Class Cyan SOM Class Dark Green SOM Metaclass Light Green Function Blue Variable Blue Type Blue File Red Label Brown Background White Attribute Foreground Dark Red Attribute Background Light Blue Action Status Bar Foreground Blue Action Status Bar Background White Note: Because of the variety of colors being used in one window, the colors dropped from the OS/2 color palette will not work correctly. Any changes made this way will not be stored in the Browser profile (icsbrs.ini). ═══ 4.4.3. Styles Page Help ═══ Use the Styles page to change the amount of text displayed in the List window. There are three text style settings: Attributes Summarizes what the program element is (C-constant, V-virtual, E-enumerator, S-static, and PV-pure virtual). Full Text Lists the full text of the program elements. Both Lists both the summary and full text of the program elements. The Example area shows what the List window text will look like if you choose the different options. Select OK to accept the changes and Cancel to exit without making changes. ═══ 4.5. Graph Window Settings NoteBook Help ═══ Use the Graph Window Settings NoteBook to set options which are used by the Graph windows. The Graph Windows Settings NoteBook contains four pages:  Settings  Colors  Styles  Bitmap You can also set options for the Browser and List window using the Browser Settings NoteBook and the List Window Settings NoteBook. ═══ 4.5.1. Settings Page Help ═══ Use the Settings page to change the Action Status Bar font, the initial action performed when you load a file into the Browser, and the double-click actions of the objects displayed in the Graph window. To change the font of the Action Status Bar on the Graph window, choose the Select... PushButton to display the Action Status Bar Font dialog. You can select the type of font, the size of font, the style of font (bold or italics), and the emphasis (outline, underline or strikeout). Note that the font used here is set independently from the font set for the List window Action Status Bar. Use the Initial Action DropDown to select the action to perform when loading a program into the Browser. The Graph window does not have a default load action. You can choose from Show Inheritance Graph, Show Include File Graph, or None. Use the Double Click Actions section to change the double-click action of the objects in the Graph window. By default, the double-click actions for all objects is to edit the object's definition. Note that the Browser is able to detect whether an action is available for a given object, and will disable that action on the corresponding PopUp menu. Thus, if you have selected a default action which is not available for a particular object, the Browser will provide you with a message relating this fact. Note that the double-click action for objects in the List window are set independently from the settings made in the Graph window. Use the OK PushButton to accept the default changes. These settings will be saved to the Browser profile (icsbrs.ini) when you exit the Browser. Use the Cancel PushButton to cancel the changes you have made. Use the Default PushButton to reset to the default Browser settings for Graph windows. ═══ 4.5.2. Colors Page Help ═══ Use the Colors page to change the colors used by the Graph window. The Graph window displays each type of program element as a different color and each relationship as a different colored arc. The colors are set independently from the colors used by the List window. You can also change the shape of node and style of arc using the Graph Window Settings NoteBook Styles page. When you invoke an action to create a graph, the object you used to launch the action is highlighted in the Graph window in red, by default. Making a color change affects all open Graph windows and all subsequently opened Graph windows. The new defaults are saved to the Browser profile (icsbrs.ini) when you exit from the Browser. On the left is a scrollable list of items for which you can set default colors. On the upper right is the color palette containing 16 colors to choose from. On the bottom right side is an Example Area that previews the color selection you are currently editing. To change an object's color: 1. Select the object from the scrollable list. 2. Click on a color from the 16 available colors. Your change appears in the Example Area. 3. Select the OK PushButton if you want to apply your color changes to the Graph Window, or select the Cancel PushButton if you want to exit without making any changes. The Default PushButton restores the default colors used by the Browser Graph windows. By default, the color settings are: Object Color Class Cyan SOM Class Dark Green SOM Metaclass Light Green Function Blue File Red Background White Action Status Bar Foreground Blue Action Status Bar Background White Selection Hilight Red Public Inheritance Black Protected Inheritance Red Private Inheritance Blue Function and File Arrows Black Note: Because of the variety of colors being used in one window, the colors dropped from the OS/2 color palette will not work correctly. Any changes made this way will not be stored in the Browser profile (icsbrs.ini). ═══ 4.5.3. Styles Page Help ═══ Use the Styles page to change the shape of the nodes and arcs displayed in the Graph window: 1. Select Graph Window... from the Options PullDown on the Graph window. 2. Select the Styles tab on the Graph Window Settings notebook. 3. Select the object/relationship from the Object Shape/Line Style ListBox. 4. Select a shape/line type. 5. Select OK to apply the changes to the Graph window, or select Cancel to exit without making changes. These changes will be saved to the icsbrs.ini profile when you exit the Browser. The Default PushButton restores the Browser defaults for node shape and line style. ═══ 4.5.4. Bitmap Page Help ═══ You can save a graph displayed the Graph window to an OS/2 bitmap. Use the Graph Window Settings NoteBook Bitmap page to specify the dimensions of the bitmap to be saved. Enter the width and height of the bitmap that you want to save. This size is used when you are saving an entire graph or a region of a graph, or when you are copying an entire graph or a region of a graph to the clipboard. Note: If you specify improper values for the width and height of the bitmap, the output may not be the desired affect. For example, if the area to be saved or copied is a square and the values set specify a rectangular shape, then the image saved or copied will be stretched to fit the rectangle. ═══ File Dialogs Help ═══ The OS/2 File Dialog is used by the Browser to load and merge .PDB, .DLL, .EXE, .LIB, .PDD, .PDE, and .PDL files. Also, this dialog is used to save graphs, lists and Browser database files. ═══ 4.6. Load Database Dialog Help ═══ The Load Database dialog is used to load your program's information into the Browser. You can load the following types of files into a Browser session: .PDB Browser database file created using the compiler option /Fb and the linker option /BROWSER. .LIB Library file .EXE Executable .DLL Dynamic link library .PDL Browser database file created from a loaded .LIB file. .PDE Browser database file created from a loaded .EXE file .PDD Browser database file created from a loaded .DLL file. Note: The format of the new .PDB files are incompatible with the .BRS files generated by the previous release of the Browser, and the AIX format of the .PDB files. You can probably erase these old files, unless want to use them with the old Browsers. The good news is that the new .PDB files are between 60-95% smaller than the .BRS files for the same input files. On a large application, you will save many Megabytes of hard disk space by recompiling and generating the new .PDB files. To load a file: 1. Select Load... from the File PullDown menu to start the Load Database dialog. 2. Change the filename extension, if appropriate, in the Open Filename: TextEntry field. 3. Select the drive you want to load from using the Drive: DropDown list. 4. Select a directory on that drive from the Directory: ListBox. 5. Select the filename from the File: ListBox. Note that you can load more than one .PDB file at a time by making multiple .PDB selections in this ListBox. You cannot do a multiple load of any other file type. 6. Select the Load PushButton to load the information into the Browser. Note: You can bypass these steps if you know the name and location of the file you wish to load. Enter the path name and file name into the Open Filename: TextEntry field. You can also quickly load the libraries that make up the IBM VisualAge C++ Open Class Library by using the Load  Cascade menu from the File PullDown menu. In addition, you can add your own files to this Cascade menu. When you select the Load PushButton, a Progress dialog is displayed to show you the amount of information that has been loaded by the Browser. You can load more than one program into the Browser at a time using the merge facility. ═══ 4.7. Merge Database Dialog Help ═══ When you browse a target program (an .EXE, .DLL, or .LIB), you will only see those classes, functions, and files that were actually used in the program. You will not see related objects. For example, assume that you have written a small program using the IBM User Interface class library, and it contains an IFrameWindow, a Menu bar, and some static text. The small program will only reference the classes, functions, and files of the IFrameWindow, IMenuBar, and IStaticText with their parent classes. If you want to add some PushButtons and a bitmap onto your window, you can see these classes by merging the User Interface Class Library data with your small program. Also, many programs are written as an .EXE and one or more .DLLs. If you browse the .EXE, then you only see the data from that .EXE. You can merge in the data from the .DLL(s) and see the whole program's information. To merge files: 1. Select Merge... from the File PullDown menu to start the Merge Database dialog. 2. Change the filename extension, if appropriate, in the Open Filename: TextEntry field. 3. Select the drive you want to load from using the Drive: DropDown list. 4. Select a directory on that drive from the Directory: ListBox. 5. Select the filename from the File: ListBox. Note that you can merge more than one .PDB file at a time by making multiple .PDB selections in this ListBox. You cannot do a multiple merge of any other file type in this manner. To merge multiple files other than .PDBs, you must merge the files individually. 6. Select the Merge PushButton to merge the information into the current Browser session. Note: You can bypass these steps if you know the name and location of the file you wish to merge. Enter the path name and file name into the Open Filename: TextEntry field. You can merge the following file types: .DLL, .EXE, .LIB, .PDD, .PDE, .PDL, and .PDB. If you merge more than one .PDB file, this is analogous to grouping a set of .OBJ files together into a single .LIB file, so the saved file version in this case is a .PDL file. You can also quickly merge a library from the IBM VisualAge C++ Open Class Library by using the Merge  Cascade menu from the File PullDown menu. In addition, you can add your own files to the Merge  Cascade menu. When you select the Merge PushButton, a Progress dialog is displayed to show you the amount of information that has been merged into the current Browser database. Note: If you try to merge a file into the Browser database that duplicates some of the information that is already loaded into the Browser, a message will appear to inform you. The file will not be loaded into the Browser database. ═══ 4.8. Save As Dialog Help ═══ To save a graph to an OS/2 bitmap file or a list to an ASCII file: 1. Select Save Graph As... or Save List As... from the File PullDown menu to start the dialog. 2. Select the drive that you want to save the file to using the Drive: DropDown list. 3. Select a directory on that drive from the Directory: ListBox. 4. Enter the name of the file that you want to save the graph or list to into the Save as Filename: TextEntry field. 5. Select the OK PushButton to save the information to selected drive and directory. Note: You can bypass these steps if you know the name and location of the file you wish to save. Enter the path name and file name into the Save as Filename: TextEntry field. When you load more than one .PDB file, or merge files together, the Browser will prompt you for a name to call the Browser database file using the Save Database As dialog. Follow steps 2-5 above. ═══ 4.9. Browser Print Dialog Help ═══ Use the Browser Print dialog to print your List and Graph window contents. Note that the name of the dialog reflects the print action that you want to perform (e.g. Print - ). For a list, the printer uses as many pages as required to print the list, so the Number of copies TextEntry field is disabled. As well, this TextEntry field is disabled when you choose to print One Page..., Client..., or Zone... from the Print  Cascade menu on the Graph window. If you choose to print Multiple Pages... from the Print  Cascade menu on the Graph window, you can select the layout of the pages to be printed by entering the number of horizontal and vertical pages to print. The Graph window zooms out to its maximum size, and the page layout is indicated by black rectangular boxes on the graph. Each rectangular area is a page to be printed. Change the horizontal and vertical page numbers until the page layout is to your liking, and select the Apply PushButton to accept the new page layout. Select the Print PushButton to print the current list or graph. Once the graph is finished printing, the grid is cleared and the graph is restored to its previous zoom setting. Select the Cancel PushButton to quit the dialog without printing. Select the Print Setup... PushButton to change the printer properties and page setup. Select the Fonts... PushButton to change the font used when printing. The Font dialog will be loaded. ═══ 4.9.1. Print Setup Dialog Help ═══ The Print Setup dialog is used to select the printer that you want to print to, change the job properties of the print queue, and change the page setup. To select a printer, choose a printer name from the Select Printer ListBox. Select the OK PushButton to accept the choice of printer or Cancel to quit the dialog without changing the printer selection. To change the job properties of the print queue, select the Job Properties... PushButton. These settings are saved to the Browser profile (icsbrs.ini) when you exit the Browser, and will be used for every print job to that printer. To change the page setup, select the Page Setup... PushButton. This will launch the Page Setup dialog. ═══ 4.9.2. Print Page Setup Dialog Help ═══ Use the Page Setup dialog to change the type of paper used and to set the margins for printing on that paper. Select a paper size from the Form name ListBox. Enter the margins that you want to use with this paper size. You can set the top, bottom, left and right margins. Margin settings are measured in inches. Select OK to accept the changes or Cancel to close the dialog without making changes. Note: The system may change the margin settings to either the minimum or maximum values if you have attempted to set an invalid value. For example, some printers may not support a margin less than a м of an inch. So, if you try to set it to zero inches, the margin values will be automatically reset to a м of an inch. ═══ 4.10. Find Dialog Help ═══ Use the Find dialog to locate text in the current window starting from the currently selected object. Enter a text string into the Find TextEntry field or use the to select from the last 10 text entries made. Use the Find PushButton to initiate the search and close the Find dialog. Use the Apply PushButton to initiate the search and keep the Find dialog open. Use the Cancel PushButton to quit the dialog without performing the search. If a match is found, the located text is brought into the view of the window and the text is highlighted. If no matches are found, a Message Box appears to let you know.  You can perform wildcard finds using: - An asterisk (*) to match any number of characters, and - A question mark (?) to match one character.  Use the Case Sensitive CheckBox to perform case dependent searches.  Use the Wrap Around CheckBox to search the entire contents of the current window. The message "Wrapped" appears in the Information Bar when the find is starting to search from the top of the list. You can find the next instance of the text by either selecting Find Next from the Edit PullDown or use the Ctrl+N keys. Note that if you used the Apply PushButton, you can use it to find the next instance. ═══ 4.11. Search Dialog Help ═══ The Search dialog is a simple string-matching facility to help you find objects in your programs or libraries. It does not have a complex query structure. In fact, this search facility is merely a Find dialog which searches the entire loaded Browser database with the following specifications:  Object (classes, functions, variables, types, or files).  Member Access (public, protected, private, or non-members).  Class (all, SOM, or non-SOM).  Function (all, virtual, pure virtual, or static). Enter the text string that you want to search for into the Search TextEntry field. You can also use the to access the last 10 searches performed. Select the Search PushButton to perform the search query and close the Search dialog. Select the Apply PushButton to perform the search query and keep the Search dialog available. Select Cancel to end the Search dialog without performing a query. All program object names that match the search string will be listed in the List window. Note that the return types and arguments are not searched. If no matches are found, a Message Box appears to let you know.  You can perform wildcard searches using the following wildcards: - A question mark (?) to signify specific character locations, and - An asterisk (*) to signify any number of character locations.  Use the Case Sensitive CheckBox to perform case dependent searches.  Use the Exact Match CheckBox when you know the exact name of the object you want to locate. Note that you cannot use wildcards in conjunction with the Exact Match facility. The wildcard is treated as part of the actual search string. An example using non-exact match:  Enter foobar and deselect the Exact Match CheckBox.  Results: foobar and realfoobar. An example using exact match:  Enter foobar and select the Exact Match CheckBox.  Results: foobar But not: realfoobar. ═══ 4.12. History Window Help ═══ The History window can be used to redo previously performed object-action pairs. This is useful if you replaced a particular List and Graph window contents and no longer have direct access to the object. The History window displays the last 40 unique object-action pairs that you have performed during your current session. The object is listed on the left side of the window and the action is displayed on the right side. Double-click on any object-action pair to invoke it, or select the OK PushButton. Select Apply if you want to invoke the object-action pair and keep the History window open. Invoking the object-action pair in the History window actually makes the Browser re-calculate all the information again. If the object-action pair that you want to invoke is listed at the top of the History window, you should use the Previous menu item from the Actions PullDown menu, or the F6 key to initiate this command. The Browser does not have to re-calculate the last object-action pair performed, for the results are stored in a buffer. When you perform a load, merge, or refresh action, the contents of the History window are checked to see that the object in each object-action pair is still valid. If it is not valid, it is removed from the History window. Select the Cancel PushButton to close the dialog without performing an object-action pair. ═══ 4.13. Font Dialogs Help ═══ Use the Font dialog to select the font type, size, style and emphasis. Note that this dialog is called List Font when you want to change the font used in the List window or the List Area of the Graph window, and it is called Node Font when you want to change the font used in the nodes of the Graph window. Note: If you are using the Printer Font dialog, this only changes the font when you are printing. It does not change any of the fonts displayed in the windows. As you make selections, the Sample area of the dialog changes to give you a preview of what the font definition you have chosen will look like. Use the OK PushButton to accept the font changes. The new font settings will be saved to the Browser profile (icsbrs.ini) when you close the Browser. Use the Reset PushButton to reset the dialog selections to the last used font definition. Use the Cancel PushButton to close the dialog without making any font changes. You can change fonts for the List window text, the List window Action Status Bar, the Graph window Graph Area and List Area, and the Graph window Action Status Bar. To change the List window text:  Select Fonts... from the List window Options PullDown menu. To change the List window Action Status Bar text: 1. Select List Window... from the Options PullDown menu to get the List Window Settings NoteBook. 2. Select the Settings tab. 3. Choose the Select... PushButton. To change the Graph window Graph Area text:  Select Node Fonts... from the Graph window Options PullDown menu. To change the Graph window List Area text:  Select List Fonts... from the Graph window Options PullDown menu. To change the Graph window Action Status Bar text: 1. Select Graph Window... from the Options PullDown menu to get the Graph Window Settings NoteBook. 2. Select the Settings tab. 3. Choose the Select... PushButton. ═══ 4.14. Browser Files Dialog Help ═══ The Browser Files dialog appears when the file you tried to load or merge into the Browser is out-of-date. A list of all the files that are out-of-date or not found are listed in the Files ListBox. The Current Search Paths is listed to show you where the Browser is looking for the files. If this search path is incorrect, use the Change Path... PushButton to launch the Paths dialog where you can change the current path settings. If the QuickBrowse files which could not be loaded CheckBox is selected, the Browser will use the QuickBrowse facility to quickly parse the files. Select the Load PushButton to start loading the data. Note: A QuickBrowse dialog will appear if the target file contains files that were built outside of the scope of the project. The files listed in this dialog will be ignored. The following is a sample of this dialog: ═══ 4.14.1. QuickBrowse Dialog Help ═══ The QuickBrowse dialog lists the names of the files that could not be located in the neither the path used to create the program, the current directory, the path specified in the Browser Settings NoteBook Paths page, the path specified in your INCLUDE environment variable, nor the path specified in your DPATH environment variable, and therefore these files cannot be QuickBrowsed. Select Continue to load information into the Browser that could be QuickBrowsed. Select Cancel to stop loading information into the Browser. The following is a sample of this dialog: ═══ 4.15. Profile Dialog Help ═══ The Profile dialog occurs when you start the Browser for the first time. You are prompted for a directory to save the Browser profile (icsbrs.ini). The default location is the \OS2 directory on the boot drive. If you want to change this, enter the new directory path name into the TextEntry field. Select OK to continue starting the Browser. If later at a later time you want to change the directory where the Browser profile is stored, use the Browser Settings NoteBook Paths page. The following is a sample of this dialog: ═══ 4.16. Choose Object Dialog Help ═══ The Choose Object dialog may appear when you launch a Browser action from either the Browser PullDown menu in the VisualAge C++ Editor or the Browse Cascade menu on the Project PullDown menu in the Debugger. The Browser may find more than one match for the selected item. The dialog has a list of all the matches to the selected item. Choose the item you are interested in from the list and select OK to perform the Browser action on that item and close this dialog or, select Apply to perform the Browser action and keep the dialog open. The following is a sample of this dialog: ═══ 4.17. New User Dialog Help ═══ The New User Help dialog outlines the key features of the Browser. This dialog appears when you start up the Browser and have not disabled this feature. You can disable this dialog by deselecting the Show New User Help On Startup CheckBox or by selecting an appropriate level of help from the Browser Settings NoteBook Help Level page which you can invoke from any Options PullDown menu. If you have disabled this dialog, you can enable it by selecting the New User level of help from the Browser Settings NoteBook Help Level page. ═══ 4.18. Overview Window Help ═══ The Overview window shows the entire graph on a small scale. The grey shaded area indicates the current view of the Graph Area in the Graph window. You can move this area around or resize it. Any changes you make to the size or position of this grey area is automatically reflected in the Graph window. Use and to size the view of the graph. The result is the same as if you had used the Slider on the left side of the Graph window. Use the four-way cross-arrow to move the grey area around. The result is the same as if you had use the scroll bars around the Graph Area of the Graph window. ═══ 4.19. Progress Dialog Help ═══ The Progress dialog appears when you load or merge a file into the Browser, and when you exit the Browser. When loading or merging, the dialog indicates how much more information needs to be loaded. When you exit the Browser, the dialog indicates how much more information needs to be saved to the Browser database file for the currently loaded program. The following diagram shows the load progress of the USERINTF.PDL file, which is shipped with the Browser. The following is a sample of this dialog: ═══ 5. Browser PullDown Menus ═══ The Browser List and Graph windows each have a PullDown menu bar. The common PullDown menus are: File PullDown Menu Edit PullDown Menu Actions PullDown Menu Options PullDown Menu Windows PullDown Menu Project PullDown Menu Help PullDown Menu The List window has one unique PullDown menu: Order PullDown Menu The Graph window also has one unique PullDown menu: View PullDown Menu ═══ 5.1. File Pulldown Menu ═══ Use the File PullDown menu to: Load program files or Browser database files Merge program files or Browser database files Refresh the currently loaded Browser database Save the contents of the current window Print the contents of the current window Open a new blank window Create a copy of the current window Exit the Browser ═══ 5.1.1. Load  ═══ The Load  Cascade menu item allows you to load your programs (.DLL, .EXE, .LIB) or Browser database files (.PDB, .PDD, .PDE, .PDL), or you can load the IBM VisualAge C++ Open Class Library classes: Load... User Interface Classes Collection Classes I/O Stream Classes Complex Math Classes Database Access Classes Application Support Classes The Load  Cascade menu will also include any items that you have added. See User Added Menu Items for more information. See the Load Database dialog for more information on loading files into the Browser. ═══ 5.1.1.1. Load... ═══ The Load... menu item launches the Load Database dialog. You can load the name of a program file with the extension .EXE, .LIB, or .DLL, or a Browser database file with the extension .PDE, .PDL, .PDD, or .PDB. ═══ 5.1.1.2. User Interface Classes ═══ The User Interface Classes menu item loads the Browser information for the User Interface Classes which make up part of the IBM VisualAge C++ Open Class Library. ═══ 5.1.1.3. Collection Classes ═══ The Collection Classes menu item loads the Browser information for the Collection Classes which make up part of the IBM VisualAge C++ Open Class Library. ═══ 5.1.1.4. I/O Stream Classes ═══ The I/O Stream Classes menu item loads the Browser information for the external interfaces to the I/O Stream Classes which make up part of the IBM VisualAge C++ Open Class Library. ═══ 5.1.1.5. Complex Math Classes ═══ The Complex Math Classes menu item loads the Browser information for the external interfaces to the Complex Mathematics Classes which make up part of the IBM VisualAge C++ Open Class Library. ═══ 5.1.1.6. Database Access Classes ═══ The Database Access Classes menu item loads the Browser information for the external interfaces to the Database Access Classes which make up part of the IBM VisualAge C++ Open Class Library . ═══ 5.1.1.7. Application Support Classes ═══ The Application Support Classes menu item loads the Browser information for the external interfaces to the Application Support Classes which make up part of the IBM VisualAge C++ Open Class Library . ═══ 5.1.1.8. User Added Menu Items ═══ You can add your own files to the Load  and Merge  Cascade menus by: 1. Creating an ASCII file called brsmenu.txt and place it in a directory in your DPATH. 2. Using the following format: Menu Name"path_name\file_name Where Menu Name is the name you want to have appear on the Load  and Merge  Cascade menus, and path_name\file_name is the path name and file name of the file to be loaded or merged. You can have spaces in the Menu Name. Be sure to separate the Menu Name from the path_name\file_name with a double quote ("). Note: You must have a blank line at the end of the brsmenu.txt file. 3. You can add a maximum of six files. The new menu items will be added to the Load  and Merge  Cascade menus the next time you start the Browser. Note that you have to restart the Browser if you want changes to this file to take effect. See the Load Database dialog and the Merge Database dialog for more information on loading and merging files into the Browser. ═══ 5.1.2. Merge  ═══ The Merge facility allows you to see your program extended with additional controls or features from another program or library. For example, you may want to add User Interface Class Library features to your program. Using the Merge facility, you can browse this class library without loosing any information about your program. The Merge  Cascade has the following options: Merge... User Interface Classes Collection Classes I/O Stream Classes Complex Math Classes Database Access Classes Application Support Classes The Merge  Cascade menu will also include any items that you have added. See User Added Menu Items for more information. See the Merge Database dialog for more information on merging files into the Browser. ═══ 5.1.2.1. Merge... ═══ The Merge facility allows you to merge a specified Browser database file or library into the current Browser database. The Merge... menu item launches the Merge Database dialog. ═══ 5.1.2.2. User Interface Classes ═══ The User Interface Classes menu item merges the Browser information for the external interfaces to the User Interface Classes which make up part of the IBM VisualAge C++ Open Class Library into the current Browser database. ═══ 5.1.2.3. Collection Classes ═══ The Collection Classes menu item merges the Browser information for the external interfaces to the Collection Classes which make up part of the IBM VisualAge C++ Open Class Library into the current Browser database. ═══ 5.1.2.4. Complex Math Classes ═══ The Complex Math Classes menu item merges the Browser information for the external interfaces to the Complex Mathematics Classes which make up part of the IBM VisualAge C++ Open Class Library into the current Browser database. ═══ 5.1.2.5. I/O Stream Classes ═══ The I/O Stream Classes menu item merges the Browser information for the external interfaces to the I/O Stream Classes which make up part of the IBM VisualAge C++ Open Class Library into the current Browser database. ═══ 5.1.2.6. Database Access Classes ═══ The Database Access Classes menu item merges the Browser information for the external interfaces to the Database Access Classes which make up part of the IBM VisualAge C++ Open Class Library into the current Browser database. ═══ 5.1.2.7. Application Support Classes ═══ The Application Support Classes menu item merges the Browser information for the external interfaces to the Application Support Classes which make up part of the IBM VisualAge C++ Open Class Library into the current Browser database. ═══ 5.1.2.8. User Added Menu Items ═══ ═══ 5.1.3. Refresh ═══ The Refresh menu item reloads your program with the best source of data possible. If you have made modifications to your source file, have done a build, and you are generating Browser information in your compiler options, the Refresh facility reloads the necessary information from the .PDB files generated. If you have modified your source code, but have not regenerated the Browser information, the Browser Files dialog appears. You can choose to QuickBrowse your source by checking the QuickBrowse files which could not be loaded CheckBox and select the Load PushButton. The QuickBrowse facility is fast, but there may be a loss of information provided for your program. The benefit is that you do not have to wait for a lengthy recompile of your source to browse the declarations in your programs. ═══ 5.1.4. Save Graph As... ═══ The Save Graph As... menu item allows you to save the current graph to an OS/2 bitmap format. You can then import this bitmap into your own documents. For a selected area, only the selected portion will be saved. Note: The bitmap dimensions specified in the Browser Settings NoteBook Paths page will be used to size the bitmap when it is saved. For more information, see the Save As dialog. ═══ 5.1.5. Save List As... ═══ The Save List As... menu item allows you to save the current list to ASCII format. You can then edit the file. For more information, see the Save As dialog. ═══ 5.1.6. Print ═══ From the List window, you can print the current list to a printer. From the Graph window, you can perform the following print options: Print One Page... Print Client... Print Zone... Print Multiple Pages... See the Browser Print dialog for more information on printing. ═══ 5.1.6.1. One Page... ═══ The One Page... menu item prints the entire graph on one page of paper. If the graph is complex, then it is likely that the details of the resultant single page output will be unreadable, however the structure of the graph can still be useful. If you need to read the nodes, then either zoom in to a legible level of detail and use the Client... option, or print a single section using the Zone... menu item, or print the entire graph at a definable level of detail using the Multiple Pages... menu item. See the Browser Print dialog for more information on printing. ═══ 5.1.6.2. Client... ═══ The Client... menu item prints the currently viewed section of the graph on one page of paper. See the Browser Print dialog for more information on printing. ═══ 5.1.6.3. Zone... ═══ Prints the section of the graph that you have marked. See the Browser Print dialog for more information on printing. ═══ 5.1.6.4. Multiple Pages... ═══ The Multiple Pages... menu item will print the entire graph on several pages of paper. The graph will be printed at full zoom across as many pages as you specify. This option is recommended for very large graphs. See the Browser Print dialog for more information on printing. ═══ 5.1.7. New Window ═══ The New Window menu item creates another List window if launched from a List window, or another Graph window if launched from a Graph window. The new window will be blank. You can have a maximum of four List windows and four Graph windows open at any time. ═══ 5.1.8. Copy Window ═══ The Copy Window menu item copies the current List or Graph window contents and puts them into a new List or Graph window. You can have a maximum of four List windows and four Graph windows open at any time. ═══ 5.1.9. Exit Browser ═══ The Exit Browser menu item ends your current Browser session. All List and Graph windows will be closed. If you have chosen the Confirm on Exit CheckBox on the Browser Settings NoteBook Help Level page, then you will be prompted to confirm that you want to exit the Browser. To remove this confirmation, uncheck the CheckBox. If you browsed an .EXE, .DLL, or .LIB file for the first time since it was built or loaded a .PDB file, the Browser will save away the contents of its current Browser database to disk, so that the next time you browse the same file, it will load much quicker. Note that if you have performed a merge, or loaded multiple .PDB files, then the Browser will prompt you as to whether you want to save the current contents of the Browser database. This is because the Browser cannot determine what file name to save the contents to. Select Yes to display the Save Database As dialog. Select No to exit the Browser without saving the current Browser database. ═══ 5.2. Edit Pulldown Menu ═══ The Edit PullDown menu allows you to: Find text in the current window Find next occurrence Copy currently selected object to the clipboard Copy All text to the clipboard to the clipboard ═══ 5.2.1. Find... ═══ The Find... menu item launches the Find dialog. You can search the objects in the current window for the first instance matching the text string that you entered into the Find dialog. ═══ 5.2.2. Find Next ═══ The Find Next menu item searches the objects of the current window for the next instance of the text string that was last entered into the Find dialog. It does not search the entire Browser database. Note that the search begins from the current selection position in the window. ═══ 5.2.3. Copy ═══ The Copy menu item copies the currently selected object to the OS/2 Clipboard. You can paste this line into any editor. Note: This menu item is only available in the List window. ═══ 5.2.4. Copy All ═══ The Copy All menu item copies the entire contents of the List window or the graph in the Graph window to the OS/2 Clipboard. For graphs: The copied image is sized according to the bitmap settings specified in the Browser Settings NoteBook Bitmap page. Note: If you have selected a region of the graph, only the selected portion will be copied. ═══ 5.3. View Pulldown Menu ═══ The View PullDown menu only pertains to the Graph window. It allows you to:  See an overview of the entire graph  Zoom in on the graph  Zoom out on the graph  Maximum zoom in  Maximum zoom out  Center the currently selected node in the Graph Area  Display relationships vertically  Display relationships horizontally  Change the weighting in the layout of the graph ═══ 5.3.1. Overview... ═══ The Overview... menu item launches an Overview window which displays the graph on a small scale so that you can see the entire structure of the graph. ═══ 5.3.2. Zoom In ═══ The Zoom in menu item will increase the magnification of the current graph by one factor. One factor is approximately 10%. For a selected area, the selected portion will be zoomed to the maximum magnification so that it will appear its largest in the window. ═══ 5.3.3. Zoom Out ═══ The Zoom out menu item will decrease the magnification of the current graph by one factor. One factor is approximately 10%. ═══ 5.3.4. Max Zoom In ═══ The Max Zoom in menu item will display the current graph at the maximum magnification. ═══ 5.3.5. Max Zoom Out ═══ The Max Zoom out menu item will display the current graph at the minimum magnification. ═══ 5.3.6. Center ═══ The Center menu item moves the currently selected node to the center of the graph area. ═══ 5.3.7. Vertical ═══ The Vertical menu item draws the graph with a vertical orientation. That is, the nodes are read from top to bottom. Some graphs tend to be more understandable when the arcs are drawn vertically, while others are more understandable with the arcs drawn horizontally. If you find a graph hard to understand, try changing to the other orientation. ═══ 5.3.8. Horizontal ═══ The Horizontal menu item draws the graph with a horizontal orientation. That is, the nodes are read from left to right. Some graphs tend to be more understandable when the arcs are drawn vertically, while others are more understandable with the arcs drawn horizontally. If you find a graph hard to understand, try changing to the other orientation. ═══ 5.3.9. Weighting  ═══ Some graphs tend to be more understandable when the graph is drawn with all root nodes at an equal level, with all leaf nodes at an equal level, or with most nodes grouped together in the middle. If you find a graph hard to understand, try changing the weighting setting:  Top  Center  Bottom ═══ 5.3.9.1. Top ═══ The Top menu item organizes the nodes so that most of the nodes are at the top or left of the graph depending whether you have chosen horizontal or vertical alignment. ═══ 5.3.9.2. Center ═══ The Center menu item organizes the nodes so that most of the nodes are at the center of the graph. ═══ 5.3.9.3. Bottom ═══ The Bottom menu item organizes the nodes so that most of the nodes are at the bottom or right of the graph depending whether you have chosen horizontal or vertical alignment. ═══ 5.4. Actions Pulldown Menu ═══ The Actions PullDown provides you with the most common Browser actions that you will perform on the entire Browser database. Go back to the previous object-action pair Search the Browser database Graph the inheritance relationships Graph the include file relationships List all classes in the Browser database List all files in the Browser database ═══ 5.4.1. Previous ═══ The Previous menu item returns to the last object-action pair performed in the current window. If you are unsure what the last object-action pair was, use the History window to see a list of the last 40 object-action pairs performed. ═══ 5.4.2. Search... ═══ The Search... menu item launches the Search Database dialog. You can search the current Browser database for classes, functions, types, variables, and files. ═══ 5.4.3. Show Inheritance Graph ═══ The Show Inheritance Graph menu item displays the tree structure that represents how all the defined classes in the entire Browser database are related by inheritance. Note that classes that are declared but that are not defined are not displayed. For large Browser databases, this could take a few seconds to display the Graph window. ═══ 5.4.4. Show Include File Graph ═══ The Show Include File Graph menu item displays a tree structure that represents how all the source files in the current Browser database are related by the C preprocessor #include mechanism. ═══ 5.4.5. List All Classes ═══ The List All Classes menu item creates an alphabetical list of all the classes declared in the Browser database. This is the default action when a file is loaded into the List window. You can change the default setting using the List Window Settings NoteBook Settings page. ═══ 5.4.6. List All Files ═══ The List All Files menu item creates an alphabetical list of all the source files used to create the currently loaded Browser database. Note: The file names listed for the IBM Open Class Library selections may have a different path name than is on your machine. However, the Browser searches the File Search Path defined in the Browser Settings NoteBook Paths page which includes your INCLUDE environment variable which was updated with the install directory of the VisualAge C++ libraries when you installed VisualAge C++ on your machine. ═══ 5.5. Options Pulldown Menu ═══ From the Options PullDown menu you can define the various types of settings used by the Browser: Change the fonts used Change the List window settings Change the Graph window settings Change the Browser settings. ═══ 5.5.1. Fonts... ═══ On the List window Options PullDown menu, the Fonts... menu item allows you to change the text font used in the List Area of the List window. On the Graph window Options PullDown menu, there are two font options to choose from: Node Fonts... to change the text font used by the nodes in a graph and List Fonts... to change the text font used by the List Area of the graph. ═══ 5.5.1.1. Node Fonts... ═══ The Node Fonts... menu item launches the Fonts dialog in order to change the font used by the nodes in the graph. ═══ 5.5.1.2. List Fonts... ═══ The List Fonts... menu item launches the List Fonts dialog in order to change the font used by the text in the List Area of the Graph window. ═══ 5.5.2. Graph Window... ═══ The Graph Window... menu item launches the Graph window Settings NoteBook. Use this NoteBook to change the default load action, object double-click action, colors, styles, and bitmap size. ═══ 5.5.3. List Window... ═══ The List Window... menu item launches the List window Settings NoteBook. Use this NoteBook to change the default load action, object double-click action, colors, and styles. ═══ 5.5.4. Browser... ═══ The Browser... menu item launches the Browser Settings NoteBook. Use this NoteBook to change the search paths and help levels of the Browser. ═══ 5.6. Order Pulldown Menu ═══ The Order PullDown menu only pertains to the List window when it is a container view that was produced using the List Members with Inheritance action. It allows you to view the listed program elements in three different ways: By Class By Access By Type ═══ 5.6.1. Class ═══ The Class menu item reorders the current objects in the list. The base classes are at the highest level. For example: Class 1 Public Constructors/Destructors Functions Types Variables Protected Private Class 2 The Class order is the default order for the List window when displaying class members. ═══ 5.6.2. Access ═══ The Access menu item reorders the current objects in the list with the access method at the highest level. For example: Public Constructors/Destructors Functions Class 1 Class 2 Types Variables Protected Private ═══ 5.6.3. Type ═══ The Type menu item reorders the current objects in the list with the type of object at the highest level. For example: Constructors/Destructors Functions Public Protected Class 1 Class 2 Private Types Variables ═══ 5.7. Windows Pulldown Menu ═══ The Windows PullDown menu shows you how many List and Graph windows you currently have open, and allows you to select any of them to bring them into focus. History... Graph 1 Graph 2 Graph 3 Graph 4 List 1 List 2 List 3 List 4 ═══ 5.7.1. History... ═══ The History... menu item launches the History window. It lists the last 40 object-action pairs performed. You can double-click on any object-action pair to perform it again. ═══ 5.7.2. Graph 1 ═══ The Graph 1 menu item gives you quick access to the first Graph window that you opened. If you do not have any Graph windows open, then this menu item will not appear. ═══ 5.7.3. Graph 2 ═══ The Graph 2 menu item gives you quick access to the second Graph window that you opened. If you do not have a second Graph window opened, then this menu item will not appear. ═══ 5.7.4. Graph 3 ═══ The Graph 3 menu item gives you quick access to the third Graph window that you opened. If you do not have a third Graph window opened, then this menu item will not appear. ═══ 5.7.5. Graph 4 ═══ The Graph 4 menu item gives you quick access to the fourth Graph window that you opened. If you do not have a fourth Graph window opened, then this menu item will not appear. ═══ 5.7.6. List 1 ═══ The List 1 menu item gives you quick access to the first List window that you opened. If you do not have any List windows open, then this menu item will not appear. ═══ 5.7.7. List 2 ═══ The List 2 menu item gives you quick access to the second List window that you opened. If you do not have a second List window opened, then this menu item will not appear. ═══ 5.7.8. List 3 ═══ The List 3 menu item gives you quick access to the third List window that you opened. If you do not have a third List window opened, then this menu item will not appear. ═══ 5.7.9. List 4 ═══ The List 4 menu item gives you quick access to the fourth List window that you opened. If you do not have a fourth List window opened, then this menu item will not appear. ═══ 5.8. Project Pulldown Menu Help ═══ The Project PullDown menu gives you access to the IBM WorkFrame options and the VisualAge C++ Editor. For more information on IBM WorkFrame, see the IBM WorkFrame section in the User's Guide. For more information on VisualAge C++ Editor, see the VisualAge C++ Editor section in the User's Guide. ═══ 5.9. Help Pulldown Menu Help ═══ The Help PullDown menu gives you access to the various kinds of help available: Help Index General Help Using Help How Do I... VisualAge C++ Help Cascades Product Information ═══ 5.9.1. Help Index ═══ The Help Index menu item launches the index for the Browser online help. ═══ 5.9.2. General Help ═══ The General Help menu item launches the online help for the Browser. The panel opened will either be the List window description or the Graph window description, depending on which window you launched the action from. You can select items on the Browser windows and press the F1 to get context sensitive help on that particular item, or use the Table of Contents or Index to search for the help that you need. ═══ 5.9.3. Using Help ═══ The Using Help menu item launches help information for using the Information Presentation Facility (IPF). ═══ 5.9.4. How Do I... ═══ The How Do I... menu item launches the Browser: How Do I... information. It provides step-by-step instructions on how to perform tasks using the Browser. Click here to launch the Browser: How Do I... information. ═══ 5.9.5. Visual Age C++ Help Menu Items ═══ The central portion of the Help PullDown menu is dedicated to all the online documentation that is shipped with Visual Age C++. Making a selection from any of these Cascade menus launches the Visual Age C++ documentation associated with the menu item. You can find the same documentation in the Information folder found in the Visual Age C++ Desktop folder. The Cascade menus are organized as follows: At A Glance  Provides general information on using Visual Age C++, such as what is new in this release, the overall tutorial, a description of all the sample programs, and answers to frequently asked questions. Using Visual Age C++  Provides direct access to the individual sections of the User's Guide. For example, if you are using the Browser, you would look in the Browsing section for more information. How Do I... Selections  Provides access to the How Do I... information for each component of Visual Age C++. Use How Do I... information to find out how to perform common tasks within Visual Age C++. C/C++  Provides access to the information that is specific to programming in C and C++. Class Libraries  Provides access to the Visual Age C++ Open Class Library documentation. Visual Programming  Provides access to the information that is specific to creating your programs visually. OS/2, PM, and Graphics  Provides access to the documentation for the key aspects of OS/2, Presentation Manager, and graphics programming. IPF, REXX, and Editing  Provides access to the IPF, REXX and Editor references. SOM and WorkPlace Shell  Provides access to the information specific to SOM and the WorkPlace Shell. Multimedia  Provides access to the information that is specific to creating multimedia applications. ═══ 5.9.6. Product Information ═══ The Product Information menu item provides information about this release of the Browser. ═══ 6. PopUp Menus ═══ Each of the objects displayed in a List or Graph window has an associated list of actions that can be performed on that object: Class PopUp Menu Function PopUp Menu Variable PopUp Menu Type PopUp Menu File PopUp Menu Label PopUp Menu The List and Graph windows also have PopUp menus which allow you to perform window specific actions: List Window Background PopUp Menu Graph Window Background PopUp Menu Graph Zone PopUp Menu ═══ 6.1. Class PopUp Menu ═══ You can perform the following actions on a class object. Edit Definition Show Documentation Graph All Base & Derived Classes Graph All Base Classes Graph All Derived Classes Graph Immediate Derived Classes List Members with Inheritance List Friends List Friendships List Implementing Files List Instantiations The following menu items appear on the menu if you have a List container view: Expand Collapse The following menu item appears on the menu if you are in a Graph window: Center ═══ 6.1.1. Edit Definition ═══ The Edit Definition menu item launches either the editor as defined for your project, if you have started the Browser from a IBM WorkFrame project, or the Visual Age C++ Editor. The file containing the definition of the currently selected class is loaded in to the editor. By default, the Visual Age C++ Editor is positioned to the first line of the definition of this class. Note that this menu item will be disabled if there is a forward declaration of the class, but no definition. For example, the forward reference: class IWindow; would cause IWindow to appear in the List window that results from the List All Classes action on this class. However, if the complete declaration is not in the Browser database, the Edit Definition action item will be disabled for this class. ═══ 6.1.2. Show Documentation ═══ The Show Documentation menu item launches the help panel in the IBM Visual Age C++ Open Class Library documentation for the currently selected class. Note that this function will only work with the Visual Age C++ Open Class Library classes. You can quickly access these classes through the Load and Merge Cascade menus. ═══ 6.1.3. Graph All Base Classes ═══ The Graph All Base Classes menu item creates an inheritance graph of all the base classes of the selected class. These include both direct and indirect base classes. Note that this menu item will be disabled if the selected class has no base classes, or if the selected class has only been declared and not defined. ═══ 6.1.4. Graph All Base and Derived Classes ═══ The Graph All Base & Derived Classes menu item creates an inheritance graph of all the base classes of the selected class, and all the classes that derive from the selected class, in one relationship graph. These include both direct and indirect base and derived classes. Note that this menu will be disabled if there are no classes which derive from the selected class, if the selected class has been declared but not defined, or if the selected class has no base classes. ═══ 6.1.5. Graph All Derived Classes ═══ The Graph All Derived Classes menu item creates an inheritance graph of all the classes that are derived from the selected class. These include both direct and indirect derived classes. Note that this menu item will be disabled if there are no classes which derive from the selected class, or if the selected class has been declared but not defined. ═══ 6.1.6. Graph Immediate Derived Classes ═══ The Graph Immediate Derived Classes menu item creates a Graph window which displays one level of derived classes for this class. Note that this menu item is disabled if there are no classes which derive from the selected class, or if the selected class has been declared but not defined. ═══ 6.1.7. List Members With Inheritance ═══ The List Members with Inheritance menu item creates a List container view of all the members for the selected classes and its base classes. The resultant list is not sorted alphabetically as items in a List window generally are. The classes are arranged in a depth first tree traversal of the classes inheritance hierarchy. Note that this menu item will be disabled if the selected class has been declared but not defined. ═══ 6.1.8. List Instantiations ═══ The List Instantiations menu item creates a list of class template instantiations for the selected template class. Note that this menu item is disabled if the selected class is not a template class, or if the selected class has been declared but not defined. Note: When you QuickBrowse your source files that contain global variables that instantiate a class template, these class templates will only appear in the Browser as variables. You will not be able to list the instantiations of the original class template. When this data is obtained from the compiler, the List Instantiations action will work as expected. The global variables will be listed from data obtained by compiler generated data. ═══ 6.1.9. List Implementing Files ═══ The List Implementing Files menu item creates a list of files that contain definitions for the class, and for any of the members of the class Note: The file names listed for the IBM Open Class Library selections may have a different path name than is on your machine. However, the Browser searches the File Search Path defined in the Browser Settings NoteBook Paths page which includes your INCLUDE environment variable which was updated with the install directory of the Visual Age C++ libraries when you installed Visual Age C++ on your machine. Note that this menu item will be disabled if the selected class has been declared but not defined. ═══ 6.1.10. List Friends ═══ The List Friends menu item lists all the friends of the currently selected class. A friend of a class is a function that has been granted access to the private members of the class. A friend class obtains access to the private members for all of its member functions. The result of this action is a list container view with functions and classes as the two labels in the container. Note that this menu item will be disabled if the class contains no friend statements, or if the class has been declared but not defined. ═══ 6.1.11. List Friendships ═══ The List Friendships menu item lists all the friendships that have been granted to the currently selected class. You can grant friendships to either a single function or member function at a time, or to all the member functions of a class at once. This action results in a list of all those classes that have granted the selected class friendship. Note that this menu item will be disabled if no classes have granted the selected class friendship. ═══ 6.1.12. Expand ═══ ═══ 6.1.13. Collapse ═══ ═══ 6.2. Function PopUp Menu ═══ You can perform the following actions on a function object. Edit Definition Show Documentation Graph All Callers Graph All Callees Graph All Callers & Callees Graph Immediate Callers & Callees List Immediate Callers & Callees List Possible Exceptions Thrown List Overriding Derived Classes List Friendships List Instantiations List Members with Inheritance The following menu items appear on the menu if you have a List container view: Expand Collapse The following menu item appears on the menu if you are in a Graph window: Center ═══ 6.2.1. Edit Definition ═══ The Edit Definition menu item launches either the editor as defined for your project, if you have started the Browser from a IBM WorkFrame project, or the Visual Age C++ Editor. The file containing the definition of the currently selected function is loaded in to the editor. By default, the Visual Age C++ Editor is positioned to the first line of the definition of this function. Note that this menu item will be disabled if the function has been declared but not defined. ═══ 6.2.2. Show Documentation ═══ The Show Documentation menu item launches the help panel in the IBM Visual Age C++ Open Class Library documentation for the currently selected function. Note that this function will only work with the Visual Age C++ Open Class Library classes. You can quickly access these classes through the Load and Merge Cascade menus. ═══ 6.2.3. Graph All Callers ═══ The Graph All Callers menu item creates a graph of all the functions that call the currently selected function. These include the functions which call the selected function directly, or those functions that call it indirectly through other functions. Note that this menu item will be disabled if no functions call the selected function, if the function has been declared but not defined, or if the source files containing the function definitions has been handled by the QuickBrowse feature of the Browser. ═══ 6.2.4. Graph All Callees ═══ The Graph All Callees menu item creates a graph of all the functions that the currently selected funtion calls. These include the functions that the selected function calls directly or indirectly. This menu item will be disabled if the selected function calls no other functions, has been declared but not defined, or if the source files containing the function definitions has been handled by the QuickBrowse feature of the Browser. ═══ 6.2.5. Graph All Callers and Callees ═══ The Graph All Callers & Callees menu item creates a graph of all the functions that call the currently selected function and the functions that are called by the currently selected function. These include the functions that the selected function calls and are called by both directly or indirectly. This menu item will be disabled if the selected function neither calls nor is called by any other function, has been declared but not defined, or if the source files containing the function definitions has been handled by the QuickBrowse feature of the Browser. ═══ 6.2.6. Graph Immediate Callers and Callees ═══ The Graph Immediate Callers & Callees menu item creates a graph of all the functions that either call the selected function directly and are called by both directly or indirectly. This menu item will be disabled if the selected function neither calls nor is called by any other function, has been declared but not defined, or if the source files containing the function definitions has been handled by the QuickBrowse feature of the Browser. ═══ 6.2.7. List Immediate Callers and Callees ═══ The List Immediate Callers & Callees menu item creates a list of all the functions that either call the selected function directly and are called by both directly or indirectly. The resultant list is not sorted alphabetically as items in a List window generally are. The classes are arranged in a depth first tree traversal of the classes inheritance hierarchy. This menu item will be disabled if the selected function neither calls nor is called by any other function, has been declared but not defined, or if the source files containing the function definitions has been handled by the QuickBrowse feature of the Browser. ═══ 6.2.8. List Instantiations ═══ The List Instantiations menu item creates a list of the function template instantiations of the selected function template. Note that this menu item will be disabled if the selected function is not a function template, has been declared but not defined, or if the source files containing the instantiations have been handled by the QuickBrowse feature of the Browser. ═══ 6.2.9. List Possible Exceptions Thrown ═══ The List Possible Exceptions Thrown menu item creates a list of all the possible types of exceptions that could be thrown by the selected function, or by any function that this function calls. Note that this menu item will be disabled if the selected function calls no other functions and it does not throw any exceptions itself, or if the source files containing the function definitions has been handled by the QuickBrowse feature of the Browser. Note: If the selected function calls another function, the menu item will be enabled, even though the function may not throw any exceptions. You will get a No Results Found message. ═══ 6.2.10. List Friendships ═══ The List Friendships menu item lists all the friendships that are defined for the currently selected function. You can grant friendships to either a single function or member function at a time, or to all the member functions of a class at once. This action results in a list of all those classes that have granted the selected class friendship. Note that this menu item will be disabled if no classes have granted the selected class friendship. ═══ 6.2.11. List Overriding Derived Classes ═══ The List Overriding Derived Classes menu item creates a list of all the derived classes of the class that this function is a member of. Note that this menu item is disabled if the selected function is not a member function of a class, or when no derived classes of the selected function's class contain functions which override the selected function. ═══ 6.2.12. List Class Members With Inheritance ═══ The List Class Members with Inheritance menu item creates a List container view of all the members of the class the selected function is a member of. The resultant list is not sorted alphabetically as items in a List window generally are. The classes are arranged in a depth first tree traversal of the classes inheritance hierarchy. Note that this menu item will be disabled if the selected function is not a class member function. ═══ 6.3. Variable PopUp Menu ═══ You can perform the following actions on a variable object: Edit Definition Expand Collapse ═══ 6.3.1. Edit Definition ═══ The Edit Definition menu item launches either the editor as defined for your project, if you have started the Browser from a IBM WorkFrame project, or the Visual Age C++ Editor. The file containing the definition of the currently selected variable is loaded in to the editor. By default, the Visual Age C++ Editor is positioned to the first line of the definition of this variable. ═══ 6.4. Type PopUp Menu ═══ You can perform the following actions on a type object: Edit Definition Expand Typedef Expand Collapse ═══ 6.4.1. Edit Definition ═══ The Edit Definition menu item launches either the editor as defined for your project, if you have started the Browser from a IBM WorkFrame project, or the Visual Age C++ Editor. The file containing the definition of the currently selected typedef is loaded in to the editor. By default, the Visual Age C++ Editor is positioned to the first line of the definition of this typedef. ═══ 6.4.2. Expand Typedef ═══ The Expand Typedef menu item creates a list which contains successive expansions of a typedef, until it contains only fundamental types. Note that this menu item is disabled if the selected type is an enum. ═══ 6.5. File PopUp Menu ═══ You can perform the following actions on a file object: Edit File Graph All Includers Graph All Includees Graph All Includers & Includees List Defined Objects The following menu item appears on the menu if you are in a Graph window: Center ═══ 6.5.1. Edit File ═══ The Edit File menu item launches either the editor as defined for your project, if you have started the Browser from a IBM WorkFrame project, or the Visual Age C++ Editor. The file is loaded in to the editor. ═══ 6.5.2. Graph All Includers ═══ The Graph All Includers menu item creates a graph of all the files that include the currently selected file. These include both direct and indirect inclusion. Note that this menu item is disabled if the selected file is not included any other file. ═══ 6.5.3. Graph All Includees ═══ The Graph All Includees menu item creates a graph of all the files that are included by the currently selected file. These include both direct and indirect inclusion. Note that this menu item is disabled if the selected file does not include any other file. ═══ 6.5.4. Graph All Includers and Includees ═══ The Graph All Includers & Includees menu item creates a graph of all the files included by the currently selected file and all the files that include the currently selected file. This includes both direct and indirect inclusion. Note that this menu item is disabled if the selected file does not include any other file, or if the selected file is not included by any other file. ═══ 6.5.5. List Defined Objects ═══ The List Defined Objects menu item creates a list of all the Browser objects which are defined in the selected file. Note that this menu item is never disabled, since this is an expensive action to perform because Browser objects must be analyzed to get the lists of items which are defined in the selected file. Because of this, you may see the No Results Found message if the file contains no Browser object definitions. ═══ 6.6. Label PopUp Menu ═══ You can perform the following actions on label objects: Expand Collapse ═══ 6.6.1. Expand ═══ The Expand menu item will expand the currently selected object entirely. You will only see this menu item when you have a List window that is a container view. ═══ 6.6.2. Collapse ═══ The Collapse menu item will collapse the currently selected object entirely. You will only see this menu item when you have a List window that is a container view. ═══ 6.7. List Window PopUp Menu ═══ You can perform the following actions on the List window: Show Inheritance Graph Show Include File Graph List All Classes List All Files Expand All Collapse All ═══ 6.7.1. Show Inheritance Graph ═══ ═══ 6.7.2. Show Include File Graph ═══ ═══ 6.7.3. List All Classes ═══ ═══ 6.7.4. List All Files ═══ ═══ 6.7.5. Expand All ═══ The Expand All menu item expands all the objects in the current list. You will only see Label objects and the Expand All menu item when you have a List window that is a container view. ═══ 6.7.6. Collapse All ═══ The Collapse All menu item collapses all the objects in the current list. You will only see Label objects and the Collapse All menu item when you have a List window that is a container view. ═══ 6.8. Graph Window PopUp Menu ═══ You can perform the following actions on the Graph window: Show Inheritance Graph Show Include File Graph List All Classes List All Files Overview... Zoom in Zoom out Max Zoom in Max Zoom out Center Vertical Horizontal Weighting  ═══ 6.8.1. Show Inheritance Graph ═══ ═══ 6.8.2. Show Include File Graph ═══ ═══ 6.8.3. Overview... ═══ ═══ 6.8.4. Zoom in ═══ ═══ 6.8.5. Zoom out ═══ ═══ 6.8.6. Max Zoom in ═══ ═══ 6.8.7. Max Zoom out ═══ ═══ 6.8.8. Center ═══ ═══ 6.8.9. Vertical ═══ ═══ 6.8.10. Horizontal ═══ ═══ 6.8.11. Weighting  ═══ ═══ 6.8.11.1. Top ═══ ═══ 6.8.11.2. Center ═══ ═══ 6.8.11.3. Bottom ═══ ═══ 6.9. Graph Zone PopUp Menu ═══ You can select a particular region of the graph by clicking Mouse Button 1 and dragging it across the graph. This creates a rectangular dotted box around the selected region. You can get a Graph Zone PopUp menu using Mouse Button 2 on this region. This PopUp has the following actions: Zoom in Zooms in on the selected region. Save Graph As... Saves the selected region to an OS/2 bitmap file. Print... Prints the currently selected region. Copy Copies the selected region to the clipboard. ═══ 6.9.1. Zoom in ═══ ═══ 6.9.2. Save Graph as... ═══ ═══ 6.9.3. Print... ═══ ═══ 6.9.4. Copy ═══ Copies the selected region of the graph to the clipboard. The copied image is sized according to the bitmap settings specified in the Browser Settings NoteBook Bitmap page. ═══ Object-Action Pair ═══ You can perform actions on any Browser object from the object's PopUp menu. Use Mouse Button 2 over the object to invoke the PopUp menus. The Browser remembers the last 40 unique object-action pairs and lists them in the History dialog for quick access. The List and Graph window each have an Action Status Bar which is located directly below the menubar. It indicates what object and action were used to create the current contents of the window. ═══ Browser Database ═══ A Browser database is the in-memory representation of all the facts about the .EXE, .DLL, or .LIB, or collection of .PDBs, or the results of a merge operation. When you perform a new load, or when you exit the Browser, the contents of this representation are stored into a Browser database file. The next time you browse this program, the saved Browser database file is quickly loaded into memory. For example, if you loaded a program called PROG.EXE into the Browser, the saved Browser database file would be PROG.PDE. If you loaded a DLL called PROG.DLL into the Browser, the saved Browser database file would be PROG.PDD. If you loaded a library file called PROG.LIB into the Browser, the saved Browser database file would be PROG.PDL. If you did a merge, or loaded individual .PDB files, then the Browser would not know what to call the file that is to be saved. In this case, the program that is being browsed is conceptually a psuedo-library, so it will save the memory representation of this pseudo-LIB as a .PDL. You will be prompted as to whether to save this Browser database. If you choose Yes, then the Save Database As... dialog appears. ═══ Graph Selection Area ═══ ═══ Container View ═══ A container view is a list which can be used to show or hide selected information. Use the and icons to expand and collapse the components of the list. You can get this type of view by performing the following actions:  List Members with Inheritance (on a class)  List Friends (on a class)  List Class Members with Inheritance (on a function)  List Defined Objects (on a file)  List Immediate Callers & Callees (on a function) ═══ QuickBrowse ═══ The QuickBrowse feature allows you to quickly obtain and browse type information for code for which there is no compiler generated (/Fb) Browser information. Use QuickBrowse for the following reasons:  It is faster than compiling the code  You may be able to browse files that do not compile Note: The QuickBrowse feature is only available when the Browser is started from an IBM WorkFrame project. QuickBrowse parses the top level declarations which must be valid C++ statements, and ignores the bodies of function definitions. You may want to use QuickBrowse if you are not interested about function call information. Also, if you have code where the type information is well defined, but function bodies will not compile, you can browse the type information with QuickBrowse. If you are browsing in a project, and the Browser detects that some, or all, information is missing, a dialog will appear telling you that this information is missing, and will give you the option of QuickBrowsing the files for which data is missing. Messages will appear in the Project's monitor, just as if you were doing a build. Note that the QuickBrowse feature is not a complete replacement to the Generate Browser information (/Fb) compiler option. The speed of QuickBrowse does come at a cost in the richness of information provided. Since the QuickBrowse feature does not look inside of function bodies, function call and exception information are not available. If you need to know this kind of information, then you will need to compile the file and use the Generate Browser information (/Fb) option. ═══ Message Help ═══ Explanation: No results were found in the data for the requested action. This may be caused by one of the following common reasons:  If you are browsing a library for which you do not have the source, or are using such a library, then the call information will not be available. Actions such as List Immediate Callers & Callees or Graph All Callers & Callees could show no results. Also, without the call information, List Possible Exceptions Thrown would similarly result in no results.  Even with call information, unless a function throws an exception, or calls a function which does, the List Possible Exceptions Thrown action will return no results.  Class actions such as List Friends or List Friendships may result in no results being found because no such relationships exist. ═══ Message Help ═══ Explanation: The application was unable to write to your specified file. This may be caused by one of the following reasons:  The drive was not ready. Make sure there is a diskette in the drive you want to save the file to.  The diskette or disk you wanted to write to may be full. Delete some files or specify another disk to write to.  The diskette or disk may be write-protected. Remove the write protection on the disk to save the file on it.  The specified path may not exist in your system. If you have made a typing error, re-enter the path. Otherwise, create the path on your system or specify another path.  The file permissions may be set to read-only. Change the file permission to allow writes or specify another filename to save the file to. ═══ Message Help ═══ Explanation: The file could not be found. You may need to change the search path specified in the Browser Settings NoteBook Paths page. ═══ Message Help ═══ Explanation: The definition of the selected object is unknown. ═══ Message Help ═══ Explanation: The currently selected object could not be found in the Visual Age C++ online doucmentation. ═══ Message Help ═══ Explanation: view.exe and viewdoc.exe could not be found. Update your PATH environment variable. ═══ Message Help ═══ Explanation: The Browser How Do I... information could not be found. The cause could be either:  The HELP environment variable does not include the Visual Age C++ help directory,  The DPATH environment variable does not include the directory where the cpphdi.opt file is located,  The LIBPATH environment variable does not include the directory where the ipfcntrl.dll file is located, or  The Visual Age C++ documentation was not installed. ═══ Message Help ═══ ═══ Message Help ═══ Explanation: The file could not be opened. Check to make sure the file you are trying to load is a valid .DLL, .EXE, .LIB, .PDD, .PDE, .PDL, or .PDB file. ═══ Message Help ═══ Explanation: Either the path is invalid, the directory is read only, or the file is damaged. The Browser profile (icsbrs.ini) could not be loaded. Delete the existing icsbrs.ini file ═══ Message Help ═══ Explanation: The Browser processes the makefile before the QuickBrowse starts. This is done in order to capture the compiler options or any new files added (if necessary). An error has occurred during the processing of the makefile. Either the makefile or target is in error, or not all the sources are found. ═══ Message Help ═══ Explanation: Launching of the IBM WorkFrame Monitor failed. The Monitor is started to capture the output of the QuickBrowse. The Browser sends a message to the IBM WorkFrame Message Router to start the action Brsmon. For some reason, Brsmon could not be started properly. The action Brsmon is defined during installation. Please make sure Visual Age C++ is installed properly. If problem persists, contact your IBM Service Representative. ═══ Message Help ═══ Explanation: QuickBrowse could not be started properly. This may be a system resource problem. Reduce your system activity, and try again. If problem persists, contact your IBM Service Representative. ═══ Message Help ═══ Explanation: The specified Dynamic Link Library (.DLL) could not be loaded. Please make sure the environment variable LIBPATH includes the path where this .DLL is stored. ═══ Message Help ═══ Explanation: The specified file is critical to the Browser and could not be found. Please make sure the file exists. Update the LIBPATH or PATH environment variable to include this file's directory. ═══ Message Help ═══ Explanation: The specified file could not be loaded due to an internal problem. Please contact your IBM service representative. ═══ Message Help ═══ Explanation: The format of the file is unrecognized. The file may be:  An old format .LIB file. If .OBJs and .PDBs are available, you can rebuild the .LIB using the /BROWSE Linker option. If they are not available, you should add this .LIB file to the Library Files list located on the Browser Settings NoteBook Paths page. Note that this file is not browsable. If the file is an import library, then it is also not browsable.  An old format .DLL/.EXE. If .OBJs and .PDBs are available, you can relink the file using the /BROWSE Linker option, or recompile with the /FB option. If they are not available, then this file is not browsable.  An invalid file has been passed. Please verify that the file is either an executable (.EXE), library (.LIB), or dynamic link library (.DLL). Note: You may also see this message when all of the following are true:  You are browsing a project, whose target is an .EXE.  The target of the project does not exist.  A file with the same file name as the target exists somewhere in your PATH, and this file is either a DOS .EXE or a Windows .EXE, or perhaps it is some other format of file that has been renamed as an .EXE. If this happens, you may ignore the message. ═══ Message Help ═══ Explanation: The file contains no browse information. If .OBJs and .PDBs are available, you can rebuild the .LIB/.DLL/.EXE using the /BROWSE Linker option. If they are not available, you should add the .LIB file to the Library Files list located on the Browser Settings NoteBook Paths page. Note that this file is not browsable. ═══ Message Help ═══ Explanation: The specified file could not be opened. Please verify you have the proper access authority to the file. ═══ Message Help ═══ Explanation: The specified file could not be found. Please make sure the file is available. That is, that the file exists and that it is located in a directory specified in the LIBPATH environment variable. ═══ Message Help ═══ Explanation: The specified file name is unrecognized by the Browser. The file suffix must be either .PDB, .PDL, .PDD, .PDE, .LIB, .DLL, or .EXE. ═══ Message Help ═══ Explanation: Two different .PDB file names are from the same source. The second .PDB file will be ignored. The Browser database has not been changed. ═══ Message Help ═══ Explanation: The data in the displayed .PDB file is out of date. Please rebuild the specified target with the /Fb compiler option to make sure all the .PDB files are up to date. ═══ Message Help ═══ Explanation: The version of the message file is not the version expected. This is most likely a setup or configuration problem on your machine. The Visual Age C++ Browser uses two message files, called DDE45.MSG and DDE4B.MSG. A likely cause of the problem is that you have either copied an older or newer version of one of these files or the DDE4QBTX.DLL file, or you have altered either your LIBPATH or HELP environment variables. Please reinstall Visual Age C++ to correct the problem if you have copied over any of these files. If you have changed either the LIBPATH or HELP environment variable, update it to include the directory where these files reside. ═══ Message Help ═══ Explanation: The Visual Age C++ Browser uses two message files, called DDE45.MSG and DDE4B.MSG. Either you have erased one or both of these files, or have recently altered your HELP environment variable. Please reinstall Visual Age C++ to correct the problem if you have erased either of these files. If you have changed the HELP environment variable, update it to include the directory where these files reside. ═══ Message Help ═══ Explanation: The Visual Age C++ Browser uses two message files, called DDE45.MSG and DDE4B.MSG. You have copied some other file over one of these files or have recently altered your HELP environment variable. Please reinstall Visual Age C++ to correct the problem if you have copied over these files. If you have changed the HELP environment variable, update it to include the directory where these files reside. ═══ Message Help ═══ Explanation: You must enter a positive integer for the number of copies and the horizontal and vertical pages. ═══ Message Help ═══ Explanation: No printer queue is installed on the system. ═══ Message Help ═══ Explanation: The margins specified in the Page Setup dialog are invalid. The print area resulting from these margins is too small to accomodate the current graph or list. Please change the margins to ensure the print area of the page is large enough to print the graph or list. ═══ Message Help ═══ Explanation: The form name chosen in the Page Setup dialog is different than the one specified in the Job Properties dialog for the currently selected printer. If you want to change the form used: 1. Select the form as the default in the Job Properties dialog. 2. Select the matching form name in the Page Setup dialog. Note: For the current print job, the form specified in the Job Properties will be used. ═══ Message Help ═══ Explanation: The form name chosen in the Page Setup dialog is not available for the currently selected printer. To change the form name: 1. Select a form as the default in the Job Properties dialog. 2. Select the matching form name in the Page Setup dialog. Note: For the current print job, the default form specified in the Job Properties dialog for the currently selected printer will be used. ═══ Message Help ═══ Explanation: The data in the displayed file is incompatible with the current Browser database during the merge action. This might be caused by:  Two files containing the same class name, but the classes are different.  An external variable has been defined in two different files. Since the Browser database was not saved before the merge action, the Browser database cannot be restored to its previous content. No application will be loaded. Please make sure all global class names are unique, and there is only one definition for an external variable. ═══ Message Help ═══ Explanation: The data in the displayed file is incompatible with the current Browser database during the merge action. This might be caused by:  Two files containing the same class name, but the classes are different.  An external variable has been defined in two different files. The Browser database will be restored by using the saved Browser database file. Please make sure all global class names are unique, and there is only one definition for an external variable. ═══ Message Help ═══ Explanation: The definition of the displayed class symbol in the current database is different with that in the file being loaded. This might be caused by two files containing the same class name, but the classes are different. Please make sure all the global class names are unique. ═══ Message Help ═══ Explanation: The displayed external variable symbol has been defined twice. Please make sure there is only one definition for the displayed external variable. ═══ Message Help ═══ Explanation: After changing the graph node font, the node may not be resized properly. The font may appear to be too small or too big in a node. To correct the problem, open the History window and select the object-action pair for the current graph. All the nodes are redrawn properly.