[gcalctool] Move buttons into separate UI files to make startup faster and able to be separately designed



commit ec0d05465602877618253f426d1c6729edc91f39
Author: Robert Ancell <robert ancell gmail com>
Date:   Sun Apr 4 11:55:49 2010 +1000

    Move buttons into separate UI files to make startup faster and able to be separately designed

 data/Makefile.am            |    6 +-
 data/buttons-advanced.ui    | 1073 ++++++++++++
 data/buttons-basic.ui       |  407 +++++
 data/buttons-financial.ui   | 1190 ++++++++++++++
 data/buttons-programming.ui | 3233 ++++++++++++++++++++++++++++++++++++
 data/gcalctool.ui           | 3797 +------------------------------------------
 src/gtk.c                   |  714 +++++----
 7 files changed, 6275 insertions(+), 4145 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 76502ef..92a47c1 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -2,7 +2,11 @@ uidir = $(datadir)/gcalctool
 ui_DATA = \
 	gcalctool.ui \
 	dialogs.ui \
-	financial.ui
+	financial.ui \
+    buttons-basic.ui \
+    buttons-advanced.ui \
+    buttons-financial.ui \
+    buttons-programming.ui
 
 schemadir   = @GCONF_SCHEMA_FILE_DIR@
 schema_in_files = gcalctool.schemas.in
diff --git a/data/buttons-advanced.ui b/data/buttons-advanced.ui
new file mode 100644
index 0000000..210a0b3
--- /dev/null
+++ b/data/buttons-advanced.ui
@@ -0,0 +1,1073 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="window1">
+    <child>
+      <object class="GtkTable" id="button_panel">
+        <property name="visible">True</property>
+        <property name="n_rows">5</property>
+        <property name="n_columns">10</property>
+        <property name="homogeneous">True</property>
+        <child>
+          <object class="GtkButton" id="calc_store_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_store_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the store value button">Store</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="popup_cb"/>
+            <child>
+              <object class="GtkHBox" id="hbox20">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <object class="GtkLabel" id="label23">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" comments="The label on the memory store button">&#x2192; R</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow14">
+                    <property name="visible">True</property>
+                    <property name="arrow_type">down</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_recall_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_recall_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the recall value button">Recall</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="popup_cb"/>
+            <child>
+              <object class="GtkHBox" id="hbox19">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <object class="GtkLabel" id="label22">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" comments="The label on the memory recall button">&#x2190; R</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow13">
+                    <property name="visible">True</property>
+                    <property name="arrow_type">down</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_pi_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="pi_label">
+                <property name="visible">True</property>
+                <property name="label">&#x3C0;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_inverse_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_inverse_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the inverse button">Inverse</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="label20">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&#x2212;1&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+                <property name="justify">center</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_root_button">
+            <property name="label">&#x221A;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_x_pow_y_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_x_pow_y_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the exponentiation (x to the power of y) button">Exponent</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="x_pow_y_label">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_logarithm_button">
+            <property name="label">log</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_factor_button">
+            <property name="label">fact</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_factor_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorize button">Factorize</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="factorize_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_natural_logarithm_button">
+            <property name="label">ln</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_eulers_number_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="eulers_number_label">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;e&lt;/i&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_abs_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_abs_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the absolute value button">Absolute Value</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label">|&lt;i&gt;x&lt;/i&gt;|</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_factorial_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_factorial_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorial button">Factorial</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="label14">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;!</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_integer_portion_button">
+            <property name="label">int</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_exponential_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_exponential_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the scientific exponent button">Scientific Exponent</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="exponent_cb"/>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label">&#xD7;10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_fractional_portion_button">
+            <property name="label">frac</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_imaginary_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="imaginary_label">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;i&lt;/i&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleButton" id="subscript_togglebutton">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="subscript_togglebutton-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the subscript mode button">Subscript</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="set_subscript_cb"/>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label">&#x2193;n</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleButton" id="superscript_togglebutton">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="superscript_togglebutton-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the superscript mode button">Superscript</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="set_superscript_cb"/>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label">&#x2191;n</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_ans_button">
+            <property name="label">ans</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_modulus_divide_button">
+            <property name="label">mod</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_4_button">
+            <property name="label">4</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_7_button">
+            <property name="label">7</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_8_button">
+            <property name="label">8</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_9_button">
+            <property name="label">9</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_5_button">
+            <property name="label">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_6_button">
+            <property name="label">6</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_divide_button">
+            <property name="label">&#xF7;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the division button">Divide [/]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_1_button">
+            <property name="label">1</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_2_button">
+            <property name="label">2</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_0_button">
+            <property name="label">0</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_numeric_point_button">
+            <property name="label" comments="Label is set in gtk.c to comply with LC flags">.</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the numeric point button">Numeric point [. or ,]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_percentage_button">
+            <property name="label">%</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip on the percentage button">Percentage [%]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_3_button">
+            <property name="label">3</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_multiply_button">
+            <property name="label">&#xD7;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the multiplication button">Multiply [*]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_subtract_button">
+            <property name="label">&#x2212;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the subtraction button">Subtract [-]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="subtract_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_add_button">
+            <property name="label">+</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the addition button">Add [+]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_result_button">
+            <property name="label" translatable="yes" comments="Label on the solve button (clicking this solves the displayed calculation)">=</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the solve button">Calculate result [=]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="solve_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_start_group_button">
+            <property name="label">(</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the start block button">Start block [(]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_end_group_button">
+            <property name="label">)</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the end block button">End block [)]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_clear_button">
+            <property name="label" translatable="yes" comments="Label on the clear display button">Clear</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltop for the clear display button">Clear display [Escape]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="clear_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkTable" id="scientific_panel">
+            <property name="visible">True</property>
+            <property name="n_columns">6</property>
+            <child>
+              <object class="GtkButton" id="calc_tangent_button">
+                <property name="label">tan</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_sine_button">
+                <property name="label">sin</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_cosine_button">
+                <property name="label">cos</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+              </object>
+              <packing>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_hyperbolic_cosine_button">
+                <property name="label">cosh</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_hyperbolic_sine_button">
+                <property name="label">sinh</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_hyperbolic_tangent_button">
+                <property name="label">tanh</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="right_attach">10</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/buttons-basic.ui b/data/buttons-basic.ui
new file mode 100644
index 0000000..e4dc2d5
--- /dev/null
+++ b/data/buttons-basic.ui
@@ -0,0 +1,407 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="window1">
+    <child>
+      <object class="GtkTable" id="button_panel">
+        <property name="visible">True</property>
+        <property name="n_rows">4</property>
+        <property name="n_columns">5</property>
+        <property name="homogeneous">True</property>
+        <child>
+          <object class="GtkButton" id="calc_4_button">
+            <property name="label">4</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_7_button">
+            <property name="label">7</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_8_button">
+            <property name="label">8</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_9_button">
+            <property name="label">9</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_5_button">
+            <property name="label">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_6_button">
+            <property name="label">6</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_divide_button">
+            <property name="label">&#xF7;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the division button">Divide [/]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_1_button">
+            <property name="label">1</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_2_button">
+            <property name="label">2</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_0_button">
+            <property name="label">0</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_numeric_point_button">
+            <property name="label" comments="Label is set in gtk.c to comply with LC flags">.</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the numeric point button">Numeric point [. or ,]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_percentage_button">
+            <property name="label">%</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip on the percentage button">Percentage [%]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_3_button">
+            <property name="label">3</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_multiply_button">
+            <property name="label">&#xD7;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the multiplication button">Multiply [*]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_subtract_button">
+            <property name="label">&#x2212;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the subtraction button">Subtract [-]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="subtract_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_add_button">
+            <property name="label">+</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the addition button">Add [+]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_result_button">
+            <property name="label" translatable="yes" comments="Label on the solve button (clicking this solves the displayed calculation)">=</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the solve button">Calculate result [=]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="solve_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_start_group_button">
+            <property name="label">(</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the start block button">Start block [(]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_end_group_button">
+            <property name="label">)</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the end block button">End block [)]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_clear_button">
+            <property name="label" translatable="yes" comments="Label on the clear display button">Clear</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltop for the clear display button">Clear display [Escape]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="clear_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/buttons-financial.ui b/data/buttons-financial.ui
new file mode 100644
index 0000000..f614203
--- /dev/null
+++ b/data/buttons-financial.ui
@@ -0,0 +1,1190 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="window1">
+    <child>
+      <object class="GtkTable" id="button_panel">
+        <property name="visible">True</property>
+        <property name="n_rows">6</property>
+        <property name="n_columns">10</property>
+        <property name="homogeneous">True</property>
+        <child>
+          <object class="GtkButton" id="calc_store_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_store_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the store value button">Store</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="popup_cb"/>
+            <child>
+              <object class="GtkHBox" id="hbox20">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <object class="GtkLabel" id="label23">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" comments="The label on the memory store button">&#x2192; R</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow14">
+                    <property name="visible">True</property>
+                    <property name="arrow_type">down</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_recall_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_recall_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the recall value button">Recall</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="popup_cb"/>
+            <child>
+              <object class="GtkHBox" id="hbox19">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <object class="GtkLabel" id="label22">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" comments="The label on the memory recall button">&#x2190; R</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow13">
+                    <property name="visible">True</property>
+                    <property name="arrow_type">down</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_pi_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="pi_label">
+                <property name="visible">True</property>
+                <property name="label">&#x3C0;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_inverse_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_inverse_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the inverse button">Inverse</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="label20">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&#x2212;1&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+                <property name="justify">center</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_root_button">
+            <property name="label">&#x221A;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_x_pow_y_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_x_pow_y_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the exponentiation (x to the power of y) button">Exponent</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="x_pow_y_label">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_logarithm_button">
+            <property name="label">log</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_factor_button">
+            <property name="label">fact</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_factor_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorize button">Factorize</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="factorize_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_natural_logarithm_button">
+            <property name="label">ln</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_eulers_number_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="eulers_number_label">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;e&lt;/i&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_abs_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_abs_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the absolute value button">Absolute Value</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label">|&lt;i&gt;x&lt;/i&gt;|</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_factorial_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_factorial_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorial button">Factorial</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="label14">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;!</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_integer_portion_button">
+            <property name="label">int</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_exponential_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_exponential_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the scientific exponent button">Scientific Exponent</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="exponent_cb"/>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label">&#xD7;10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_fractional_portion_button">
+            <property name="label">frac</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_imaginary_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+            <child>
+              <object class="GtkLabel" id="imaginary_label">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;i&lt;/i&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleButton" id="subscript_togglebutton">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="subscript_togglebutton-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the subscript mode button">Subscript</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="set_subscript_cb"/>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label">&#x2193;n</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleButton" id="superscript_togglebutton">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="superscript_togglebutton-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the superscript mode button">Superscript</property>
+              </object>
+            </child>
+            <signal name="clicked" handler="set_superscript_cb"/>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label">&#x2191;n</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_ans_button">
+            <property name="label">ans</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_modulus_divide_button">
+            <property name="label">mod</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_4_button">
+            <property name="label">4</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_7_button">
+            <property name="label">7</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_8_button">
+            <property name="label">8</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_9_button">
+            <property name="label">9</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_5_button">
+            <property name="label">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_6_button">
+            <property name="label">6</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_divide_button">
+            <property name="label">&#xF7;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the division button">Divide [/]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_1_button">
+            <property name="label">1</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_2_button">
+            <property name="label">2</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_0_button">
+            <property name="label">0</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_numeric_point_button">
+            <property name="label" comments="Label is set in gtk.c to comply with LC flags">.</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the numeric point button">Numeric point [. or ,]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_percentage_button">
+            <property name="label">%</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip on the percentage button">Percentage [%]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_3_button">
+            <property name="label">3</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="digit_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_multiply_button">
+            <property name="label">&#xD7;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the multiplication button">Multiply [*]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_subtract_button">
+            <property name="label">&#x2212;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the subtraction button">Subtract [-]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="subtract_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_add_button">
+            <property name="label">+</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the addition button">Add [+]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_result_button">
+            <property name="label" translatable="yes" comments="Label on the solve button (clicking this solves the displayed calculation)">=</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the solve button">Calculate result [=]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="solve_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">5</property>
+            <property name="bottom_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_start_group_button">
+            <property name="label">(</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the start block button">Start block [(]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_end_group_button">
+            <property name="label">)</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for the end block button">End block [)]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="button_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_clear_button">
+            <property name="label" translatable="yes" comments="Label on the clear display button">Clear</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltop for the clear display button">Clear display [Escape]</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="clear_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="top_attach">4</property>
+            <property name="bottom_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_straight_line_depreciation_button">
+            <property name="label" translatable="yes" comments="Calculates the straight-line depreciation of an asset for one period. The depreciable cost is cost - salvage. The straight-line method of depreciation divides the depreciable cost evenly over the useful life of an asset. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: http://en.wikipedia.org/wiki/Depreciation";>Sln</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">7</property>
+            <property name="right_attach">8</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_periodic_interest_rate_button">
+            <property name="label" translatable="yes" comments="Calculates the periodic interest necessary to increase an investment of present value pv to a future value of fv, over the number of compounding periods in term. See also: http://en.wikipedia.org/wiki/Interest                                      ">Rate</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">6</property>
+            <property name="right_attach">7</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_present_value_button">
+            <property name="label" translatable="yes" comments="Calculates the present value of an investment based on a series of equal payments, each of amount pmt, discounted at a periodic interest rate of int, over the number of payment periods in the term. See also: http://en.wikipedia.org/wiki/Present_value";>Pv</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="right_attach">6</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_periodic_payment_button">
+            <property name="label" translatable="yes" comments="Calculates the amount of the periodic payment of a loan, where payments are made at the end of each payment period. See also: http://en.wikipedia.org/wiki/Amortization_schedule";>Pmt</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="right_attach">5</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_future_value_button">
+            <property name="label" translatable="yes" comments="Calculates the future value of an investment based on a series of equal payments, each of amount pmt, at a periodic interest rate of int, over the number of payment periods in the term. See also: http://en.wikipedia.org/wiki/Future_value";>Fv</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="right_attach">3</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_gross_profit_margin_button">
+            <property name="label" translatable="yes" comments="Calculates the resale price of a product, based on the product cost and the wanted gross profit margin. See also: http://en.wikipedia.org/wiki/Gross_profit_margin";>Gpm</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="right_attach">4</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_double_declining_depreciation_button">
+            <property name="label" translatable="yes" comments="Calculates the depreciation allowance on an asset for a specified period of time, using the double-declining balance method. See also: http://en.wikipedia.org/wiki/Depreciation";>Ddb</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_compounding_term_button">
+            <property name="label" translatable="yes" comments="Calculates the number of compounding periods necessary to increase an investment of present value pv to a future value of fv, at a fixed interest rate of int per compounding period. See also: http://en.wikipedia.org/wiki/Compound_interest";>Ctrm</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_sum_of_the_years_digits_depreciation_button">
+            <property name="label" translatable="yes" comments="Calculates the depreciation allowance on an asset for a specified period of time, using the Sum-Of-The-Years'-Digits method. This method of depreciation accelerates the rate of depreciation, so that more depreciation expense occurs in earlier periods than in later ones. The depreciable cost is cost - salvage. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: http://en.wikipedia.org/wiki/Depreciation";>Syd</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="right_attach">9</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_finc_term_button">
+            <property name="label" translatable="yes" comments="Calculates the number of payment periods that are necessary during the term of an ordinary annuity, to accumulate a future value of fv, at a periodic interest rate of int. Each payment is equal to amount pmt. See also: http://en.wikipedia.org/wiki/Annuity_(finance_theory)">Term</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="finc_cb"/>
+          </object>
+          <packing>
+            <property name="left_attach">9</property>
+            <property name="right_attach">10</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_currency_button">
+            <property name="label" translatable="yes" comments="The label on the currency button">&#xA4;$&#x20AC;</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="border_width">3</property>
+            <property name="focus_on_click">False</property>
+            <signal name="clicked" handler="currency_cb"/>
+          </object>
+          <packing>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/buttons-programming.ui b/data/buttons-programming.ui
new file mode 100644
index 0000000..0d55912
--- /dev/null
+++ b/data/buttons-programming.ui
@@ -0,0 +1,3233 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="window1">
+    <child>
+      <object class="GtkVBox" id="button_panel">
+        <property name="visible">True</property>
+        <property name="spacing">6</property>
+        <child>
+          <object class="GtkAlignment" id="bit_panel">
+            <property name="visible">True</property>
+            <property name="xscale">0</property>
+            <property name="yscale">0</property>
+            <child>
+              <object class="GtkTable" id="bit_table">
+                <property name="visible">True</property>
+                <property name="n_rows">4</property>
+                <property name="n_columns">39</property>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_1">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_1">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_2">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_2">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_3">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_3">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">3</property>
+                    <property name="right_attach">4</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_4">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_4">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">5</property>
+                    <property name="right_attach">6</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_5">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_5">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">6</property>
+                    <property name="right_attach">7</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_6">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_6">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">7</property>
+                    <property name="right_attach">8</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_7">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_7">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">8</property>
+                    <property name="right_attach">9</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_8">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_8">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">10</property>
+                    <property name="right_attach">11</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_9">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_9">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">11</property>
+                    <property name="right_attach">12</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_10">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_10">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">12</property>
+                    <property name="right_attach">13</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_11">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_11">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">13</property>
+                    <property name="right_attach">14</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_12">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_12">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">15</property>
+                    <property name="right_attach">16</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_13">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_13">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">16</property>
+                    <property name="right_attach">17</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_14">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_14">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">17</property>
+                    <property name="right_attach">18</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_15">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_15">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">18</property>
+                    <property name="right_attach">19</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_31">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_31">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">38</property>
+                    <property name="right_attach">39</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_30">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_30">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">37</property>
+                    <property name="right_attach">38</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_29">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_29">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">36</property>
+                    <property name="right_attach">37</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_28">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_28">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">35</property>
+                    <property name="right_attach">36</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_27">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_27">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">33</property>
+                    <property name="right_attach">34</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_26">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_26">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">32</property>
+                    <property name="right_attach">33</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_25">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_25">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">31</property>
+                    <property name="right_attach">32</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_24">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_24">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">30</property>
+                    <property name="right_attach">31</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_23">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_23">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">28</property>
+                    <property name="right_attach">29</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_22">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_22">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">27</property>
+                    <property name="right_attach">28</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_21">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_21">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">26</property>
+                    <property name="right_attach">27</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_20">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_20">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">25</property>
+                    <property name="right_attach">26</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_19">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_19">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">23</property>
+                    <property name="right_attach">24</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_18">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_18">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">22</property>
+                    <property name="right_attach">23</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_17">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_17">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">21</property>
+                    <property name="right_attach">22</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_16">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_16">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">20</property>
+                    <property name="right_attach">21</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="bit_marker_label0">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">63</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="bit_maker_label3">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">31</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="bit_marker_label2">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">32</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">38</property>
+                    <property name="right_attach">39</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="bit_marker_label5">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">0</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">38</property>
+                    <property name="right_attach">39</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_32">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_32">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_33">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_33">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_34">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_34">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_35">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_35">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">3</property>
+                    <property name="right_attach">4</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_36">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_36">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">5</property>
+                    <property name="right_attach">6</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_37">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_37">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">6</property>
+                    <property name="right_attach">7</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_38">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_38">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">7</property>
+                    <property name="right_attach">8</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_39">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_39">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">8</property>
+                    <property name="right_attach">9</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_40">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_40">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">10</property>
+                    <property name="right_attach">11</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_41">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_41">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">11</property>
+                    <property name="right_attach">12</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_42">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_42">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">12</property>
+                    <property name="right_attach">13</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_43">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_43">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">13</property>
+                    <property name="right_attach">14</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_44">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_44">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">15</property>
+                    <property name="right_attach">16</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_45">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_45">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">16</property>
+                    <property name="right_attach">17</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_46">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_46">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">17</property>
+                    <property name="right_attach">18</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_47">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_47">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">18</property>
+                    <property name="right_attach">19</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_48">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_48">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">20</property>
+                    <property name="right_attach">21</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_49">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_49">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">21</property>
+                    <property name="right_attach">22</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_50">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_50">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">22</property>
+                    <property name="right_attach">23</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_51">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_51">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">23</property>
+                    <property name="right_attach">24</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_52">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_52">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">25</property>
+                    <property name="right_attach">26</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_53">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_53">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">26</property>
+                    <property name="right_attach">27</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_54">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_54">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">27</property>
+                    <property name="right_attach">28</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_55">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_55">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">28</property>
+                    <property name="right_attach">29</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_56">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_56">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">30</property>
+                    <property name="right_attach">31</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_57">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_57">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">31</property>
+                    <property name="right_attach">32</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_58">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_58">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">32</property>
+                    <property name="right_attach">33</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_59">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_59">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">33</property>
+                    <property name="right_attach">34</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_60">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_60">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">35</property>
+                    <property name="right_attach">36</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_61">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_61">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">36</property>
+                    <property name="right_attach">37</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_62">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_62">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">37</property>
+                    <property name="right_attach">38</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_63">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_63">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">38</property>
+                    <property name="right_attach">39</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="bit_marker_label1">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">47</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">20</property>
+                    <property name="right_attach">21</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="bit_marker_label4">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">15</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">20</property>
+                    <property name="right_attach">21</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label25">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">4</property>
+                    <property name="right_attach">5</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label26">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">9</property>
+                    <property name="right_attach">10</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label27">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">14</property>
+                    <property name="right_attach">15</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label28">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">19</property>
+                    <property name="right_attach">20</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label29">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">24</property>
+                    <property name="right_attach">25</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label30">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">29</property>
+                    <property name="right_attach">30</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label31">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">34</property>
+                    <property name="right_attach">35</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label32">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">4</property>
+                    <property name="right_attach">5</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label33">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">9</property>
+                    <property name="right_attach">10</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label34">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">14</property>
+                    <property name="right_attach">15</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label35">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">19</property>
+                    <property name="right_attach">20</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label36">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">24</property>
+                    <property name="right_attach">25</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label37">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">29</property>
+                    <property name="right_attach">30</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label38">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label">  </property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">34</property>
+                    <property name="right_attach">35</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEventBox" id="bit_eventbox_0">
+                    <property name="visible">True</property>
+                    <signal name="button_press_event" handler="bit_toggle_cb"/>
+                    <child>
+                      <object class="GtkLabel" id="bit_label_0">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label"> 0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="x_options">GTK_SHRINK</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkTable" id="advanced_panel">
+            <property name="visible">True</property>
+            <property name="n_rows">6</property>
+            <property name="n_columns">10</property>
+            <property name="homogeneous">True</property>
+            <child>
+              <object class="GtkButton" id="calc_store_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_store_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the store value button">Store</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="popup_cb"/>
+                <child>
+                  <object class="GtkHBox" id="hbox20">
+                    <property name="visible">True</property>
+                    <property name="spacing">3</property>
+                    <child>
+                      <object class="GtkLabel" id="label23">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes" comments="The label on the memory store button">&#x2192; R</property>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkArrow" id="arrow14">
+                        <property name="visible">True</property>
+                        <property name="arrow_type">down</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">9</property>
+                <property name="right_attach">10</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_recall_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_recall_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the recall value button">Recall</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="popup_cb"/>
+                <child>
+                  <object class="GtkHBox" id="hbox19">
+                    <property name="visible">True</property>
+                    <property name="spacing">3</property>
+                    <child>
+                      <object class="GtkLabel" id="label22">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes" comments="The label on the memory recall button">&#x2190; R</property>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkArrow" id="arrow13">
+                        <property name="visible">True</property>
+                        <property name="arrow_type">down</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">9</property>
+                <property name="right_attach">10</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_pi_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="pi_label">
+                    <property name="visible">True</property>
+                    <property name="label">&#x3C0;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">8</property>
+                <property name="right_attach">9</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_inverse_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_inverse_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the inverse button">Inverse</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="label20">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&#x2212;1&lt;/sup&gt;</property>
+                    <property name="use_markup">True</property>
+                    <property name="justify">center</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_root_button">
+                <property name="label">&#x221A;</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_x_pow_y_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_x_pow_y_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the exponentiation (x to the power of y) button">Exponent</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="x_pow_y_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_logarithm_button">
+                <property name="label">log</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_factor_button">
+                <property name="label">fact</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_factor_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorize button">Factorize</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="factorize_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_natural_logarithm_button">
+                <property name="label">ln</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_eulers_number_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="eulers_number_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;e&lt;/i&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">8</property>
+                <property name="right_attach">9</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_abs_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_abs_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the absolute value button">Absolute Value</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label">|&lt;i&gt;x&lt;/i&gt;|</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">7</property>
+                <property name="right_attach">8</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_factorial_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_factorial_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorial button">Factorial</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="label14">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;x&lt;/i&gt;!</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">7</property>
+                <property name="right_attach">8</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_integer_portion_button">
+                <property name="label">int</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">7</property>
+                <property name="right_attach">8</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_exponential_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_exponential_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the scientific exponent button">Scientific Exponent</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="exponent_cb"/>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label">&#xD7;10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_fractional_portion_button">
+                <property name="label">frac</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">7</property>
+                <property name="right_attach">8</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_imaginary_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+                <child>
+                  <object class="GtkLabel" id="imaginary_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;i&lt;/i&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">8</property>
+                <property name="right_attach">9</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToggleButton" id="subscript_togglebutton">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="subscript_togglebutton-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the subscript mode button">Subscript</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="set_subscript_cb"/>
+                <child>
+                  <object class="GtkLabel" id="label4">
+                    <property name="visible">True</property>
+                    <property name="label">&#x2193;n</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">8</property>
+                <property name="right_attach">9</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToggleButton" id="superscript_togglebutton">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="superscript_togglebutton-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the superscript mode button">Superscript</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="set_superscript_cb"/>
+                <child>
+                  <object class="GtkLabel" id="label3">
+                    <property name="visible">True</property>
+                    <property name="label">&#x2191;n</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">9</property>
+                <property name="right_attach">10</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_ans_button">
+                <property name="label">ans</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">9</property>
+                <property name="right_attach">10</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_modulus_divide_button">
+                <property name="label">mod</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_4_button">
+                <property name="label">4</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_7_button">
+                <property name="label">7</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_8_button">
+                <property name="label">8</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_9_button">
+                <property name="label">9</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_5_button">
+                <property name="label">5</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_6_button">
+                <property name="label">6</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_divide_button">
+                <property name="label">&#xF7;</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_1_button">
+                <property name="label">1</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_2_button">
+                <property name="label">2</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_0_button">
+                <property name="label">0</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_numeric_point_button">
+                <property name="label" comments="Label is set in gtk.c to comply with LC flags">.</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_percentage_button">
+                <property name="label">%</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_3_button">
+                <property name="label">3</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="digit_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_multiply_button">
+                <property name="label">&#xD7;</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_subtract_button">
+                <property name="label">&#x2212;</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="subtract_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_add_button">
+                <property name="label">+</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_result_button">
+                <property name="label" translatable="yes" comments="Label on the solve button (clicking this solves the displayed calculation)">=</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="solve_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_start_group_button">
+                <property name="label">(</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_end_group_button">
+                <property name="label">)</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_clear_button">
+                <property name="label" translatable="yes" comments="Label on the clear display button">Clear</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="clear_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_13_button">
+                <property name="label">D</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_14_button">
+                <property name="label">E</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_15_button">
+                <property name="label">F</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_10_button">
+                <property name="label">A</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_11_button">
+                <property name="label">B</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_12_button">
+                <property name="label">C</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_and_button">
+                <property name="label">AND</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_or_button">
+                <property name="label">OR</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_not_button">
+                <property name="label">NOT</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">8</property>
+                <property name="right_attach">9</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_xor_button">
+                <property name="label">XOR</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">7</property>
+                <property name="right_attach">8</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_ones_complement_button">
+                <property name="label">ones</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">7</property>
+                <property name="right_attach">8</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_twos_complement_button">
+                <property name="label">twos</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">8</property>
+                <property name="right_attach">9</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_shift_right_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_shift_right_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the shift right button">Shift Right</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="popup_cb"/>
+                <child>
+                  <object class="GtkHBox" id="hbox10">
+                    <property name="visible">True</property>
+                    <property name="spacing">3</property>
+                    <child>
+                      <object class="GtkLabel" id="label6">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">&gt;</property>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkArrow" id="arrow4">
+                        <property name="visible">True</property>
+                        <property name="arrow_type">down</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_shift_left_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_shift_left_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the shift left button">Shift Left</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="popup_cb"/>
+                <child>
+                  <object class="GtkHBox" id="hbox11">
+                    <property name="visible">True</property>
+                    <property name="spacing">3</property>
+                    <child>
+                      <object class="GtkLabel" id="label7">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">&lt;</property>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkArrow" id="arrow5">
+                        <property name="visible">True</property>
+                        <property name="arrow_type">down</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_trunc_button">
+                <property name="label">trunc</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">9</property>
+                <property name="right_attach">10</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_random_button">
+                <property name="label">rand</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="use_underline">True</property>
+                <property name="focus_on_click">False</property>
+                <signal name="clicked" handler="button_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_base_2_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_base_2_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the base 2 button">Base 2</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="base_cb"/>
+                <child>
+                  <object class="GtkLabel" id="base_2_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_base_8_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_base_8_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the base 8 button">Base 8</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="base_cb"/>
+                <child>
+                  <object class="GtkLabel" id="base_8_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sub&gt;8&lt;/sub&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_base_16_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_base_16_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the base 16 button">Base 16</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="base_cb"/>
+                <child>
+                  <object class="GtkLabel" id="base_16_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sub&gt;16&lt;/sub&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="calc_character_button">
+                <property name="label">&#xE1;</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="border_width">3</property>
+                <property name="focus_on_click">False</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="calc_character_button-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the insert character button">Insert Character</property>
+                  </object>
+                </child>
+                <signal name="clicked" handler="insert_ascii_cb"/>
+              </object>
+              <packing>
+                <property name="left_attach">9</property>
+                <property name="right_attach">10</property>
+                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/gcalctool.ui b/data/gcalctool.ui
index c43b124..d90de31 100644
--- a/data/gcalctool.ui
+++ b/data/gcalctool.ui
@@ -236,3808 +236,17 @@
           </packing>
         </child>
         <child>
-          <object class="GtkAlignment" id="bit_panel">
+          <object class="GtkVBox" id="button_vbox">
             <property name="visible">True</property>
-            <property name="xscale">0</property>
-            <property name="yscale">0</property>
+            <property name="border_width">7</property>
             <child>
-              <object class="GtkTable" id="bit_table">
-                <property name="visible">True</property>
-                <property name="n_rows">4</property>
-                <property name="n_columns">39</property>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_1">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_1">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_2">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_2">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_3">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_3">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_4">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_4">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_5">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_5">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_6">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_6">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_7">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_7">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_8">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_8">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">10</property>
-                    <property name="right_attach">11</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_9">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_9">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">11</property>
-                    <property name="right_attach">12</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_10">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_10">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">12</property>
-                    <property name="right_attach">13</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_11">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_11">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">13</property>
-                    <property name="right_attach">14</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_12">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_12">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">15</property>
-                    <property name="right_attach">16</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_13">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_13">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">16</property>
-                    <property name="right_attach">17</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_14">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_14">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">17</property>
-                    <property name="right_attach">18</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_15">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_15">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">18</property>
-                    <property name="right_attach">19</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_31">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_31">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">38</property>
-                    <property name="right_attach">39</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_30">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_30">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">37</property>
-                    <property name="right_attach">38</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_29">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_29">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">36</property>
-                    <property name="right_attach">37</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_28">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_28">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">35</property>
-                    <property name="right_attach">36</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_27">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_27">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">33</property>
-                    <property name="right_attach">34</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_26">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_26">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">32</property>
-                    <property name="right_attach">33</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_25">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_25">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">31</property>
-                    <property name="right_attach">32</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_24">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_24">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">30</property>
-                    <property name="right_attach">31</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_23">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_23">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">28</property>
-                    <property name="right_attach">29</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_22">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_22">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">27</property>
-                    <property name="right_attach">28</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_21">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_21">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">26</property>
-                    <property name="right_attach">27</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_20">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_20">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">25</property>
-                    <property name="right_attach">26</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_19">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_19">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">23</property>
-                    <property name="right_attach">24</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_18">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_18">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">22</property>
-                    <property name="right_attach">23</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_17">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_17">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">21</property>
-                    <property name="right_attach">22</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_16">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_16">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">20</property>
-                    <property name="right_attach">21</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="bit_marker_label0">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">63</property>
-                    <property name="justify">center</property>
-                  </object>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="bit_maker_label3">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">31</property>
-                    <property name="justify">center</property>
-                  </object>
-                  <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="bit_marker_label2">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">32</property>
-                    <property name="justify">center</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">38</property>
-                    <property name="right_attach">39</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="bit_marker_label5">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">0</property>
-                    <property name="justify">center</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">38</property>
-                    <property name="right_attach">39</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_32">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_32">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_33">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_33">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_34">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_34">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_35">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_35">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_36">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_36">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_37">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_37">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_38">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_38">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_39">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_39">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_40">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_40">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">10</property>
-                    <property name="right_attach">11</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_41">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_41">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">11</property>
-                    <property name="right_attach">12</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_42">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_42">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">12</property>
-                    <property name="right_attach">13</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_43">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_43">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">13</property>
-                    <property name="right_attach">14</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_44">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_44">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">15</property>
-                    <property name="right_attach">16</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_45">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_45">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">16</property>
-                    <property name="right_attach">17</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_46">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_46">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">17</property>
-                    <property name="right_attach">18</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_47">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_47">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">18</property>
-                    <property name="right_attach">19</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_48">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_48">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">20</property>
-                    <property name="right_attach">21</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_49">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_49">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">21</property>
-                    <property name="right_attach">22</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_50">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_50">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">22</property>
-                    <property name="right_attach">23</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_51">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_51">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">23</property>
-                    <property name="right_attach">24</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_52">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_52">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">25</property>
-                    <property name="right_attach">26</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_53">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_53">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">26</property>
-                    <property name="right_attach">27</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_54">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_54">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">27</property>
-                    <property name="right_attach">28</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_55">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_55">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">28</property>
-                    <property name="right_attach">29</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_56">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_56">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">30</property>
-                    <property name="right_attach">31</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_57">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_57">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">31</property>
-                    <property name="right_attach">32</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_58">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_58">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">32</property>
-                    <property name="right_attach">33</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_59">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_59">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">33</property>
-                    <property name="right_attach">34</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_60">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_60">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">35</property>
-                    <property name="right_attach">36</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_61">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_61">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">36</property>
-                    <property name="right_attach">37</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_62">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_62">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">37</property>
-                    <property name="right_attach">38</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_63">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_63">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">38</property>
-                    <property name="right_attach">39</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="bit_marker_label1">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">47</property>
-                    <property name="justify">center</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">20</property>
-                    <property name="right_attach">21</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="bit_marker_label4">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">15</property>
-                    <property name="justify">center</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">20</property>
-                    <property name="right_attach">21</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label25">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label26">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">9</property>
-                    <property name="right_attach">10</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label27">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">14</property>
-                    <property name="right_attach">15</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label28">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">19</property>
-                    <property name="right_attach">20</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label29">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">24</property>
-                    <property name="right_attach">25</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label30">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">29</property>
-                    <property name="right_attach">30</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label31">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">34</property>
-                    <property name="right_attach">35</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label32">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label33">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">9</property>
-                    <property name="right_attach">10</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label34">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">14</property>
-                    <property name="right_attach">15</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label35">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">19</property>
-                    <property name="right_attach">20</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label36">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">24</property>
-                    <property name="right_attach">25</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label37">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">29</property>
-                    <property name="right_attach">30</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label38">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label">  </property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">34</property>
-                    <property name="right_attach">35</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEventBox" id="bit_eventbox_0">
-                    <property name="visible">True</property>
-                    <signal name="button_press_event" handler="bit_toggle_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="bit_label_0">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label"> 0</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="x_options">GTK_SHRINK</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
+              <placeholder/>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
             <property name="position">2</property>
           </packing>
         </child>
-        <child>
-          <object class="GtkTable" id="button_table">
-            <property name="visible">True</property>
-            <property name="border_width">3</property>
-            <property name="n_rows">9</property>
-            <property name="n_columns">10</property>
-            <child>
-              <object class="GtkTable" id="basic_panel">
-                <property name="visible">True</property>
-                <property name="n_rows">4</property>
-                <property name="n_columns">5</property>
-                <child>
-                  <object class="GtkButton" id="calc_4_button">
-                    <property name="label">4</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_7_button">
-                    <property name="label">7</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_8_button">
-                    <property name="label">8</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_9_button">
-                    <property name="label">9</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_5_button">
-                    <property name="label">5</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_6_button">
-                    <property name="label">6</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_divide_button">
-                    <property name="label">&#xF7;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the division button">Divide [/]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_1_button">
-                    <property name="label">1</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_2_button">
-                    <property name="label">2</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_0_button">
-                    <property name="label">0</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_numeric_point_button">
-                    <property name="label" comments="Label is set in gtk.c to comply with LC flags">.</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the numeric point button">Numeric point [. or ,]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_percentage_button">
-                    <property name="label">%</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip on the percentage button">Percentage [%]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_3_button">
-                    <property name="label">3</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="digit_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_multiply_button">
-                    <property name="label">&#xD7;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the multiplication button">Multiply [*]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_subtract_button">
-                    <property name="label">&#x2212;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the subtraction button">Subtract [-]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="subtract_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_add_button">
-                    <property name="label">+</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the addition button">Add [+]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_result_button">
-                    <property name="label" translatable="yes" comments="Label on the solve button (clicking this solves the displayed calculation)">=</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the solve button">Calculate result [=]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="solve_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_start_group_button">
-                    <property name="label">(</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the start block button">Start block [(]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_end_group_button">
-                    <property name="label">)</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the end block button">End block [)]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_clear_button">
-                    <property name="label" translatable="yes" comments="Label on the clear display button">Clear</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltop for the clear display button">Clear display [Escape]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="clear_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="right_attach">5</property>
-                <property name="top_attach">5</property>
-                <property name="bottom_attach">9</property>
-                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkTable" id="advanced_panel">
-                <property name="visible">True</property>
-                <property name="n_rows">4</property>
-                <property name="n_columns">5</property>
-                <child>
-                  <object class="GtkButton" id="calc_store_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the store value button">Store value</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_store_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the store value button">Store</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="popup_cb"/>
-                    <child>
-                      <object class="GtkHBox" id="hbox20">
-                        <property name="visible">True</property>
-                        <property name="spacing">3</property>
-                        <child>
-                          <object class="GtkLabel" id="label23">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes" comments="The label on the memory store button">&#x2192; R</property>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkArrow" id="arrow14">
-                            <property name="visible">True</property>
-                            <property name="arrow_type">down</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_recall_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the recall value button">Recall value</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_recall_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the recall value button">Recall</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="popup_cb"/>
-                    <child>
-                      <object class="GtkHBox" id="hbox19">
-                        <property name="visible">True</property>
-                        <property name="spacing">3</property>
-                        <child>
-                          <object class="GtkLabel" id="label22">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes" comments="The label on the memory recall button">&#x2190; R</property>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkArrow" id="arrow13">
-                            <property name="visible">True</property>
-                            <property name="arrow_type">down</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_pi_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the Pi button">Pi [Ctrl+P]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="pi_label">
-                        <property name="visible">True</property>
-                        <property name="label">&#x3C0;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_inverse_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the inverse button">Inverse [Ctrl+I]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_inverse_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the inverse button">Inverse</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="label20">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&#x2212;1&lt;/sup&gt;</property>
-                        <property name="use_markup">True</property>
-                        <property name="justify">center</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_root_button">
-                    <property name="label">&#x221A;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the root button">Root [Ctrl+S]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_x_pow_y_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the exponentiation (x to the power of y) button">Exponent [^ or **]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_x_pow_y_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the exponentiation (x to the power of y) button">Exponent</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="x_pow_y_label">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_logarithm_button">
-                    <property name="label">log</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the base 10 logarithm button">Base 10 logarithm</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_factor_button">
-                    <property name="label">fact</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the factorize button">Factorize into prime numbers (Ctrl+F)</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_factor_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorize button">Factorize</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="factorize_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_natural_logarithm_button">
-                    <property name="label">ln</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the natural logarithm button">Natural logarithm</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_eulers_number_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the Euler's number button">Euler's number</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="eulers_number_label">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;e&lt;/i&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_abs_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the absolute value button">Absolute value [|]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_abs_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the absolute value button">Absolute Value</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="label1">
-                        <property name="visible">True</property>
-                        <property name="label">|&lt;i&gt;x&lt;/i&gt;|</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_factorial_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the factorial button">Factorial [!]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_factorial_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorial button">Factorial</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="label14">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;x&lt;/i&gt;!</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_integer_portion_button">
-                    <property name="label">int</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the integer portion button">Integer portion</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_exponential_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the scientific exponent button">Scientific exponent [Ctrl+E]</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_exponential_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the scientific exponent button">Scientific Exponent</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="exponent_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="label2">
-                        <property name="visible">True</property>
-                        <property name="label">&#xD7;10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_fractional_portion_button">
-                    <property name="label">frac</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the fractional portion button">Fractional portion</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_imaginary_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="imaginary_label">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;i&lt;/i&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="subscript_togglebutton">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the subscript mode button">Subscript number mode [Alt+number]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="subscript_togglebutton-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the subscript mode button">Subscript</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="set_subscript_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="label4">
-                        <property name="visible">True</property>
-                        <property name="label">&#x2193;n</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="superscript_togglebutton">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the superscript mode button">Superscript number mode [Ctrl+number]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="superscript_togglebutton-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the superscript mode button">Superscript</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="set_superscript_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="label3">
-                        <property name="visible">True</property>
-                        <property name="label">&#x2191;n</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_ans_button">
-                    <property name="label">ans</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the answer variable button">Answer variable</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_modulus_divide_button">
-                    <property name="label">mod</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the modulus division button">Modulus divide</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">5</property>
-                <property name="right_attach">10</property>
-                <property name="top_attach">5</property>
-                <property name="bottom_attach">9</property>
-                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkTable" id="programming_panel">
-                <property name="visible">True</property>
-                <property name="n_rows">2</property>
-                <property name="n_columns">10</property>
-                <child>
-                  <object class="GtkButton" id="calc_13_button">
-                    <property name="label">D</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_14_button">
-                    <property name="label">E</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_15_button">
-                    <property name="label">F</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_10_button">
-                    <property name="label">A</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_11_button">
-                    <property name="label">B</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_12_button">
-                    <property name="label">C</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_and_button">
-                    <property name="label">AND</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the boolean AND button">Boolean AND</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_or_button">
-                    <property name="label">OR</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the boolean OR button">Boolean OR</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_not_button">
-                    <property name="label">NOT</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the boolean NOT button">Boolean NOT</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_xor_button">
-                    <property name="label">XOR</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the boolean exclusive OR button">Boolean exclusive OR</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_ones_complement_button">
-                    <property name="label">ones</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the ones' complement button">Ones' complement</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_twos_complement_button">
-                    <property name="label">twos</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the two's complement button">Two's complement</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_shift_right_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the shift right button">Shift right [&gt;]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_shift_right_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the shift right button">Shift Right</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="popup_cb"/>
-                    <child>
-                      <object class="GtkHBox" id="hbox10">
-                        <property name="visible">True</property>
-                        <property name="spacing">3</property>
-                        <child>
-                          <object class="GtkLabel" id="label6">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label">&gt;</property>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkArrow" id="arrow4">
-                            <property name="visible">True</property>
-                            <property name="arrow_type">down</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_shift_left_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the shift left button">Shift left [&lt;]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_shift_left_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the shift left button">Shift Left</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="popup_cb"/>
-                    <child>
-                      <object class="GtkHBox" id="hbox11">
-                        <property name="visible">True</property>
-                        <property name="spacing">3</property>
-                        <child>
-                          <object class="GtkLabel" id="label7">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label">&lt;</property>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkArrow" id="arrow5">
-                            <property name="visible">True</property>
-                            <property name="arrow_type">down</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_trunc_button">
-                    <property name="label">trunc</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the truncate button">Truncate value</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">9</property>
-                    <property name="right_attach">10</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_random_button">
-                    <property name="label">rand</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the random number button">Random number</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_base_2_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the base 2 button">Base 2 [Ctrl+B]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_base_2_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the base 2 button">Base 2</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="base_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="base_2_label">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_base_8_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the base 8 button">Base 8 [Ctrl+O]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_base_8_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the base 8 button">Base 8</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="base_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="base_8_label">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sub&gt;8&lt;/sub&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_base_16_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the base 16 button">Base 16 [Ctrl+H]</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_base_16_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the base 16 button">Base 16</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="base_cb"/>
-                    <child>
-                      <object class="GtkLabel" id="base_16_label">
-                        <property name="visible">True</property>
-                        <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sub&gt;16&lt;/sub&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_character_button">
-                    <property name="label">&#xE1;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the insert character button">Insert character</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" id="calc_character_button-atkobject">
-                        <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the insert character button">Insert Character</property>
-                      </object>
-                    </child>
-                    <signal name="clicked" handler="insert_ascii_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">9</property>
-                    <property name="right_attach">10</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="right_attach">10</property>
-                <property name="top_attach">3</property>
-                <property name="bottom_attach">5</property>
-                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkTable" id="si_panel">
-                <property name="n_columns">10</property>
-                <child>
-                  <object class="GtkButton" id="calc_si_kilo_button">
-                    <property name="label">k</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_milli_button">
-                    <property name="label">m</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_micro_button">
-                    <property name="label">&#xB5;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_mega_button">
-                    <property name="label">M</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_giga_button">
-                    <property name="label">G</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_peta_button">
-                    <property name="label">P</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_femto_button">
-                    <property name="label">f</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_pico_button">
-                    <property name="label">p</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_si_nano_button">
-                    <property name="label">n</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="right_attach">10</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkTable" id="scientific_panel">
-                <property name="visible">True</property>
-                <property name="n_columns">10</property>
-                <child>
-                  <object class="GtkButton" id="calc_tangent_button">
-                    <property name="label">tan</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the tangent button">Tangent</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_sine_button">
-                    <property name="label">sin</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the sine button">Sine</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_cosine_button">
-                    <property name="label">cos</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the cosine button">Cosine</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_hyperbolic_cosine_button">
-                    <property name="label">cosh</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the hyperbolic cosine button">Hyperbolic Cosine</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_hyperbolic_sine_button">
-                    <property name="label">sinh</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the hyperbolic sine button">Hyperbolic sine</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_hyperbolic_tangent_button">
-                    <property name="label">tanh</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="tooltip_text" translatable="yes" comments="Tooltip for the hyperbolic tangent button">Hyperbolic tangent</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="button_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="right_attach">10</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkTable" id="financial_panel">
-                <property name="visible">True</property>
-                <property name="n_rows">2</property>
-                <property name="n_columns">10</property>
-                <child>
-                  <object class="GtkButton" id="calc_finc_straight_line_depreciation_button">
-                    <property name="label" translatable="yes" comments="Calculates the straight-line depreciation of an asset for one period. The depreciable cost is cost - salvage. The straight-line method of depreciation divides the depreciable cost evenly over the useful life of an asset. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: http://en.wikipedia.org/wiki/Depreciation";>Sln</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">7</property>
-                    <property name="right_attach">8</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_periodic_interest_rate_button">
-                    <property name="label" translatable="yes" comments="Calculates the periodic interest necessary to increase an investment of present value pv to a future value of fv, over the number of compounding periods in term. See also: http://en.wikipedia.org/wiki/Interest                                      ">Rate</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">6</property>
-                    <property name="right_attach">7</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_present_value_button">
-                    <property name="label" translatable="yes" comments="Calculates the present value of an investment based on a series of equal payments, each of amount pmt, discounted at a periodic interest rate of int, over the number of payment periods in the term. See also: http://en.wikipedia.org/wiki/Present_value";>Pv</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">5</property>
-                    <property name="right_attach">6</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_periodic_payment_button">
-                    <property name="label" translatable="yes" comments="Calculates the amount of the periodic payment of a loan, where payments are made at the end of each payment period. See also: http://en.wikipedia.org/wiki/Amortization_schedule";>Pmt</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">4</property>
-                    <property name="right_attach">5</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_future_value_button">
-                    <property name="label" translatable="yes" comments="Calculates the future value of an investment based on a series of equal payments, each of amount pmt, at a periodic interest rate of int, over the number of payment periods in the term. See also: http://en.wikipedia.org/wiki/Future_value";>Fv</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_gross_profit_margin_button">
-                    <property name="label" translatable="yes" comments="Calculates the resale price of a product, based on the product cost and the wanted gross profit margin. See also: http://en.wikipedia.org/wiki/Gross_profit_margin";>Gpm</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="right_attach">4</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_double_declining_depreciation_button">
-                    <property name="label" translatable="yes" comments="Calculates the depreciation allowance on an asset for a specified period of time, using the double-declining balance method. See also: http://en.wikipedia.org/wiki/Depreciation";>Ddb</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_compounding_term_button">
-                    <property name="label" translatable="yes" comments="Calculates the number of compounding periods necessary to increase an investment of present value pv to a future value of fv, at a fixed interest rate of int per compounding period. See also: http://en.wikipedia.org/wiki/Compound_interest";>Ctrm</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_sum_of_the_years_digits_depreciation_button">
-                    <property name="label" translatable="yes" comments="Calculates the depreciation allowance on an asset for a specified period of time, using the Sum-Of-The-Years'-Digits method. This method of depreciation accelerates the rate of depreciation, so that more depreciation expense occurs in earlier periods than in later ones. The depreciable cost is cost - salvage. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: http://en.wikipedia.org/wiki/Depreciation";>Syd</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">8</property>
-                    <property name="right_attach">9</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_finc_term_button">
-                    <property name="label" translatable="yes" comments="Calculates the number of payment periods that are necessary during the term of an ordinary annuity, to accumulate a future value of fv, at a periodic interest rate of int. Each payment is equal to amount pmt. See also: http://en.wikipedia.org/wiki/Annuity_(finance_theory)">Term</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="use_underline">True</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="finc_cb"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">9</property>
-                    <property name="right_attach">10</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="calc_currency_button">
-                    <property name="label" translatable="yes" comments="The label on the currency button">&#xA4;$&#x20AC;</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="border_width">3</property>
-                    <property name="focus_on_click">False</property>
-                    <signal name="clicked" handler="currency_cb"/>
-                  </object>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                    <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="right_attach">10</property>
-                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">3</property>
-          </packing>
-        </child>
       </object>
     </child>
   </object>
diff --git a/src/gtk.c b/src/gtk.c
index b5ac776..d6ffef4 100644
--- a/src/gtk.c
+++ b/src/gtk.c
@@ -47,6 +47,8 @@ static const char *mode_names[] = { "BASIC", "ADVANCED", "FINANCIAL",
 typedef struct {
     const char *widget_name;
     const char *data;
+/*    const char *colour;
+    int alpha;*/
 } ButtonData;
 
 static ButtonData button_data[] = {
@@ -105,22 +107,20 @@ static char *finc_dialog_fields[][5] = {
     {NULL,        NULL,          NULL,         NULL,         NULL}
 };
 
-#define UI_FILE         UI_DIR "/gcalctool.ui"
-#define UI_FINC_FILE    UI_DIR "/financial.ui"
-#define UI_DIALOGS_FILE UI_DIR "/dialogs.ui"
+#define UI_FILE             UI_DIR "/gcalctool.ui"
+#define UI_FINC_FILE        UI_DIR "/financial.ui"
+#define UI_DIALOGS_FILE     UI_DIR "/dialogs.ui"
+#define UI_BASIC_FILE       UI_DIR "/buttons-basic.ui"
+#define UI_ADVANCED_FILE    UI_DIR "/buttons-advanced.ui"
+#define UI_FINANCIAL_FILE   UI_DIR "/buttons-financial.ui"
+#define UI_PROGRAMMING_FILE UI_DIR "/buttons-programming.ui"
 
 #define MAXBITS 64      /* Bit panel: number of bit fields. */
 
-#define GET_OBJECT(name) \
-          gtk_builder_get_object(X.ui, (name))
-#define GET_WIDGET(name) \
-          GTK_WIDGET(GET_OBJECT((name)))
-#define GET_FINC_WIDGET(name) \
-          GTK_WIDGET(gtk_builder_get_object(X.financial, (name)))
-#define GET_DIALOG_OBJECT(name) \
-          gtk_builder_get_object(X.dialogs, (name))
-#define GET_DIALOG_WIDGET(name) \
-          GTK_WIDGET(gtk_builder_get_object(X.dialogs, (name)))
+#define GET_OBJECT(ui, name) \
+          gtk_builder_get_object((ui), (name))
+#define GET_WIDGET(ui, name) \
+          GTK_WIDGET(GET_OBJECT(ui, name))
 
 /* Calculator modes. */
 typedef enum {
@@ -130,18 +130,24 @@ typedef enum {
     PROGRAMMING
 } ModeType;
 
+typedef enum {
+    NORMAL,
+    SUPERSCRIPT,
+    SUBSCRIPT
+} NumberMode;
+
 /* Gtk+/Xlib graphics object. */
 typedef struct {
     ModeType mode;  /* Current calculator mode. */
+    NumberMode number_mode;
 
     GtkBuilder *ui;
-    GtkBuilder *dialogs;
+    GtkBuilder *dialog_ui;
     GtkBuilder *financial;
+    GtkBuilder *basic_ui, *advanced_ui, *financial_ui, *programming_ui;
 
     GtkWidget *main_window;
 
-    GtkWidget *menubar; // FIXME: Why is this needed?
-
     GtkWidget *bit_panel;
     GtkWidget *bit_labels[MAXBITS];
 
@@ -153,14 +159,14 @@ typedef struct {
     GtkTextBuffer *info_buffer;        /* Buffer used in info messages */
     GtkWidget *scrolledwindow;         /* Scrolled window for display_item. */
 
+    GtkWidget *button_vbox;
     GtkWidget *bas_panel;      /* Panel containing basic mode widgets. */
     GtkWidget *adv_panel;      /* Panel containing advanced mode widgets. */
     GtkWidget *fin_panel;      /* Panel containing financial mode widgets. */
-    GtkWidget *sci_panel;      /* Panel containing scientific mode widgets. */
     GtkWidget *prog_panel;     /* Panel containing programming mode widgets. */
 
-    GtkWidget *superscript_toggle;
-    GtkWidget *subscript_toggle;
+    GList *superscript_toggles;
+    GList *subscript_toggles;
 
     gboolean can_super_minus;
 
@@ -235,12 +241,18 @@ static void load_ui(GtkBuilder *ui, const gchar *filename)
 
 static void set_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, const gpointer value)
 {
-    g_object_set_data(gtk_builder_get_object(ui, object_name), name, value);
+    GObject *object;  
+    object = gtk_builder_get_object(ui, object_name);
+    if (object)
+        g_object_set_data(object, name, value);
 }
 
 static void set_string_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, const char *value)
 {
-    g_object_set_data(gtk_builder_get_object(ui, object_name), name, (gpointer)value); // FIXME: Copy?
+    GObject *object;
+    object = gtk_builder_get_object(ui, object_name);
+    if (object)
+        g_object_set_data(object, name, (gpointer)value); // FIXME: Copy?
 }
 
 static void set_int_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, gint value)
@@ -325,8 +337,8 @@ position_popup(GtkWidget *base, GtkWidget *popup,
 void
 ui_set_undo_enabled(gboolean undo, gboolean redo)
 {
-//    gtk_widget_set_sensitive(GET_WIDGET("undo_menu"), undo);
-//    gtk_widget_set_sensitive(GET_WIDGET("redo_menu"), redo);
+//    gtk_widget_set_sensitive(GET_WIDGET(X.ui, "undo_menu"), undo);
+//    gtk_widget_set_sensitive(GET_WIDGET(X.ui, "redo_menu"), redo);
 }
 
 
@@ -344,6 +356,9 @@ ui_set_bitfield(int enabled, guint64 bits)
 {
     int i;
     const gchar *label;
+  
+    if (!X.bit_panel)
+       return;
 
     gtk_widget_set_sensitive(X.bit_panel, enabled);
 
@@ -358,6 +373,23 @@ ui_set_bitfield(int enabled, guint64 bits)
 
 
 static void
+set_number_mode(NumberMode mode)
+{
+    GList *i;
+
+    X.number_mode = mode;
+    for (i = X.superscript_toggles; i; i = i->next) {
+        GtkWidget *widget = i->data;
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), mode == SUPERSCRIPT);
+    }
+    for (i = X.subscript_toggles; i; i = i->next) {
+        GtkWidget *widget = i->data;
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), mode == SUBSCRIPT);
+    }
+}
+
+
+static void
 do_button(int function, gpointer arg)
 {
     GtkTextIter start, end;
@@ -371,8 +403,7 @@ do_button(int function, gpointer arg)
     if (function == FN_CALCULATE ||
         function == FN_CLEAR ||
         (function == FN_TEXT && strstr("â?»â?°Â¹Â²Â³â?´â?µâ?¶â?·â?¸â?¹â??â??â??â??â??â??â??â??â??â??", (char *)arg) == NULL)) {
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.subscript_toggle), FALSE);
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.superscript_toggle), FALSE);
+        set_number_mode(NORMAL);
     }
 
     if(gtk_text_buffer_get_selection_bounds(X.display_buffer, &start, &end)) {
@@ -415,43 +446,295 @@ do_finc(char* dialog)
 {
     if (X.financial == NULL)
         setup_finc_dialogs();
-    gtk_dialog_run(GTK_DIALOG(GET_FINC_WIDGET(dialog)));
-    gtk_widget_hide(GTK_WIDGET(GET_FINC_WIDGET(dialog)));
+    gtk_dialog_run(GTK_DIALOG(GET_WIDGET(X.financial, dialog)));
+    gtk_widget_hide(GTK_WIDGET(GET_WIDGET(X.financial, dialog)));
 }
 
+
+static GtkWidget *
+get_buttons(ModeType mode)
+{
+    switch (mode) {
+    case BASIC:
+        return X.bas_panel;
+    case ADVANCED:
+        return X.adv_panel;
+    case FINANCIAL:
+        return X.fin_panel;
+    case PROGRAMMING:
+        return X.prog_panel;
+    }
+}
+
+
+static void
+set_tint (GtkWidget *widget, GdkColor *tint, gint alpha)
+{
+    GtkStyle *style;
+    int j;
+  
+    if (!widget)
+      return;
+
+    style = gtk_widget_get_style(widget);
+  
+    for (j = 0; j < 5; j++) {
+        GdkColor color;
+
+        color.red = (style->bg[j].red * (10 - alpha) + tint->red * alpha) / 10;
+        color.green = (style->bg[j].green * (10 - alpha) + tint->green * alpha) / 10;
+        color.blue = (style->bg[j].blue * (10 - alpha) + tint->blue * alpha) / 10;
+        gdk_colormap_alloc_color(gdk_colormap_get_system(), &color, FALSE, TRUE);
+        gtk_widget_modify_bg(widget, j, &color);
+    }
+}
+
+
+static void
+load_mode(ModeType mode)
+{
+    GtkBuilder *ui, **ui_ptr;
+    gint i;
+    gchar name[MAXLINE];
+    GdkColor colour_numbers, colour_action, colour_operator, colour_function, colour_memory, colour_trig, colour_group;
+    const gchar *ui_file;
+    gchar *objects[] = { "button_panel", NULL };
+    GtkWidget *widget, **panel;
+
+    colour_numbers.red = 0;
+    colour_numbers.green = 0;
+    colour_numbers.blue = 65535;
+    colour_action.red = 0;
+    colour_action.green = 65535;
+    colour_action.blue = 0;
+    colour_operator.red = 65535;
+    colour_operator.green = 0;
+    colour_operator.blue = 0;
+    colour_function.red = 0;
+    colour_function.green = 65535;
+    colour_function.blue = 65535;
+    colour_memory.red = 65535;
+    colour_memory.green = 0;
+    colour_memory.blue = 65535;
+    colour_trig.red = 65535;
+    colour_trig.green = 65535;
+    colour_trig.blue = 0;
+    colour_group.red = 65535;
+    colour_group.green = 65535;
+    colour_group.blue = 65535;
+  
+    switch (mode) {
+    case BASIC:
+        ui_ptr = &X.basic_ui;
+        ui_file = UI_BASIC_FILE;
+        panel = &X.bas_panel;
+        break;
+    case ADVANCED:
+        ui_ptr = &X.advanced_ui;
+        ui_file = UI_ADVANCED_FILE;
+        panel = &X.adv_panel;
+        break;
+    case FINANCIAL:
+        ui_ptr = &X.financial_ui;
+        ui_file = UI_FINANCIAL_FILE;
+        panel = &X.fin_panel;
+        break;
+    case PROGRAMMING:
+        ui_ptr = &X.programming_ui;
+        ui_file = UI_PROGRAMMING_FILE;
+        panel = &X.prog_panel;
+        break;
+    }
+
+    ui = *ui_ptr = gtk_builder_new();
+    // FIXME: Show dialog if failed to load
+    gtk_builder_add_objects_from_file(ui, ui_file, objects, NULL);
+    *panel = GET_WIDGET(ui, "button_panel");
+    gtk_box_pack_end(GTK_BOX(X.button_vbox), *panel, FALSE, TRUE, 0);
+    gtk_widget_realize(*panel);
+
+    /* Connect text to buttons */
+    for (i = 0; button_data[i].widget_name != NULL; i++) {
+        SNPRINTF(name, MAXLINE, "calc_%s_button", button_data[i].widget_name);
+        set_string_data(ui, name, "calc_text", button_data[i].data);
+    }
+
+    /* Localize buttons */
+    for (i = 0; i < 16; i++) {
+        GtkWidget *button;
+
+        SNPRINTF(name, MAXLINE, "calc_%d_button", i);
+        button = GET_WIDGET(ui, name);
+      
+        if (button) {
+            gtk_button_set_label(GTK_BUTTON(button), v->digits[i]);
+            set_string_data(ui, name, "calc_text", v->digits[i]);
+        }
+    }
+    widget = GET_WIDGET(ui, "calc_numeric_point_button");
+    if (widget)
+        gtk_button_set_label(GTK_BUTTON(widget), v->radix);
+
+    /* Connect super and subscript */
+    for (i = 0; i < 10; i++) {
+        SNPRINTF(name, MAXLINE, "calc_%d_button", i);
+        set_string_data(ui, name, "calc_subscript_text", subscript_digits[i]);
+        set_string_data(ui, name, "calc_superscript_text", superscript_digits[i]);
+        set_tint(GET_WIDGET(ui, name), &colour_numbers, 1);
+    }
+  
+    widget = GET_WIDGET(ui, "superscript_togglebutton");
+    if (widget) {
+        X.superscript_toggles = g_list_append(X.superscript_toggles, widget);
+        if (X.number_mode == SUPERSCRIPT)
+            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
+    }
+    widget = GET_WIDGET(ui, "subscript_togglebutton");
+    if (widget) {
+        X.subscript_toggles = g_list_append(X.subscript_toggles, widget);
+        if (X.number_mode == SUBSCRIPT)
+            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
+    }
+
+    set_tint(GET_WIDGET(ui, "calc_10_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_11_button"), &colour_numbers, 1);  
+    set_tint(GET_WIDGET(ui, "calc_12_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_13_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_14_button"), &colour_numbers, 1);  
+    set_tint(GET_WIDGET(ui, "calc_15_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_imaginary_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_pi_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_eulers_number_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_numeric_point_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_percentage_button"), &colour_numbers, 2);
+    set_tint(GET_WIDGET(ui, "subscript_togglebutton"), &colour_numbers, 2);  
+    set_tint(GET_WIDGET(ui, "superscript_togglebutton"), &colour_numbers, 2);
+    set_tint(GET_WIDGET(ui, "calc_exponential_button"), &colour_numbers, 2);
+    set_tint(GET_WIDGET(ui, "calc_base_2_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_base_8_button"), &colour_numbers, 1);
+    set_tint(GET_WIDGET(ui, "calc_base_16_button"), &colour_numbers, 1);
+
+    set_tint(GET_WIDGET(ui, "calc_result_button"), &colour_action, 2);
+    set_tint(GET_WIDGET(ui, "calc_factor_button"), &colour_action, 2);
+    set_tint(GET_WIDGET(ui, "calc_clear_button"), &colour_action, 1); // Different colour?
+    set_tint(GET_WIDGET(ui, "calc_trunc_button"), &colour_action, 1);
+    set_tint(GET_WIDGET(ui, "calc_shift_left_button"), &colour_action, 1);
+    set_tint(GET_WIDGET(ui, "calc_shift_right_button"), &colour_action, 1);
+  
+    set_tint(GET_WIDGET(ui, "calc_add_button"), &colour_operator, 1);
+    set_tint(GET_WIDGET(ui, "calc_subtract_button"), &colour_operator, 1);  
+    set_tint(GET_WIDGET(ui, "calc_multiply_button"), &colour_operator, 1);
+    set_tint(GET_WIDGET(ui, "calc_divide_button"), &colour_operator, 1);
+    set_tint(GET_WIDGET(ui, "calc_modulus_divide_button"), &colour_operator, 1);
+    set_tint(GET_WIDGET(ui, "calc_and_button"), &colour_operator, 1);  
+    set_tint(GET_WIDGET(ui, "calc_or_button"), &colour_operator, 1);  
+    set_tint(GET_WIDGET(ui, "calc_xor_button"), &colour_operator, 1);  
+
+    set_tint(GET_WIDGET(ui, "calc_cosine_button"), &colour_trig, 1);
+    set_tint(GET_WIDGET(ui, "calc_sine_button"), &colour_trig, 1);
+    set_tint(GET_WIDGET(ui, "calc_tangent_button"), &colour_trig, 1);
+    set_tint(GET_WIDGET(ui, "calc_hyperbolic_cosine_button"), &colour_trig, 1);
+    set_tint(GET_WIDGET(ui, "calc_hyperbolic_sine_button"), &colour_trig, 1);
+    set_tint(GET_WIDGET(ui, "calc_hyperbolic_tangent_button"), &colour_trig, 1);
+
+    set_tint(GET_WIDGET(ui, "calc_start_group_button"), &colour_group, 1);
+    set_tint(GET_WIDGET(ui, "calc_end_group_button"), &colour_group, 1);
+    set_tint(GET_WIDGET(ui, "calc_store_button"), &colour_memory, 1);
+    set_tint(GET_WIDGET(ui, "calc_recall_button"), &colour_memory, 1);
+    set_tint(GET_WIDGET(ui, "calc_ans_button"), &colour_memory, 1);
+    set_tint(GET_WIDGET(ui, "calc_random_button"), &colour_memory, 1);
+    set_tint(GET_WIDGET(ui, "calc_character_button"), &colour_memory, 1);
+
+    set_tint(GET_WIDGET(ui, "calc_integer_portion_button"), &colour_function, 1);
+    set_tint(GET_WIDGET(ui, "calc_fractional_portion_button"), &colour_function, 1);
+    set_tint(GET_WIDGET(ui, "calc_x_pow_y_button"), &colour_function, 1);  
+    set_tint(GET_WIDGET(ui, "calc_factorial_button"), &colour_function, 1);  
+    set_tint(GET_WIDGET(ui, "calc_root_button"), &colour_function, 1);  
+    set_tint(GET_WIDGET(ui, "calc_abs_button"), &colour_function, 1);  
+    set_tint(GET_WIDGET(ui, "calc_inverse_button"), &colour_function, 1);  
+    set_tint(GET_WIDGET(ui, "calc_logarithm_button"), &colour_function, 1);  
+    set_tint(GET_WIDGET(ui, "calc_natural_logarithm_button"), &colour_function, 1);
+    set_tint(GET_WIDGET(ui, "calc_ones_complement_button"), &colour_function, 1);
+    set_tint(GET_WIDGET(ui, "calc_twos_complement_button"), &colour_function, 1);
+    set_tint(GET_WIDGET(ui, "calc_not_button"), &colour_function, 1);  
+//    set_tint(GET_WIDGET(ui, "calc__button"), &colour_function, 1);
+  
+    /* Set base button data */
+    set_int_data(ui, "calc_base_2_button", "base", 2);
+    set_int_data(ui, "calc_base_8_button", "base", 8);
+    set_int_data(ui, "calc_base_16_button", "base", 16);
+
+    /* Connect menus to popup buttons */
+    set_data(ui, "calc_shift_left_button", "calc_menu", GET_WIDGET(ui, "left_shift_popup"));
+    set_data(ui, "calc_shift_right_button", "calc_menu", GET_WIDGET(ui, "right_shift_popup"));
+    set_data(ui, "calc_store_button", "calc_menu", GET_WIDGET(ui, "memory_store_popup"));
+    set_data(ui, "calc_recall_button", "calc_menu", GET_WIDGET(ui, "memory_recall_popup"));
+
+    /* Load bit panel */
+    if (mode == PROGRAMMING) {
+        for (i = 0; i < MAXBITS; i++) {
+            SNPRINTF(name, MAXLINE, "bit_label_%d", i);
+            X.bit_labels[i] = GET_WIDGET(ui, name);
+            SNPRINTF(name, MAXLINE, "bit_eventbox_%d", i);
+            set_int_data(ui, name, "bit_index", i);
+        }
+    }
+
+    /* Setup financial functions */
+    if (mode == FINANCIAL) {
+        set_data(ui, "calc_finc_compounding_term_button", "finc_dialog", "ctrm_dialog");
+        set_data(ui, "calc_finc_double_declining_depreciation_button", "finc_dialog", "ddb_dialog");
+        set_data(ui, "calc_finc_future_value_button", "finc_dialog", "fv_dialog");
+        set_data(ui, "calc_finc_gross_profit_margin_button", "finc_dialog", "gpm_dialog");
+        set_data(ui, "calc_finc_periodic_payment_button", "finc_dialog", "pmt_dialog");
+        set_data(ui, "calc_finc_present_value_button", "finc_dialog", "pv_dialog");
+        set_data(ui, "calc_finc_periodic_interest_rate_button", "finc_dialog", "rate_dialog");
+        set_data(ui, "calc_finc_straight_line_depreciation_button", "finc_dialog", "sln_dialog");
+        set_data(ui, "calc_finc_sum_of_the_years_digits_depreciation_button", "finc_dialog", "syd_dialog");
+        set_data(ui, "calc_finc_term_button", "finc_dialog", "term_dialog");
+    }
+
+    gtk_builder_connect_signals(ui, NULL);
+}
+
+    
 static void
 ui_set_mode(ModeType mode)
 {
     GtkWidget *menu;
+    ModeType old_mode;
 
+    old_mode = X.mode;
     X.mode = mode;
 
     /* Save mode */
     set_enumerated_resource(R_MODE, mode_names, (int)mode);
 
-    /* Show/enable the widgets used in this mode */
-    g_object_set(G_OBJECT(X.adv_panel), "visible", mode != BASIC, NULL);
-    g_object_set(G_OBJECT(X.fin_panel), "visible", mode == FINANCIAL, NULL);
-    g_object_set(G_OBJECT(X.sci_panel), "visible", mode == ADVANCED, NULL);
-    g_object_set(G_OBJECT(X.prog_panel), "visible", mode == PROGRAMMING, NULL);
-    g_object_set(G_OBJECT(X.bit_panel), "visible", mode == PROGRAMMING, NULL);
+    /* Hide the existing mode */
+    if (get_buttons(old_mode))
+        gtk_widget_hide(get_buttons(old_mode));
+  
+    /* Create the new mode if necessary */
+    if (!get_buttons(mode))
+        load_mode(mode);
+    gtk_widget_show(get_buttons(mode));
 
     /* Update the menu */
     switch (mode) {
         case BASIC:
-            menu = GET_WIDGET("view_basic_menu");
+            menu = GET_WIDGET(X.ui, "view_basic_menu");
             break;
 
         case ADVANCED:
-            menu = GET_WIDGET("view_advanced_menu");
+            menu = GET_WIDGET(X.ui, "view_advanced_menu");
             break;
 
         case FINANCIAL:
-            menu = GET_WIDGET("view_financial_menu");
+            menu = GET_WIDGET(X.ui, "view_financial_menu");
             break;
 
         case PROGRAMMING:
-            menu = GET_WIDGET("view_programming_menu");
+            menu = GET_WIDGET(X.ui, "view_programming_menu");
             break;
 
         default:
@@ -583,7 +866,7 @@ set_combo_box_from_config(const gchar *name, const gchar *key_name, GType key_ty
     GtkTreeIter iter;
     gboolean valid;
 
-    combo = GET_DIALOG_WIDGET(name);
+    combo = GET_WIDGET(X.dialog_ui, name);
     model = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
     valid = gtk_tree_model_get_iter_first(model, &iter);
 
@@ -643,33 +926,33 @@ create_dialogs()
     gchar *string, **tokens;
     int value;
   
-    if (X.dialogs)
+    if (X.dialog_ui)
         return;
   
-    X.dialogs = gtk_builder_new();
-    load_ui(X.dialogs, UI_DIALOGS_FILE);
+    X.dialog_ui = gtk_builder_new();
+    load_ui(X.dialog_ui, UI_DIALOGS_FILE);
 
-    X.ascii_dialog = GET_DIALOG_WIDGET("ascii_dialog");
-    X.ascii_entry = GET_DIALOG_WIDGET("ascii_entry");
+    X.ascii_dialog = GET_WIDGET(X.dialog_ui, "ascii_dialog");
+    X.ascii_entry = GET_WIDGET(X.dialog_ui, "ascii_entry");
 
     /* Make dialogs transient of the main window */
     gtk_window_set_transient_for(GTK_WINDOW(X.ascii_dialog), GTK_WINDOW(X.main_window));
 
-    X.preferences_dialog = GET_DIALOG_WIDGET("preferences_dialog");
+    X.preferences_dialog = GET_WIDGET(X.dialog_ui, "preferences_dialog");
 
     /* Configuration dialog */
 
-    widget = GET_DIALOG_WIDGET("angle_unit_combobox");
+    widget = GET_WIDGET(X.dialog_ui, "angle_unit_combobox");
     renderer = gtk_cell_renderer_text_new();
     gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), renderer, TRUE);
     gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(widget), renderer, "text", 0);
 
-    widget = GET_DIALOG_WIDGET("display_format_combobox");
+    widget = GET_WIDGET(X.dialog_ui, "display_format_combobox");
     renderer = gtk_cell_renderer_text_new();
     gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), renderer, TRUE);
     gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(widget), renderer, "text", 0);
 
-    widget = GET_DIALOG_WIDGET("word_size_combobox");
+    widget = GET_WIDGET(X.dialog_ui, "word_size_combobox");
     renderer = gtk_cell_renderer_text_new();
     gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), renderer, TRUE);
     gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(widget), renderer, "text", 0);
@@ -677,7 +960,7 @@ create_dialogs()
     /* Label used in preferences dialog.  The %d is replaced by a spinbutton */
     string = _("Show %d decimal _places");
     tokens = g_strsplit(string, "%d", 2);
-    widget = GET_DIALOG_WIDGET("decimal_places_label1");
+    widget = GET_WIDGET(X.dialog_ui, "decimal_places_label1");
     if (tokens[0])
         string = g_strstrip(tokens[0]);
     else
@@ -687,7 +970,7 @@ create_dialogs()
     else
         gtk_widget_hide(widget);
 
-    widget = GET_DIALOG_WIDGET("decimal_places_label2");
+    widget = GET_WIDGET(X.dialog_ui, "decimal_places_label2");
     if (tokens[0] && tokens[1])
         string = g_strstrip(tokens[1]);
     else
@@ -705,17 +988,17 @@ create_dialogs()
 
     if (!get_int_resource(R_ACCURACY, &value))
         value = 9;
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(GET_DIALOG_OBJECT("decimal_places_spin")), value);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(GET_OBJECT(X.dialog_ui, "decimal_places_spin")), value);
 
     if (!get_boolean_resource(R_TSEP, &value))
         value = FALSE;
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(GET_DIALOG_OBJECT("thousands_separator_check")), value);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(GET_OBJECT(X.dialog_ui, "thousands_separator_check")), value);
 
     if (!get_boolean_resource(R_ZEROES, &value))
         value = FALSE;
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(GET_DIALOG_OBJECT("trailing_zeroes_check")), value);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(GET_OBJECT(X.dialog_ui, "trailing_zeroes_check")), value);
 
-    gtk_builder_connect_signals(X.dialogs, NULL);
+    gtk_builder_connect_signals(X.dialog_ui, NULL);
 }
 
 
@@ -815,7 +1098,7 @@ finc_activate_cb(GtkWidget *widget) {
     }
     else {
         GtkWidget *next_widget;
-        next_widget = GET_FINC_WIDGET(finc_dialog_fields[dialog][field+1]);
+        next_widget = GET_WIDGET(X.financial, finc_dialog_fields[dialog][field+1]);
         gtk_widget_grab_focus(next_widget);
     }
 }
@@ -839,12 +1122,12 @@ finc_response_cb(GtkWidget *widget, gint response_id)
         if (finc_dialog_fields[dialog][i] == NULL) {
             continue;
         }
-        entry = GET_FINC_WIDGET(finc_dialog_fields[dialog][i]);
+        entry = GET_WIDGET(X.financial, finc_dialog_fields[dialog][i]);
         // FIXME: Have to delocalize the input
         mp_set_from_string(gtk_entry_get_text(GTK_ENTRY(entry)), &arg[i]);
         gtk_entry_set_text(GTK_ENTRY(entry), "0");
     }
-    gtk_widget_grab_focus(GET_FINC_WIDGET(finc_dialog_fields[dialog][0]));
+    gtk_widget_grab_focus(GET_WIDGET(X.financial, finc_dialog_fields[dialog][0]));
 
     do_finc_expression(dialog, &arg[0], &arg[1], &arg[2], &arg[3]);
 }
@@ -951,10 +1234,13 @@ set_superscript_cb(GtkWidget *widget)
 {
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
        X.can_super_minus = TRUE;
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.subscript_toggle), FALSE);
+       set_number_mode(SUPERSCRIPT);
     }
-    else
+    else {
        X.can_super_minus = FALSE;
+       if (X.number_mode == SUPERSCRIPT)
+           set_number_mode(NORMAL);
+    }
 }
 
 
@@ -963,7 +1249,9 @@ void
 set_subscript_cb(GtkWidget *widget)
 {
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.superscript_toggle), FALSE);
+       set_number_mode(SUBSCRIPT);
+    else if (X.number_mode == SUBSCRIPT)
+       set_number_mode(NORMAL);
 }
 
 
@@ -1267,9 +1555,9 @@ G_MODULE_EXPORT
 void
 digit_cb(GtkWidget *widget, GdkEventButton *event)
 {
-    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X.superscript_toggle)))
+    if (X.number_mode == SUPERSCRIPT)
         do_text(g_object_get_data(G_OBJECT(widget), "calc_superscript_text"));
-    else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X.subscript_toggle)))
+    else if (X.number_mode == SUBSCRIPT)
         do_text(g_object_get_data(G_OBJECT(widget), "calc_subscript_text"));
     else
         do_text(g_object_get_data(G_OBJECT(widget), "calc_text"));
@@ -1308,7 +1596,7 @@ static void
 do_exponent()
 {
     do_text("Ã?10");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.superscript_toggle), TRUE);
+    set_number_mode(SUPERSCRIPT);
 }
 
 
@@ -1321,7 +1609,7 @@ do_subtract()
     }
     else {
         do_text("â??");
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.superscript_toggle), FALSE);
+        set_number_mode(NORMAL);
     }
 }
 
@@ -1424,8 +1712,7 @@ main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
             return TRUE;
         }
     }
-    if (state == GDK_CONTROL_MASK ||
-        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X.superscript_toggle))) {
+    if (state == GDK_CONTROL_MASK || X.number_mode == SUPERSCRIPT) {
         switch(event->keyval)
         {
         case GDK_0:
@@ -1460,8 +1747,7 @@ main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
             return TRUE;
         }
     }
-    else if (state == GDK_MOD1_MASK ||
-             gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X.subscript_toggle))) {
+    else if (state == GDK_MOD1_MASK || X.number_mode == SUBSCRIPT) {
         switch(event->keyval)
         {
         case GDK_0:
@@ -1564,10 +1850,10 @@ main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
     switch(*event->string)
     {
     case '<':
-        popup_cb(GET_WIDGET("calc_shift_left_button"), NULL);
+        popup_cb(GET_WIDGET(X.ui, "calc_shift_left_button"), NULL);
         return TRUE;
     case '>':
-        popup_cb(GET_WIDGET("calc_shift_right_button"), NULL);
+        popup_cb(GET_WIDGET(X.ui, "calc_shift_right_button"), NULL);
         return TRUE;
     case '\n':
         do_button(FN_CALCULATE, NULL);
@@ -1596,8 +1882,8 @@ edit_cb(GtkWidget *widget)
     can_paste = gtk_clipboard_wait_is_text_available(
                             gtk_clipboard_get(X.clipboard_atom));
 
-    gtk_widget_set_sensitive(GET_WIDGET("copy_menu"), can_copy);
-    gtk_widget_set_sensitive(GET_WIDGET("paste_menu"), can_paste);
+    gtk_widget_set_sensitive(GET_WIDGET(X.ui, "copy_menu"), can_copy);
+    gtk_widget_set_sensitive(GET_WIDGET(X.ui, "paste_menu"), can_paste);
 }
 
 
@@ -1761,23 +2047,6 @@ preferences_dialog_delete_cb(GtkWidget *widget)
 
 
 static void
-set_tint (GtkWidget *widget, GdkColor *tint, gint alpha)
-{
-    GtkStyle *style = gtk_widget_get_style(widget);
-    int j;
-  
-    for (j = 0; j < 5; j++) {
-        GdkColor color;
-
-        color.red = (style->bg[j].red * (10 - alpha) + tint->red * alpha) / 10;
-        color.green = (style->bg[j].green * (10 - alpha) + tint->green * alpha) / 10;
-        color.blue = (style->bg[j].blue * (10 - alpha) + tint->blue * alpha) / 10;
-        gdk_colormap_alloc_color(gdk_colormap_get_system(), &color, FALSE, TRUE);
-        gtk_widget_modify_bg(widget, j, &color);
-    }
-}
-
-static void
 create_main_window()
 {
     int i;
@@ -1785,7 +2054,6 @@ create_main_window()
     GtkWidget *widget;
     PangoFontDescription *font_desc;
     GtkCellRenderer *renderer;
-    GdkColor colour_numbers, colour_action, colour_operator, colour_function, colour_memory, colour_trig, colour_group;
 
     X.ui = gtk_builder_new();
     load_ui(X.ui, UI_FILE);
@@ -1793,160 +2061,25 @@ create_main_window()
 
     X.clipboard_atom   = gdk_atom_intern("CLIPBOARD", FALSE);
     X.primary_atom     = gdk_atom_intern("PRIMARY", FALSE);
-    X.main_window      = GET_WIDGET("calc_window");
-    X.menubar          = GET_WIDGET("menubar");
-    X.scrolledwindow   = GET_WIDGET("display_scroll"),
-    X.display_item     = GET_WIDGET("displayitem"),
-    X.bas_panel        = GET_WIDGET("basic_panel");
-    X.sci_panel        = GET_WIDGET("scientific_panel");
-    X.prog_panel       = GET_WIDGET("programming_panel");
-    X.adv_panel        = GET_WIDGET("advanced_panel");
-    X.fin_panel        = GET_WIDGET("financial_panel");
-    X.bit_panel        = GET_WIDGET("bit_panel");
-    X.superscript_toggle = GET_WIDGET("superscript_togglebutton");
-    X.subscript_toggle   = GET_WIDGET("subscript_togglebutton");
-    X.info_buffer = GTK_TEXT_BUFFER(GET_OBJECT("info_buffer"));
-
-    /* Connect text to buttons */
-    for (i = 0; button_data[i].widget_name != NULL; i++) {
-        SNPRINTF(name, MAXLINE, "calc_%s_button", button_data[i].widget_name);
-        set_string_data(X.ui, name, "calc_text", button_data[i].data);
-    }
-
-    /* Localize buttons */
-    for (i = 0; i < 16; i++) {
-        SNPRINTF(name, MAXLINE, "calc_%d_button", i);
-        gtk_button_set_label(GTK_BUTTON(GET_OBJECT(name)), v->digits[i]);
-        set_string_data(X.ui, name, "calc_text", v->digits[i]);
-    }
-    gtk_button_set_label(GTK_BUTTON(GET_OBJECT("calc_numeric_point_button")), v->radix);
-  
-    colour_numbers.red = 0;
-    colour_numbers.green = 0;
-    colour_numbers.blue = 65535;
-    colour_action.red = 0;
-    colour_action.green = 65535;
-    colour_action.blue = 0;
-    colour_operator.red = 65535;
-    colour_operator.green = 0;
-    colour_operator.blue = 0;
-    colour_function.red = 0;
-    colour_function.green = 65535;
-    colour_function.blue = 65535;
-    colour_memory.red = 65535;
-    colour_memory.green = 0;
-    colour_memory.blue = 65535;
-    colour_trig.red = 65535;
-    colour_trig.green = 65535;
-    colour_trig.blue = 0;
-    colour_group.red = 65535;
-    colour_group.green = 65535;
-    colour_group.blue = 65535;
-
-    /* Connect super and subscript */
-    for (i = 0; i < 10; i++) {
-        SNPRINTF(name, MAXLINE, "calc_%d_button", i);
-        set_string_data(X.ui, name, "calc_subscript_text", subscript_digits[i]);
-        set_string_data(X.ui, name, "calc_superscript_text", superscript_digits[i]);
-        set_tint(GET_WIDGET(name), &colour_numbers, 1);
-    }
-  
-    set_tint(GET_WIDGET("calc_10_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_11_button"), &colour_numbers, 1);  
-    set_tint(GET_WIDGET("calc_12_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_13_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_14_button"), &colour_numbers, 1);  
-    set_tint(GET_WIDGET("calc_15_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_imaginary_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_pi_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_eulers_number_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_numeric_point_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_percentage_button"), &colour_numbers, 2);
-    set_tint(GET_WIDGET("subscript_togglebutton"), &colour_numbers, 2);  
-    set_tint(GET_WIDGET("superscript_togglebutton"), &colour_numbers, 2);
-    set_tint(GET_WIDGET("calc_exponential_button"), &colour_numbers, 2);
-    set_tint(GET_WIDGET("calc_base_2_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_base_8_button"), &colour_numbers, 1);
-    set_tint(GET_WIDGET("calc_base_16_button"), &colour_numbers, 1);
-
-    set_tint(GET_WIDGET("calc_result_button"), &colour_action, 2);
-    set_tint(GET_WIDGET("calc_factor_button"), &colour_action, 2);
-    set_tint(GET_WIDGET("calc_clear_button"), &colour_action, 1); // Different colour?
-    set_tint(GET_WIDGET("calc_trunc_button"), &colour_action, 1);
-    set_tint(GET_WIDGET("calc_shift_left_button"), &colour_action, 1);
-    set_tint(GET_WIDGET("calc_shift_right_button"), &colour_action, 1);
-  
-    set_tint(GET_WIDGET("calc_add_button"), &colour_operator, 1);
-    set_tint(GET_WIDGET("calc_subtract_button"), &colour_operator, 1);  
-    set_tint(GET_WIDGET("calc_multiply_button"), &colour_operator, 1);
-    set_tint(GET_WIDGET("calc_divide_button"), &colour_operator, 1);
-    set_tint(GET_WIDGET("calc_modulus_divide_button"), &colour_operator, 1);
-    set_tint(GET_WIDGET("calc_and_button"), &colour_operator, 1);  
-    set_tint(GET_WIDGET("calc_or_button"), &colour_operator, 1);  
-    set_tint(GET_WIDGET("calc_xor_button"), &colour_operator, 1);  
-
-    set_tint(GET_WIDGET("calc_cosine_button"), &colour_trig, 1);
-    set_tint(GET_WIDGET("calc_sine_button"), &colour_trig, 1);
-    set_tint(GET_WIDGET("calc_tangent_button"), &colour_trig, 1);
-    set_tint(GET_WIDGET("calc_hyperbolic_cosine_button"), &colour_trig, 1);
-    set_tint(GET_WIDGET("calc_hyperbolic_sine_button"), &colour_trig, 1);
-    set_tint(GET_WIDGET("calc_hyperbolic_tangent_button"), &colour_trig, 1);
-
-    set_tint(GET_WIDGET("calc_start_group_button"), &colour_group, 1);
-    set_tint(GET_WIDGET("calc_end_group_button"), &colour_group, 1);
-
-    set_tint(GET_WIDGET("calc_store_button"), &colour_memory, 1);
-    set_tint(GET_WIDGET("calc_recall_button"), &colour_memory, 1);
-    set_tint(GET_WIDGET("calc_ans_button"), &colour_memory, 1);
-    set_tint(GET_WIDGET("calc_random_button"), &colour_memory, 1);
-    set_tint(GET_WIDGET("calc_character_button"), &colour_memory, 1);
-
-    set_tint(GET_WIDGET("calc_integer_portion_button"), &colour_function, 1);
-    set_tint(GET_WIDGET("calc_fractional_portion_button"), &colour_function, 1);
-    set_tint(GET_WIDGET("calc_x_pow_y_button"), &colour_function, 1);  
-    set_tint(GET_WIDGET("calc_factorial_button"), &colour_function, 1);  
-    set_tint(GET_WIDGET("calc_root_button"), &colour_function, 1);  
-    set_tint(GET_WIDGET("calc_abs_button"), &colour_function, 1);  
-    set_tint(GET_WIDGET("calc_inverse_button"), &colour_function, 1);  
-    set_tint(GET_WIDGET("calc_logarithm_button"), &colour_function, 1);  
-    set_tint(GET_WIDGET("calc_natural_logarithm_button"), &colour_function, 1);
-    set_tint(GET_WIDGET("calc_ones_complement_button"), &colour_function, 1);
-    set_tint(GET_WIDGET("calc_twos_complement_button"), &colour_function, 1);
-    set_tint(GET_WIDGET("calc_not_button"), &colour_function, 1);  
-//    set_tint(GET_WIDGET("calc__button"), &colour_function, 1);
-  
-    /* Set base button data */
-    set_int_data(X.ui, "calc_base_2_button", "base", 2);
-    set_int_data(X.ui, "calc_base_8_button", "base", 8);
-    set_int_data(X.ui, "calc_base_16_button", "base", 16);
-
-    /* Connect menus to popup buttons */
-    set_data(X.ui, "calc_shift_left_button", "calc_menu", GET_WIDGET("left_shift_popup"));
-    set_data(X.ui, "calc_shift_right_button", "calc_menu", GET_WIDGET("right_shift_popup"));
-    set_data(X.ui, "calc_store_button", "calc_menu", GET_WIDGET("memory_store_popup"));
-    set_data(X.ui, "calc_recall_button", "calc_menu", GET_WIDGET("memory_recall_popup"));
+    X.main_window      = GET_WIDGET(X.ui, "calc_window");
+    X.scrolledwindow   = GET_WIDGET(X.ui, "display_scroll"),
+    X.display_item     = GET_WIDGET(X.ui, "displayitem"),
+    X.info_buffer = GTK_TEXT_BUFFER(GET_OBJECT(X.ui, "info_buffer"));
+    X.button_vbox = GET_WIDGET(X.ui, "button_vbox");
 
     /* Get labels from popup menus */
     for (i = 0; registers[i]; i++) {
         SNPRINTF(name, MAXLINE, "store_menu_item%d", i);
-        widget = GET_WIDGET(name);
+        widget = GET_WIDGET(X.ui, name);
         g_object_set_data(G_OBJECT(widget), "register_id", registers[i]);
         X.memory_store_labels[i] = gtk_bin_get_child(GTK_BIN(widget));
 
         SNPRINTF(name, MAXLINE, "recall_menu_item%d", i);
-        widget = GET_WIDGET(name);
+        widget = GET_WIDGET(X.ui, name);
         g_object_set_data(G_OBJECT(widget), "register_id", registers[i]);
         X.memory_recall_labels[i] = gtk_bin_get_child(GTK_BIN(widget));
     }
 
-    /* Load bit panel */
-    for (i = 0; i < MAXBITS; i++) {
-        SNPRINTF(name, MAXLINE, "bit_label_%d", i);
-        X.bit_labels[i] = GET_WIDGET(name);
-        SNPRINTF(name, MAXLINE, "bit_eventbox_%d", i);
-        set_int_data(X.ui, name, "bit_index", i);
-    }
-
     X.display_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(X.display_item));
     gtk_widget_ensure_style(X.display_item);
     font_desc = pango_font_description_copy(gtk_widget_get_style(X.display_item)->font_desc);
@@ -1970,18 +2103,6 @@ create_main_window()
     set_int_data(X.ui, "view_advanced_menu", "calcmode", ADVANCED);
     set_int_data(X.ui, "view_financial_menu", "calcmode", FINANCIAL);
     set_int_data(X.ui, "view_programming_menu", "calcmode", PROGRAMMING);
-
-    /* Setup financial functions */
-    set_data(X.ui, "calc_finc_compounding_term_button", "finc_dialog", "ctrm_dialog");
-    set_data(X.ui, "calc_finc_double_declining_depreciation_button", "finc_dialog", "ddb_dialog");
-    set_data(X.ui, "calc_finc_future_value_button", "finc_dialog", "fv_dialog");
-    set_data(X.ui, "calc_finc_gross_profit_margin_button", "finc_dialog", "gpm_dialog");
-    set_data(X.ui, "calc_finc_periodic_payment_button", "finc_dialog", "pmt_dialog");
-    set_data(X.ui, "calc_finc_present_value_button", "finc_dialog", "pv_dialog");
-    set_data(X.ui, "calc_finc_periodic_interest_rate_button", "finc_dialog", "rate_dialog");
-    set_data(X.ui, "calc_finc_straight_line_depreciation_button", "finc_dialog", "sln_dialog");
-    set_data(X.ui, "calc_finc_sum_of_the_years_digits_depreciation_button", "finc_dialog", "syd_dialog");
-    set_data(X.ui, "calc_finc_term_button", "finc_dialog", "term_dialog");
 }
 
 
@@ -2138,105 +2259,6 @@ ui_load(void)
 }
 
 
-static void
-add_buttons_to_size_group()
-{
-    int i;
-    GtkSizeGroup *size_group;
-
-    const char *button_names[] = {
-        "calc_finc_straight_line_depreciation_button",
-        "calc_finc_periodic_interest_rate_button",
-        "calc_finc_present_value_button",
-        "calc_finc_periodic_payment_button",
-        "calc_finc_future_value_button",
-        "calc_finc_gross_profit_margin_button",
-        "calc_finc_double_declining_depreciation_button",
-        "calc_finc_compounding_term_button",
-        "calc_finc_sum_of_the_years_digits_depreciation_button",
-        "calc_finc_term_button",
-        "calc_store_button",
-        "calc_recall_button",
-        "calc_pi_button",
-        "calc_modulus_divide_button",
-        "calc_root_button",
-        "calc_x_pow_y_button",
-        "calc_logarithm_button",
-        "calc_inverse_button",
-        "calc_natural_logarithm_button",
-        "calc_eulers_number_button",
-        "calc_abs_button",
-        "calc_factorial_button",
-        "calc_integer_portion_button",
-        "calc_exponential_button",
-        "calc_fractional_portion_button",
-        "calc_imaginary_button",
-        "subscript_togglebutton",
-        "superscript_togglebutton",
-        "calc_ans_button",
-        "calc_4_button",
-        "calc_7_button",
-        "calc_8_button",
-        "calc_9_button",
-        "calc_5_button",
-        "calc_6_button",
-        "calc_divide_button",
-        "calc_1_button",
-        "calc_2_button",
-        "calc_0_button",
-        "calc_numeric_point_button",
-        "calc_result_button",
-        "calc_3_button",
-        "calc_multiply_button",
-        "calc_subtract_button",
-        "calc_add_button",
-        "calc_clear_button",
-        "calc_start_group_button",
-        "calc_end_group_button",
-        "calc_percentage_button",
-        "calc_10_button",
-        "calc_11_button",
-        "calc_12_button",
-        "calc_13_button",
-        "calc_14_button",
-        "calc_15_button",
-        "calc_and_button",
-        "calc_or_button",
-        "calc_not_button",
-        "calc_xor_button",
-        "calc_ones_complement_button",
-        "calc_twos_complement_button",
-        "calc_shift_right_button",
-        "calc_shift_left_button",
-        "calc_trunc_button",
-        "calc_random_button",
-        "calc_base_2_button",
-        "calc_base_8_button",
-        "calc_base_16_button",
-        "calc_si_kilo_button",
-        "calc_si_milli_button",
-        "calc_si_micro_button",
-        "calc_si_mega_button",
-        "calc_si_giga_button",
-        "calc_si_peta_button",
-        "calc_si_femto_button",
-        "calc_si_pico_button",
-        "calc_si_nano_button",
-        "calc_tangent_button",
-        "calc_sine_button",
-        "calc_cosine_button",
-        "calc_hyperbolic_cosine_button",
-        "calc_hyperbolic_sine_button",
-        "calc_hyperbolic_tangent_button",
-        "calc_character_button",
-        NULL};
-
-    size_group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
-    for (i = 0; button_names[i] != NULL; i++)
-        gtk_size_group_add_widget(size_group, GET_WIDGET(button_names[i]));
-}
-
-
 void
 ui_start(void)
 {
@@ -2244,13 +2266,5 @@ ui_start(void)
 
     gtk_widget_show(X.main_window);
 
-    /* Add buttons to size group so they are all the same size.
-     *
-     * This is supported in GtkBuilder but it does not appear to work, setting
-     * the group after showing the widgets works. It would have been preferrable
-     * to make the table homogeneous but this does not ignore hidden rows.
-     */
-    add_buttons_to_size_group();
-
     gtk_main();
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]