[gnome-calculator] buttons-advanced: Make the buttons adaptive



commit 5914cb9ec5ec6d90a39b34c5c52d89024eabe4b6
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Fri Jan 10 15:41:49 2020 +0100

    buttons-advanced: Make the buttons adaptive
    
    This reorganizes the button layout and split it in two adaptive panels,
    allowing the mode to reach narrower widths while making it more
    organized.

 src/ui/buttons-advanced.ui | 1910 ++++++++++++++++++++++----------------------
 1 file changed, 974 insertions(+), 936 deletions(-)
---
diff --git a/src/ui/buttons-advanced.ui b/src/ui/buttons-advanced.ui
index e2c9dccc..1c03dcd8 100644
--- a/src/ui/buttons-advanced.ui
+++ b/src/ui/buttons-advanced.ui
@@ -2,1110 +2,1148 @@
 <interface>
   <!-- interface-naming-policy toplevel-contextual -->
   <requires lib="gtk+" version="3.16"/>
-  <object class="GtkGrid" id="button_panel">
+  <object class="HdyLeaflet" id="button_panel">
     <property name="visible">True</property>
-    <property name="row-homogeneous">True</property>
-    <property name="column-homogeneous">True</property>
-    <property name="row_spacing">4</property>
-    <property name="column_spacing">4</property>
+    <property name="can-swipe-back">True</property>
+    <property name="can-swipe-forward">True</property>
+    <property name="transition-type">slide</property>
+    <property name="visible-child">basic</property>
+    <style>
+      <class name="math-buttons"/>
+    </style>
     <child>
-      <object class="GtkButton" id="calc_inverse_button">
+      <object class="GtkGrid" id="basic">
         <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Inverse [Ctrl+I]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'⁻¹'</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>
+        <property name="hexpand">true</property>
+        <property name="row-homogeneous">True</property>
+        <property name="column-homogeneous">True</property>
+        <property name="row_spacing">4</property>
+        <property name="column_spacing">4</property>
         <child>
-          <object class="GtkLabel" id="label20">
+          <object class="GtkButton" id="calc_4_button">
+            <property name="label">4</property>
             <property name="visible">True</property>
-            <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;−1&lt;/sup&gt;</property>
-            <property name="use_markup">True</property>
-            <property name="justify">center</property>
-          </object>
-        </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">6</property>
-        <property name="top_attach">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_factor_button">
-        <property name="label">a×b</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Factorize [Ctrl+F]</property>
-        <property name="action_name">cal.factorize</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>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">4</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">5</property>
-        <property name="top_attach">4</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="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Factorial [!]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'!'</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>
+        <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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">7</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="top_attach">1</property>
+            <property name="left_attach">0</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="label14">
+          <object class="GtkButton" id="calc_8_button">
+            <property name="label">8</property>
             <property name="visible">True</property>
-            <property name="label">&lt;i&gt;x&lt;/i&gt;!</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">8</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">1</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">7</property>
-        <property name="top_attach">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_imaginary_portion_button">
-        <property name="label">Im</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Imaginary Component</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'Im '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">7</property>
-        <property name="top_attach">4</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'i'</property>
         <child>
-          <object class="GtkLabel" id="imaginary_label">
+          <object class="GtkButton" id="calc_9_button">
+            <property name="label">9</property>
             <property name="visible">True</property>
-            <property name="label">&lt;i&gt;i&lt;/i&gt;</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">9</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">1</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">4</property>
-        <property name="top_attach">2</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">4</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="top_attach">2</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">7</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="top_attach">1</property>
-        <property name="left_attach">0</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">8</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">1</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">9</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">2</property>
-        <property name="top_attach">1</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">5</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">2</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">6</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">2</property>
-        <property name="top_attach">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_divide_button">
-        <property name="label">÷</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Divide [/]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'÷'</property>
-        <style>
-          <class name="operator-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">3</property>
-        <property name="top_attach">1</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">1</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="top_attach">3</property>
-        <property name="left_attach">0</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">2</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">3</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_0_button">
-        <property name="label">0</property>
-        <property name="width_request">50</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">0</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="top_attach">4</property>
-        <property name="left_attach">0</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-numeric-point</property>
-        <style>
-          <class name="numeric-point-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">4</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="action_name">cal.insert-digit</property>
-        <property name="action_target">3</property>
-        <style>
-          <class name="number-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">2</property>
-        <property name="top_attach">3</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_multiply_button">
-        <property name="label">×</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Multiply [*]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'×'</property>
-        <style>
-          <class name="operator-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">3</property>
-        <property name="top_attach">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_subtract_button">
-        <property name="label">−</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Subtract [-]</property>
-        <property name="action_name">cal.subtract</property>
-        <style>
-          <class name="operator-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">3</property>
-        <property name="top_attach">3</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Add [+]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'+'</property>
-        <style>
-          <class name="operator-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">3</property>
-        <property name="top_attach">4</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Calculate Result</property>
-        <property name="action_name">cal.solve</property>
-        <style>
-          <class name="suggested-action"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">4</property>
-        <property name="top_attach">4</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_clear_button">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Clear Display [Escape]</property>
-        <property name="action_name">cal.clear</property>
-        <property name="label">C</property>
-        <style>
-          <class name="clear-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">5</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkToggleButton" id="calc_subscript_button">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Subscript mode [Alt]</property>
-        <property name="action_name">cal.set-number-mode</property>
-        <property name="action_target">'subscript'</property>
-        <child internal-child="accessible">
-          <object class="AtkObject" id="calc_subscript_button-atkobject">
-            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the 
subscript mode button">Subscript</property>
+        <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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">5</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="label4">
+          <object class="GtkButton" id="calc_6_button">
+            <property name="label">6</property>
             <property name="visible">True</property>
-            <property name="label">↓n</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">6</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">0</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkToggleButton" id="calc_superscript_button">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Superscript mode [Ctrl]</property>
-        <property name="action_name">cal.set-number-mode</property>
-        <property name="action_target">'superscript'</property>
-        <child internal-child="accessible">
-          <object class="AtkObject" id="calc_superscript_button-atkobject">
-            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the 
superscript mode button">Superscript</property>
+        <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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Modulus divide</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">' mod '</property>
+            <style>
+              <class name="operator-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">0</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="label3">
+          <object class="GtkButton" id="calc_divide_button">
+            <property name="label">÷</property>
             <property name="visible">True</property>
-            <property name="label">↑n</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Divide [/]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'÷'</property>
+            <style>
+              <class name="operator-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">1</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">1</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Percentage [%]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'%'</property>
-      </object>
-      <packing>
-        <property name="left_attach">2</property>
-        <property name="top_attach">4</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Scientific exponent [Ctrl+E]</property>
-        <property name="action_name">cal.insert-exponent</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>
+        <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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">1</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="top_attach">3</property>
+            <property name="left_attach">0</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="label2">
+          <object class="GtkButton" id="calc_2_button">
+            <property name="label">2</property>
             <property name="visible">True</property>
-            <property name="label">×10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">2</property>
+            <style>
+              <class name="number-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">3</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">0</property>
+            <style>
+              <class name="number-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="top_attach">4</property>
+            <property name="left_attach">0</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-numeric-point</property>
+            <style>
+              <class name="numeric-point-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">4</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="action_name">cal.insert-digit</property>
+            <property name="action_target">3</property>
+            <style>
+              <class name="number-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">3</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_multiply_button">
+            <property name="label">×</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Multiply [*]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'×'</property>
+            <style>
+              <class name="operator-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_subtract_button">
+            <property name="label">−</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Subtract [-]</property>
+            <property name="action_name">cal.subtract</property>
+            <style>
+              <class name="operator-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">3</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Add [+]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'+'</property>
+            <style>
+              <class name="operator-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">4</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Pi [Ctrl+P]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'π'</property>
+            <child>
+              <object class="GtkLabel" id="pi_label">
+                <property name="visible">True</property>
+                <property name="label">π</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_root_button">
+            <property name="label">√</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Root [Ctrl+R]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'√'</property>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_x_squared_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Square [Ctrl+2]</property>
+            <property name="action_name">cal.square</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_x_squared_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>
+            <child>
+              <object class="GtkLabel" id="x_squared_label">
+                <property name="visible">True</property>
+                <property 
name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;2&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_clear_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Clear Display [Escape]</property>
+            <property name="action_name">cal.clear</property>
+            <child>
+              <object class="GtkImage" id="calc_clear_icon">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="icon_name">edit-clear-symbolic</property>
+              </object>
+            </child>
+            <style>
+              <class name="destructive-action"/>
+              <class name="image-button"/>
+              <class name="clear-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">0</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Start Group [(]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'('</property>
+            <style>
+              <class name="parenthesis-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">End Group [)]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">')'</property>
+            <style>
+              <class name="parenthesis-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">0</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Percentage [%]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'%'</property>
+            <style>
+              <class name="procent-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">4</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Calculate Result</property>
+            <property name="action_name">cal.solve</property>
+            <style>
+              <class name="suggested-action"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">3</property>
+            <property name="height">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">2</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Modulus divide</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">' mod '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">3</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Start Group [(]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'('</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">4</property>
-        <property name="top_attach">1</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">End Group [)]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">')'</property>
-        <style>
-          <class name="function-button"/>
-        </style>
       </object>
       <packing>
-        <property name="left_attach">5</property>
-        <property name="top_attach">1</property>
+        <property name="name">basic</property>
       </packing>
     </child>
     <child>
-      <object class="GtkMenuButton" id="calc_memory_button">
+      <object class="GtkGrid" id="advanced">
         <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Memory</property>
-        <style>
+        <property name="hexpand">true</property>
+        <property name="row-homogeneous">True</property>
+        <property name="column-homogeneous">True</property>
+        <property name="row_spacing">4</property>
+        <property name="column_spacing">4</property>
+        <child>
+          <object class="GtkToggleButton" id="calc_subscript_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Subscript mode [Alt]</property>
+            <property name="action_name">cal.set-number-mode</property>
+            <property name="action_target">'subscript'</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_subscript_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the subscript mode button">Subscript</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label">↓n</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleButton" id="calc_superscript_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Superscript mode [Ctrl]</property>
+            <property name="action_name">cal.set-number-mode</property>
+            <property name="action_target">'superscript'</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_superscript_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the superscript mode button">Superscript</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label">↑n</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_factor_button">
+            <property name="label">a×b</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Factorize [Ctrl+F]</property>
+            <property name="action_name">cal.factorize</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>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</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="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Scientific exponent [Ctrl+E]</property>
+            <property name="action_name">cal.insert-exponent</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>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label">×10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">1</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="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Cosine</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'cos '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">0</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="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Sine</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'sin '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <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="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Tangent</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'tan '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">0</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="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Hyperbolic Cosine</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'cosh '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">1</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="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Hyperbolic Sine</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'sinh '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">1</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="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Hyperbolic Tangent</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'tanh '</property>
+            <style>
               <class name="function-button"/>
-        </style>
-        <child internal-child="accessible">
-          <object class="AtkObject" id="calc_memory_button-atkobject">
-            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the 
memory button">Memory</property>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">1</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkHBox" id="hbox20">
+          <object class="GtkButton" id="calc_x_pow_y_button">
             <property name="visible">True</property>
-            <child>
-              <object class="GtkLabel" id="label23">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes" comments="The label on the memory 
button">x</property>
-                <attributes>
-                  <attribute name="style" value="italic"/>
-                </attributes>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Exponent [^ or **]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'^'</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>
-              <packing>
-                <property name="position">0</property>
-              </packing>
             </child>
             <child>
-              <object class="GtkArrow" id="arrow14">
+              <object class="GtkLabel" id="x_pow_y_label">
                 <property name="visible">True</property>
-                <property name="arrow_type">down</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>
-              <packing>
-                <property name="expand">False</property>
-                <property name="position">1</property>
-              </packing>
             </child>
+            <style>
+              <class name="function-button"/>
+            </style>
           </object>
-        </child>
-      </object>
-      <packing>
-        <property name="left_attach">5</property>
-        <property name="top_attach">2</property>
-        <property name="width">1</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Absolute Value [|]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'|'</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>
-        <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>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">8</property>
-        <property name="top_attach">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_real_portion_button">
-        <property name="label">Re</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Real Component</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'Re '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">6</property>
-        <property name="top_attach">4</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_conjugate_button">
-        <property name="label">conj</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Complex conjugate</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'conj '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">8</property>
-        <property name="top_attach">4</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_arg_button">
-        <property name="label">Arg</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Complex argument</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'Arg '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">9</property>
-        <property name="top_attach">2</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Natural Logarithm</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'ln '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">9</property>
-        <property name="top_attach">3</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="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Logarithm</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'log '</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">8</property>
-        <property name="top_attach">3</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="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Exponent [^ or **]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'^'</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>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="x_pow_y_label">
+          <object class="GtkButton" id="calc_inverse_button">
             <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>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Inverse [Ctrl+I]</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'⁻¹'</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>
+            <child>
+              <object class="GtkLabel" id="label20">
+                <property name="visible">True</property>
+                <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;−1&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
+                <property name="justify">center</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">6</property>
-        <property name="top_attach">3</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_root_button">
-        <property name="label">√</property>
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Root [Ctrl+R]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'√'</property>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">7</property>
-        <property name="top_attach">3</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButton" id="calc_undo_button">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Undo [Ctrl+Z]</property>
-        <property name="action_name">cal.undo</property>
         <child>
-          <object class="GtkImage" id="image2">
+          <object class="GtkButton" id="calc_eulers_number_button">
             <property name="visible">True</property>
-            <property name="icon-name">edit-undo-symbolic</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Euler’s Number</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'e'</property>
+            <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>
+            <style>
+              <class name="function-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="undo-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">4</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Pi [Ctrl+P]</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'π'</property>
         <child>
-          <object class="GtkLabel" id="pi_label">
+          <object class="GtkButton" id="calc_natural_logarithm_button">
+            <property name="label">ln</property>
             <property name="visible">True</property>
-            <property name="label">π</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Natural Logarithm</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'ln '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">4</property>
-        <property name="top_attach">3</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="use_underline">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Euler’s Number</property>
-        <property name="action_name">cal.insert-general</property>
-        <property name="action_target">'e'</property>
         <child>
-          <object class="GtkLabel" id="eulers_number_label">
+          <object class="GtkButton" id="calc_logarithm_button">
+            <property name="label">log</property>
             <property name="visible">True</property>
-            <property name="label">&lt;i&gt;e&lt;/i&gt;</property>
-            <property name="use_markup">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Logarithm</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'log '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">2</property>
+          </packing>
         </child>
-        <style>
-          <class name="function-button"/>
-        </style>
-      </object>
-      <packing>
-        <property name="left_attach">5</property>
-        <property name="top_attach">3</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkGrid" id="goniometric_buttons">
-        <property name="visible">True</property>
-        <property name="row-homogeneous">True</property>
-        <property name="column-homogeneous">True</property>
-        <property name="row_spacing">4</property>
-        <property name="column_spacing">4</property>
         <child>
-          <object class="GtkButton" id="calc_cosine_button">
-            <property name="label">cos</property>
+          <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="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Cosine</property>
+            <property name="tooltip_text" translatable="yes">Factorial [!]</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'cos '</property>
+            <property name="action_target">'!'</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>
+            <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>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
             <property name="left_attach">0</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_sine_button">
-            <property name="label">sin</property>
+          <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="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Sine</property>
+            <property name="tooltip_text" translatable="yes">Absolute Value [|]</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'sin '</property>
+            <property name="action_target">'|'</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>
+            <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>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
             <property name="left_attach">1</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_tangent_button">
-            <property name="label">tan</property>
+          <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="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Tangent</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'tan '</property>
+            <property name="action_target">'i'</property>
+            <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>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
             <property name="left_attach">2</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_hyperbolic_sine_button">
-            <property name="label">sinh</property>
+          <object class="GtkButton" id="calc_real_portion_button">
+            <property name="label">Re</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Hyperbolic Sine</property>
+            <property name="tooltip_text" translatable="yes">Real Component</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'sinh '</property>
+            <property name="action_target">'Re '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">0</property>
-            <property name="top_attach">1</property>
+            <property name="left_attach">3</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_hyperbolic_cosine_button">
-            <property name="label">cosh</property>
+          <object class="GtkButton" id="calc_imaginary_portion_button">
+            <property name="label">Im</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Hyperbolic Cosine</property>
+            <property name="tooltip_text" translatable="yes">Imaginary Component</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'cosh '</property>
+            <property name="action_target">'Im '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">1</property>
-            <property name="top_attach">1</property>
+            <property name="left_attach">4</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_hyperbolic_tangent_button">
-            <property name="label">tanh</property>
+          <object class="GtkButton" id="calc_conjugate_button">
+            <property name="label">conj</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Hyperbolic Tangent</property>
+            <property name="tooltip_text" translatable="yes">Complex conjugate</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'tanh '</property>
+            <property name="action_target">'conj '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">2</property>
-            <property name="top_attach">1</property>
+            <property name="left_attach">3</property>
+            <property name="top_attach">4</property>
           </packing>
         </child>
-      </object>
-      <packing>
-        <property name="left_attach">6</property>
-        <property name="top_attach">0</property>
-        <property name="width">4</property>
-        <property name="height">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkMenuButton" id="calc_function_button">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="focus_on_click">False</property>
-        <property name="tooltip_text" translatable="yes">Additional Functions</property>
-        <child internal-child="accessible">
-          <object class="AtkObject" id="calc_function_button-atkobject">
-            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the 
store value button">Store</property>
+        <child>
+          <object class="GtkButton" id="calc_arg_button">
+            <property name="label">Arg</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Complex argument</property>
+            <property name="action_name">cal.insert-general</property>
+            <property name="action_target">'Arg '</property>
+            <style>
+              <class name="function-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">4</property>
+          </packing>
         </child>
         <child>
-          <object class="GtkHBox" id="hbox2">
+          <object class="GtkMenuButton" id="calc_memory_button">
             <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Memory</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_memory_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the memory button">Memory</property>
+              </object>
+            </child>
             <child>
-              <object class="GtkLabel" id="label5">
+              <object class="GtkHBox" id="hbox20">
                 <property name="visible">True</property>
-                <property name="label">f(x)</property>
-                <style>
-                  <class name="function-button"/>
-                </style>
+                <child>
+                  <object class="GtkLabel" id="label23">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" comments="The label on the memory 
button">x</property>
+                    <attributes>
+                      <attribute name="style" value="italic"/>
+                    </attributes>
+                  </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>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">4</property>
+            <property name="width">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkMenuButton" id="calc_function_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="focus_on_click">False</property>
+            <property name="tooltip_text" translatable="yes">Additional Functions</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_function_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the store value button">Store</property>
               </object>
-              <packing>
-                <property name="position">0</property>
-              </packing>
             </child>
             <child>
-              <object class="GtkArrow" id="arrow1">
+              <object class="GtkHBox" id="hbox2">
                 <property name="visible">True</property>
-                <property name="arrow_type">down</property>
+                <child>
+                  <object class="GtkLabel" id="label5">
+                    <property name="visible">True</property>
+                    <property name="label">f(x)</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow1">
+                    <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>
-              <packing>
-                <property name="expand">False</property>
-                <property name="position">1</property>
-              </packing>
             </child>
+            <style>
+              <class name="fx-button"/>
+            </style>
           </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">4</property>
+          </packing>
         </child>
-        <style>
-          <class name="fx-button"/>
-        </style>
       </object>
       <packing>
-        <property name="left_attach">9</property>
-        <property name="top_attach">4</property>
+        <property name="name">advanced</property>
       </packing>
     </child>
-    <style>
-      <class name="math-buttons"/>
-    </style>
+  </object>
+  <object class="GtkSizeGroup">
+    <property name="mode">both</property>
+    <widgets>
+      <widget name="basic"/>
+      <widget name="advanced"/>
+    </widgets>
   </object>
 </interface>


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