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



commit 068e0873d31198e56142fb9d9064d8032bce654d
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Wed Mar 10 10:04:11 2021 +0100

    buttons-programming: 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-programming.ui | 749 +++++++++++++++++++++++-------------------
 1 file changed, 402 insertions(+), 347 deletions(-)
---
diff --git a/src/ui/buttons-programming.ui b/src/ui/buttons-programming.ui
index eb31dcc5..8a8bc965 100644
--- a/src/ui/buttons-programming.ui
+++ b/src/ui/buttons-programming.ui
@@ -1293,8 +1293,16 @@
       </packing>
     </child>
     <child>
-      <object class="GtkGrid" id="advanced_panel">
+      <object class="HdyLeaflet">
         <property name="visible">True</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>
+    <child>
+      <object class="GtkGrid" id="basic">
+        <property name="visible">True</property>
+        <property name="hexpand">true</property>
         <property name="row-homogeneous">True</property>
         <property name="column-homogeneous">True</property>
         <property name="row_spacing">4</property>
@@ -1315,101 +1323,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">7</property>
-            <property name="top_attach">2</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">7</property>
-            <property name="top_attach">3</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkButton" id="calc_factor_button">
-            <property name="label">fact</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="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">7</property>
-            <property name="top_attach">4</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkButton" id="calc_binary_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="use_underline">True</property>
-            <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Binary 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_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="left_attach">4</property>
             <property name="top_attach">1</property>
           </packing>
         </child>
@@ -1435,48 +1349,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">9</property>
-            <property name="top_attach">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkButton" id="calc_integer_portion_button">
-            <property name="label">int</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="use_underline">True</property>
-            <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Integer Component</property>
-            <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'int '</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_fractional_portion_button">
-            <property name="label">frac</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="use_underline">True</property>
-            <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Fractional Component</property>
-            <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'frac '</property>
-            <style>
-              <class name="function-button"/>
-            </style>
-          </object>
-          <packing>
-            <property name="left_attach">9</property>
-            <property name="top_attach">4</property>
+            <property name="left_attach">4</property>
           </packing>
         </child>
         <child>
@@ -1495,30 +1368,10 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">4</property>
+            <property name="left_attach">3</property>
             <property name="top_attach">1</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="left_attach">0</property>
-            <property name="top_attach">4</property>
-          </packing>
-        </child>
         <child>
           <object class="GtkButton" id="calc_multiply_button">
             <property name="label">×</property>
@@ -1535,7 +1388,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">4</property>
+            <property name="left_attach">3</property>
             <property name="top_attach">2</property>
           </packing>
         </child>
@@ -1554,7 +1407,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">4</property>
+            <property name="left_attach">3</property>
             <property name="top_attach">3</property>
           </packing>
         </child>
@@ -1574,7 +1427,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">4</property>
+            <property name="left_attach">3</property>
             <property name="top_attach">4</property>
           </packing>
         </child>
@@ -1593,8 +1446,9 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">6</property>
-            <property name="top_attach">4</property>
+            <property name="left_attach">4</property>
+            <property name="top_attach">3</property>
+            <property name="height">2</property>
           </packing>
         </child>
         <child>
@@ -1606,13 +1460,46 @@
             <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>
+            <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">6</property>
+            <property name="left_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkGrid">
+            <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_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="left_attach">0</property>
             <property name="top_attach">3</property>
           </packing>
         </child>
@@ -1632,7 +1519,7 @@
           </object>
           <packing>
             <property name="left_attach">1</property>
-            <property name="top_attach">4</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
@@ -1651,7 +1538,7 @@
           </object>
           <packing>
             <property name="left_attach">2</property>
-            <property name="top_attach">4</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
@@ -1670,7 +1557,7 @@
           </object>
           <packing>
             <property name="left_attach">3</property>
-            <property name="top_attach">4</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
@@ -1689,7 +1576,7 @@
           </object>
           <packing>
             <property name="left_attach">0</property>
-            <property name="top_attach">3</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
@@ -1708,7 +1595,7 @@
           </object>
           <packing>
             <property name="left_attach">1</property>
-            <property name="top_attach">3</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
@@ -1727,7 +1614,7 @@
           </object>
           <packing>
             <property name="left_attach">2</property>
-            <property name="top_attach">3</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
@@ -1746,7 +1633,7 @@
           </object>
           <packing>
             <property name="left_attach">3</property>
-            <property name="top_attach">3</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
@@ -1765,7 +1652,7 @@
           </object>
           <packing>
             <property name="left_attach">0</property>
-            <property name="top_attach">2</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1784,7 +1671,7 @@
           </object>
           <packing>
             <property name="left_attach">1</property>
-            <property name="top_attach">2</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1803,7 +1690,7 @@
           </object>
           <packing>
             <property name="left_attach">2</property>
-            <property name="top_attach">2</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1822,7 +1709,7 @@
           </object>
           <packing>
             <property name="left_attach">3</property>
-            <property name="top_attach">2</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1841,7 +1728,6 @@
           </object>
           <packing>
             <property name="left_attach">0</property>
-            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1860,7 +1746,6 @@
           </object>
           <packing>
             <property name="left_attach">1</property>
-            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1879,7 +1764,6 @@
           </object>
           <packing>
             <property name="left_attach">2</property>
-            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -1898,37 +1782,132 @@
           </object>
           <packing>
             <property name="left_attach">3</property>
+          </packing>
+        </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
             <property name="top_attach">1</property>
+            <property name="width">3</property>
+            <property name="height">4</property>
           </packing>
         </child>
         <child>
-          <object class="GtkToggleButton" id="calc_subscript_button">
+          <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="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>
+            <property name="action_name">cal.insert-numeric-point</property>
             <style>
-              <class name="function-button"/>
+              <class name="numeric-point-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">0</property>
-            <property name="top_attach">0</property>
+            <property name="left_attach">4</property>
+            <property name="top_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="operator-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="parenthesis-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_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="parenthesis-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="name">basic</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkGrid" id="advanced">
+        <property name="visible">True</property>
+        <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">5</property>
+            <property name="top_attach">0</property>
           </packing>
         </child>
         <child>
@@ -1957,53 +1936,83 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">1</property>
+            <property name="left_attach">6</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>
+          <object class="GtkMenuButton" id="calc_shift_left_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-numeric-point</property>
+            <property name="tooltip_text" translatable="yes">Shift Left</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_shift_left_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the shift left button">Shift Left</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox11">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <object class="GtkLabel" id="label7">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">&lt;&lt;</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow5">
+                    <property name="visible">True</property>
+                    <property name="arrow_type">down</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
             <style>
-              <class name="numeric-point-button"/>
+              <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">2</property>
+            <property name="left_attach">7</property>
           </packing>
         </child>
         <child>
-          <object class="GtkMenuButton" id="calc_memory_button">
+          <object class="GtkMenuButton" id="calc_shift_right_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>
+            <property name="tooltip_text" translatable="yes">Shift Right</property>
             <child internal-child="accessible">
-              <object class="AtkObject" id="calc_store_button-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the store value button">Store</property>
+              <object class="AtkObject" id="calc_shift_right_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the shift right button">Shift Right</property>
               </object>
             </child>
             <child>
-              <object class="GtkHBox" id="hbox20">
+              <object class="GtkHBox" id="hbox10">
                 <property name="visible">True</property>
                 <property name="spacing">3</property>
                 <child>
-                  <object class="GtkLabel" id="label23">
+                  <object class="GtkLabel" id="label6">
                     <property name="visible">True</property>
-                    <property name="label" translatable="yes" comments="The label on the memory 
button">x</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">&gt;&gt;</property>
                   </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkArrow" id="arrow14">
+                  <object class="GtkArrow" id="arrow4">
                     <property name="visible">True</property>
                     <property name="arrow_type">down</property>
                   </object>
@@ -2019,7 +2028,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">3</property>
+            <property name="left_attach">8</property>
           </packing>
         </child>
         <child>
@@ -2038,8 +2047,7 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">5</property>
-            <property name="top_attach">4</property>
+            <property name="left_attach">9</property>
           </packing>
         </child>
         <child>
@@ -2058,8 +2066,8 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">5</property>
-            <property name="top_attach">3</property>
+            <property name="left_attach">9</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -2078,104 +2086,89 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">5</property>
-            <property name="top_attach">2</property>
+            <property name="left_attach">8</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_modulus_divide_button">
-            <property name="label">mod</property>
+          <object class="GtkButton" id="calc_not_button">
+            <property name="label">NOT</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Modulus divide</property>
+            <property name="tooltip_text" translatable="yes">Boolean NOT</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">' mod '</property>
+            <property name="action_target">'¬'</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">5</property>
+            <property name="left_attach">7</property>
             <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_start_group_button">
-            <property name="label">(</property>
+          <object class="GtkButton" id="calc_ones_complement_button">
+            <property name="label">ones</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Start Group [(]</property>
+            <property name="tooltip_text" translatable="yes">Ones’ Complement</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'('</property>
+            <property name="action_target">'ones '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">4</property>
+            <property name="left_attach">5</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_end_group_button">
-            <property name="label">)</property>
+          <object class="GtkButton" id="calc_twos_complement_button">
+            <property name="label">twos</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">End Group [)]</property>
+            <property name="tooltip_text" translatable="yes">Two’s Complement</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">')'</property>
+            <property name="action_target">'twos '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">5</property>
+            <property name="left_attach">6</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkMenuButton" id="calc_shift_left_button">
+          <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">Shift Left</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_shift_left_button-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the shift left button">Shift Left</property>
+              <object class="AtkObject" id="calc_x_pow_y_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the exponentiation (x to the power of y) button">Exponent</property>
               </object>
             </child>
             <child>
-              <object class="GtkHBox" id="hbox11">
+              <object class="GtkLabel" id="x_pow_y_label">
                 <property name="visible">True</property>
-                <property name="spacing">3</property>
-                <child>
-                  <object class="GtkLabel" id="label7">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="label">&lt;&lt;</property>
-                  </object>
-                  <packing>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkArrow" id="arrow5">
-                    <property name="visible">True</property>
-                    <property name="arrow_type">down</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
+                <property 
name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+                <property name="use_markup">True</property>
               </object>
             </child>
             <style>
@@ -2183,45 +2176,30 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">6</property>
+            <property name="left_attach">5</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
-          <object class="GtkMenuButton" id="calc_shift_right_button">
+          <object class="GtkButton" id="calc_inverse_button">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Shift Right</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_shift_right_button-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the shift right button">Shift Right</property>
+              <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="GtkHBox" id="hbox10">
+              <object class="GtkLabel" id="label20">
                 <property name="visible">True</property>
-                <property name="spacing">3</property>
-                <child>
-                  <object class="GtkLabel" id="label6">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="label">&gt;&gt;</property>
-                  </object>
-                  <packing>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkArrow" id="arrow4">
-                    <property name="visible">True</property>
-                    <property name="arrow_type">down</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
+                <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>
@@ -2229,48 +2207,46 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">7</property>
+            <property name="left_attach">6</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_character_button">
-            <property name="label">á</property>
+          <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">Insert Character Code</property>
-            <property name="action_name">cal.insert-character</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="calc_character_button-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the insert character button">Insert Character</property>
-              </object>
-            </child>
+            <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="left_attach">9</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_not_button">
-            <property name="label">NOT</property>
+          <object class="GtkButton" id="calc_binary_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="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Boolean NOT</property>
+            <property name="tooltip_text" translatable="yes">Binary Logarithm</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'¬'</property>
+            <property name="action_target">'log₂ '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">6</property>
+            <property name="left_attach">8</property>
             <property name="top_attach">2</property>
           </packing>
         </child>
@@ -2300,30 +2276,30 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">8</property>
-            <property name="top_attach">4</property>
+            <property name="left_attach">5</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_inverse_button">
+          <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">Inverse [Ctrl+I]</property>
+            <property name="tooltip_text" translatable="yes">Absolute Value [|]</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'⁻¹'</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 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="label20">
+              <object class="GtkLabel" id="label1">
                 <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="label">|&lt;i&gt;x&lt;/i&gt;|</property>
                 <property name="use_markup">True</property>
-                <property name="justify">center</property>
               </object>
             </child>
             <style>
@@ -2331,78 +2307,143 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">9</property>
-            <property name="top_attach">2</property>
+            <property name="left_attach">6</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_x_pow_y_button">
+          <object class="GtkButton" id="calc_integer_portion_button">
+            <property name="label">int</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Exponent [^ or **]</property>
+            <property name="tooltip_text" translatable="yes">Integer Component</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>
-            </child>
-            <child>
-              <object class="GtkLabel" id="x_pow_y_label">
-                <property name="visible">True</property>
-                <property 
name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
-                <property name="use_markup">True</property>
-              </object>
-            </child>
+            <property name="action_target">'int '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">8</property>
+            <property name="left_attach">7</property>
             <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_ones_complement_button">
-            <property name="label">ones</property>
+          <object class="GtkButton" id="calc_fractional_portion_button">
+            <property name="label">frac</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Ones’ Complement</property>
+            <property name="tooltip_text" translatable="yes">Fractional Component</property>
             <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'ones '</property>
+            <property name="action_target">'frac '</property>
             <style>
               <class name="function-button"/>
             </style>
           </object>
           <packing>
-            <property name="left_attach">6</property>
-            <property name="top_attach">1</property>
+            <property name="left_attach">7</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="calc_twos_complement_button">
-            <property name="label">twos</property>
+          <object class="GtkButton" id="calc_factor_button">
+            <property name="label">fact</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="use_underline">True</property>
             <property name="focus_on_click">False</property>
-            <property name="tooltip_text" translatable="yes">Two’s Complement</property>
-            <property name="action_name">cal.insert-general</property>
-            <property name="action_target">'twos '</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">7</property>
-            <property name="top_attach">1</property>
+            <property name="top_attach">4</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="calc_character_button">
+            <property name="label">á</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">Insert Character Code</property>
+            <property name="action_name">cal.insert-character</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="calc_character_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the insert character button">Insert Character</property>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">8</property>
+            <property name="top_attach">3</property>
+            <property name="width">2</property>
+          </packing>
+        </child>
+        <child>
+          <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_store_button-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for 
the store value button">Store</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox20">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <object class="GtkLabel" id="label23">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" comments="The label on the memory 
button">x</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkArrow" id="arrow14">
+                    <property name="visible">True</property>
+                    <property name="arrow_type">down</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <style>
+              <class name="function-button"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">5</property>
+            <property name="top_attach">4</property>
+            <property name="width">2</property>
           </packing>
         </child>
         <child>
@@ -2453,12 +2494,19 @@
             </style>
           </object>
           <packing>
-            <property name="left_attach">9</property>
-            <property name="top_attach">0</property>
+            <property name="left_attach">8</property>
+            <property name="top_attach">4</property>
+            <property name="width">2</property>
           </packing>
         </child>
+      </object>
+      <packing>
+        <property name="name">advanced</property>
+      </packing>
+    </child>
         <style>
           <class name="math-buttons"/>
+          <class name="buttons-programming"/>
         </style>
       </object>
       <packing>
@@ -2557,4 +2605,11 @@
       <action-widget response="-5">button9</action-widget>
     </action-widgets>
   </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]