### 10.1 General Issues

GPS contains several kinds of browsers, that have a common set of basic functionalities. There are currently four such browsers: the project browser (see The Project Browser), the call graph (see Call Graph), the dependency browser (see Dependency Browser) and the entity browser (see Entity Browser).

All these browsers are interactive viewers. They contain a number of items, whose visual representation depends on the type of information displayed in the browser (they can be projects, files, entities, ...).

In addition, the following capabilities are provided in all browsers:

Scrolling
  When a lot of items are displayed in the canvas, the currently visible area might be too small to display all of them. In this case, scrollbars will be added on the sides, so that you can make other items visible. Scrolling can also be done with the arrow keys.
Layout
  A basic layout algorithm is used to organize the items. This algorithm is layer oriented: items with no parents are put in the first layer, then their direct children are put in the second layer, and so on. Depending on the type of browser, these layers are organized either vertically or horizontally. This algorithm tries to preserve as much as possible the positions of the items that were moved interactively.

  The `Refresh layout` menu item in the background contextual menu can be used to recompute the layout of items at any time, even for items that were previously moved interactively.

Interactive moving of items
  Items can be moved interactively with the mouse. Click and drag the item by clicking on its title bar. The links will still be displayed during the move, so that you can check whether it overlaps any other item. If you are trying to move the item outside of the visible part of the browser, the latter will be scrolled.
Links
  Items can be linked together, and will remain connected when items are moved. Different types of links exist, see the description of the various browsers.

  By default, links are displayed as straight lines. You can choose to use orthogonal links instead, which are displayed only with vertical or horizontal lines. Select the entry `orthogonal links` in the background contextual menu.

Exporting
  The entire contents of a browser can be exported as a `PNG` image using the entry `Export to PNG...` in the background contextual menu. It can also be exported in `SVG` format using the `Export to SVG...` entry.
Zooming
  Several different zoom levels are available. The contextual menu in the background of the browser contains three entries: `zoom in`, `zoom out` and `zoom`. The latter is used to select directly the zoom level you want.

  This zooming capability is generally useful when lots of items are displayed in the browser, to get a more general view of the layout and the relationships between the items.

Selecting items
  Items can be selected by clicking inside them. Multiple items can be selected by holding the <control> key while clicking in the item. Alternatively, you can click and drag the mouse inside the background of the browser. All the items found in the selection rectangle when the mouse is released will be selected.

  Selected items are drawn with a different title bar color. All items linked to them also use a different title bar color, as well as the links. This is the most convenient way to understand the relationships between items when lots of them are present in the browser.

Hyper-links
  Some of the items will contain hyper links, displayed in blue by default, and underlined. Clicking on these will generally display new items.

Two types of contextual menus are available in the browsers: the background contextual menu is available by right-clicking in the background area (i.e. outside of any item). As described above, it contains entries for the zooming, selecting of orthogonal links, and refresh; the second kind of contextual menu is available by right-clicking in items.

The latter menu contains various entries. Most of the entries are added by various modules in GPS (VCS module, source editor, ...). In addition, each kind of browser also has some specific entries, which is described in the corresponding browser's section.

There are two common items in all item contextual menus:

`Hide Links`
  Browsers can become confusing if there are many items and many links. You can lighten them by selecting this menu entry. As a result, the item will remain in the canvas, but none of the links to or from it will be visible. Selecting the item will still highlight linked items, so that this information remains available.
`Remove unselected items`
  Selecting this menu will remove all the items that are not currently selected. This is a convenient method to clean up the contents of the browser.
`Remove selected items`
  Selecting this menu will remove all the items that are currently selected.