The Relation Window Options command is accessed from the Relation Window toolbar or shortcut menu. You control what relationships are shown from this dialog box, and how the window is displayed.
Font…, Text Color…, Back Color…
Click on these to select the font, text color, and background color, respectively, of the Relation Window. These apply to the outline view only.
Click on this button to open the Relation Graph Properties dialog box. From there, you can adjust the options for the graph view of the Relation Window.
Automatic Symbol Tracking
Click the Tracking Options button to control what the Relation Window tracks. It can track the symbol that appears under the cursor, or it can track the enclosing function or data structure where the selection is located.
Automatic Expansion Options
This section specifies how deep the Relation Window should expand automatically. You can override this on an individual basis by right-clicking on a node in the Relation Window and selecting Expand Special.
The number of levels to expand below the root node.
Expand duplicate branches
Enable this to expand duplicate child branches, even if they have already been expanded earlier. If this is disabled, then duplicate children are inserted in a collapsed state.
View Relationship Group
This group specifies the relationship expanding rules the Relation Window uses when it tracks symbols of different types.
The relationship shown depends on the type of symbol. You can specify what relationship is shown for different symbol types. For example, you could set the relationship viewed for functions to "Calls", and the relationship viewed for classes to “Inheritance”. Thus, when you select a function, the Relation Window shows a call tree, and when you select a class name, the Relation Window shows the class inheritance hierarchy. See: Relationship Rules.
Show all references inside each function
In the graph view, when the Relation Window is showing a “references” type of relationship, this option groups multiple references from within the same symbol into a single node. For example, if function B is called three times from inside of function A, then the node for function A will contain three items drawn inside of it to represent the three calls to function B.
Call Graph Filtering
Click this button to use the Call Graph Filter dialog box. This allows you to control what symbols participate in the call tree calculation. See: Call Graph Filter.
Click this button to view the Symbol Type Filter dialog box. This allows you to filter out specific types of symbols from the Relation Window output. See: Symbol Type Filter.
This group specifies what columns should appear in the outline list view. The Relation Window can be sorted by clicking on any column header.
Show file names
Shows the file name column.
Show line numbers
Shows the line number column. In most cases, the line number is where the given symbol is referred to.
Show code metrics
Shows the selected code metrics column. Only one code metrics column is allowed.
The relationship shown in the Relation Window depends on the type of symbol. You can specify what relationship is shown for different symbol types. For example, you could set the relationship viewed for functions to "Calls", and the relationship viewed for classes to "Inheritance". Thus, when you select a function, the Relation Window shows a call tree, and when you select a class name, the Relation Window shows the class inheritance hierarchy.
Each time the Relation Window expands a symbol to show a new level, the relationship represented by the expansion is based on the type of symbol being expanded. That means each Relation Window has the potential to show multiple relationships. For example, a class might show its contents, which consists of member functions. Each member function might show its references.
There is a relationship in the list for Variables that is named "Type of". The "Type of" relationship yields the type of the variable. Then, the relationship rule for Types is applied. It is a kind of indirect relationship.
For example, let's say you set the Variable relationship to "Type of", and the Type relationship to "References". Now when you select a variable of a particular structure or class type, the Relation Window will decode the variable's type, then apply the "References" relationship rule and show the references to the variable's type.
The Call Graph Filtering dialog box allows you to control what symbols participate in the call tree calculation.
This section controls what symbols are filtered out of the call tree.
Click this button bring up the Exclude Call Graph Symbols list. You can add specific symbols to this list. If a symbol is in the exclusion list, then Source Insight will not expand the symbol in the call graph display.
Exclude C Macros
Check this to omit C function-like macros from the call graph. If this option is off, then function-like macros are expanded in the call graph as though they were an actual function.
Code Metric Filter
This section specifies the code metrics criteria for filtering out symbols. If enabled, symbols will only be included in the call graph is the symbols code metric value is within an acceptable range.
From the Code Metric Filter drop-down list, select the code metric that you want to use as the criteria, or select "None" if you don't want to use this option.
A symbol must have a code metric value of this or greater to be included.
A symbol must have a code metric value of this or less to be included. If the value is set to –1, then there is no maximum.
The Symbol Type Filter dialog box appears whenever you ask to specify symbol types to be used to filter an operation or listing.
This dialog box displays options that guide what the Relation window will pay attention to.
Automatic Symbol Tracking
As you move your cursor around in a source file, the Relation Window "tracks" the symbol under the cursor, or around the cursor. This group of options tells the Relation Window what to track.
Select this to disable automatic symbol tracking.
Track selected symbol (i.e. under cursor)
Select this to have the Relation Window look up the definition of the symbol currently under the typing cursor.
Track the enclosing function or class
Select this to have the Relation Window show the definition of the function or class that contains the typing cursor. This is useful to have a function definition and formal parameters visible in the Relation Window while you edit the function.
Activate Tracking Group
This group controls when the automatic tracking is activated.
Inside of comments
Select this to have the Relation Window look up symbols when the cursor is inside of comments.
Inside of string constants
Select this to have the Relation Window look up symbols when the cursor is inside of quoted string constants.
Inside all file types
Select this to have the Relation Window look up symbols when the cursor is inside any type of file, not just source code files.