User Interface

For the User Interface in the desktop/client binary, the products GTK+, Glade and Libglade are used. Glade is a GUI builder built on top of the GTK+ widget set for the GNOME project. In the ProLinga Development Tool Developer, Glade will be called when (new) screens are to be painted. The screen will be stored in an XML format when saved in Glade. These Glade XML files will be stored in the remote repository. Libglade is a library that at run-time will generate the User Interface from the Glade XML documents. To be able to manage the Glade XML documents in the ProLinga Environment, an extra header is added (enveloppe) to the file.

Below follows an example of a Glade file. Please note the Repository Command header "Get", which retrieves this document from the repository.

<ProLinga>
  <Repository Version="1.0">
    <Command Name="Get" Mode="Response" Status="Ok">
      <Object Application="stock" Type="Screen" Name="Parts">
        <Screen>
          <DisplayData>
            <glade-interface>
              <widget class="GtkWindow" id="Parts">
                <property name="visible">True</property>
                <property name="title" translatable="yes">Parts</property>
                <property name="type">GTK_WINDOW_TOPLEVEL</property>
                <property name="window_position">GTK_WIN_POS_NONE</property>
                <property name="modal">False</property>
                <property name="resizable">True</property>
                <property name="destroy_with_parent">False</property>
                <property name="decorated">True</property>
                <property name="skip_taskbar_hint">False</property>
                <property name="skip_pager_hint">False</property>
                <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
                <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
                <child>
                  <widget class="GtkScrolledWindow" id="parts_include">
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
                    <property name="shadow_type">GTK_SHADOW_NONE</property>
                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
                    <child>
                      . . . .
                      . . . .
                      . . . .
                      . . . .
                    </child>
                  </widget>
                </child>
              </widget>
            </glade-interface>
          </DisplayData>
          <AllowMultipleInstances>False</AllowMultipleInstances>
          <Description/>
          <DetailDescription/>
          <Modified/>
        </Screen>
      </Object>
    </Command>
  </Repository>
</ProLinga>

The full document contains 406 lines. Advanced compression techniques in the SOAP engine insures very efficient processing over the network. The use of Libxml is widely accepted in the open source community and is already very stable proven technology. When this document is processed at run time by Libglade, the following screen will be visible on the desktop:

screenshot stock application

The contents (data) of the various fields in this screen will be placed in this screen after processing by Libglade.