gcalctool r2251 - in trunk: . gcalctool glade help/C help/C/figures



Author: rancell
Date: Wed Oct  8 01:12:57 2008
New Revision: 2251
URL: http://svn.gnome.org/viewvc/gcalctool?rev=2251&view=rev

Log:
Seperated functions in programming and scientific modes (Robin Sonefors, Bug #501508)

Modified:
   trunk/ChangeLog
   trunk/gcalctool/gtk.c
   trunk/glade/gcalctool.glade
   trunk/help/C/figures/gcalctool_programming_window.png
   trunk/help/C/figures/gcalctool_scientific_window.png
   trunk/help/C/gcalctool.xml

Modified: trunk/gcalctool/gtk.c
==============================================================================
--- trunk/gcalctool/gtk.c	(original)
+++ trunk/gcalctool/gtk.c	Wed Oct  8 01:12:57 2008
@@ -448,7 +448,9 @@
     GtkWidget *adv_panel;      /* Panel containing advanced mode widgets. */
     GtkWidget *fin_panel;      /* Panel containing financial mode widgets. */
     GtkWidget *sci_panel;      /* Panel containing scientific mode widgets. */
-    GtkWidget *mode_panel;     /* Panel containing scientific mode widgets. */
+    GtkWidget *prog_panel;     /* Panel containing programming mode widgets. */
+    GtkWidget *sci_mode_panel; /* Panel containing scientific mode widgets. */
+    GtkWidget *prog_mode_panel;/* Panel containing programming mode widgets. */
     
     /* Labels for popup menus */
     GtkWidget *constant_menu_labels[MAX_CONSTANTS];
@@ -797,10 +799,13 @@
     g_object_set(G_OBJECT(X->bas_panel),  "visible", mode == BASIC, NULL);
     g_object_set(G_OBJECT(X->adv_panel),  "visible", mode != BASIC, NULL);
     g_object_set(G_OBJECT(X->fin_panel),  "visible", mode == FINANCIAL, NULL);
-    g_object_set(G_OBJECT(X->mode_panel), "visible", 
-                 mode == SCIENTIFIC || mode == PROGRAMMING, NULL);
-    g_object_set(G_OBJECT(X->sci_panel),  "visible", 
-                 mode == SCIENTIFIC || mode == PROGRAMMING, NULL);
+    g_object_set(G_OBJECT(X->sci_mode_panel), "visible", 
+                          mode == SCIENTIFIC, NULL);
+    g_object_set(G_OBJECT(X->prog_mode_panel), "visible", 
+                          mode == PROGRAMMING, NULL);
+    g_object_set(G_OBJECT(X->sci_panel),  "visible", mode == SCIENTIFIC, NULL);
+    g_object_set(G_OBJECT(X->prog_panel),  "visible", 
+                 mode == PROGRAMMING, NULL);
     g_object_set(G_OBJECT(X->bit_panel),  "visible", mode == PROGRAMMING, NULL);
     gtk_widget_set_sensitive(GET_WIDGET("show_trailing_zeroes_menu"),
                              mode == SCIENTIFIC || mode == PROGRAMMING);
@@ -826,8 +831,14 @@
         }
     }
 
-    if (GTK_WIDGET_VISIBLE(X->mode_panel)) {
-        gtk_widget_size_request(X->mode_panel, r);
+    if (GTK_WIDGET_VISIBLE(X->sci_mode_panel)) {
+        gtk_widget_size_request(X->sci_mode_panel, r);
+        w = MAX(w, r->width);
+        h += r->height;
+    }
+
+    if (GTK_WIDGET_VISIBLE(X->prog_mode_panel)) {
+        gtk_widget_size_request(X->prog_mode_panel, r);
         w = MAX(w, r->width);
         h += r->height;
     }
@@ -837,6 +848,12 @@
         w = MAX(w, r->width);
         h += r->height;
     }
+    
+    if (GTK_WIDGET_VISIBLE(X->prog_panel)) {
+        gtk_widget_size_request(X->prog_panel, r);
+        w = MAX(w, r->width);
+        h += r->height;
+    }
     g_free(r);
   
     /* For initial display. */
@@ -989,7 +1006,8 @@
         ui_set_base(v->base);
     }
 
-    gtk_widget_set_sensitive(X->mode_panel, !v->error);
+    gtk_widget_set_sensitive(X->sci_mode_panel, !v->error);
+    gtk_widget_set_sensitive(X->prog_mode_panel, !v->error);
 
     gtk_widget_set_sensitive(GET_WIDGET("copy_menu"),            !v->error);
     gtk_widget_set_sensitive(GET_WIDGET("paste_menu"),           !v->error); 
@@ -2536,12 +2554,14 @@
     X->display_item = GET_WIDGET("displayitem"),
     X->bas_panel    = GET_WIDGET("basic_panel");
     X->sci_panel    = GET_WIDGET("scientific_panel");
+    X->prog_panel   = GET_WIDGET("programming_panel");
     X->adv_panel    = GET_WIDGET("advanced_panel");
     X->fin_panel    = GET_WIDGET("financial_panel");
     X->bit_panel    = GET_WIDGET("bit_panel");
     X->clear_buttons[0] = GET_WIDGET("calc_clear_simple_button");
     X->clear_buttons[1] = GET_WIDGET("calc_clear_advanced_button");   
-    X->mode_panel   = GET_WIDGET("mode_panel");
+    X->sci_mode_panel = GET_WIDGET("scientific_mode_panel");
+    X->prog_mode_panel = GET_WIDGET("programming_mode_panel");
     X->trig[0]      = GET_WIDGET("degrees_radio");
     X->trig[1]      = GET_WIDGET("gradians_radio");
     X->trig[2]      = GET_WIDGET("radians_radio");

Modified: trunk/glade/gcalctool.glade
==============================================================================
--- trunk/glade/gcalctool.glade	(original)
+++ trunk/glade/gcalctool.glade	Wed Oct  8 01:12:57 2008
@@ -243,7 +243,7 @@
 		      <property name="group">view_basic_menu</property>
 		      <signal name="select" handler="menu_item_select_cb"/>
 		      <signal name="deselect" handler="menu_item_deselect_cb"/>
-		      <signal name="activate" handler="mode_radio_cb" last_modification_time="Sun, 27 Sep 2008 22:50:04 GMT"/>
+		      <signal name="activate" handler="mode_radio_cb" last_modification_time="Sat, 27 Sep 2008 22:50:04 GMT"/>
 		      <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/>
 		    </widget>
 		  </child>
@@ -413,7 +413,121 @@
       </child>
 
       <child>
-	<widget class="GtkVBox" id="mode_panel">
+	<widget class="GtkHBox" id="programming_mode_panel">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox6">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkRadioButton" id="binary_radio">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Set numeric base to binary (base 2)</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Bin</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <signal name="toggled" handler="base_cb"/>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="octal_radio">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Set numeric base to octal (base 8)</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Oct</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">binary_radio</property>
+		  <signal name="toggled" handler="base_cb"/>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="decimal_radio">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Set numeric base to decimal (base 10)</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Dec</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">binary_radio</property>
+		  <signal name="toggled" handler="base_cb"/>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="hexadecimal_radio">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Set numeric base to hexadecimal (base 16)</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">He_x</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">binary_radio</property>
+		  <signal name="toggled" handler="base_cb"/>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">True</property>
+	      <property name="pack_type">GTK_PACK_END</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="scientific_mode_panel">
 	  <property name="border_width">6</property>
 	  <property name="visible">True</property>
 	  <property name="homogeneous">False</property>
@@ -504,46 +618,24 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox6">
+		<widget class="GtkHBox" id="hbox9">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
 		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkRadioButton" id="binary_radio">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set numeric base to binary (base 2)</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Bin</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <signal name="toggled" handler="base_cb"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="octal_radio">
+		    <widget class="GtkRadioButton" id="engineering_radio">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set numeric base to octal (base 8)</property>
+		      <property name="tooltip" translatable="yes">Set display type to engineering format</property>
 		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Oct</property>
+		      <property name="label" translatable="yes">E_ng</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
 		      <property name="focus_on_click">True</property>
 		      <property name="active">False</property>
 		      <property name="inconsistent">False</property>
 		      <property name="draw_indicator">True</property>
-		      <property name="group">binary_radio</property>
-		      <signal name="toggled" handler="base_cb"/>
+		      <signal name="toggled" handler="disp_cb"/>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -553,19 +645,19 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkRadioButton" id="decimal_radio">
+		    <widget class="GtkRadioButton" id="fixed_point_radio">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set numeric base to decimal (base 10)</property>
+		      <property name="tooltip" translatable="yes">Set display type to fixed-point format</property>
 		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Dec</property>
+		      <property name="label" translatable="yes">_Fix</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
 		      <property name="focus_on_click">True</property>
 		      <property name="active">False</property>
 		      <property name="inconsistent">False</property>
 		      <property name="draw_indicator">True</property>
-		      <property name="group">binary_radio</property>
-		      <signal name="toggled" handler="base_cb"/>
+		      <property name="group">engineering_radio</property>
+		      <signal name="toggled" handler="disp_cb"/>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -575,19 +667,19 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkRadioButton" id="hexadecimal_radio">
+		    <widget class="GtkRadioButton" id="scientific_radio">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set numeric base to hexadecimal (base 16)</property>
+		      <property name="tooltip" translatable="yes">Set display type to scientific format</property>
 		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">He_x</property>
+		      <property name="label" translatable="yes">_Sci</property>
 		      <property name="use_underline">True</property>
 		      <property name="relief">GTK_RELIEF_NORMAL</property>
 		      <property name="focus_on_click">True</property>
 		      <property name="active">False</property>
 		      <property name="inconsistent">False</property>
 		      <property name="draw_indicator">True</property>
-		      <property name="group">binary_radio</property>
-		      <signal name="toggled" handler="base_cb"/>
+		      <property name="group">engineering_radio</property>
+		      <signal name="toggled" handler="disp_cb"/>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -673,82 +765,7 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox9">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="engineering_radio">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set display type to engineering format</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">E_ng</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <signal name="toggled" handler="disp_cb"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="fixed_point_radio">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set display type to fixed-point format</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Fix</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <property name="group">engineering_radio</property>
-		      <signal name="toggled" handler="disp_cb"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="scientific_radio">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Set display type to scientific format</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Sci</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <property name="group">engineering_radio</property>
-		      <signal name="toggled" handler="disp_cb"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		  <property name="pack_type">GTK_PACK_END</property>
-		</packing>
+		<placeholder/>
 	      </child>
 	    </widget>
 	    <packing>
@@ -780,8 +797,7 @@
 	      <property name="visible">True</property>
 	      <property name="tooltip" translatable="yes">Sum-of-the years'-digits depreciation [y]</property>
 	      <property name="label" translatable="yes" comments="Calculates the depreciation allowance on an asset for a specified period of time, using the Sum-Of-The-Years'-Digits method. This method of depreciation accelerates the rate of depreciation, so that more depreciation expense occurs in earlier periods than in later ones.
-The depreciable cost is cost - salvage. The useful life is the number of periods, typically years, over which an asset is depreciated. See also:
-http://en.wikipedia.org/wiki/Depreciation";>Syd</property>
+The depreciable cost is cost - salvage. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: http://en.wikipedia.org/wiki/Depreciation";>Syd</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
@@ -833,7 +849,7 @@
 	      <property name="label" translatable="yes" comments="Calculates the periodic interest necessary to increase an investment of present value pv to a future value of fv, over the number of compounding periods in term. See also:
 http://en.wikipedia.org/wiki/Interest
 
-                              
+                                  
 
 ">Rate</property>
 	      <property name="use_underline">True</property>
@@ -3975,44 +3991,18 @@
 	<widget class="GtkTable" id="scientific_panel">
 	  <property name="border_width">6</property>
 	  <property name="visible">True</property>
-	  <property name="n_rows">4</property>
+	  <property name="n_rows">2</property>
 	  <property name="n_columns">8</property>
 	  <property name="homogeneous">True</property>
 	  <property name="row_spacing">6</property>
 	  <property name="column_spacing">6</property>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_d_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Hexadecimal digit D [d]</property>
-	      <property name="label" translatable="yes">D</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Hexadecimal digit D</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
 	    <widget class="GtkButton" id="calc_functions_button">
 	      <property name="visible">True</property>
 	      <property name="tooltip" translatable="yes">User-defined functions [F]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">User-defined functions</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
@@ -4038,10 +4028,6 @@
 		      <property name="width_chars">-1</property>
 		      <property name="single_line_mode">False</property>
 		      <property name="angle">0</property>
-		      <accessibility>
-			<atkproperty name="AtkObject::accessible_name" translatable="yes">Fun</atkproperty>
-			<atkproperty name="AtkObject::accessible_description" translatable="yes">User-defined functions</atkproperty>
-		      </accessibility>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -4080,27 +4066,23 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_shift_left_button">
+	    <widget class="GtkButton" id="calc_constants_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Shift displayed value 1-15 places to the left [&lt;]</property>
+	      <property name="tooltip" translatable="yes">Constants [#]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Shift left</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox11">
+		<widget class="GtkHBox" id="hbox12">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
 		  <property name="spacing">3</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label7">
+		    <widget class="GtkLabel" id="label8">
 		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes" comments="Shift left">&lt;</property>
+		      <property name="label" translatable="yes">Con</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4114,9 +4096,6 @@
 		      <property name="width_chars">-1</property>
 		      <property name="single_line_mode">False</property>
 		      <property name="angle">0</property>
-		      <accessibility>
-			<atkproperty name="AtkObject::accessible_name" translatable="yes">Shift left</atkproperty>
-		      </accessibility>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -4126,7 +4105,7 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkArrow" id="arrow5">
+		    <widget class="GtkArrow" id="arrow6">
 		      <property name="visible">True</property>
 		      <property name="arrow_type">GTK_ARROW_DOWN</property>
 		      <property name="shadow_type">GTK_SHADOW_OUT</property>
@@ -4147,75 +4126,58 @@
 	    <packing>
 	      <property name="left_attach">0</property>
 	      <property name="right_attach">1</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
 	      <property name="x_options">expand|shrink|fill</property>
 	      <property name="y_options">expand|shrink|fill</property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_shift_right_button">
+	    <widget class="GtkButton" id="calc_natural_logarithm_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Shift displayed value 1-15 places to the right [&gt;]</property>
+	      <property name="tooltip" translatable="yes">Natural log [N]</property>
+	      <property name="label" translatable="yes" comments="Natural logarithm">Ln</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_logarithm_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Base 10 log [G]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Shift right</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox10">
+		<widget class="GtkLabel" id="label56">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">3</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label6">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes" comments="Shift right">&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		      <accessibility>
-			<atkproperty name="AtkObject::accessible_name" translatable="yes">Shift right</atkproperty>
-		      </accessibility>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkArrow" id="arrow4">
-		      <property name="visible">True</property>
-		      <property name="arrow_type">GTK_ARROW_DOWN</property>
-		      <property name="shadow_type">GTK_SHADOW_OUT</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
+		  <property name="label" translatable="yes" comments="Factorial">Log&lt;sub&gt;10&lt;/sub&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -4224,83 +4186,66 @@
 	      <property name="right_attach">2</property>
 	      <property name="top_attach">0</property>
 	      <property name="bottom_attach">1</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_constants_button">
+	    <widget class="GtkButton" id="calc_logarithm2_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Constants [#]</property>
+	      <property name="tooltip" translatable="yes">Base 2 log [H]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Constants</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox12">
+		<widget class="GtkLabel" id="label55">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">3</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label8">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Con</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		      <accessibility>
-			<atkproperty name="AtkObject::accessible_name" translatable="yes">Con</atkproperty>
-			<atkproperty name="AtkObject::accessible_description" translatable="yes">Constants</atkproperty>
-		      </accessibility>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkArrow" id="arrow6">
-		      <property name="visible">True</property>
-		      <property name="arrow_type">GTK_ARROW_DOWN</property>
-		      <property name="shadow_type">GTK_SHADOW_OUT</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
+		  <property name="label" translatable="yes" comments="Factorial">Log&lt;sub&gt;2&lt;/sub&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_exponential_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Enter an exponential number [E]</property>
+	      <property name="label" translatable="yes" comments="Exponential">Exp</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
 	      <property name="top_attach">1</property>
 	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
@@ -4310,9 +4255,6 @@
 	      <property name="tooltip" translatable="yes">Set accuracy from 0 to 9 numeric places [A]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Accuracy</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
@@ -4338,9 +4280,6 @@
 		      <property name="width_chars">-1</property>
 		      <property name="single_line_mode">False</property>
 		      <property name="angle">0</property>
-		      <accessibility>
-			<atkproperty name="AtkObject::accessible_name" translatable="yes">Acc</atkproperty>
-		      </accessibility>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -4373,8 +4312,8 @@
 	      <property name="right_attach">8</property>
 	      <property name="top_attach">0</property>
 	      <property name="bottom_attach">1</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
@@ -4386,9 +4325,6 @@
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Random number</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 	    </widget>
 	    <packing>
@@ -4396,262 +4332,122 @@
 	      <property name="right_attach">8</property>
 	      <property name="top_attach">1</property>
 	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_xor_button">
+	    <widget class="GtkButton" id="calc_factorial_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Bitwise XOR [x]</property>
-	      <property name="label" translatable="yes">XOR</property>
-	      <property name="use_underline">True</property>
+	      <property name="tooltip" translatable="yes">Factorial of displayed value [!]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Bitwise XOR</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
+
+	      <child>
+		<widget class="GtkLabel" id="label14">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes" comments="Factorial">&lt;i&gt;x&lt;/i&gt;!</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">6</property>
 	      <property name="right_attach">7</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_xnor_button">
+	    <widget class="GtkButton" id="calc_x_pow_y_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Bitwise XNOR [n]</property>
-	      <property name="label" translatable="yes">XNOR</property>
-	      <property name="use_underline">True</property>
+	      <property name="tooltip" translatable="yes">Raise displayed value to the power of y [^]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Bitwise XNOR</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
+
+	      <child>
+		<widget class="GtkLabel" id="label13">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes" comments="X to the power of y. Note that this label uses mark up and the &quot;y&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">7</property>
-	      <property name="right_attach">8</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="left_attach">5</property>
+	      <property name="right_attach">6</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_not_button">
+	    <widget class="GtkButton" id="calc_pow_10_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Bitwise NOT [~]</property>
-	      <property name="label" translatable="yes">NOT</property>
-	      <property name="use_underline">True</property>
+	      <property name="tooltip" translatable="yes">10 to the power of displayed value [}]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Bitwise NOT</atkproperty>
-		<atkproperty name="AtkObject::accessible_description" translatable="yes">Bitwise NOT [~]</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">5</property>
-	      <property name="right_attach">6</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkButton" id="calc_and_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Bitwise AND [&amp;]</property>
-	      <property name="label" translatable="yes">AND</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Bitwise AND</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
+	      <child>
+		<widget class="GtkLabel" id="label12">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes" comments="10 to thepower of  x. Note that this label uses mark up and the &quot;x&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">10&lt;sup&gt;&lt;i&gt;x&lt;/i&gt;&lt;/sup&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">4</property>
 	      <property name="right_attach">5</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_or_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Bitwise OR [|]</property>
-	      <property name="label" translatable="yes">OR</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Bitwise OR</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">3</property>
-	      <property name="right_attach">4</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_mask_16_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">16-bit unsigned integer value of display (])</property>
-	      <property name="label" translatable="yes" comments="16 bit unsigned integer">&amp;16</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">16 bit unsigned integer</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_f_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Hexadecimal digit F [f]</property>
-	      <property name="label" translatable="yes">F</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Hexadecimal digit F</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_c_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Hexadecimal digit C [c]</property>
-	      <property name="label" translatable="yes">C</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Hexadecimal digit C</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_b_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Hexadecimal digit B [b]</property>
-	      <property name="label" translatable="yes">B</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Hexadecimal digit B</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_e_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Hexadecimal digit E [e]</property>
-	      <property name="label" translatable="yes">E</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Hexadecimal digit E</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_a_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Hexadecimal digit A [a]</property>
-	      <property name="label" translatable="yes">A</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Hexadecimal digit A</atkproperty>
-	      </accessibility>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
@@ -4661,9 +4457,6 @@
 	      <property name="tooltip" translatable="yes">e to the power of displayed value [{]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">E to the x</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
@@ -4683,10 +4476,6 @@
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
 		  <property name="angle">0</property>
-		  <accessibility>
-		    <atkproperty name="AtkObject::accessible_name" translatable="yes">ex</atkproperty>
-		    <atkproperty name="AtkObject::accessible_description" translatable="yes">E to the x</atkproperty>
-		  </accessibility>
 		</widget>
 	      </child>
 	    </widget>
@@ -4695,72 +4484,43 @@
 	      <property name="right_attach">4</property>
 	      <property name="top_attach">1</property>
 	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_factorial_button">
+	    <widget class="GtkButton" id="calc_modulus_divide_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Factorial of displayed value [!]</property>
+	      <property name="tooltip" translatable="yes">Modulus Division [M]</property>
+	      <property name="label" translatable="yes">Mod</property>
+	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">Factorial</atkproperty>
-		<atkproperty name="AtkObject::accessible_description" translatable="yes">Factorial</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
-
-	      <child>
-		<widget class="GtkLabel" id="label14">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">&lt;i&gt;x&lt;/i&gt;!</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		  <accessibility>
-		    <atkproperty name="AtkObject::accessible_name" translatable="yes">Factorial</atkproperty>
-		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Factorial</atkproperty>
-		  </accessibility>
-		</widget>
-	      </child>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">6</property>
 	      <property name="right_attach">7</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_x_pow_y_button">
+	    <widget class="GtkButton" id="calc_tangent_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Raise displayed value to the power of y [^]</property>
+	      <property name="tooltip" translatable="yes">Tangent [L]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">X to the y</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label13">
+		<widget class="GtkLabel" id="tangent_label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="X to the power of y. Note that this label uses mark up and the &quot;y&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
+		  <property name="label" translatable="yes" comments="Factorial">Tan</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4774,38 +4534,31 @@
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
 		  <property name="angle">0</property>
-		  <accessibility>
-		    <atkproperty name="AtkObject::accessible_name" translatable="yes">xy</atkproperty>
-		    <atkproperty name="AtkObject::accessible_description" translatable="yes">X to the y</atkproperty>
-		  </accessibility>
 		</widget>
 	      </child>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">5</property>
 	      <property name="right_attach">6</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_pow_10_button">
+	    <widget class="GtkButton" id="calc_sine_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">10 to the power of displayed value [}]</property>
+	      <property name="tooltip" translatable="yes">Sine [K]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
-	      <accessibility>
-		<atkproperty name="AtkObject::accessible_name" translatable="yes">10 to the x</atkproperty>
-	      </accessibility>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label12">
+		<widget class="GtkLabel" id="sine_label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="10 to thepower of  x. Note that this label uses mark up and the &quot;x&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">10&lt;sup&gt;&lt;i&gt;x&lt;/i&gt;&lt;/sup&gt;</property>
+		  <property name="label" translatable="yes" comments="Factorial">Sin</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4819,20 +4572,16 @@
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
 		  <property name="angle">0</property>
-		  <accessibility>
-		    <atkproperty name="AtkObject::accessible_name" translatable="yes">10x</atkproperty>
-		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Ten to the x</atkproperty>
-		  </accessibility>
 		</widget>
 	      </child>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">4</property>
 	      <property name="right_attach">5</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
@@ -4867,154 +4616,275 @@
 	    <packing>
 	      <property name="left_attach">3</property>
 	      <property name="right_attach">4</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkTable" id="programming_panel">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="n_rows">2</property>
+	  <property name="n_columns">8</property>
+	  <property name="homogeneous">True</property>
+	  <property name="row_spacing">6</property>
+	  <property name="column_spacing">6</property>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_sine_button">
+	    <widget class="GtkButton" id="calc_d_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Sine [K]</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit D [d]</property>
+	      <property name="label" translatable="yes">D</property>
+	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
 
-	      <child>
-		<widget class="GtkLabel" id="sine_label">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">Sin</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-	      </child>
+	  <child>
+	    <widget class="GtkButton" id="calc_e_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit E [e]</property>
+	      <property name="label" translatable="yes">E</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_f_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit F [f]</property>
+	      <property name="label" translatable="yes">F</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_a_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit A [a]</property>
+	      <property name="label" translatable="yes">A</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_b_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit B [b]</property>
+	      <property name="label" translatable="yes">B</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_c_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit C [c]</property>
+	      <property name="label" translatable="yes">C</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_xnor_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Bitwise XNOR [n]</property>
+	      <property name="label" translatable="yes">XNOR</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">6</property>
+	      <property name="right_attach">7</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_mask_32_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">32-bit unsigned integer value of display ([)</property>
+	      <property name="label" translatable="yes" comments="32 bit unsigned integer">&amp;32</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">4</property>
 	      <property name="right_attach">5</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_tangent_button">
+	    <widget class="GtkButton" id="calc_not_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Tangent [L]</property>
+	      <property name="tooltip" translatable="yes">Bitwise NOT [~]</property>
+	      <property name="label" translatable="yes">NOT</property>
+	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
-
-	      <child>
-		<widget class="GtkLabel" id="tangent_label">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">Tan</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">5</property>
-	      <property name="right_attach">6</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="left_attach">7</property>
+	      <property name="right_attach">8</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_modulus_divide_button">
+	    <widget class="GtkButton" id="calc_xor_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Modulus Division [M]</property>
-	      <property name="label" translatable="yes">Mod</property>
+	      <property name="tooltip" translatable="yes">Bitwise XOR [x]</property>
+	      <property name="label" translatable="yes">XOR</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">6</property>
-	      <property name="right_attach">7</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="left_attach">5</property>
+	      <property name="right_attach">6</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_exponential_button">
+	    <widget class="GtkButton" id="calc_and_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Enter an exponential number [E]</property>
-	      <property name="label" translatable="yes" comments="Exponential">Exp</property>
+	      <property name="tooltip" translatable="yes">Bitwise AND [&amp;]</property>
+	      <property name="label" translatable="yes">AND</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">7</property>
-	      <property name="right_attach">8</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="left_attach">5</property>
+	      <property name="right_attach">6</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_mask_32_button">
+	    <widget class="GtkButton" id="calc_or_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">32-bit unsigned integer value of display ([)</property>
-	      <property name="label" translatable="yes" comments="32 bit unsigned integer">&amp;32</property>
+	      <property name="tooltip" translatable="yes">Bitwise OR [|]</property>
+	      <property name="label" translatable="yes">OR</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="left_attach">6</property>
+	      <property name="right_attach">7</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_natural_logarithm_button">
+	    <widget class="GtkButton" id="calc_mask_16_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Natural log [N]</property>
-	      <property name="label" translatable="yes" comments="Natural logarithm">Ln</property>
+	      <property name="tooltip" translatable="yes">16-bit unsigned integer value of display (])</property>
+	      <property name="label" translatable="yes" comments="16 bit unsigned integer">&amp;16</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
@@ -5023,86 +4893,148 @@
 	    <packing>
 	      <property name="left_attach">3</property>
 	      <property name="right_attach">4</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_logarithm_button">
+	    <widget class="GtkButton" id="calc_shift_left_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Base 10 log [G]</property>
+	      <property name="tooltip" translatable="yes">Shift displayed value 1-15 places to the left [&lt;]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label56">
+		<widget class="GtkHBox" id="hbox11">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">Log&lt;sub&gt;10&lt;/sub&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label7">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes" comments="Shift left">&lt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow5">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
 		</widget>
 	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">4</property>
-	      <property name="right_attach">5</property>
+	      <property name="left_attach">3</property>
+	      <property name="right_attach">4</property>
 	      <property name="top_attach">0</property>
 	      <property name="bottom_attach">1</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_logarithm2_button">
+	    <widget class="GtkButton" id="calc_shift_right_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Base 2 log [H]</property>
+	      <property name="tooltip" translatable="yes">Shift displayed value 1-15 places to the right [&gt;]</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label55">
+		<widget class="GtkHBox" id="hbox10">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">Log&lt;sub&gt;2&lt;/sub&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label6">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes" comments="Shift right">&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow4">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
 		</widget>
 	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">5</property>
-	      <property name="right_attach">6</property>
+	      <property name="left_attach">4</property>
+	      <property name="right_attach">5</property>
 	      <property name="top_attach">0</property>
 	      <property name="bottom_attach">1</property>
-	      <property name="x_options">expand|shrink|fill</property>
-	      <property name="y_options">expand|shrink|fill</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 	</widget>

Modified: trunk/help/C/figures/gcalctool_programming_window.png
==============================================================================
Binary files. No diff available.

Modified: trunk/help/C/figures/gcalctool_scientific_window.png
==============================================================================
Binary files. No diff available.

Modified: trunk/help/C/gcalctool.xml
==============================================================================
--- trunk/help/C/gcalctool.xml	(original)
+++ trunk/help/C/gcalctool.xml	Wed Oct  8 01:12:57 2008
@@ -195,7 +195,7 @@
         </varlistentry>
   <varlistentry>
         <term><link linkend="gcalctool-advanced-mode">Advanced </link></term>
-        <listitem><para>Provides advanced calculator functions. You can store numbers in 10 different memory registers, and easily retrieve and replace the numbers in the memory registers. You can use all of the Advanced functions in Financial and Scientific modes.</para></listitem>
+        <listitem><para>Provides advanced calculator functions. You can store numbers in 10 different memory registers, and easily retrieve and replace the numbers in the memory registers. You can use all of the Advanced functions in Financial, Scientific and Programming modes.</para></listitem>
         </varlistentry>
         <varlistentry>
         <term><link linkend="gcalctool-financial-mode">Financial </link></term>
@@ -203,11 +203,11 @@
         </varlistentry>
         <varlistentry>
         <term><link linkend="gcalctool-scientific-mode">Scientific </link></term>
-        <listitem><para>Provides many additional mathematical functions, including trigonometric and bitwise functions. You can also store your own functions and constants, when you use Scientific mode.</para></listitem>
+        <listitem><para>Provides many additional mathematical functions, including trigonometric functions. You can also store your own functions and constants, when you use Scientific mode.</para></listitem>
         </varlistentry>
 		<varlistentry>
 		<term><link linkend="gcalctool-programming-mode">Programming </link></term>
-		<listitem><para>Provides functions useful to a programmer. Currently the same thing as the scientific mode, but with a bit editor.</para></listitem>
+		<listitem><para>Provides functions useful to a programmer, including bitwise functions and a bit editor.</para></listitem>
 		</varlistentry>
      </variablelist>
 
@@ -300,7 +300,7 @@
                   </varlistentry>
                   <varlistentry> <term>Mode area</term>
                          <listitem>
-                                <para>The mode area displays the buttons for the current mode. The Basic mode buttons are always displayed. Advanced mode buttons are also available in Financial and Scientific modes.  </para>
+                                <para>The mode area displays the buttons for the current mode. The Basic mode buttons are always displayed. Advanced mode buttons are also available in Financial, Scientific and Programming modes.  </para>
                          </listitem>
                   </varlistentry>
                   <varlistentry> <term>Popup Menu</term>
@@ -1123,50 +1123,6 @@
 		  </tgroup>
 		</informaltable>
     </sect3>
-    <sect3 id="gcalctool-num-base"> 
-      <title>To Set the Numeric Base</title> 
-      <para>To set the numeric base, select one of the buttons described in <xref linkend="gcalctool-TBL-num-base"/>. </para>
-                <table id="gcalctool-TBL-num-base" frame="all">
-                  <title>Setting the Numeric Base</title> 
-                  <tgroup cols="3" colsep="1" rowsep="1">
-                         <colspec colname="COLSPEC0" colwidth="50*"/>
-                         <colspec colname="COLSPEC1"/>
-                         <colspec colname="COLSPEC2" colwidth="50*"/>
-                         <thead>
-                                <row valign="top">
-                                  <entry colname="COLSPEC0">
-                                         <para>Function</para></entry>
-                                  <entry colname="COLSPEC1">
-                                         <para>Button</para></entry>
-                                  <entry colname="COLSPEC2">
-                                         <para>Description</para></entry>
-                                </row>
-                         </thead> 
-                         <tbody> 
-                           <row valign="top">
-                             <entry><para>Binary Base</para> </entry>
-                             <entry><para><guibutton>Bin</guibutton></para></entry>
-                             <entry><para>Sets the numeric base to binary, that is, base 2.</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Octal Base</para> </entry>
-                             <entry><para><guibutton>Oct</guibutton></para></entry>
-                             <entry><para>Sets the numeric base to octal, that is, base 8.</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Decimal Base</para> </entry>
-                             <entry><para><guibutton>Dec</guibutton></para></entry>
-                             <entry><para>Sets the numeric base to decimal, that is, base 10. Decimal is the default numeric base. If you change from Scientific mode to another mode, &app; automatically sets the numeric base to decimal.</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Hexadecimal Base</para> </entry>
-                             <entry><para><guibutton>Hex</guibutton></para></entry>
-                             <entry><para>Sets the numeric base to hexadecimal, that is, base 16.</para></entry>
-                           </row>
-			 </tbody>
-		  </tgroup>
-		</table>
-    </sect3>
     <sect3 id="gcalctool-display-type"> 
       <title>To Set the Display Type</title> 
       <para>To set the display type, select one of the buttons described in <xref linkend="gcalctool-TBL-display-type"/>. </para>
@@ -1449,74 +1405,6 @@
                   <para>Common antilogarithm and natural antilogarithm are not supported in this version of &app;.</para>
                 </note>
     </sect3>
-    <sect3 id="gcalctool-logic-calc"> 
-      <title>To Perform Bitwise Calculations</title> 
-      <para>To perform bitwise calculations, use the buttons described in <xref linkend="gcalctool-TBL-logic-calc"/>. </para>
-                <table id="gcalctool-TBL-logic-calc" frame="all">
-                  <title>Performing Bitwise Calculations</title> 
-                  <tgroup cols="5" colsep="1" rowsep="1">
-                         <colspec colname="COLSPEC0" colwidth="50*"/>
-                         <colspec colname="COLSPEC1"/>
-                         <colspec colname="COLSPEC2" colwidth="50*"/>
-                         <colspec colname="COLSPEC3" colwidth="50*"/>
-                         <colspec colname="COLSPEC4" colwidth="50*"/>
-                         <thead>
-                                <row valign="top">
-                                  <entry colname="COLSPEC0">
-                                         <para>Function</para></entry>
-                                  <entry colname="COLSPEC1">
-                                         <para>Button</para></entry>
-                                  <entry colname="COLSPEC2">
-                                         <para>Description</para></entry>
-                                  <entry colname="COLSPEC3">
-                                         <para>Example</para></entry>
-                                  <entry colname="COLSPEC4">
-                                         <para>Result</para></entry>
-                                </row>
-                         </thead> 
-                         <tbody> 
-                           <row valign="top">
-                             <entry><para>Bitwise OR</para> </entry>
-                             <entry><para><guibutton>OR</guibutton></para></entry>
-                             <entry><para>Performs a bitwise OR operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
-                             <entry><para>10001000 <guibutton>OR</guibutton> 00010001</para></entry>
-                             <entry><para>10011001</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Bitwise AND</para> </entry>
-                             <entry><para><guibutton>AND</guibutton></para></entry>
-                             <entry><para>Performs a bitwise AND operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
-                             <entry><para>10101010 <guibutton>AND</guibutton> 00110011</para></entry>
-                             <entry><para>100010</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Bitwise NOT</para> </entry>
-                             <entry><para><guibutton>NOT</guibutton></para></entry>
-                             <entry><para>Performs a bitwise NOT operation on the current value in the display area, treating the number as an unsigned long integer.</para></entry>
-                             <entry><para>For arithmetic precedence mode:</para>
-                             <para><guibutton>NOT</guibutton> 1357ACE</para>
-                             <para>For non-arithmetic precedence mode:</para>
-                             <para>1357ACE <guibutton>NOT</guibutton></para></entry>
-                             <entry><para>FECA8531</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Bitwise XOR</para> </entry>
-                             <entry><para><guibutton>XOR</guibutton></para></entry>
-                             <entry><para>Performs a bitwise XOR operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
-                             <entry><para>1100 <guibutton>XOR</guibutton> 1010</para></entry>
-                             <entry><para>110</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Bitwise XNOR</para> </entry>
-                             <entry><para><guibutton>XNOR</guibutton></para></entry>
-                             <entry><para>Performs a bitwise XNOR operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
-                             <entry><para>1100 <guibutton>XNOR</guibutton> 1010</para></entry>
-                             <entry><para>11111111111111111111111111111001</para></entry>
-                           </row>
-			 </tbody>
-		  </tgroup>
-		</table>
-    </sect3>
     <sect3 id="gcalctool-enter-exp"> 
       <title>To Enter Exponential Numbers</title> 
       <para>To enter exponential numbers, use the <guibutton>Exp</guibutton> button.</para>
@@ -1797,6 +1685,220 @@
         </listitem>
       </orderedlist>
     </sect3>
+    <sect3 id="gcalctool-misc-calc"> 
+      <title>To Perform Miscellaneous Scientific Calculations</title> 
+      <para>To perform miscellaneous scientific calculations, use the buttons described in <xref linkend="gcalctool-TBL-misc-calc"/>. </para>
+                <table id="gcalctool-TBL-misc-calc" frame="all">
+                  <title>Performing Miscellaneous Scientific Calculations</title> 
+                  <tgroup cols="5" colsep="1" rowsep="1">
+                         <colspec colname="COLSPEC0" colwidth="50*"/>
+                         <colspec colname="COLSPEC1"/>
+                         <colspec colname="COLSPEC2" colwidth="50*"/>
+                         <colspec colname="COLSPEC3" colwidth="50*"/>
+                         <colspec colname="COLSPEC4" colwidth="50*"/>
+                         <thead>
+                                <row valign="top">
+                                  <entry colname="COLSPEC0">
+                                         <para>Function</para></entry>
+                                  <entry colname="COLSPEC1">
+                                         <para>Button</para></entry>
+                                  <entry colname="COLSPEC2">
+                                         <para>Description</para></entry>
+                                  <entry colname="COLSPEC3">
+                                         <para>Example</para></entry>
+                                  <entry colname="COLSPEC4">
+                                         <para>Result</para></entry>
+                                </row>
+                         </thead> 
+                         <tbody> 
+                                                      <row valign="top">
+                             <entry><para>e to the <replaceable>x</replaceable> power</para> </entry>
+                             <entry><para>e<superscript><replaceable>x</replaceable></superscript></para></entry>
+                             <entry><para>Calculates the value of <literal>e</literal> raised to the power of the current value in the display area.</para></entry>
+                             <entry><para>2 e<superscript><replaceable>x</replaceable></superscript></para></entry>
+                             <entry><para>7.39</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>10 to the <replaceable>x</replaceable> power</para> </entry>
+                             <entry><para>10<superscript><replaceable>x</replaceable></superscript></para></entry>
+                             <entry><para>Calculates the value of 10 raised to the power of the current value in the display area.</para></entry>
+                             <entry><para>2 10<superscript><replaceable>x</replaceable></superscript></para></entry>
+                             <entry><para>100</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>x to the <replaceable>y</replaceable> power</para> </entry>
+                             <entry><para><replaceable>x</replaceable><superscript><replaceable>y</replaceable></superscript></para></entry>
+                             <entry><para>Raises the current value in the display area to the power of the next value that you enter.</para></entry>
+                             <entry><para>2 <replaceable>x</replaceable><superscript><replaceable>y</replaceable></superscript> <guibutton>4</guibutton> <guibutton>=</guibutton></para></entry>
+                             <entry><para>16</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para><replaceable>x</replaceable> Factorial</para> </entry>
+                             <entry><para><guibutton><replaceable>x</replaceable>!</guibutton></para></entry>
+                             <entry><para>Calculates the factorial of the current value in the display area. <replaceable>x</replaceable> factorial is <replaceable>x</replaceable>*(<replaceable>x</replaceable>-1)*(<replaceable>x</replaceable>-2)...*1. This function applies only to positive integers.</para></entry>
+                             <entry><para>4 <guibutton><replaceable>x</replaceable>!</guibutton></para></entry>
+                             <entry><para>24</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Modulus Division</para> </entry>
+                             <entry><para><guibutton>Mod</guibutton></para></entry>
+                             <entry><para>Divides the current integer value in the display area by the next integer number that you enter, displaying the remainder.</para></entry>
+                             <entry><para>15 <guibutton>Mod</guibutton> <guibutton>4</guibutton> <guibutton>=</guibutton></para></entry>
+                             <entry><para>3</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Random Number Generator</para> </entry>
+                             <entry><para><guibutton>Rand</guibutton></para></entry>
+                             <entry><para>Generates a random number in the range 0.0 to 1.0 then displays the random number in the display area.</para></entry>
+                             <entry><para><guibutton>Rand</guibutton></para></entry>
+                             <entry><para>0.14</para></entry>
+                           </row>
+			 </tbody>
+		  </tgroup>
+		</table>
+    </sect3>
+    </sect2> 
+    <sect2 id="gcalctool-programming-mode">
+      <title>To Perform Programming Calculations</title>
+      <para>To change to Programming mode, choose 
+	<menuchoice> 
+	  <guimenu>View</guimenu> 
+	  <guimenuitem>Programming</guimenuitem> 
+	</menuchoice>. 
+      </para>
+    <para>When you change to Programming mode, the following widget is displayed above the Base and Advanced mode buttons:</para>
+
+    <!-- ==== Figure ==== -->
+      <figure id="gcalctool-FIG-programming"> 
+	<title>&app; Programming Mode Buttons</title> 
+	<screenshot> 
+	  <mediaobject> 
+	    <imageobject><imagedata
+		fileref="figures/gcalctool_programming_window.png" format="PNG"/> 
+	    </imageobject>
+	    <textobject> 
+	      <phrase>Shows &app; Programming mode buttons.  </phrase> 
+	    </textobject> 
+	  </mediaobject> 
+	</screenshot> 
+      </figure>
+    <!-- ==== End of Figure ==== -->
+    <sect3 id="gcalctool-num-base"> 
+      <title>To Set the Numeric Base</title> 
+      <para>To set the numeric base, select one of the buttons described in <xref linkend="gcalctool-TBL-num-base"/>. </para>
+                <table id="gcalctool-TBL-num-base" frame="all">
+                  <title>Setting the Numeric Base</title> 
+                  <tgroup cols="3" colsep="1" rowsep="1">
+                         <colspec colname="COLSPEC0" colwidth="50*"/>
+                         <colspec colname="COLSPEC1"/>
+                         <colspec colname="COLSPEC2" colwidth="50*"/>
+                         <thead>
+                                <row valign="top">
+                                  <entry colname="COLSPEC0">
+                                         <para>Function</para></entry>
+                                  <entry colname="COLSPEC1">
+                                         <para>Button</para></entry>
+                                  <entry colname="COLSPEC2">
+                                         <para>Description</para></entry>
+                                </row>
+                         </thead> 
+                         <tbody> 
+                           <row valign="top">
+                             <entry><para>Binary Base</para> </entry>
+                             <entry><para><guibutton>Bin</guibutton></para></entry>
+                             <entry><para>Sets the numeric base to binary, that is, base 2.</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Octal Base</para> </entry>
+                             <entry><para><guibutton>Oct</guibutton></para></entry>
+                             <entry><para>Sets the numeric base to octal, that is, base 8.</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Decimal Base</para> </entry>
+                             <entry><para><guibutton>Dec</guibutton></para></entry>
+                             <entry><para>Sets the numeric base to decimal, that is, base 10. Decimal is the default numeric base. If you change from Programming mode to another mode, &app; automatically sets the numeric base to decimal.</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Hexadecimal Base</para> </entry>
+                             <entry><para><guibutton>Hex</guibutton></para></entry>
+                             <entry><para>Sets the numeric base to hexadecimal, that is, base 16.</para></entry>
+                           </row>
+			 </tbody>
+		  </tgroup>
+		</table>
+    </sect3>
+    <sect3 id="gcalctool-calc-bit-manipulation-ext">
+      <title>To Perform Bit Manipulations on Integers</title>
+      <para>If the calculator display shows an integer value, then each of the bits in that integer value is displayed as a collection of 0's and 1's in the Bit Editor. By clicking on any of these individual bits, their value can be toggled, causing the displayed integer value to be adjusted accordingly.</para>
+    </sect3>
+    <sect3 id="gcalctool-logic-calc"> 
+      <title>To Perform Bitwise Calculations</title> 
+      <para>To perform bitwise calculations, use the buttons described in <xref linkend="gcalctool-TBL-logic-calc"/>. </para>
+                <table id="gcalctool-TBL-logic-calc" frame="all">
+                  <title>Performing Bitwise Calculations</title> 
+                  <tgroup cols="5" colsep="1" rowsep="1">
+                         <colspec colname="COLSPEC0" colwidth="50*"/>
+                         <colspec colname="COLSPEC1"/>
+                         <colspec colname="COLSPEC2" colwidth="50*"/>
+                         <colspec colname="COLSPEC3" colwidth="50*"/>
+                         <colspec colname="COLSPEC4" colwidth="50*"/>
+                         <thead>
+                                <row valign="top">
+                                  <entry colname="COLSPEC0">
+                                         <para>Function</para></entry>
+                                  <entry colname="COLSPEC1">
+                                         <para>Button</para></entry>
+                                  <entry colname="COLSPEC2">
+                                         <para>Description</para></entry>
+                                  <entry colname="COLSPEC3">
+                                         <para>Example</para></entry>
+                                  <entry colname="COLSPEC4">
+                                         <para>Result</para></entry>
+                                </row>
+                         </thead> 
+                         <tbody> 
+                           <row valign="top">
+                             <entry><para>Bitwise OR</para> </entry>
+                             <entry><para><guibutton>OR</guibutton></para></entry>
+                             <entry><para>Performs a bitwise OR operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
+                             <entry><para>10001000 <guibutton>OR</guibutton> 00010001</para></entry>
+                             <entry><para>10011001</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Bitwise AND</para> </entry>
+                             <entry><para><guibutton>AND</guibutton></para></entry>
+                             <entry><para>Performs a bitwise AND operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
+                             <entry><para>10101010 <guibutton>AND</guibutton> 00110011</para></entry>
+                             <entry><para>100010</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Bitwise NOT</para> </entry>
+                             <entry><para><guibutton>NOT</guibutton></para></entry>
+                             <entry><para>Performs a bitwise NOT operation on the current value in the display area, treating the number as an unsigned long integer.</para></entry>
+                             <entry><para>For arithmetic precedence mode:</para>
+                             <para><guibutton>NOT</guibutton> 1357ACE</para>
+                             <para>For non-arithmetic precedence mode:</para>
+                             <para>1357ACE <guibutton>NOT</guibutton></para></entry>
+                             <entry><para>FECA8531</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Bitwise XOR</para> </entry>
+                             <entry><para><guibutton>XOR</guibutton></para></entry>
+                             <entry><para>Performs a bitwise XOR operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
+                             <entry><para>1100 <guibutton>XOR</guibutton> 1010</para></entry>
+                             <entry><para>110</para></entry>
+                           </row>
+                           <row valign="top">
+                             <entry><para>Bitwise XNOR</para> </entry>
+                             <entry><para><guibutton>XNOR</guibutton></para></entry>
+                             <entry><para>Performs a bitwise XNOR operation on the current value in the display area and the next number that you enter, treating both numbers as unsigned long integers.</para></entry>
+                             <entry><para>1100 <guibutton>XNOR</guibutton> 1010</para></entry>
+                             <entry><para>11111111111111111111111111111001</para></entry>
+                           </row>
+			 </tbody>
+		  </tgroup>
+		</table>
+    </sect3>
     <sect3 id="gcalctool-num-manip"> 
       <title>To Manipulate Binary Numbers</title> 
       <para>To manipulate binary numbers, use the buttons described in <xref linkend="gcalctool-TBL-num-manip"/>. </para>
@@ -1881,11 +1983,11 @@
       </informaltable>
 
     </sect3>
-    <sect3 id="gcalctool-misc-calc"> 
-      <title>To Perform Miscellaneous Scientific Calculations</title> 
-      <para>To perform miscellaneous scientific calculations, use the buttons described in <xref linkend="gcalctool-TBL-misc-calc"/>. </para>
-                <table id="gcalctool-TBL-misc-calc" frame="all">
-                  <title>Performing Miscellaneous Scientific Calculations</title> 
+	<sect3 id="gcalctool-misc-prog">
+      <title>To Perform Miscellaneous Programming Calculations</title> 
+      <para>To perform miscellaneous programming calculations, use the buttons described in <xref linkend="gcalctool-TBL-misc-prog"/>. </para>
+                <table id="gcalctool-TBL-misc-prog" frame="all">
+                  <title>Performing Miscellaneous Programming Calculations</title> 
                   <tgroup cols="5" colsep="1" rowsep="1">
                          <colspec colname="COLSPEC0" colwidth="50*"/>
                          <colspec colname="COLSPEC1"/>
@@ -1907,48 +2009,6 @@
                                 </row>
                          </thead> 
                          <tbody> 
-                                                      <row valign="top">
-                             <entry><para>e to the <replaceable>x</replaceable> power</para> </entry>
-                             <entry><para>e<superscript><replaceable>x</replaceable></superscript></para></entry>
-                             <entry><para>Calculates the value of <literal>e</literal> raised to the power of the current value in the display area.</para></entry>
-                             <entry><para>2 e<superscript><replaceable>x</replaceable></superscript></para></entry>
-                             <entry><para>7.39</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>10 to the <replaceable>x</replaceable> power</para> </entry>
-                             <entry><para>10<superscript><replaceable>x</replaceable></superscript></para></entry>
-                             <entry><para>Calculates the value of 10 raised to the power of the current value in the display area.</para></entry>
-                             <entry><para>2 10<superscript><replaceable>x</replaceable></superscript></para></entry>
-                             <entry><para>100</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>x to the <replaceable>y</replaceable> power</para> </entry>
-                             <entry><para><replaceable>x</replaceable><superscript><replaceable>y</replaceable></superscript></para></entry>
-                             <entry><para>Raises the current value in the display area to the power of the next value that you enter.</para></entry>
-                             <entry><para>2 <replaceable>x</replaceable><superscript><replaceable>y</replaceable></superscript> <guibutton>4</guibutton> <guibutton>=</guibutton></para></entry>
-                             <entry><para>16</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para><replaceable>x</replaceable> Factorial</para> </entry>
-                             <entry><para><guibutton><replaceable>x</replaceable>!</guibutton></para></entry>
-                             <entry><para>Calculates the factorial of the current value in the display area. <replaceable>x</replaceable> factorial is <replaceable>x</replaceable>*(<replaceable>x</replaceable>-1)*(<replaceable>x</replaceable>-2)...*1. This function applies only to positive integers.</para></entry>
-                             <entry><para>4 <guibutton><replaceable>x</replaceable>!</guibutton></para></entry>
-                             <entry><para>24</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Modulus Division</para> </entry>
-                             <entry><para><guibutton>Mod</guibutton></para></entry>
-                             <entry><para>Divides the current integer value in the display area by the next integer number that you enter, displaying the remainder.</para></entry>
-                             <entry><para>15 <guibutton>Mod</guibutton> <guibutton>4</guibutton> <guibutton>=</guibutton></para></entry>
-                             <entry><para>3</para></entry>
-                           </row>
-                           <row valign="top">
-                             <entry><para>Random Number Generator</para> </entry>
-                             <entry><para><guibutton>Rand</guibutton></para></entry>
-                             <entry><para>Generates a random number in the range 0.0 to 1.0 then displays the random number in the display area.</para></entry>
-                             <entry><para><guibutton>Rand</guibutton></para></entry>
-                             <entry><para>0.14</para></entry>
-                           </row>
                            <row valign="top">
                              <entry><para>Hexadecimal Numerals</para> </entry>
                              <entry><para><guibutton>A</guibutton> to <guibutton>F</guibutton> inclusive</para></entry>
@@ -1959,37 +2019,7 @@
 			 </tbody>
 		  </tgroup>
 		</table>
-    </sect3>
-    </sect2> 
-    <sect2 id="gcalctool-programming-mode">
-      <title>To Perform Programming Calculations</title>
-      <para>To change to Programming mode, choose 
-	<menuchoice> 
-	  <guimenu>View</guimenu> 
-	  <guimenuitem>Programming</guimenuitem> 
-	</menuchoice>. 
-      </para>
-    <para>When you change to Programming mode, the following widget is displayed above the Scientific mode buttons:</para>
-
-    <!-- ==== Figure ==== -->
-      <figure id="gcalctool-FIG-programming"> 
-	<title>&app; Programming Mode Buttons</title> 
-	<screenshot> 
-	  <mediaobject> 
-	    <imageobject><imagedata
-		fileref="figures/gcalctool_programming_window.png" format="PNG"/> 
-	    </imageobject>
-	    <textobject> 
-	      <phrase>Shows &app; Programming mode buttons.  </phrase> 
-	    </textobject> 
-	  </mediaobject> 
-	</screenshot> 
-      </figure>
-    <!-- ==== End of Figure ==== -->
-    <sect3 id="gcalctool-calc-bit-manipulation-ext">
-      <title>To Perform Bit Manipulations on Integers</title>
-      <para>If the calculator display shows an integer value, then each of the bits in that integer value is displayed as a collection of 0's and 1's in the Bit Editor. By clicking on any of these individual bits, their value can be toggled, causing the displayed integer value to be adjusted accordingly.</para>
-    </sect3>
+	 </sect3>
     </sect2>
 <!-- ============= Undo and Redo ======================== -->
   <sect2 id="gcalctool-undo-redo">



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