summaryrefslogtreecommitdiff
path: root/documentation/gtk_interface.mdwn
blob: f480a529b0610956ea03d75826b0fd740c90d5e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[[!meta title="Documentation/GTK Interface"]]
[[!meta author="James Bursa"]]
[[!meta date="2010-04-07T17:05:44Z"]]


[[!toc]] This page describes the
GTK interface, which lives in the **gtk** directory. This interface is
used on Linux, BSD, and can be used on other platforms which have a port
of GTK.

Windows and Scaffolding
-----------------------

A "scaffolding" is a top-level main window, which contains a toolbar,
menu bar, and one or more tabs containing web pages. Each tab
corresponds to a gui\_window (and each frame if frames are present).

All the UI designs for the main window are in netsurf.glade.
**wndBrowser** is a scaffolding. It contains a VBox containing a
MenuBar, Toolbar, Toolbar for search (normally hidden), and Notebook.

The **tabContents** GtkTable (in tabContentsWindow) is used for each
tab. It contains a table with two rows and two columns, which contain
(line 1) a Layout, VScrollbar, (line 2) HPaned, and Statusbar (used for
resizing only). The HPaned contains the actual status bar (as a Label),
and a HScrollbar.

Tab creation is implemented in gui\_create\_browser\_window() in
gtk/gtk\_window.c. The scrollbars are linked to the layout here.

Frames are implemented as a ScrolledWindow containing a Layout, which is
then placed on the parent's Layout. This is also in
gui\_create\_browser\_window().

[[!inline raw=yes pages="Documentation"]]