home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv4.zip / VACPP / IBMCPP / HELP / CPPBHDI.INF (.txt) < prev    next >
OS/2 Help File  |  1995-04-06  |  76KB  |  1,915 lines

  1.  
  2. ΓòÉΓòÉΓòÉ <hidden> About this Information ΓòÉΓòÉΓòÉ
  3.  
  4. The How Do I... information provides solutions to common tasks that you would 
  5. perform with the various components of VisualAge C++. Before you begin to use 
  6. this information, it would be helpful to understand how to navigate through it: 
  7.  
  8.      Use the Contents and Index facilities to locate topics. 
  9.      Use the Search facility to search the text of this document. 
  10.      Use hypertext links to acquire related information on the current topic. 
  11.       Hypertext links appear in a different color (which you can customize 
  12.       using the OS/2 Scheme Palette). For example, below there are two lists of 
  13.       hypertext links. By double-clicking on the text of the link or by 
  14.       pressing Enter on a highlighted link, you will open a panel of related 
  15.       information. To shift the focus to other links using the keyboard, use 
  16.       the Tab key. 
  17.  
  18.  For more information on using this help facility, see: 
  19.  
  20.      How to Use the Contents 
  21.      How to Obtain Additional Information 
  22.      How to Access and Use IPF Facilities 
  23.  
  24.  For more information, see: 
  25.  
  26.      Other Information You Might Find Helpful 
  27.      Communicating Your Comments to IBM 
  28.      Notices 
  29.      Trademarks 
  30.  
  31.  
  32. ΓòÉΓòÉΓòÉ <hidden> How to Use the Contents ΓòÉΓòÉΓòÉ
  33.  
  34. The Contents window is the first to appear. Some topics have a plus ( ) icon 
  35. beside them. This icon indicates that additional topics are available. 
  36.  
  37. To expand the Contents if you are using a mouse, click on the plus ( ) icon. If 
  38. you are using the keyboard, use the Up or Down Arrow key to highlight the 
  39. topic, and press the plus (+) key. To see additional topics for a heading with 
  40. a plus ( ) icon, click on the icon or highlight that topic and press the plus 
  41. (+) key. 
  42.  
  43. To view a topic, double-click on the topic (or press the Up or Down Arrow key 
  44. to highlight the topic, and then press the Enter key). 
  45.  
  46.  
  47. ΓòÉΓòÉΓòÉ <hidden> How to Obtain Additional Information ΓòÉΓòÉΓòÉ
  48.  
  49. After you select a topic, the information for that topic appears in a window. 
  50. Highlighted words or phrases indicate that additional information is available. 
  51. Certain words and phrases are highlighted in a different color from the 
  52. surrounding text. These are called hypertext terms. 
  53.  
  54. If you are using a mouse, double-click on the highlighted word. If you are 
  55. using a keyboard, press the Tab key to move to the highlighted word, and then 
  56. press the Enter key. Additional information then appears in a window. 
  57.  
  58.  
  59. ΓòÉΓòÉΓòÉ <hidden> How to Access and Use IPF Facilities ΓòÉΓòÉΓòÉ
  60.  
  61. Several choices are available for managing the information presented in this 
  62. document. There are three PullDown menus: the Services menu, the Options menu, 
  63. and the Help menu. 
  64.  
  65. The actions that are selectable from the Services menu operate on the active 
  66. window currently displayed on the screen. These actions include the following: 
  67.  
  68.  Placing Bookmarks 
  69.    You can set a placeholder so you can retrieve information of interest to 
  70.    you. 
  71.  
  72.  Searching for Information 
  73.    You can find occurrences of a word or phrase in the current topic, selected 
  74.    topics, or all topics. 
  75.  
  76.  Printing Information 
  77.    You can print one or more topics. You can also print a set of topics by 
  78.    first marking the topics in the Contents list. 
  79.  
  80.  Copying Information to a File 
  81.    You can copy a topic that you are viewing to the System Clipboard or to a 
  82.    file that you can edit. This method is particularly useful for copying 
  83.    syntax definitions and program samples into the application that you are 
  84.    developing. 
  85.  
  86.  Using the actions that are selectable from the Options menu, you can change 
  87.  the way your Contents list is displayed. To expand the Contents and show all 
  88.  levels for all topics, choose Expand all from the Options PullDown menu. You 
  89.  can also press the Ctrl, Shift and * keys together. 
  90.  
  91.  The actions that are selectable from the Help menu allow you to select 
  92.  different types of help information. 
  93.  
  94.  For information about any of the menu choices, highlight the choice in the 
  95.  menu and press F1. 
  96.  
  97.  
  98. ΓòÉΓòÉΓòÉ <hidden> Placing Bookmarks ΓòÉΓòÉΓòÉ
  99.  
  100. When you place a bookmark on a topic, it is added to a list of bookmarks you 
  101. have previously set.  You can view the list, and you can remove one or all 
  102. bookmarks from the list.  If you have not set any bookmarks, the list is empty. 
  103.  
  104. To set a bookmark, do the following: 
  105.  
  106.    1. Select a topic from the Contents. 
  107.    2. When that topic appears, select the Bookmark option from the Services 
  108.       menu. 
  109.    3. If you want to change the name used for the bookmark, type the new name 
  110.       in the field. 
  111.    4. Click on the Place radio button (or press the Up or Down Arrow key to 
  112.       select it). 
  113.    5. Click on OK (or select it and press Enter). The bookmark is then added to 
  114.       the bookmark list. 
  115.  
  116.  
  117. ΓòÉΓòÉΓòÉ <hidden> Searching for Information ΓòÉΓòÉΓòÉ
  118.  
  119. You can specify a word or phrase to be searched.  You can also limit the search 
  120. to a set of topics by first marking the topics in the Contents list. 
  121.  
  122. To search for a word or phrase in all topics, do the following: 
  123.  
  124.    1. Select the Search option from the Services menu. 
  125.    2. Type the word or words to be searched for. 
  126.    3. Click on All sections (or press the Up or Down Arrow keys to select it). 
  127.    4. Click on Search (or select it and press Enter) to begin the search. 
  128.    5. The list of topics where the word or phrase appears is displayed. 
  129.  
  130.  
  131. ΓòÉΓòÉΓòÉ <hidden> Printing Information ΓòÉΓòÉΓòÉ
  132.  
  133. You can print one or more topics, the index, or the table of contents.  Make 
  134. sure that your printer is connected to the serial port, configured correctly, 
  135. and ready for input. To print: 
  136.  
  137.    1. Select Print from the Services menu. 
  138.    2. Select what you want to print. Note that the This section and Marked 
  139.       sections choices are only available if you are viewing a topic or if you 
  140.       have marked topics, respectively.  To mark topics in the table of 
  141.       contents, press the Ctrl key and click on the topics, or use the arrow 
  142.       keys. 
  143.    3. Select Print to print what you've chosen on your printer. 
  144.  
  145.  
  146. ΓòÉΓòÉΓòÉ <hidden> Copying Information to a File ΓòÉΓòÉΓòÉ
  147.  
  148. You can copy a topic that you are viewing in two ways: 
  149.  
  150.      Copy copies the topic that you are viewing into the System Clipboard. If 
  151.       you are using a Presentation Manager (PM) editor (for example, the 
  152.       Enhanced Editor) that copies or cuts (or both) to the System Clipboard, 
  153.       and pastes to the System Clipboard, you can easily add the copied 
  154.       information to your program source module. 
  155.  
  156.      Copy to file copies the topic that you are viewing into a temporary file 
  157.       named TEXT.TMP. You can later edit that file by using any editor. 
  158.       TEXT.TMP is placed in the directory where your viewable document resides. 
  159.  
  160.  To copy a topic, do the following: 
  161.  
  162.    1. Expand the Contents list and select a topic. 
  163.    2. When the topic appears, select Copy to file from the Services menu. 
  164.    3. The system puts the text pertaining to that topic into the temporary file 
  165.       TEXT.TMP. 
  166.  
  167.  
  168. ΓòÉΓòÉΓòÉ <hidden> Other Information You Might Find Helpful ΓòÉΓòÉΓòÉ
  169.  
  170. The VisualAge C++ provides a number of online guides and references that we 
  171. hope you'll find helpful as you develop applications. This information 
  172. includes: 
  173.  
  174.      User's Guide information provides conceptual and usage information, 
  175.      Reference information is organized for quick access, and 
  176.      How Do I... information gives you specific instructions for performing 
  177.       common tasks. 
  178.  
  179.  You can get to this online information from the Information folder inside the 
  180.  main product folder. You can also get to it from the Help menu in any of the 
  181.  components of the product. 
  182.  
  183.  
  184. ΓòÉΓòÉΓòÉ <hidden> Communicating Your Comments to IBM ΓòÉΓòÉΓòÉ
  185.  
  186. If there is something you like, or dislike, about this document, please let us 
  187. know. You can use one of the methods listed below to send your comments to IBM. 
  188. Please be sure to include the complete title of the publication that you are 
  189. commenting on. For example, you would refer to the How Do I... information for 
  190. the Browser as: 
  191.   VisualAge C++ Browser: How Do I... for OS/2. 
  192.  
  193. The comments you send should only pertain to the information in this document 
  194. and its presentation. To request additional publications or to ask questions or 
  195. make comments about the functions of IBM products or systems, you should talk 
  196. to your IBM representative or your authorized IBM remarketer. 
  197.  
  198. When you send comments to IBM, you grant IBM a nonexclusive right to use or 
  199. distribute your comments in any way it believes appropriate without incurring 
  200. any obligation to you. 
  201.  
  202. You can send your comments to IBM in the following ways: 
  203.  
  204.      By mail to the following address: 
  205.  
  206.             IBM Canada Ltd. Laboratory
  207.             Information Development
  208.             2G/345/1150/TOR
  209.             1150 EGLINTON AVENUE EAST
  210.             NORTH YORK, ONTARIO
  211.             CANADA M3C 1H7
  212.  
  213.      By FAX to the following number: 
  214.  
  215.         -  United States and Canada: (416) 448-6161 
  216.         -  Other countries (+1) 416-448-6161 
  217.  
  218.      By electronic mail to one of the following IDs.  Be sure to include your 
  219.       entire network address if you wish to get a reply. 
  220.  
  221.         -  Internet: torrcf@vnet.ibm.com 
  222.         -  IBMLink: toribm(torrcf) 
  223.         -  IBM/PROFS: torolab4(torrcf) 
  224.         -  IBMMAIL: ibmmail(caibmwt9 
  225.  
  226.  
  227. ΓòÉΓòÉΓòÉ <hidden> Notices ΓòÉΓòÉΓòÉ
  228.  
  229. Copyright International Business Machines Corporation, 1995. All rights 
  230. reserved. 
  231.  
  232. Note to U.S. Government Users - Documentation related to restricted rights - 
  233. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  234. Schedule Contract with IBM Corp. 
  235.  
  236. This edition applies to Version 3.0 of IBM VisualAge C++ for OS/2 (30H1664, 
  237. 30H1665, 30H1666) and to all subsequent releases and modifications until 
  238. otherwise indicated in new editions.  Make sure you are using the correct 
  239. edition for the level of the product. 
  240.  
  241. This publication could include technical inaccuracies or typographical errors. 
  242. Changes are periodically made to the information herein; any such changes will 
  243. be reported in subsequent revisions. 
  244.  
  245. Requests for publications and for technical information about IBM products 
  246. should be made to your IBM Authorized Dealer or your IBM Marketing 
  247. Representative. 
  248.  
  249. When you send information to IBM, you grant IBM a nonexclusive right to use or 
  250. distribute the information in any ways it believes appropriate without 
  251. incurring any obligation to you. 
  252.  
  253. Any reference to an IBM licensed program in this publication is not intended to 
  254. state or imply that only IBM's licensed program may be used. Any functionally 
  255. equivalent product, program, or service that does not infringe any of IBM's 
  256. intellectual property rights may be used instead of the IBM product, program, 
  257. or service. Evaluation and verification of operation in conjunction with other 
  258. products, except  those expressly designated by IBM, is the user's 
  259. responsibility. 
  260.  
  261. IBM may have patents or pending patent applications covering subject matter in 
  262. this document.  The furnishing of this document does not give you any license 
  263. to these patents.  You can send license inquiries, in writing, to the IBM 
  264. Director of Licensing. IBM Corporation, 500 Columbus Avenue, Thornwood, NY, 
  265. 10594, USA. 
  266.  
  267. This publication contains examples of data and reports used in daily business 
  268. operations. To illustrate them as completely as possible, the examples include 
  269. the names of individuals, companies, brands, and products. All of these names 
  270. are fictitious and any similarity to the names and addresses used by an actual 
  271. business enterprise is entirely coincidental. 
  272.  
  273.  
  274. ΓòÉΓòÉΓòÉ <hidden> Trademarks and Service Marks ΓòÉΓòÉΓòÉ
  275.  
  276. The following terms used in this publication are trademarks or service marks of 
  277. IBM Corporation in the United States or other countries: 
  278.  
  279.  C/2                      C Set/2 
  280.  C Set ++                 Common User Access 
  281.  CUA                      IBM 
  282.  Operating System/2       OS/2 
  283.  Personal System/2        Presentation Manager 
  284.  PS/2                     VisualAge 
  285.  WorkFrame/2 
  286.  
  287.  Other company, product, and service names, which may be denoted by a double 
  288.  asterisk(**), may be trademarks or service marks of others. 
  289.  
  290.  
  291. ΓòÉΓòÉΓòÉ 1. Use the Browser ΓòÉΓòÉΓòÉ
  292.  
  293. Browsing is a technique for understanding the complexities inherent in an 
  294. object-oriented application. The Browser helps you to: 
  295.  
  296.      Navigate through an inheritance hierarchy. 
  297.      Understand the full interface of a class available to you as a 
  298.       programmer. 
  299.      Locate the body of a function or a class definition amongst dozens 
  300.       (possibly hundreds) of files across multiple directories. 
  301.      Understand calling relationships between functions. 
  302.  
  303.  When you first start the Browser, you will be presented with a blank List 
  304.  window. Use the File PullDown menu to load either a program file (.DLL, .EXE, 
  305.  .LIB) or a Browser database file (.PDD, .PDE, .PDL). A list of all the classes 
  306.  defined in the file are listed in the List window. 
  307.  
  308.  To perform actions on objects, use Mouse Button 2 on the selected object to 
  309.  invoke the object's PopUp menu. 
  310.  
  311.  For more information on using the Browser, see the Browser section in the 
  312.  User's Guide. 
  313.  
  314.  
  315. ΓòÉΓòÉΓòÉ 2. Browse Files ΓòÉΓòÉΓòÉ
  316.  
  317. You can use the Browser to browse the following: 
  318.  
  319.      VisualAge C++ Open Class Library 
  320.      Your own program files (.DLLs, .EXEs, .LIBs) 
  321.      Direct To SOM C++ objects 
  322.  
  323.  You can use the Browser to do limited browsing on the following: 
  324.  
  325.      C programs 
  326.      IDL-based SOM C++ objects 
  327.  
  328.  While some similarity exists between C++ and other object-oriented languages, 
  329.  the VisualAge C++ Browser is a C++ class browser. Therefore, you cannot use 
  330.  the Browser to browse the following: 
  331.  
  332.      OO REXX, 
  333.      OO COBOL, or 
  334.      Any other object-oriented languages 
  335.  
  336.  Related Tasks: 
  337.  
  338.      How do I browse without compiling. 
  339.      How do I edit and browse at the same time. 
  340.  
  341.  
  342. ΓòÉΓòÉΓòÉ 2.1. Browsing the VisualAge C++ Open Class Library ΓòÉΓòÉΓòÉ
  343.  
  344. You can quickly browse the libraries that make up the IBM VisualAge C++ Open 
  345. Class Library: 
  346.  
  347.       1. Select the File PullDown menu. 
  348.       2. Select the Load  Cascade menu. 
  349.       3. Choose one of: 
  350.              User Interface Classes 
  351.              Collection Classes 
  352.              I/O Stream Classes 
  353.              Complex Math Classes 
  354.              Database Access Classes 
  355.              Application Support Classes 
  356.  
  357.  You can also quickly merge these files with your own loaded program: 
  358.  
  359.       1. Select the File PullDown menu. 
  360.       2. Select the Merge  Cascade menu. 
  361.       3. Choose one of: 
  362.              User Interface Classes 
  363.              Collection Classes 
  364.              I/O Stream Classes 
  365.              Complex Math Classes 
  366.              Database Access Classes 
  367.              Application Support Classes 
  368.  
  369.  
  370. ΓòÉΓòÉΓòÉ 2.2. Browsing your own Program Files ΓòÉΓòÉΓòÉ
  371.  
  372. You need to understand the types provided by class libraries and frameworks in 
  373. order to understand how class libraries work. Typically, within a library, 
  374. function calls made internally are not exposed to the user, except for 
  375. "trivial" inline functions. You can create a single program file (.DLL, .EXE, 
  376. or .LIB) which includes all the interfaces to a third party library, and either 
  377. use the compiler to generate the Browser information, or use the QuickBrowse 
  378. feature. 
  379.  
  380.      To compile and link, use the /Fb compiler option and the /BROWSE linker 
  381.       option. 
  382.      To use QuickBrowse, see How Do I browse without compiling. Note that 
  383.       function call information is not present for QuickBrowsed programs. 
  384.  
  385.  Related Information: 
  386.  
  387.      Open the User's Guide section on the /Fb compiler option. 
  388.      Open the User's Guide section on the /BROWSE linker option. 
  389.  
  390.  
  391. ΓòÉΓòÉΓòÉ 2.3. Browsing C Programs ΓòÉΓòÉΓòÉ
  392.  
  393. You can do limited browsing on C files by compiling them as C++ files. 
  394. Unfortunately, the data obtained this way will have limited value, since there 
  395. are no classes in the C language. However, file and function call information 
  396. will be present. 
  397.  
  398.  
  399. ΓòÉΓòÉΓòÉ 2.4. Browsing Direct To SOM C++ Objects ΓòÉΓòÉΓòÉ
  400.  
  401. To list only the SOM objects used in your program: 
  402.  
  403.       1. Select the Actions PullDown menu. 
  404.       2. Select the Search Application... menu item. 
  405.       3. Select the Classes RadioButton. 
  406.       4. Select the SOM RadioButton. 
  407.       5. Select the Search or Apply PushButton to initiate the search. 
  408.  
  409.  If your currently loaded program contains SOM objects, then a List window with 
  410.  all the SOM objects listed will be displayed. By default, SOM objects are 
  411.  displayed in green. If there are no SOM objects, you will get a No Results 
  412.  Found MessageBox. In order to browse the SOM objects, use Mouse Button 2 to 
  413.  get action PopUps. 
  414.  
  415.  Note:  Only SOM classes compiled with the Direct to SOM feature of the 
  416.         VisualAge C++ compiler can be fully browsed, unless you generate C++ 
  417.         bindings for these classes, and then compile them through the Direct To 
  418.         SOM compiler. IDL-based SOM classes compiled with the SOM emitter can 
  419.         generate C based bindings for the SOM classes defined in the IDL. The 
  420.         SOM C++ emitter will generate C++ definitions. In both cases, the 
  421.         bindings are machine-generated, and the symbols may not be easy to 
  422.         understand. 
  423.  
  424.  
  425. ΓòÉΓòÉΓòÉ 2.5. Browsing without Compiling ΓòÉΓòÉΓòÉ
  426.  
  427. If the Browser database file is missing or out of date, the Browser provides 
  428. the QuickBrowse alternative instead of recompiling the modified source files. 
  429. QuickBrowse examines the makefile and derives the compiler options used to 
  430. compile the required source files. The source files are then quickly parsed as 
  431. if they were compiled with such options. QuickBrowse can be invoked within the 
  432. Browser, and is faster than recompiling the source. You must have an IBM 
  433. WorkFrame project defined for the file that you are loading in order to use the 
  434. QuickBrowse facility. 
  435.  
  436. QuickBrowse may be invoked in one of two ways: 
  437.  
  438.     A) You are loading a file that is not found or out-of-date: 
  439.  
  440.       1. Select the File PullDown menu. 
  441.       2. Select the Load... menu item. 
  442.       3. Choose an .EXE, .DLL, or .LIB file to load. If the .PDB or Browser 
  443.          database file is not found or is out of date, the Browser Files dialog 
  444.          will appear. 
  445.       4. Check the QuickBrowse files which could not be loaded CheckBox. 
  446.       5. Select the Load PushButton. 
  447.  
  448.     B) You are browsing files that have changed since last recompile: 
  449.  
  450.       1. Select the File PullDown menu. 
  451.       2. Choose the Refresh menu item. If some of the source files have 
  452.          changed, the Browser Files dialog will appear. 
  453.       3. Check the QuickBrowse files which could not be loaded CheckBox. 
  454.       4. Select the Load PushButton. 
  455.  
  456.  Note:  A QuickBrowse dialog will appear if the target file contains files that 
  457.         were built outside of the scope of the project. The files listed in 
  458.         this dialog will be ignored. 
  459.  
  460.  
  461. ΓòÉΓòÉΓòÉ 3. Compile Files for Use with the Browser ΓòÉΓòÉΓòÉ
  462.  
  463. In general, you compile your source file with the /Fb option. However, there 
  464. are two options that you can use to compile your programs for use with the 
  465. Browser: /Fb or /Fb*. 
  466.  
  467. The difference between the two options relates to how much Browser information 
  468. is generated from system include files. That is, those included via: #include 
  469. <system_file.h> as opposed to: #include "local_file.h". 
  470.  
  471. The Generate Browser information option (/Fb) discards much of the non-type 
  472. information from inside of system include files. For instance: 
  473.  
  474.      Non-member function declarations will not be included in the .PDB file, 
  475.       including those C and OS/2 header files. Any friendship granted to these 
  476.       types of omitted functions will not be recorded for a class.  For 
  477.       instance: 
  478.  
  479.             // in <foo.h>
  480.               int foobar(void);
  481.             // in "bar.h"
  482.               class bar {
  483.               friend int foobar(void);
  484.               }
  485.  
  486.       This friendship will not be included in the list of friends of class bar. 
  487.      No global variable declared, or defined, in the system header file will 
  488.       be included in the .PDB file. This includes variables of an instantiated 
  489.       template type. 
  490.      Class member function declarations will be added to the .PDB file, but 
  491.       their inline definitions, if any, will not. 
  492.      Non-inline function definitions will not be added to the .PDB file. 
  493.  
  494.  These restrictions are lifted when compiling with the Generate All Browser 
  495.  Information (/Fb*) option. It is recommended that you use the /Fb option, 
  496.  unless the compiler issues a message indicating that the use of the /Fb* 
  497.  option is appropriate. 
  498.  
  499.  Related Tasks: 
  500.  
  501.      How do I browse without compiling. 
  502.  
  503.  Related Information: 
  504.  
  505.      Open the User's Guide section on the /Fb compiler option. 
  506.      Open the User's Guide section on the /BROWSE linker option. 
  507.  
  508.  
  509. ΓòÉΓòÉΓòÉ 4. Create Browser Database Files ΓòÉΓòÉΓòÉ
  510.  
  511. The Browser will automatically create a Browser database file from your loaded 
  512. program files (.DLL, .EXE, or .LIB) when you exit the Browser, or when you load 
  513. another program. The Browser will then use this database file the next time you 
  514. load your program files again. The main purpose of the Browser database file is 
  515. for quick loading. You will not lose any data by loading a Browser database 
  516. file instead of the program file. The Browser knows when it needs to update the 
  517. database file by checking the creation dates of the program files. If any of 
  518. the program file dates are newer than the database file, the Browser performs 
  519. an incremental "smart" load that incorporates the new/updated information. 
  520.  
  521. The Browser will create the following Browser database files depending on what 
  522. you loaded into the Browser: 
  523.  
  524.  Program   Browser Database File 
  525.    .DLL         .PDD 
  526.    .EXE         .PDE 
  527.    .LIB         .PDL 
  528.  
  529.  The Browser will use the file name of the program file as the file name for 
  530.  the Browser database file, replacing the file extension as indicated above. 
  531.  The Browser will only prompt you for a name when it cannot determine what to 
  532.  call the file. This only occurs if you have performed a merge. 
  533.  
  534.  The Browser will load the Browser database file the next time you load the 
  535.  same program file. You can also explicitly load the created Browser database 
  536.  file. Note that if you were asked to name the Browser database file, then you 
  537.  must load that file explicitly in order to get the merged information. 
  538.  
  539.  Related Tasks: 
  540.  
  541.      How do I browse without compiling. 
  542.      How do I use .PDB, .PDD, .PDE, and .PDL files. 
  543.      How do I load files. 
  544.      How do I merge files. 
  545.  
  546.  
  547. ΓòÉΓòÉΓòÉ 5. Customize the Browser ΓòÉΓòÉΓòÉ
  548.  
  549. You can customize the following: 
  550.  
  551.      Graph Window Settings 
  552.      List Window Settings 
  553.      Browser Settings 
  554.      Printer Settings 
  555.  
  556.  Related Information: 
  557.  
  558.      Open the User's Guide to the Graph window description. 
  559.      Open the User's Guide to the List window description. 
  560.  
  561.  
  562. ΓòÉΓòÉΓòÉ 5.1. Changing Graph Window Settings ΓòÉΓòÉΓòÉ
  563.  
  564. You can use the Graph Window Settings NoteBook to change any of the following: 
  565.  
  566.      Settings - To change the font of the Action Status Bar, to change the 
  567.       default double-click action for objects, and to change the default load 
  568.       action. 
  569.      Colors - To change the colors used by objects in the Browser. 
  570.      Styles - To change the shape of the nodes and arcs in the graph. 
  571.      Bitmap - To change the dimensions of the OS/2 bitmap to be saved. 
  572.  
  573.  Use the Node Fonts... and List Fonts... menu items on the Graph window Options 
  574.  PullDown menu to change the fonts used in the nodes of the graph and the List 
  575.  Area of the Graph window. 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ 5.1.1. Changing Graph Settings ΓòÉΓòÉΓòÉ
  579.  
  580. You can change the font used by the Action Status Bar, the default action 
  581. performed when a program is loaded into the Graph window, and the default 
  582. double-click action performed on objects in the Graph window. 
  583.  
  584.       1. Select the Options PullDown menu. 
  585.       2. Choose the Graph Window... item to load the Graph Window Settings 
  586.          NoteBook. 
  587.       3. Select the Settings tab. 
  588.       4. To change the font of the Action Status Bar, choose the Select... 
  589.          PushButton to launch the Action Status Bar Font dialog. Select a font 
  590.          type. 
  591.       5. To change the default action performed when you have a Graph window 
  592.          open and you load a program into the Browser, select one of the 
  593.          choices from the Initial Action DropDown list. 
  594.       6. To change the default action performed when a Graph window is loaded, 
  595.          select one of the choices from the DropDown ComboBox. 
  596.       7. To change the default double-click actions for program objects, select 
  597.          an object and a corresponding action. 
  598.       8. Select OK to accept the changes or Cancel to close the dialog without 
  599.          making any changes. 
  600.  
  601.  Note:  These changes will be saved to the icsbrs.ini file when you exit the 
  602.         Browser. 
  603.  
  604.  
  605. ΓòÉΓòÉΓòÉ 5.1.2. Changing Graph Colors ΓòÉΓòÉΓòÉ
  606.  
  607. To change the colors used in the Graph window: 
  608.  
  609.       1. Select the Options PullDown menu on the Graph window 
  610.       2. Select the Graph Window... menu item to load the Graph Window Settings 
  611.          NoteBook. 
  612.       3. Select the Colors tab. 
  613.       4. Select an item from the scrollable list of things that you can change 
  614.          the color of. 
  615.       5. Select a color block from the 16 colors displayed in the upper right. 
  616.       6. Select OK to apply the new color defaults, which will be saved when 
  617.          you exit the Browser. 
  618.  
  619.     Note that you can preview your color selections without applying them using 
  620.     the Example Area in the bottom right. 
  621.  
  622.  
  623. ΓòÉΓòÉΓòÉ 5.1.3. Changing Graph Styles ΓòÉΓòÉΓòÉ
  624.  
  625. You can change the shape of the nodes and arcs on the graph: 
  626.  
  627.       1. Select the Options PullDown menu. 
  628.       2. Select the Graph Window... menu item to load the Graph Window Settings 
  629.          NoteBook. 
  630.       3. Choose the Styles tab to display the Graph Window Settings Styles 
  631.          page. 
  632.       4. Select an object from the Object Shape Listbox or a relationship from 
  633.          the Line Style Listbox. 
  634.       5. Select a shape or line style PushButton to associate with the object 
  635.          or relationship. 
  636.  
  637.  Note:  These changes will be saved to the icsbrs.ini file when you exit the 
  638.         Browser. 
  639.  
  640.  
  641. ΓòÉΓòÉΓòÉ 5.1.4. Changing Bitmap Dimensions ΓòÉΓòÉΓòÉ
  642.  
  643. You can change the OS/2 bitmap dimensions that the Browser will save a graph 
  644. to: 
  645.  
  646.       1. Select the Options PullDown menu. 
  647.       2. Select the Graph Window... menu item to load the Graph Window Settings 
  648.          NoteBook. 
  649.       3. Choose the Bitmap tab to display the Graph Window Settings Bitmap 
  650.          page. 
  651.       4. Enter the Width and Height dimensions into the corresponding TextEntry 
  652.          fields. 
  653.  
  654.  Note:  These changes will be saved to the icsbrs.ini file when you exit the 
  655.         Browser. 
  656.  
  657.  
  658. ΓòÉΓòÉΓòÉ 5.1.5. Changing Graph Fonts ΓòÉΓòÉΓòÉ
  659.  
  660. To change the font used by the Graph window: 
  661.  
  662.       1. Select the Options PullDown menu on the Graph window. 
  663.              Choose the Node Fonts... menu item to change the font used in the 
  664.               nodes, or 
  665.              Choose the List Fonts... menu item to change the font used in the 
  666.               List Area of the Graph window. 
  667.          Either choice will yield the Graph Window Node/List Font dialog. 
  668.       2. Select a font type. 
  669.       3. Select OK to apply the changes or Cancel to close the dialog without 
  670.          making any changes. 
  671.  
  672.  Note:  These settings will be saved to the icsbrs.ini file when you exit the 
  673.         Browser. 
  674.  
  675.  You can also change the fonts of the Action Status Bar: 
  676.  
  677.         See How do I change Graph window Settings 
  678.  
  679.  
  680. ΓòÉΓòÉΓòÉ 5.2. Changing List Window Settings ΓòÉΓòÉΓòÉ
  681.  
  682. You can use the List Window Settings NoteBook to change any of the following: 
  683.  
  684.      Settings - To change the font of the Action Status Bar, to change the 
  685.       default double-click action for objects, and to change the default load 
  686.       action. 
  687.      Colors - To change the colors used by objects in the Browser. 
  688.      Styles - To change the amount of text displayed in the List Area. 
  689.  
  690.  Use the List Fonts... menu item on the List window Options PullDown menu to 
  691.  change the font used in the List window. 
  692.  
  693.  
  694. ΓòÉΓòÉΓòÉ 5.2.1. Changing List Settings ΓòÉΓòÉΓòÉ
  695.  
  696. You can change the font used by the Action Status Bar, the default action 
  697. performed when a program is loaded into the List window, and the default 
  698. double-click action performed on program objects listed. 
  699.  
  700.       1. Select the Options PullDown menu. 
  701.       2. Choose the List Window... item to load the List window Settings 
  702.          NoteBook. 
  703.       3. To change the font of the Action Status Bar, choose the Select... 
  704.          PushButton to launch the Action Status Bar Font dialog. Select a font 
  705.          type. 
  706.       4. To change the default action performed when you have a List window 
  707.          open and you load a program into the Browser, select one of the 
  708.          choices from the Initial Action DropDown list. 
  709.       5. To change the default double-click actions for program objects, select 
  710.          an object and a corresponding action. 
  711.       6. Select OK to accept the changes or Cancel to close the dialog without 
  712.          making any changes. 
  713.  
  714.  Note:  These changes will be saved to the icsbrs.ini file when you exit the 
  715.         Browser. 
  716.  
  717.  Related Tasks: 
  718.  
  719.      How do I order List window contents. 
  720.  
  721.  
  722. ΓòÉΓòÉΓòÉ 5.2.2. Changing Colors ΓòÉΓòÉΓòÉ
  723.  
  724. To change the colors used in the List window: 
  725.  
  726.       1. Select the Options PullDown menu on the List window 
  727.       2. Choose the List Window... item to load the List Window Settings 
  728.          NoteBook. 
  729.       3. Select the Colors page. 
  730.       4. Select an item from the scrollable list. 
  731.       5. Select a color block from the 16 colors displayed in the upper right. 
  732.       6. Select OK to apply the new color defaults, which will be saved when 
  733.          you exit the Browser. 
  734.  
  735.  Note:  You can preview your color selections without applying them using the 
  736.         Example Area in the bottom right. 
  737.  
  738.  
  739. ΓòÉΓòÉΓòÉ 5.2.3. Changing List Styles ΓòÉΓòÉΓòÉ
  740.  
  741. You can change the amount of text displayed in the List window: 
  742.  
  743.       1. Select the Options PullDown menu. 
  744.       2. Select the List Window... menu item to load the List Window Settings 
  745.          NoteBook. 
  746.       3. Choose the Styles tab to load the List Window Settings Styles page. 
  747.              Select Attributes to summarize what the program element is 
  748.               (C-constant, V-virtual, E-enumerator, S-static, and PV-pure 
  749.               virtual). 
  750.              Select Full Text to list the full text of the program elements. 
  751.              Select Both to list both the summary and the full text of the 
  752.               program elements. 
  753.  
  754.  Note:  These changes will be saved to the icsbrs.ini file when you exit the 
  755.         Browser. 
  756.  
  757.  
  758. ΓòÉΓòÉΓòÉ 5.2.4. Changing Fonts ΓòÉΓòÉΓòÉ
  759.  
  760. To change the font used by the List window: 
  761.  
  762.       1. Select the Options PullDown menu on the List window. 
  763.       2. Choose the List Fonts... menu item to load the List Window Font 
  764.          dialog. 
  765.       3. Select a font type. 
  766.       4. Select OK to apply the changes or Cancel to close the dialog without 
  767.          making any changes. 
  768.  
  769.  Note:  These settings will be saved to the icsbrs.ini file when you exit the 
  770.         Browser. 
  771.  
  772.  You can also change the fonts of the Action Status Bar: 
  773.  
  774.         See How do I change List window Settings 
  775.  
  776.  
  777. ΓòÉΓòÉΓòÉ 5.3. Changing Browser Settings ΓòÉΓòÉΓòÉ
  778.  
  779. You can use the Browser Settings NoteBook to change any of the following: 
  780.  
  781.      Paths - To change the paths used by the Browser to find source, Browser 
  782.       database, and library files and the Browser profile (icsbrs.ini). 
  783.      Help Levels - To change the level of help offered by the Browser. 
  784.  
  785.  
  786. ΓòÉΓòÉΓòÉ 5.3.1. Changing Paths ΓòÉΓòÉΓòÉ
  787.  
  788. You can set the paths where the Browser will search for your source files, 
  789. which library files the Browser should ignore, and where the Browser should 
  790. save the icsbrs.ini profile. 
  791.  
  792.       1. Select the Options PullDown menu. 
  793.       2. Select the Browser... menu item to load the Browser Settings NoteBook. 
  794.          The first page displayed is the Paths page. 
  795.       3. Enter your source file path names into the File Search Path TextEntry 
  796.          field. 
  797.       4. Enter the list of library files that you do not want the Browser to 
  798.          use into the Library Files TextEntry field. 
  799.       5. Enter the directory where you want the Browser profile, icsbrs.ini, to 
  800.          be saved into the Profile TextEntry field. 
  801.  
  802.  Note:  These settings will be saved to the icsbrs.ini when you exit the 
  803.         Browser. 
  804.  
  805.  
  806. ΓòÉΓòÉΓòÉ 5.3.2. Changing Help Levels ΓòÉΓòÉΓòÉ
  807.  
  808. You can change the level of help that is available to you through the Browser. 
  809.  
  810.       1. Select the Options PullDown menu. 
  811.       2. Choose the Browser... item to load the Browser Settings NoteBook. 
  812.              Select New User to have a Browser introductory dialog load on 
  813.               startup of the Browser, as well as have an Information Bar 
  814.               located at the bottom of each window. 
  815.              Select Intermediate to disable the Browser introductory dialog, 
  816.               but keep the Information Bar still active. 
  817.              Select Expert to have no introductory dialog and no Information 
  818.               Bar. 
  819.  
  820.  The Information Bar shows brief help on menu items that you pass the mouse 
  821.  over. 
  822.  
  823.  From this Settings page, you can also deselect the Confirm on exit CheckBox to 
  824.  keep the Browser from prompting you whether you want to exit the Browser or 
  825.  not when you perform a Exit Browser action. 
  826.  
  827.  Note:  These settings will be saved to the icsbrs.ini file when you exit the 
  828.         Browser. 
  829.  
  830.  
  831. ΓòÉΓòÉΓòÉ 5.4. Changing Printer Settings ΓòÉΓòÉΓòÉ
  832.  
  833. You can change the printer settings the Browser uses to print the contents of 
  834. the Graph and List windows. 
  835.  
  836.       1. Select the File PullDown menu on either the List or Graph window. 
  837.              From the List window: Select the Print... menu item to load the 
  838.               Browser Print - List dialog. 
  839.              From the Graph window: Select the Print  Cascade menu and choose 
  840.               one of the print options to load the Browser Print - <print 
  841.               option> dialog. 
  842.       2. From any Print dialog: Select the Print Setup... PushButton to load 
  843.          the Printer Setup dialog. 
  844.              Select the printer queue that you want to use for printing from 
  845.               the Select Printer list. 
  846.              Choose the Job Properties... PushButton if you want to change the 
  847.               job properties associated with the selected printer queue. 
  848.              Choose the Page Setup... PushButton if you want to change the 
  849.               margins of the paper used for printing. 
  850.              Select OK to save the changes for this printer queue. Note that 
  851.               only the changes for the last printer queue selected are saved by 
  852.               the Browser. 
  853.       3. Choose the Fonts... PushButton to select the font that you want to use 
  854.          for printing. 
  855.  
  856.  Note that the printer settings apply to printing from either the Graph or List 
  857.  windows. 
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 6. Design Programs Using the Browser ΓòÉΓòÉΓòÉ
  861.  
  862. You may find the QuickBrowse feature especially helpful during the design 
  863. phase. At this point, you are concentrating on defining and refining the 
  864. objects (types) in the design. QuickBrowse enables you to view the evolving 
  865. design. Though it imposes the rigor of valid C++ declarations, it allows the 
  866. flexibility of function bodies that may consist of incomplete code. 
  867.  
  868. Whether you use QuickBrowse or not, the Browser is a useful design tool, 
  869. especially when: 
  870.  
  871.      The design becomes large. With the Browser, it is easy to keep track of 
  872.       the many components of the design. 
  873.      You are participating in a group design effort or wish to have your 
  874.       design reviewed. Provide your coworkers with the Browser database file, 
  875.       and they will be able to review your design (with the exception of 
  876.       function call information if QuickBrowse was used to create the Browser 
  877.       database file). 
  878.  
  879.  Related Tasks: 
  880.  
  881.      How do I browse without compiling. 
  882.  
  883.  
  884. ΓòÉΓòÉΓòÉ 7. Distinguish Between my Classes and Others ΓòÉΓòÉΓòÉ
  885.  
  886. The only way to distinguish IBM VisualAge C++ Open Class Library classes from 
  887. your own classes is to not start any of your class names with a capital letter 
  888. "I". All classes in the IBM VisualAge C++ Open Class Library start with the 
  889. letter "I", with the exception of the I/O Stream and Complex Mathematics 
  890. Libraries which do not follow this convention. 
  891.  
  892.  
  893. ΓòÉΓòÉΓòÉ 8. Edit Within the Browser ΓòÉΓòÉΓòÉ
  894.  
  895. You can launch an edit session from within the Browser on the following 
  896. objects: 
  897.  
  898.      Program Element Definitions 
  899.      Files 
  900.  
  901.  Related Tasks: 
  902.  
  903.      How do I edit and browse at the same time. 
  904.      How do I find the Edit window. 
  905.  
  906.  
  907. ΓòÉΓòÉΓòÉ 8.1. Editing Program Element Definitions ΓòÉΓòÉΓòÉ
  908.  
  909. To edit program elements that are displayed in either the List or Graph 
  910. windows: 
  911.  
  912.       1. Select the program element (class, function, type or variable). 
  913.       2. Click Mouse Button 2 on the program element to get the program 
  914.          element's PopUp menu 
  915.       3. Choose the Edit Definition menu item 
  916.  
  917.  By default, this will load the VisualAge Editor with the file that contains 
  918.  the definition of the program element, and the editor will place you at the 
  919.  beginning of the program element's definition. 
  920.  
  921.  Related Tasks: 
  922.  
  923.      How do I list all the members of a class. 
  924.      How do I edit files from the Browser. 
  925.  
  926.  
  927. ΓòÉΓòÉΓòÉ 8.2. Editing Files from the Browser ΓòÉΓòÉΓòÉ
  928.  
  929. In order to edit a program file from the Browser, you must first have a file 
  930. object to work with. To list or view all program files used to generate the 
  931. loaded program by: 
  932.  
  933.         Select the Actions PullDown menu. 
  934.         Choose one of Show Include File Graph or List All Files to get a 
  935.          window of File objects. 
  936.  
  937.     OR 
  938.  
  939.         Use Mouse Button 2 on the background of the List or Graph window to 
  940.          access the Background PopUp menu. 
  941.         Choose one of Show Include File Graph or List All Files to get a 
  942.          window of File objects. 
  943.  
  944.  To edit program files from the Browser: 
  945.  
  946.       1. Select the program file. 
  947.       2. Click Mouse Button 2 on the file to get the File PopUp menu. 
  948.       3. Choose the Edit File menu item. 
  949.  
  950.     By default, this will load the VisualAge Editor with the file. 
  951.  
  952.  Related Tasks: 
  953.  
  954.      How do I find where my program elements are defined. 
  955.      How do I view the include file relationship. 
  956.      How do I find all programs used by my program. 
  957.      How do I list files. 
  958.      How do I list program elements defined within a file. 
  959.  
  960.  
  961. ΓòÉΓòÉΓòÉ 8.3. Editing and Browsing at the Same Time ΓòÉΓòÉΓòÉ
  962.  
  963. You do not have to leave the Browser environment in order to determine the 
  964. location of your program element definitions to edit. The Browser gives you 
  965. direct access to your source files and works, by default, with the VisualAge 
  966. Editor to quickly locate your program definitions. 
  967.  
  968. Related Tasks: 
  969.  
  970.      How do I edit files from the Browser 
  971.      How do I edit program element definitions 
  972.      How do I browse without recompiling 
  973.  
  974.  
  975. ΓòÉΓòÉΓòÉ 9. Find Items in the Browser ΓòÉΓòÉΓòÉ
  976.  
  977. You can quickly locate the following: 
  978.  
  979.      Browser Windows 
  980.      Program Element Definitions 
  981.      Files 
  982.      VisualAge C++ Program Element Documentation 
  983.  
  984.  The Browser does not provide a special Edit window. 
  985.  
  986.  
  987. ΓòÉΓòÉΓòÉ 9.1. Finding my Browser Windows ΓòÉΓòÉΓòÉ
  988.  
  989. You can have a maximum of four List windows and four Graph windows open during 
  990. a Browser session. In order to quickly locate your various Browser windows, use 
  991. the Windows PullDown menu from either a List or Graph window. 
  992.  
  993.  
  994. ΓòÉΓòÉΓòÉ 9.2. Finding Where Program Elements are Defined ΓòÉΓòÉΓòÉ
  995.  
  996. You can see the source for any program element by: 
  997.  
  998.       1. Select the program element. 
  999.       2. Click Mouse Button 2 on the program element to get the Object PopUp. 
  1000.       3. Choose the Edit Definition menu item to load the VisualAge Editor to 
  1001.          the location of the program element's definition. 
  1002.  
  1003.  To list files that contain the definition of a class and any members of that 
  1004.  class: 
  1005.  
  1006.       1. Select the program element 
  1007.       2. Get the Object PopUp menu for that program element (click Mouse Button 
  1008.          2 on the program element to get the PopUp) 
  1009.       3. Choose the List Implementing Files menu item 
  1010.  
  1011.  Related Tasks: 
  1012.  
  1013.      How do I list all the members of a class 
  1014.  
  1015.  
  1016. ΓòÉΓòÉΓòÉ 9.3. Finding All the Files Used by your Program ΓòÉΓòÉΓòÉ
  1017.  
  1018. To list all the files used by your program: 
  1019.  
  1020.       1. Select the Actions PullDown menu OR select the List window PopUp menu 
  1021.          (click Mouse Button 2 on the background of a List window to get the 
  1022.          PopUp). 
  1023.       2. Choose the List All Files menu item 
  1024.  
  1025.     A list of all the files used by your program will be listed. 
  1026.  
  1027.  Related Tasks: 
  1028.  
  1029.      How do I view the include file relationship 
  1030.  
  1031.  
  1032. ΓòÉΓòÉΓòÉ 9.4. Finding Program Element Documentation Quickly ΓòÉΓòÉΓòÉ
  1033.  
  1034. You can quickly view the VisualAge C++ documentation for client classes and 
  1035. their members: 
  1036.  
  1037.       1. Select the program element that you want documentation for 
  1038.       2. Click Mouse Button 2 on the program element to get the Object PopUp 
  1039.          menu 
  1040.       3. Choose the Show Documentation menu item 
  1041.  
  1042.     This will launch the VisualAge C++ documentation for that particular 
  1043.     program element. 
  1044.  
  1045.  The Show Documentation action has been designed to work with VisualAge C++ 
  1046.  supplied documentation only.  Unfortunately, it is difficult to determine if a 
  1047.  given "object" is supplied by VisualAge C++, or by you without trying to look 
  1048.  for it in the VisualAge C++ online documentation. If you try to show the 
  1049.  documentation of a program element that is not part of the IBM VisualAge C++ 
  1050.  Open Class Library, a message will appear to inform you that documentation 
  1051.  could not be found for the program element. 
  1052.  
  1053.  Related Tasks: 
  1054.  
  1055.      How do I list all the members of a class 
  1056.  
  1057.  
  1058. ΓòÉΓòÉΓòÉ 9.5. Finding the Edit Window ΓòÉΓòÉΓòÉ
  1059.  
  1060. There is no Edit window provided by the Browser for the following reasons. 
  1061. Other C++ and Smalltalk browsers contain a small Edit window which is linked to 
  1062. other list boxes etc. in their browser.  This has a number of drawbacks: 
  1063.  
  1064.      It is "yet another editor". The editor that a programmer uses is nearly 
  1065.       an emotional choice.  These small edit windows introduce Yet Another 
  1066.       Editor which is likely to confuse, or frustrate users.  The VisualAge C++ 
  1067.       Browser uses your choice of editor, as defined in your IBM WorkFrame 
  1068.       project, or it uses the VisualAge Editor by default. 
  1069.      It is a small window. The small edit window is just that: small. With 
  1070.       small windows you spend more time scrolling and resizing than you do 
  1071.       understanding. 
  1072.      Programming with C++ is not the same as Smalltalk. In Smalltalk, all of 
  1073.       your program's classes and methods are stored in some environment-aware 
  1074.       database, not the file system.  When you program in C++, you are still 
  1075.       using files, and the performance of opening a new file, and locating a 
  1076.       line just because the user changed focus or scrolled up with the arrow 
  1077.       keys is slow. 
  1078.  
  1079.  Instead, the Browser provides quick access to the VisualAge Editor, by 
  1080.  default. When you issue an Edit Definition action from a class, function, 
  1081.  variable or type object, the Editor will load with the cursor positioned at 
  1082.  the start of the object's definition. 
  1083.  
  1084.  Related Tasks: 
  1085.  
  1086.      How do I edit and browse at the same time. 
  1087.      How do I edit program element definitions. 
  1088.      How do I edit files from the Browser. 
  1089.  
  1090.  
  1091. ΓòÉΓòÉΓòÉ 10. Graph Program Element Relationships ΓòÉΓòÉΓòÉ
  1092.  
  1093. You can use the graph window to view: 
  1094.  
  1095.      The call chain for a function 
  1096.      The include file relationship of files 
  1097.      The inheritance relationship of classes 
  1098.  
  1099.  Related Tasks: 
  1100.  
  1101.      How do I make sense out of large graphs. 
  1102.  
  1103.  Related Information: 
  1104.  
  1105.      Open the User's Guide to the Graph window description. 
  1106.  
  1107.  
  1108. ΓòÉΓòÉΓòÉ 10.1. Graphing the Call Chain for a Function ΓòÉΓòÉΓòÉ
  1109.  
  1110. You can graph the callers and callees of a function: 
  1111.  
  1112.       1. Select the function with Mouse Button 2 to get the Function PopUp 
  1113.          menu. 
  1114.       2. Select one of: 
  1115.              Graph All Callers 
  1116.              Graph All Callees 
  1117.              Graph All Callers & Callees 
  1118.              Graph Immediate Callers & Callees 
  1119.  
  1120.  A Graph window will be created showing the call chain. 
  1121.  
  1122.  Related Tasks: 
  1123.  
  1124.      How do I make sense out of large graphs. 
  1125.      How do I list all the members of a class 
  1126.  
  1127.  
  1128. ΓòÉΓòÉΓòÉ 10.2. Graphing the Include File Relationship of Files ΓòÉΓòÉΓòÉ
  1129.  
  1130. You can graph all the files used by your program: 
  1131.  
  1132.       1. Select the Actions PullDown menu. 
  1133.       2. Choose the Show Include File Graph menu item. 
  1134.  
  1135.  You can also graph the include file relationship of individual files: 
  1136.  
  1137.       1. Select the file object with Mouse Button 2 to get the File PopUp menu. 
  1138.       2. Select one of the following: 
  1139.              Graph All Includers 
  1140.              Graph All Includees 
  1141.              Graph All Includers & Includees 
  1142.  
  1143.  Related Tasks: 
  1144.  
  1145.      How do I make sense out of large graphs. 
  1146.      How do I list all files 
  1147.  
  1148.  
  1149. ΓòÉΓòÉΓòÉ 10.3. Graphing the Inheritance Relationship of Classes ΓòÉΓòÉΓòÉ
  1150.  
  1151. You can graph the inheritance relationship of all the classes in your program: 
  1152.  
  1153.       1. Select the Actions PullDown menu. 
  1154.       2. Choose the Show Inheritance Graph menu item. 
  1155.  
  1156.  You can also graph the inheritance relationship of individual classes: 
  1157.  
  1158.       1. Select a class object with Mouse Button 2 to get the Class PopUp menu. 
  1159.       2. Choose one of the following: 
  1160.              Graph All Base Classes 
  1161.              Graph All Derived Classes 
  1162.              Graph All Base & Derived Classes 
  1163.              Graph Immediate Derived Classes 
  1164.  
  1165.  Related Tasks: 
  1166.  
  1167.      How do I make sense out of large graphs. 
  1168.      How do I list all the members of a class 
  1169.  
  1170.  
  1171. ΓòÉΓòÉΓòÉ 10.4. Making Sense out of Large Graphs ΓòÉΓòÉΓòÉ
  1172.  
  1173. Large graphs can often be difficult to understand. The Browser provides a 
  1174. number of ways for you to focus in on your graphs: 
  1175.  
  1176.      Zoom in and out 
  1177.      Get an overview of the whole graph 
  1178.      Quickly determine what each node represents 
  1179.      Divide the graph into smaller sections 
  1180.      Change the presentation of a graph 
  1181.      Zone a graph 
  1182.  
  1183.  
  1184. ΓòÉΓòÉΓòÉ 10.4.1. Zooming In and Out ΓòÉΓòÉΓòÉ
  1185.  
  1186. You can zoom in and out on your graphs quickly by using the Slider located at 
  1187. the left side of the Graph window. Click on the Slider and drag it downwards to 
  1188. magnify the focus of the currently displayed portion of the graph. Drag the 
  1189. Slider upwards to zoom out. 
  1190.  
  1191. You can also use the View PullDown menu or the Graph window Background PopUp 
  1192. menu (use Mouse Button 2 to get PopUp) to zoom in and out on the graph: 
  1193.  
  1194.         Zoom in - Increase graph by one factor 
  1195.         Zoom out - Decrease graph by one factor 
  1196.         Max Zoom in - Increase graph to maximum size 
  1197.         Max Zoom out - Decrease graph to minimum size 
  1198.  
  1199.     One factor is approximately 10%. 
  1200.  
  1201.  In addition, the Graph window PopUp menu has a Center menu item which will 
  1202.  center the currently selected node in the graph area. To select a node either 
  1203.  click on the node on the graph or select the node from the Graph-List portion 
  1204.  of the Graph window. 
  1205.  
  1206.  Note:  If you use an Outline font for the node text, the need to zoom in as 
  1207.         far in order to read the text of the nodes is reduced. 
  1208.  
  1209.  
  1210. ΓòÉΓòÉΓòÉ 10.4.2. Getting an Overview of the Whole Graph ΓòÉΓòÉΓòÉ
  1211.  
  1212. You can get an overview of the entire graph by using the Overview... menu item 
  1213. from either the View PullDown menu or the Graph window Background PopUp menu 
  1214. (use Mouse Button 2 to get PopUp). 
  1215.  
  1216. The Overview window provides a representation of all the nodes on the graph. 
  1217. The currently displayed area of the graph is marked with a shaded box. You can 
  1218. move this box around in the Overview window and the changes are reflected in 
  1219. the Graph window. You can also make this box larger or smaller by clicking on 
  1220. the edges of the shaded area and dragging the mouse. 
  1221.  
  1222.  
  1223. ΓòÉΓòÉΓòÉ 10.4.3. Determine What Each Node Represents Quickly ΓòÉΓòÉΓòÉ
  1224.  
  1225. On the right side of the Graph window is a list of all the nodes on the graph. 
  1226. You can either select an object from this list and see it highlighted in the 
  1227. Graph Area, or you can select a node in the graph and see it highlighted in the 
  1228. Graph List. Therefore, you do not have to zoom in on the graph in order to read 
  1229. the text of the nodes. This will help you to maintain the context of the graph 
  1230. while you are determining what each node is. 
  1231.  
  1232. Note:  If you use an Outline font for the node text, the need to zoom in as far 
  1233.        in order to read the text of the nodes is reduced. 
  1234.  
  1235.  
  1236. ΓòÉΓòÉΓòÉ 10.4.4. Dividing the Graph into Smaller Sections ΓòÉΓòÉΓòÉ
  1237.  
  1238. Sometimes a graph can be so large that it is nearly impossible to read, even 
  1239. using the zooming factors, the Overview window, or the Graph List. You can 
  1240. divide your graph down into sections: 
  1241.  
  1242.    1. Select the Hold CheckBox on the Graph window if you want to maintain the 
  1243.       original graph. 
  1244.    2. Select one of the nodes that you want to focus on. 
  1245.    3. Click Mouse Button 2 on this node to initiate the Object PopUp menu for 
  1246.       that node: 
  1247.         a. For Classes: 
  1248.                Graph All Base Classes - Graphs all classes linked above. 
  1249.                Graph All Derived Classes - Graphs all classes linked below. 
  1250.                Graph All Base & Derived Classes - Graphs all classes linked 
  1251.                 above and below. 
  1252.                Graph Immediate Derived Classes - Graphs first level of classes 
  1253.                 linked below. 
  1254.         b. For Functions: 
  1255.                Graph All Callers - Graphs all functions linked above. 
  1256.                Graph All Callees - Graphs all functions linked below. 
  1257.                Graph All Callers & Callees - Graphs all functions linked above 
  1258.                 and below. 
  1259.                Graph Immediate Callers & Callees - Graphs first level of 
  1260.                 functions linked above and below. 
  1261.         c. For Files: 
  1262.                Graph All Includers - Graphs all files linked below. 
  1263.                Graph All Includees - Graphs all files linked above. 
  1264.                Graph All Includers & Includees - Graphs all files linked above 
  1265.                 and below. 
  1266.  
  1267.       Note:  If you want to view more than one section at a time, use the Hold 
  1268.              CheckBox on the new Graph windows. You can view a maximum of four 
  1269.              Graph windows at a time. 
  1270.  
  1271.  
  1272. ΓòÉΓòÉΓòÉ 10.4.5. Changing the Presentation of a Graph ΓòÉΓòÉΓòÉ
  1273.  
  1274. Some graphs look better displayed horizontally; for example, tall structures 
  1275. with narrow nodes. Other graphs look better displayed vertically; for example, 
  1276. wide structures. 
  1277.  
  1278.    1. Select the View PullDown menu. 
  1279.           Choose the Horizontal menu item to read the relationships from left 
  1280.            to right. 
  1281.           Choose the Vertical menu item to read the relationships from top to 
  1282.            bottom. 
  1283.  
  1284.  You can also change the weighting of the nodes of the graph: 
  1285.  
  1286.    1. Select the View PullDown menu. 
  1287.    2. Select the Weighting  Cascade menu. 
  1288.           Choose Top to weight the nodes to the top of the graph. 
  1289.           Choose Center to weight the nodes to the center of the graph. 
  1290.           Choose Bottom to weight the nodes to the bottom of the graph. 
  1291.  
  1292.  
  1293. ΓòÉΓòÉΓòÉ 10.4.6. Working with a Graph Zone ΓòÉΓòÉΓòÉ
  1294.  
  1295. You can select an area of the graph and zoom in on that area: 
  1296.  
  1297.    1. Click Mouse Button 1 and drag it across the area of the graph that you 
  1298.       want to select. 
  1299.    2. Click Mouse Button 2 to access the Graph Zone PopUp menu. 
  1300.    3. Choose the Zoom in menu item to increase the currently selected area to 
  1301.       its maximum size. 
  1302.  
  1303.  
  1304. ΓòÉΓòÉΓòÉ 11. Keep Windows from Being Replaced ΓòÉΓòÉΓòÉ
  1305.  
  1306. By default, if you have a List window open and you perform an object-action 
  1307. pair that results in a list, then the existing List window contents are 
  1308. replaced by the new results. The same is true for Graph window and 
  1309. object-action pairs that result in a graph. If you wanted to keep the contents 
  1310. the contents from being replaced, for instance, you may want to keep the list 
  1311. of all classes available as you peruse various class contents, then use the 
  1312. Hold CheckBox: 
  1313.  
  1314.         Select the Hold CheckBox on the List or Graph window that you do not 
  1315.          want to replace. 
  1316.  
  1317.     Now any time you perform an object-action pair from that window, a new 
  1318.     window will be created. 
  1319.  
  1320.  Related Tasks: 
  1321.  
  1322.      How do I find my Browser windows 
  1323.      How do I return to previous queries/displays 
  1324.  
  1325.  
  1326. ΓòÉΓòÉΓòÉ 12. List Program Elements ΓòÉΓòÉΓòÉ
  1327.  
  1328. You can use the List window to list: 
  1329.  
  1330.         Exceptions that a function may throw 
  1331.         All the members of a class 
  1332.         Friends and friendships of a class or function 
  1333.         Class and Function Instantiations 
  1334.         Files 
  1335.         All program elements defined in a file 
  1336.  
  1337.  Related Tasks: 
  1338.  
  1339.      How do I order List window contents 
  1340.  
  1341.  Related Information: 
  1342.  
  1343.      Open the User's Guide to the List window description. 
  1344.  
  1345.  
  1346. ΓòÉΓòÉΓòÉ 12.1. Listing Exceptions that a Function May Throw ΓòÉΓòÉΓòÉ
  1347.  
  1348. To list the exceptions that a function may throw: 
  1349.  
  1350.         1. Select the function. 
  1351.         2. Click Mouse Button 2 on the function to get the Function PopUp menu. 
  1352.         3. Choose the List Possible Exceptions Thrown menu item. 
  1353.  
  1354.       A list of all the possible thrown types, if any, will be displayed. 
  1355.  
  1356.  Related Tasks: 
  1357.  
  1358.      How do I list all the members of a class 
  1359.  
  1360.  
  1361. ΓòÉΓòÉΓòÉ 12.2. Listing All the Members of a Class ΓòÉΓòÉΓòÉ
  1362.  
  1363. To list all the members of a class: 
  1364.  
  1365.       1. Select the class that you want to list the members of, from either the 
  1366.          List or Graph window (by default, the List window will list all the 
  1367.          classes when you load a program into the Browser). 
  1368.       2. Select the class with Mouse Button 2. This will invoke the Class PopUp 
  1369.          menu. 
  1370.       3. Select List Members with Inheritance. 
  1371.  
  1372.  This will create a list of classes that you can expand to show the members of 
  1373.  each class. 
  1374.  
  1375.  Related Tasks: 
  1376.  
  1377.      How do I order List window contents 
  1378.      How do I keep my windows from being replaced 
  1379.  
  1380.  How Do I Note: If you started this task from within another task, press ESC to 
  1381.       return to the previous task, or press Mouse Button 2 inside this help 
  1382.       panel and choose Previous from the Options Cascade menu. 
  1383.  
  1384.  
  1385. ΓòÉΓòÉΓòÉ 12.3. Listing Friends/Friendships of a Class/Function ΓòÉΓòÉΓòÉ
  1386.  
  1387. A friend of a class is a function which has been granted access to the private 
  1388. members of the class. In addition, C++ allows you to grant friendships to a 
  1389. class, thereby making all of the new class' member functions friends of the 
  1390. first class. 
  1391.  
  1392. To list all the friends of a class: 
  1393.  
  1394.       1. Select the class with Mouse Button 2 to get the Class PopUp menu. 
  1395.       2. Choose the List Friends menu item. 
  1396.  
  1397.  To list all the friendships of a class or function: 
  1398.  
  1399.       1. Select the class or function with Mouse Button 2 to get the Class or 
  1400.          Function PopUp menu. 
  1401.       2. Choose the List Friendships menu item. 
  1402.  
  1403.  
  1404. ΓòÉΓòÉΓòÉ 12.4. Listing Class and Function Instantiations ΓòÉΓòÉΓòÉ
  1405.  
  1406. To list the instantiations of a template class or function: 
  1407.  
  1408.       1. Select the template class or function with Mouse Button 2 to get the 
  1409.          Class or Function PopUp menu. 
  1410.       2. Select the List Instantiations menu item. 
  1411.  
  1412.  A list of all the class or function template instantiations will be listed in 
  1413.  the List window. 
  1414.  
  1415.  Related Tasks: 
  1416.  
  1417.      How do I list all the members of a class 
  1418.  
  1419.  
  1420. ΓòÉΓòÉΓòÉ 12.5. Listing Files ΓòÉΓòÉΓòÉ
  1421.  
  1422. You can list or view all program files used to create the loaded program by: 
  1423.  
  1424.       1. Select the Actions PullDown menu. 
  1425.       2. Choose one of Show Include File Graph or List All Files to get a 
  1426.          window of File objects. 
  1427.  
  1428.  You can view include file relationships by: 
  1429.  
  1430.         Select a file object. 
  1431.         Click Mouse Button 2 on the file object to get the File PopUp menu. 
  1432.         Choose one of: 
  1433.            -  Graph All Includers & Includees 
  1434.            -  Graph All Includers 
  1435.            -  Graph All Includees 
  1436.  
  1437.  
  1438. ΓòÉΓòÉΓòÉ 12.6. Listing Program Elements Defined in a File ΓòÉΓòÉΓòÉ
  1439.  
  1440. You can list all the program elements defined within a source file: 
  1441.  
  1442.       1. Select a file object. 
  1443.       2. Click Mouse Button 2 on the file object to get the File PopUp menu. 
  1444.       3. Choose the List Defined Objects menu item. 
  1445.  
  1446.  A List window with all the program elements defined in the file appears. 
  1447.  
  1448.  Related Tasks: 
  1449.  
  1450.      How do I list files 
  1451.  
  1452.  
  1453. ΓòÉΓòÉΓòÉ 13. Load, Merge, Print and Save Within the Browser ΓòÉΓòÉΓòÉ
  1454.  
  1455. You can load and merge files, and print and save List and Graph window 
  1456. contents. 
  1457.  
  1458.      Loading Files 
  1459.      Merging Files 
  1460.      Printing Graphs and Lists 
  1461.      Saving Graphs and Lists 
  1462.  
  1463.  
  1464. ΓòÉΓòÉΓòÉ 13.1. Loading Files ΓòÉΓòÉΓòÉ
  1465.  
  1466. To load a file into the Browser: 
  1467.  
  1468.    1. Select the File PullDown menu. 
  1469.    2. Choose the Load... menu item. The Load dialog appears. 
  1470.           Enter a file name (extensions .DLL, .EXE, or .LIB) or a Browser 
  1471.            database file (extensions are .PDB, .PDD, .PDL, .PDE) into the Open 
  1472.            filename TextField, or 
  1473.           Use the ListBoxes to locate the file that you want to load. 
  1474.  
  1475.  Note:  The format of the new .PDB files are incompatible with the .BRS files 
  1476.         generated by the previous release of the Browser, and the AIX format of 
  1477.         the .PDB files.  You can probably erase these old files, unless want to 
  1478.         use them with the old Browsers.  The good news is that the new .PDB 
  1479.         files are between 60-95% smaller than the .BRS files for the same input 
  1480.         files.  On a large application, you will save many Megabytes of hard 
  1481.         disk space by recompiling and generating the new .PDB files. 
  1482.  
  1483.  Related Tasks: 
  1484.  
  1485.      How do I create Browser database files.. 
  1486.      How do I use .PDB, .PDD, .PDE, and .PDL files. 
  1487.  
  1488.  
  1489. ΓòÉΓòÉΓòÉ 13.2. Merging Files ΓòÉΓòÉΓòÉ
  1490.  
  1491. When you browse a target program (an .EXE, .DLL, or .LIB), you will only see 
  1492. those classes, functions, and files that were actually used in the program. 
  1493. You will not see related objects. For example, assume that you have written a 
  1494. small program using the IBM User Interface classes, and it contains an 
  1495. IFrameWindow, a Menu bar, and some static text. The small program will only 
  1496. reference the classes, functions, and files of the IFrameWindow, IMenuBar, and 
  1497. IStaticText with their parent classes. If you want to add some PushButtons and 
  1498. a bitmap onto your window, you can see these classes by merging the User 
  1499. Interface classes data with your small program. 
  1500.  
  1501. Also, many programs are written as an .EXE and one or more .DLLs. If you browse 
  1502. the .EXE, then you only see the data from that .EXE. You can merge in the data 
  1503. from the .DLL(s) and see the whole program's information. 
  1504.  
  1505. To perform a merge: 
  1506.  
  1507.       1. Select the File PullDown menu. 
  1508.       2. Choose the Merge  Cascade menu to load an IBM VisualAge C++ Open 
  1509.          Class Library or the Merge... menu item to merge other files. 
  1510.       3. In the Merge dialog, use the listboxes to search for the files you 
  1511.          want to merge. 
  1512.  
  1513.  
  1514. ΓòÉΓòÉΓòÉ 13.3. Printing Graphs and Lists ΓòÉΓòÉΓòÉ
  1515.  
  1516.  
  1517. ΓòÉΓòÉΓòÉ <hidden> Printing Graphs and Lists ΓòÉΓòÉΓòÉ
  1518.  
  1519.  
  1520. ΓòÉΓòÉΓòÉ <hidden> Printing graphs and lists ΓòÉΓòÉΓòÉ
  1521.  
  1522. You can print either graphs or lists. 
  1523.  
  1524.  
  1525. ΓòÉΓòÉΓòÉ <hidden> Printing Graphs ΓòÉΓòÉΓòÉ
  1526.  
  1527. There are several ways to print a graph. For each case below, a Browser Print - 
  1528. <print option> dialog, where print option is either List for List window 
  1529. printing or one of the Print  Cascade menu items for Graph window printing, 
  1530. will appear so that you can change some of the options before printing. You can 
  1531. also change the printer settings. For a graph, you can: 
  1532.  
  1533.         Print the client area (the currently displayed portion of the graph). 
  1534.            1. Select the Print  Cascade menu from the File PullDown on the 
  1535.               Graph window. 
  1536.            2. Choose the Client... menu item. The graph is printed on one page. 
  1537.         Print a selected zone. 
  1538.            1. Select a zone by holding Mouse Button 1 and dragging the mouse to 
  1539.               select a rectangular zone. 
  1540.            2. Select the Print  Cascade menu from the File PullDown on the 
  1541.               Graph window. 
  1542.            3. Choose the Zone... menu item. Note that you could have also 
  1543.               chosen Print... from the Zone PopUp menu. The graph is printed on 
  1544.               one page. 
  1545.         Print the whole graph on a single page. 
  1546.            1. Select the Print  Cascade menu from the File PullDown on the 
  1547.               Graph window. 
  1548.            2. Choose the One Page... menu item. 
  1549.         Print the whole graph on multiple pages. 
  1550.            1. Select the Print  Cascade menu from the File PullDown on the 
  1551.               Graph window. 
  1552.            2. Choose the Multiple Pages... menu item. The graph will be set to 
  1553.               its maximum zoom. A grid is drawn on the graph to show how the 
  1554.               pages are divided. The grid will be cleared and the graph will be 
  1555.               restored to its previous zoom once the printing is done. 
  1556.            3. The Print - Multiple Pages dialog has default numbers set for the 
  1557.               number of horizontal and vertical pages based on the printer 
  1558.               resolution, paper source, page margins, and zooming level (ie. 
  1559.               maximum zoom). If you change any of these, these numbers may 
  1560.               change. You can change these to values that suit your needs. 
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ <hidden> Printing Lists ΓòÉΓòÉΓòÉ
  1564.  
  1565. You can print the entire contents of the List window. 
  1566.  
  1567.       1. Select the File PullDown menu. 
  1568.       2. Choose the Print... menu item. The Print - List dialog will appear so 
  1569.          that you can change some of the options before printing. 
  1570.  
  1571.  The fonts used to print the list may be different from the font used in the 
  1572.  List window. You can change this font in the printer settings. 
  1573.  
  1574.  Related Tasks: 
  1575.  
  1576.      How do I customize printer settings. 
  1577.  
  1578.  
  1579. ΓòÉΓòÉΓòÉ 13.4. Saving Graphs and Lists ΓòÉΓòÉΓòÉ
  1580.  
  1581. Use the Save List As... action from the File PullDown menu on the List window 
  1582. to save the contents of the window to an ASCII file. 
  1583.  
  1584. Use the Save List As... action from the File PullDown menu on the Graph window 
  1585. to save the contents of the List Area to an ASCII file. Use the Save Graph 
  1586. As... action from the File PullDown menu on the Graph window to save the 
  1587. contents of the graph to an OS/2 bitmap file. Use the Save Graph As... action 
  1588. from the Graph Zone PopUp menu if you have selected a region of the graph and 
  1589. want to save it. 
  1590.  
  1591. You can adjust the size of the bitmap saved using the Graph Window Settings 
  1592. Bitmap page: 
  1593.  
  1594.       1. Select the Options PullDown menu. 
  1595.       2. Choose the Graph Window... menu item to load the Graph Window Settings 
  1596.          NoteBook. 
  1597.       3. Select the Bitmap page. 
  1598.       4. Enter the width and height. 
  1599.       5. Select OK to accept the change or Cancel to exit without making 
  1600.          changes. 
  1601.  
  1602.  
  1603. ΓòÉΓòÉΓòÉ 14. Order List Window Contents ΓòÉΓòÉΓòÉ
  1604.  
  1605. If you have a container view that resulted from the List Members with 
  1606. Inheritance action, then you can rearrange the program elements in three 
  1607. different ways: 
  1608.  
  1609.      By Class, 
  1610.      By Access, or 
  1611.      By Type. 
  1612.  
  1613.  Related Tasks: 
  1614.  
  1615.      How do I list all the members of a class 
  1616.  
  1617.  Related Information: 
  1618.  
  1619.      Open the User's Guide to the List window description 
  1620.  
  1621.  
  1622. ΓòÉΓòÉΓòÉ 14.1. By Class ΓòÉΓòÉΓòÉ
  1623.  
  1624. This is the default setting for a List window. To get the default class view: 
  1625.  
  1626.       1. Select the Order PullDown menu from the List window 
  1627.       2. Choose the Class menu item 
  1628.  
  1629.     This will create a list of elements as follows: 
  1630.  
  1631.          Class 1
  1632.           Public
  1633.            Constructors/Destructors
  1634.            Functions
  1635.            Types
  1636.            Variables
  1637.           Protected
  1638.           Private
  1639.          Class 2
  1640.  
  1641.  
  1642. ΓòÉΓòÉΓòÉ 14.2. By Access ΓòÉΓòÉΓòÉ
  1643.  
  1644. To group together all the public, all the private, and all the protected 
  1645. elements: 
  1646.  
  1647.       1. Select the Order PullDown menu from the List window 
  1648.       2. Choose the Access menu item 
  1649.  
  1650.     This will create a list of elements as follows: 
  1651.  
  1652.          Public
  1653.           Constructors/Destructors
  1654.           Functions
  1655.            Class 1
  1656.            Class 2
  1657.           Types
  1658.           Variables
  1659.          Protected
  1660.          Private
  1661.  
  1662.  
  1663. ΓòÉΓòÉΓòÉ 14.3. By Type ΓòÉΓòÉΓòÉ
  1664.  
  1665. By default, the List window displays a container view with the classes at the 
  1666. highest level. If you are interested in seeing particular program elements 
  1667. (like functions) from various classes, it can become quite annoying to have to 
  1668. scroll back and forth in the list between classes. You can reorder the list 
  1669. items so that all the functions are listed together by: 
  1670.  
  1671.       1. Select the Order PullDown menu from the List window 
  1672.       2. Choose the Type menu item 
  1673.  
  1674.     This will create a list of elements as follows: 
  1675.  
  1676.          Constructors/Destructors
  1677.          Functions
  1678.           Public
  1679.           Protected
  1680.            Class 1
  1681.            Class 2
  1682.           Private
  1683.          Types
  1684.          Variables
  1685.  
  1686.  
  1687. ΓòÉΓòÉΓòÉ 15. Redo an Action if the Object is Not Displayed ΓòÉΓòÉΓòÉ
  1688.  
  1689. Sometimes you will perform object-action pairs and then later during your 
  1690. Browser session, you will want to perform them again because the original 
  1691. window was replaced. However, you no longer have access to the object from 
  1692. which you launched the action. The Browser gives you a quick way to redo your 
  1693. object-action pairs: 
  1694.  
  1695.       1. Select the Windows PullDown menu 
  1696.       2. Choose the History... menu item 
  1697.  
  1698.     This will invoke the History window which displays your last 40 
  1699.     object-action pairs. Double-click on any pair to redo it. Or select the 
  1700.     pair and choose OK to redo the command and remove the History window or 
  1701.     Apply to redo the command and keep the History window open. 
  1702.  
  1703.  If you had just performed the object-action pair prior to the current display 
  1704.  results, you can: 
  1705.  
  1706.         Select Previous from the Actions PullDown menu, or 
  1707.         Select the F6 key. 
  1708.  
  1709.     This will perform the previous object-action pair issued in the window. 
  1710.  
  1711.  
  1712. ΓòÉΓòÉΓòÉ 16. Return to Previous Queries/Displays ΓòÉΓòÉΓòÉ
  1713.  
  1714. If you have already performed a query or had a display that you wanted to see 
  1715. again, then you can use the History window to invoke the query again. 
  1716.  
  1717.       1. Select the Windows PullDown menu 
  1718.       2. Choose the History... menu item 
  1719.  
  1720.     This will invoke the History window which displays your last 40 
  1721.     object-action pairs. Double-click on any pair to invoke it. Or select the 
  1722.     pair and choose OK to redo the command and remove the History dialog or 
  1723.     Apply to redo the command and keep the History window open. 
  1724.  
  1725.  If you had just performed the object-action pair prior to the current display 
  1726.  results, you can: 
  1727.  
  1728.         Select Previous from the Actions PullDown menu, or 
  1729.         Select the F6 key. 
  1730.  
  1731.     This will perform the previous object-action pair issued in the window. 
  1732.  
  1733.  
  1734. ΓòÉΓòÉΓòÉ 17. Use the Browser to Assist in Porting Code ΓòÉΓòÉΓòÉ
  1735.  
  1736. There are three things you have to do when porting code from one operating 
  1737. system to another: 
  1738.  
  1739.      Decide whether or not it is worth the effort to port. 
  1740.      Understand the structure and detail of the code you are porting. 
  1741.      Port the code. 
  1742.  
  1743.  The QuickBrowse feature can assist you in the first two. If you have code 
  1744.  written for an operating system other than OS/2, the amount of effort to make 
  1745.  that code acceptable to QuickBrowse will be less than the effort to make it 
  1746.  compilable. This effort will provide you with an idea of how hard it may be to 
  1747.  get the code compiling and working, and will result in your being able to use 
  1748.  the Browser to examine the candidate code. Using the results of the 
  1749.  QuickBrowse, you can discover the structure of the code, which will assist you 
  1750.  in making the decisions to port or not. If you decide to port the code, use 
  1751.  the QuickBrowsed information to assist you in making changes to the code. 
  1752.  
  1753.  Related Tasks: 
  1754.  
  1755.      How do I browse without compiling. 
  1756.  
  1757.  
  1758. ΓòÉΓòÉΓòÉ 18. Use the Browser to Aid Program Understanding ΓòÉΓòÉΓòÉ
  1759.  
  1760. When you get new code, use QuickBrowse to understand the type structure of the 
  1761. code while ignoring the functional details. Then, when you want to look at the 
  1762. function call relationships, compile the code. In well-designed and well-built 
  1763. code, the key abstractions will be found in the type structure. Dealing with 
  1764. just the types also reduces the amount of information you have to comprehend at 
  1765. the beginning. 
  1766.  
  1767. Related Tasks: 
  1768.  
  1769.      How do I browse without compiling. 
  1770.  
  1771.  
  1772. ΓòÉΓòÉΓòÉ 19. Use .PDB, .PDD, .PDE and .PDL Files ΓòÉΓòÉΓòÉ
  1773.  
  1774. The .PDB files are output by the C++ compiler. The compiler creates one .PDB 
  1775. file for every .OBJ file.  When you browse a target file (.EXE, .DLL, or .LIB) 
  1776. the individual .PDBs (for the .OBJs that are contained in the target) are 
  1777. loaded into memory by the Browser.  A copy of this data is quickly saved when 
  1778. you stop browsing the target file, and is quickly loaded when you browse the 
  1779. target file again. The extension of the saved file is based upon the extension 
  1780. of the target file: 
  1781.  
  1782.      .EXE data is saved in a .PDE file, 
  1783.      .DLL data is saved in a .PDD, and 
  1784.      .LIB data is saved in a .PDL. 
  1785.  
  1786.  Also, if you manually load one or more .PDB files, or perform a merge 
  1787.  operation, this is analogous to grouping a set of .OBJ files together into a 
  1788.  single .LIB file, so the saved file version in this case is a .PDL file. .PDD, 
  1789.  .PDE, and .PDL files are referred to as Browser database files. 
  1790.  
  1791.  Note that loading a large .PDB file takes longer than loading the 
  1792.  corresponding .PDD, .PDD, or .PDL file that is created when you close the 
  1793.  Browser after having browsed a .PDB, .DLL, .EXE, or .LIB file. This is because 
  1794.  the Browser is designed to optimally load .DLL, .EXE, and .LIB files. 
  1795.  
  1796.  Related Tasks: 
  1797.  
  1798.      How do I create Browser database files. 
  1799.  
  1800.  
  1801. ΓòÉΓòÉΓòÉ <hidden> Container View ΓòÉΓòÉΓòÉ
  1802.  
  1803. A container view is a list which can be further expanded using the  and  icons 
  1804. to expand and collapse the various members of a class. You can get this type of 
  1805. view by performing the following actions: 
  1806.  
  1807.       List Members with Inheritance  (class and function) 
  1808.       List Friends  (class) 
  1809.       List Defined Objects  (file) 
  1810.       List Immediate Callers & Callees  (function) 
  1811.  
  1812.  
  1813. ΓòÉΓòÉΓòÉ <hidden> Browser Objects ΓòÉΓòÉΓòÉ
  1814.  
  1815. The Browser presents program elements to you in the form of objects on the 
  1816. screen. Objects can be classes, types, functions, variables, and source files. 
  1817. You can click Mouse Button 2 on any of these objects to invoke a PopUp menu of 
  1818. actions available for that object. 
  1819.  
  1820. Open the Browser section in the User's Guide 
  1821.  
  1822.  
  1823. ΓòÉΓòÉΓòÉ <hidden> Object-Action Pair ΓòÉΓòÉΓòÉ
  1824.  
  1825. You can perform actions on any Browser object from the object's PopUp menu. Use 
  1826. Mouse Button 2 over the object to invoke the PopUp menus. The Browser remembers 
  1827. the last 40 unique object-action pairs and lists them in the History dialog for 
  1828. quick access. 
  1829.  
  1830. The List and Graph window each have an Action Status Bar which is located 
  1831. directly below the menubar. It indicates what object and action were used to 
  1832. create the current contents of the window. 
  1833.  
  1834.  
  1835. ΓòÉΓòÉΓòÉ <hidden> Browser Database ΓòÉΓòÉΓòÉ
  1836.  
  1837. A Browser database is the in-memory representation of all the facts about the 
  1838. .EXE, .DLL, or .LIB, or collection of .PDBs, or the results of a merge 
  1839. operation. When you perform a new load, or when you exit the Browser, the 
  1840. contents of this in-memory  representation is stored into a Browser database 
  1841. file. The next time you browse this program, the saved database file is quickly 
  1842. loaded into memory. For example, if you loaded a program called PROG.EXE into 
  1843. the Browser, the saved database file would be PROG.PDE. If you loaded a DLL 
  1844. called PROG.DLL into the Browser, the saved database file would be PROG.PDD. If 
  1845. you loaded a library file called PROG.LIB into the Browser, the saved database 
  1846. file would be PROG.PDL. 
  1847.  
  1848. If you did a merge, or loaded individual .PDB files, then the Browser would not 
  1849. know what to call the file that is to be saved. In this case, the program that 
  1850. is being browsed is conceptually a pseudo-library, so it will save the memory 
  1851. representation of this pseudo-LIB as a .PDL. 
  1852.  
  1853.  
  1854. ΓòÉΓòÉΓòÉ <hidden> Program Element Definition ΓòÉΓòÉΓòÉ
  1855.  
  1856. The Browser differentiates between declarations and definitions of objects. The 
  1857. Edit Definition action will edit the file where the object is defined. This 
  1858. causes some confusion regarding functions. A function is defined where it is 
  1859. implemented. If you do not have the body of function in any of the files that 
  1860. make up the program you are browsing (for example, it may be a function from a 
  1861. library), then the Browser cannot edit the function. Editing the file 
  1862. containing the declaration for a function whose full prototype is displayed in 
  1863. the Browser would not give any more useful information. Your build process will 
  1864. help you find all problems with mismatched function prototypes. 
  1865.  
  1866. Also, a function's declaration can appear in multiple files, and may be 
  1867. (subtly) different in each location. For example: 
  1868.  
  1869.   int foo(int, int, char*, int);
  1870.   int foo(int a, int b, char *c, int);
  1871.   int foo(int b, int c, char *, int a);
  1872.   int foo(int x, int, char *p, int y=0);
  1873.   int foo(int z, int tt, char *p=NULL, int u=0);
  1874.   int foo(int q, int tt=88, char* pppp=NULL, int p=0);
  1875.  
  1876. The above declarations could all exist in the same file or across multiple 
  1877. source files. Parameter names are ignored (other than they must not be 
  1878. keywords), and default parameter values are only used in function calls, up to 
  1879. the next declaration which can add more default values. The first three 
  1880. declarations are the same, and the last three are subtly different. 
  1881.  
  1882.  
  1883. ΓòÉΓòÉΓòÉ <hidden> QuickBrowse ΓòÉΓòÉΓòÉ
  1884.  
  1885. The QuickBrowse feature allows you to quickly obtain and browse type 
  1886. information for code for which there is no compiler generated (/Fb) Browser 
  1887. information. Use QuickBrowse for the following reasons: 
  1888.  
  1889.      It is faster than compiling the code 
  1890.      You may be able to browse files that do not compile 
  1891.  
  1892.  Note:  The QuickBrowse feature is only available when the Browser is started 
  1893.         from an IBM WorkFrame project. 
  1894.  
  1895.  QuickBrowse parses the top level declarations which must be valid C++ 
  1896.  statements, and ignores the bodies of function definitions. 
  1897.  
  1898.  You may want to use QuickBrowse if you are not interested about function call 
  1899.  information.  Also, if you have code where the type information is well 
  1900.  defined, but function bodies will not compile, you can browse the type 
  1901.  information with QuickBrowse. 
  1902.  
  1903.  If you are browsing in a project, and the Browser detects that some, or all, 
  1904.  information is missing, a dialog will appear telling you that this information 
  1905.  is missing, and will give you the option or QuickBrowing the files for which 
  1906.  data is missing.  Messages will appear in the Project's monitor, just as if 
  1907.  you were doing a build. 
  1908.  
  1909.  Note that the QuickBrowse feature is not a complete replacement to the 
  1910.  Generate Browser information (/Fb) compiler option.  The speed of QuickBrowse 
  1911.  does come at a cost in the richness of information provided. Since the 
  1912.  QuickBrowse feature does not look inside of function bodies, function call and 
  1913.  exception information are not available. If you need to know this kind of 
  1914.  information, then you will need to compile the file and use the Generate 
  1915.  Browser information (/Fb) option.