Simplification consists in the fact that in the more general pattern the Constroller-View relationship allows a 1-N cardinality. Also the implementation aims to highlight and address practical requirements (w.r.t. the GTK toolkit), rather than to be strictly and formally faithful implementation of the pattern.
Figure 2 shows three interconnected parts:
Zero, one or more Controllers can be connected to one Model (see Controller, below). Furthermore, one or more Views can be associated with parts of the state; for example a numerical variable could be visualized as a number, as well as a graphic bar. It is important to remark that a Model does not know that a set of Views are connected to its state.
A View also associates a set of widget trees, deriving from the Glade File, as well as from the ad-hoc View Representation. Since a Widget contains a state, this implementation differs from the standard MVC pattern, where generally the View side is completely stateless.
As for the Model, a View does not know the semantics concerning what it visualizes, as well as the Model it is connected to.
Two particular mechanisms make the isolation between Model and Controller, and between View and Controller (see sections 3.1 and 3.2 below).
A Controller perfectly knows how the connected Model and View are implemented, and knows both the state and presentation semantics. A Controller is associated to one Model (has a relationship), and in the current implementation is associated only to one View.