[chronojump] force sensor options from preferences to main gui analyze tab



commit d870e682b149a325af1dd20b5bc05de8a6ced8f1
Author: Xavier de Blas <xaviblas gmail com>
Date:   Wed Mar 14 19:52:32 2018 +0100

    force sensor options from preferences to main gui analyze tab

 glade/app1.glade              | 1788 +++++++++++++++++++++++++++++++++++++++--
 glade/preferences_win.glade   | 1522 +----------------------------------
 po/POTFILES.in                |    1 +
 src/Makefile.am               |    1 +
 src/gui/chronojump.cs         |    5 +-
 src/gui/chronojumpIcons.cs    |    5 +
 src/gui/encoder.cs            |    2 +
 src/gui/forceSensor.cs        |   12 +-
 src/gui/forceSensorAnalyze.cs |  455 +++++++++++
 src/gui/preferences.cs        |  393 +---------
 10 files changed, 2190 insertions(+), 1994 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index 6d50c9d..cd40d95 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -1619,6 +1619,15 @@
                                                             <placeholder/>
                                                             </child>
                                                             <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
                                                             <widget class="GtkLabel" 
id="label_start_selector_jumps">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -5051,10 +5060,10 @@ EncoderInertialCapture</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label157">
+                                                            <widget class="GtkImage" 
id="image_force_sensor_capture_load">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" translatable="yes">Load 
file</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -5063,10 +5072,10 @@ EncoderInertialCapture</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_force_sensor_capture_load">
+                                                            <widget class="GtkLabel" id="label157">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label" translatable="yes">Load 
file</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -5129,10 +5138,10 @@ EncoderInertialCapture</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label256">
+                                                            <widget class="GtkImage" 
id="image_force_sensor_tare">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" 
translatable="yes">Tare</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -5141,10 +5150,10 @@ EncoderInertialCapture</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_force_sensor_tare">
+                                                            <widget class="GtkLabel" id="label256">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label" 
translatable="yes">Tare</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -5236,10 +5245,10 @@ EncoderInertialCapture</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label164">
+                                                            <widget class="GtkImage" 
id="image_force_sensor_calibrate">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" 
translatable="yes">Calibrate</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -5248,10 +5257,10 @@ EncoderInertialCapture</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_force_sensor_calibrate">
+                                                            <widget class="GtkLabel" id="label164">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label" 
translatable="yes">Calibrate</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -15556,23 +15565,23 @@ Concentric</property>
                                                       <widget class="GtkHBox" id="hbox182">
                                                         <property name="visible">True</property>
                                                         <property name="can_focus">False</property>
-                                                        <property name="spacing">12</property>
+                                                        <property name="spacing">20</property>
                                                         <child>
-                                                          <widget class="GtkButton" 
id="button_force_sensor_analyze_load">
+                                                          <widget class="GtkButton" 
id="button_force_sensor_analyze_options">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
                                                             <property name="receives_default">True</property>
-                                                            <signal name="clicked" 
handler="on_button_force_sensor_load_clicked" swapped="no"/>
+                                                            <signal name="clicked" 
handler="on_button_force_sensor_analyze_options_clicked" swapped="no"/>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox205">
+                                                            <widget class="GtkHBox" id="hbox250">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label140">
+                                                            <widget class="GtkImage" 
id="image_force_sensor_analyze_options">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" translatable="yes">Load 
file</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -15581,10 +15590,10 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_force_sensor_analyze_load">
+                                                            <widget class="GtkLabel" id="label340">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label">Options</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -15602,13 +15611,266 @@ Concentric</property>
                                                           </packing>
                                                         </child>
                                                         <child>
-                                                          <placeholder/>
+                                                          <widget class="GtkButton" 
id="button_force_sensor_analyze_load">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="receives_default">True</property>
+                                                            <signal name="clicked" 
handler="on_button_force_sensor_load_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox205">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_force_sensor_analyze_load">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label140">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">Load 
file</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                          </widget>
+                                                          <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                          </packing>
                                                         </child>
+                                                      </widget>
+                                                      <packing>
+                                                        <property name="expand">False</property>
+                                                        <property name="fill">False</property>
+                                                        <property name="position">0</property>
+                                                      </packing>
+                                                    </child>
+                                                    <child>
+                                                      <widget class="GtkHBox" id="hbox_force_rfd">
+                                                        <property name="visible">True</property>
+                                                        <property name="can_focus">False</property>
                                                         <child>
-                                                          <widget class="GtkHBox" id="hbox240">
+                                                          <widget class="GtkVBox" id="vbox75">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">10</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_analyze">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="use_markup">True</property>
+                                                            <property name="single_line_mode">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkNotebook" 
id="notebook_force_analyze">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="show_tabs">False</property>
+                                                            <property name="show_border">False</property>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox231">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkScrolledWindow" 
id="scrolledwindow5">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="hscrollbar_policy">automatic</property>
+                                                            <property 
name="vscrollbar_policy">automatic</property>
+                                                            <property name="shadow_type">in</property>
+                                                            <child>
+                                                            <widget class="GtkViewport" 
id="viewport_force_sensor_graph">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="shadow_type">none</property>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox113">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_force_sensor_graph">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox109">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <child>
+                                                            <widget class="GtkButton" 
id="button_force_sensor_image_save_rfd">
+                                                            <property name="visible">True</property>
+                                                            <property name="sensitive">False</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="receives_default">True</property>
+                                                            <property name="tooltip" translatable="yes">Save 
image</property>
+                                                            <signal name="clicked" 
handler="on_button_force_sensor_image_save_rfd_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox114">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_forcesensor_analyze_image_save">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_forcesensor_analyze_image_save2">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="stock">gtk-save</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="pack_type">end</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label307">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">signal graph</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="tab_fill">False</property>
+                                                            <property name="type">tab</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox118">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="border_width">16</property>
+                                                            <property name="spacing">16</property>
+                                                            <child>
+                                                            <widget class="GtkHButtonBox" id="hbuttonbox13">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="layout_style">start</property>
+                                                            <child>
+                                                            <widget class="GtkButton" 
id="button_force_sensor_analyze_options_close">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="receives_default">True</property>
+                                                            <signal name="clicked" 
handler="on_button_force_sensor_analyze_options_close_clicked" swapped="no"/>
+                                                            <accelerator key="Escape" signal="clicked"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox251">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_force_sensor_analyze_options_close">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label341">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Close</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox240">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
                                                             <child>
                                                             <widget class="GtkLabel" id="label201">
                                                             <property name="visible">True</property>
@@ -15617,8 +15879,8 @@ Concentric</property>
                                                             <property name="label" 
translatable="yes">Length:</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
@@ -15633,8 +15895,8 @@ Concentric</property>
                                                             <signal name="toggled" 
handler="on_radio_force_rfd_duration_toggled" swapped="no"/>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
@@ -15642,20 +15904,20 @@ Concentric</property>
                                                             <widget class="GtkHBox" id="hbox241">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
                                                             <child>
                                                             <widget class="GtkRadioButton" 
id="radio_force_duration_seconds">
                                                             <property name="label" translatable="yes">This 
seconds:</property>
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
                                                             <property 
name="receives_default">False</property>
-                                                            <property name="active">True</property>
                                                             <property name="draw_indicator">True</property>
                                                             <property 
name="group">radio_force_rfd_duration_percent</property>
                                                             <signal name="toggled" 
handler="on_radio_force_rfd_duration_toggled" swapped="no"/>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
@@ -15684,73 +15946,657 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkFrame" id="frame12">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label_xalign">0</property>
+                                                            <property name="shadow_type">in</property>
+                                                            <child>
+                                                            <widget class="GtkAlignment" id="alignment37">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="left_padding">12</property>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox121">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="border_width">8</property>
+                                                            <property name="spacing">10</property>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox29">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">20</property>
+                                                            <child>
+                                                            <widget class="GtkCheckButton" 
id="check_force_1">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="clicked" 
handler="on_check_force_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox104">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label315">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">RFD</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label316">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">1</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_1">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_1_function">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">1</property>
+                                                            <property name="items"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_1_type">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">0</property>
+                                                            <property name="items"/>
+                                                            <signal name="changed" 
handler="on_combo_force_type_changed" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_1_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_1_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_1_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label317">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
                                                             <property name="position">2</property>
                                                             </packing>
                                                             </child>
-                                                          </widget>
-                                                          <packing>
+                                                            </widget>
+                                                            <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="pack_type">end</property>
                                                             <property name="position">2</property>
-                                                          </packing>
-                                                        </child>
-                                                      </widget>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="position">0</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <widget class="GtkHBox" id="hbox_force_rfd">
-                                                        <property name="visible">True</property>
-                                                        <property name="can_focus">False</property>
-                                                        <child>
-                                                          <widget class="GtkVBox" id="vbox75">
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_1_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_1_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_1_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 100 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label318">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">% 
maximum force</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_1_from_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label_force_1_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">From</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_1_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label_force_1_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">to</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_1_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label319">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">20</property>
+                                                            <child>
+                                                            <widget class="GtkCheckButton" 
id="check_force_2">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="clicked" 
handler="on_check_force_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox247">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label320">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">RFD</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label321">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">2</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_2">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">12</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_analyze">
+                                                            <widget class="GtkComboBox" 
id="combo_force_2_function">
+                                                            <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="use_markup">True</property>
-                                                            <property name="single_line_mode">True</property>
+                                                            <property name="active">1</property>
+                                                            <property name="items"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_2_type">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">0</property>
+                                                            <property name="items"/>
+                                                            <signal name="changed" 
handler="on_combo_force_type_changed" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_2_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_2_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_2_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label323">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
                                                             <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_2_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_2_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox231">
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_2_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 100 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label324">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">% 
maximum force</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_2_from_to">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkScrolledWindow" 
id="scrolledwindow5">
+                                                            <widget class="GtkLabel" id="label_force_2_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">From</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_2_from">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
-                                                            <property 
name="hscrollbar_policy">automatic</property>
-                                                            <property 
name="vscrollbar_policy">automatic</property>
-                                                            <property name="shadow_type">in</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
                                                             <child>
-                                                            <widget class="GtkViewport" 
id="viewport_force_sensor_graph">
+                                                            <widget class="GtkLabel" id="label_force_2_to">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="shadow_type">none</property>
+                                                            <property name="label" 
translatable="yes">to</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox113">
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_2_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label325">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
+                                                            <property name="spacing">20</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_force_sensor_graph">
+                                                            <widget class="GtkCheckButton" 
id="check_force_3">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="clicked" 
handler="on_check_force_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox248">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label326">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">RFD</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -15758,39 +16604,320 @@ Concentric</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label327">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">3</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_3">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_3_function">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">1</property>
+                                                            <property name="items"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_3_type">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">0</property>
+                                                            <property name="items"/>
+                                                            <signal name="changed" 
handler="on_combo_force_type_changed" swapped="no"/>
                                                             </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_3_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_3_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
                                                             </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_3_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label328">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_3_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_3_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox109">
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_3_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 100 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label329">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">% 
maximum force</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_3_from_to">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkButton" 
id="button_force_sensor_image_save_rfd">
+                                                            <widget class="GtkLabel" id="label_force_3_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">From</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_3_from">
                                                             <property name="visible">True</property>
-                                                            <property name="sensitive">False</property>
                                                             <property name="can_focus">True</property>
-                                                            <property name="receives_default">True</property>
-                                                            <property name="tooltip" translatable="yes">Save 
image</property>
-                                                            <signal name="clicked" 
handler="on_button_force_sensor_image_save_rfd_clicked" swapped="no"/>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox114">
+                                                            <widget class="GtkLabel" id="label_force_3_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">to</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_3_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label330">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_forc">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">20</property>
+                                                            <child>
+                                                            <widget class="GtkCheckButton" 
id="check_force_4">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="clicked" 
handler="on_check_force_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox249">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_forcesensor_analyze_image_save">
+                                                            <widget class="GtkLabel" id="label331">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label" 
translatable="yes">RFD</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label332">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">4</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -15799,10 +16926,30 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_forcesensor_analyze_image_save2">
+                                                            <widget class="GtkHBox" id="hbox_force_4">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="stock">gtk-save</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_4_function">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">1</property>
+                                                            <property name="items"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_4_type">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">0</property>
+                                                            <property name="items"/>
+                                                            <signal name="changed" 
handler="on_combo_force_type_changed" swapped="no"/>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -15810,16 +16957,210 @@ Concentric</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_4_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_4_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
                                                             </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_4_at_ms">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label333">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_4_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_4_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">At</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_4_at_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 100 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label334">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">% 
maximum force</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_4_from_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label_force_4_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">From</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="pack_type">end</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_4_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label_force_4_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">to</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_4_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 300 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label335">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -15831,6 +17172,298 @@ Concentric</property>
                                                             <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_impulse_row">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">20</property>
+                                                            <child>
+                                                            <widget class="GtkCheckButton" 
id="check_force_impulse">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="clicked" 
handler="on_check_force_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label336">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Impulse</property>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox_force_impulse">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_impulse_function">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">1</property>
+                                                            <property name="items"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkComboBox" 
id="combo_force_impulse_type">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="active">0</property>
+                                                            <property name="items"/>
+                                                            <signal name="changed" 
handler="on_combo_force_type_changed" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_impulse_until_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_impulse_until_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Until</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_impulse_until_percent">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 100 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label337">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">% 
maximum force</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_impulse_from_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_impulse_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">From</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_impulse_from">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 10000 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_impulse_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">to</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkSpinButton" 
id="spinbutton_force_impulse_to">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">●</property>
+                                                            <property name="width_chars">3</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 100000 1 1 
0</property>
+                                                            <property name="climb_rate">1</property>
+                                                            <property name="numeric">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label338">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">ms</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">4</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">3</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">5</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHButtonBox" id="hbuttonbox12">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="layout_style">center</property>
+                                                            <child>
+                                                            <widget class="GtkButton" 
id="button_force_rfd_default">
+                                                            <property name="label" translatable="yes">Back 
to default values</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="can_default">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <signal name="clicked" 
handler="on_button_force_rfd_default_clicked" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">6</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label339">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">RFD 
calculation</property>
+                                                            <property name="use_markup">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="type">label_item</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label308">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">options</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="position">1</property>
+                                                            <property name="tab_fill">False</property>
+                                                            <property name="type">tab</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
@@ -23065,6 +24698,15 @@ then click this button.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
diff --git a/glade/preferences_win.glade b/glade/preferences_win.glade
index 3127383..b977c6f 100644
--- a/glade/preferences_win.glade
+++ b/glade/preferences_win.glade
@@ -3124,1516 +3124,6 @@ Other</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox29">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="border_width">16</property>
-                <property name="spacing">16</property>
-                <child>
-                  <widget class="GtkFrame" id="frame12">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <widget class="GtkAlignment" id="alignment13">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <widget class="GtkVBox" id="vbox30">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="border_width">8</property>
-                            <property name="spacing">10</property>
-                            <child>
-                              <widget class="GtkHBox" id="hbox26">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">20</property>
-                                <child>
-                                  <widget class="GtkCheckButton" id="check_force_1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="on_check_force_clicked" swapped="no"/>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox30">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">4</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label76">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">RFD</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label77">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">1</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox_force_1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">12</property>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_1_function">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">1</property>
-                                        <property name="items"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_1_type">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">0</property>
-                                        <property name="items"/>
-                                        <signal name="changed" handler="on_combo_force_type_changed" 
swapped="no"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_1_at_ms">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_1_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_1_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label85">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_1_at_percent">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_1_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_1_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 100 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label86">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">% maximum 
force</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_1_from_to">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_1_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">From</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_1_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_1_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">to</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_1_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">3</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label88">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">4</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">4</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHBox" id="hbox_force_">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">20</property>
-                                <child>
-                                  <widget class="GtkCheckButton" id="check_force_2">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="on_check_force_clicked" swapped="no"/>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox31">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">4</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label78">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">RFD</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label79">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">2</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox_force_2">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">12</property>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_2_function">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">1</property>
-                                        <property name="items"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_2_type">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">0</property>
-                                        <property name="items"/>
-                                        <signal name="changed" handler="on_combo_force_type_changed" 
swapped="no"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_2_at_ms">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_2_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_2_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label89">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_2_at_percent">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_2_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_2_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 100 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label90">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">% maximum 
force</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_2_from_to">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_2_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">From</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_2_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_2_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">to</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_2_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">3</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label91">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">4</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">4</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHBox" id="hbox_force">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">20</property>
-                                <child>
-                                  <widget class="GtkCheckButton" id="check_force_3">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="on_check_force_clicked" swapped="no"/>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox32">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">4</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label80">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">RFD</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label82">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">3</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox_force_3">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">12</property>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_3_function">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">1</property>
-                                        <property name="items"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_3_type">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">0</property>
-                                        <property name="items"/>
-                                        <signal name="changed" handler="on_combo_force_type_changed" 
swapped="no"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_3_at_ms">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_3_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_3_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label93">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_3_at_percent">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_3_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_3_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 100 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label94">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">% maximum 
force</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_3_from_to">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_3_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">From</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_3_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_3_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">to</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_3_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">3</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label95">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">4</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">4</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">2</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHBox" id="hbox_forc">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">20</property>
-                                <child>
-                                  <widget class="GtkCheckButton" id="check_force_4">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="on_check_force_clicked" swapped="no"/>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox33">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">4</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label83">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">RFD</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label84">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">4</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox_force_4">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">12</property>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_4_function">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">1</property>
-                                        <property name="items"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_4_type">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">0</property>
-                                        <property name="items"/>
-                                        <signal name="changed" handler="on_combo_force_type_changed" 
swapped="no"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_4_at_ms">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_4_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_4_at_ms">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label97">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_4_at_percent">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_4_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">At</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_4_at_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 100 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label98">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">% maximum 
force</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_4_from_to">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_4_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">From</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_4_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_4_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">to</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_4_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 300 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">3</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label99">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">4</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">4</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">3</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHBox" id="hbox_force_impulse_row">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">20</property>
-                                <child>
-                                  <widget class="GtkCheckButton" id="check_force_impulse">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="on_check_force_clicked" swapped="no"/>
-                                    <child>
-                                      <widget class="GtkLabel" id="label87">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label" translatable="yes">Impulse</property>
-                                      </widget>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox_force_impulse">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">12</property>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_impulse_function">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">1</property>
-                                        <property name="items"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkComboBox" id="combo_force_impulse_type">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="active">0</property>
-                                        <property name="items"/>
-                                        <signal name="changed" handler="on_combo_force_type_changed" 
swapped="no"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_impulse_until_percent">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_impulse_until_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Until</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" 
id="spinbutton_force_impulse_until_percent">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 100 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label101">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">% maximum 
force</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkHBox" id="hbox_force_impulse_from_to">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">6</property>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_impulse_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">From</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_impulse_from">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 10000 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label_force_impulse_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">to</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">2</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkSpinButton" id="spinbutton_force_impulse_to">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">●</property>
-                                            <property name="width_chars">3</property>
-                                            <property name="invisible_char_set">True</property>
-                                            <property name="primary_icon_activatable">False</property>
-                                            <property name="secondary_icon_activatable">False</property>
-                                            <property name="primary_icon_sensitive">True</property>
-                                            <property name="secondary_icon_sensitive">True</property>
-                                            <property name="adjustment">0 0 100000 1 1 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">3</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label102">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label">ms</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="expand">True</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">4</property>
-                                          </packing>
-                                        </child>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">3</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">4</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHButtonBox" id="hbuttonbox2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="layout_style">end</property>
-                                <child>
-                                  <widget class="GtkButton" id="button_force_rfd_default">
-                                    <property name="label" translatable="yes">Back to default 
values</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="can_default">True</property>
-                                    <property name="receives_default">False</property>
-                                    <signal name="clicked" handler="on_button_force_rfd_default_clicked" 
swapped="no"/>
-                                  </widget>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">5</property>
-                              </packing>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                    </child>
-                    <child>
-                      <widget class="GtkLabel" id="label75">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">RFD calculation</property>
-                        <property name="use_markup">True</property>
-                      </widget>
-                      <packing>
-                        <property name="type">label_item</property>
-                      </packing>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">6</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label74">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="yalign">0</property>
-                <property name="label" translatable="yes">Force
-sensor</property>
-              </widget>
-              <packing>
-                <property name="position">6</property>
-                <property name="tab_fill">False</property>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-            <child>
               <widget class="GtkVBox" id="vbox5">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
@@ -4874,7 +3364,7 @@ sensor</property>
                 </child>
               </widget>
               <packing>
-                <property name="position">7</property>
+                <property name="position">6</property>
               </packing>
             </child>
             <child>
@@ -4885,7 +3375,7 @@ sensor</property>
                 <property name="label" translatable="yes">Multimedia</property>
               </widget>
               <packing>
-                <property name="position">7</property>
+                <property name="position">6</property>
                 <property name="tab_fill">False</property>
                 <property name="type">tab</property>
               </packing>
@@ -5267,7 +3757,7 @@ sensor</property>
                 </child>
               </widget>
               <packing>
-                <property name="position">8</property>
+                <property name="position">7</property>
               </packing>
             </child>
             <child>
@@ -5278,7 +3768,7 @@ sensor</property>
                 <property name="label" translatable="yes">Language</property>
               </widget>
               <packing>
-                <property name="position">8</property>
+                <property name="position">7</property>
                 <property name="tab_fill">False</property>
                 <property name="type">tab</property>
               </packing>
@@ -5683,7 +4173,7 @@ version:</property>
                 </child>
               </widget>
               <packing>
-                <property name="position">9</property>
+                <property name="position">8</property>
               </packing>
             </child>
             <child>
@@ -5694,7 +4184,7 @@ version:</property>
                 <property name="label" translatable="yes">Advanced</property>
               </widget>
               <packing>
-                <property name="position">9</property>
+                <property name="position">8</property>
                 <property name="tab_fill">False</property>
                 <property name="type">tab</property>
               </packing>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 33f0497..08b9ed3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -78,6 +78,7 @@ src/gui/event.cs
 src/gui/eventExecute.cs
 src/gui/executeAuto.cs
 src/gui/forceSensor.cs
+src/gui/forceSensorAnalyze.cs
 src/gui/genericWindow.cs
 src/gui/helpPorts.cs
 src/gui/jump.cs
diff --git a/src/Makefile.am b/src/Makefile.am
index e46b219..baa8a73 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -23,6 +23,7 @@ SOURCES = \
        gui/event.cs\
        gui/executeAuto.cs\
        gui/forceSensor.cs\
+       gui/forceSensorAnalyze.cs\
        gui/guiTests.cs\
        gui/jump.cs\
        gui/jumpsProfile.cs\
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 1bc4162..e7250f8 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -593,6 +593,7 @@ public partial class ChronoJumpWindow
                
                rfdList = SqliteForceSensor.SelectAll(false);
                impulse = SqliteForceSensor.SelectImpulse(false);
+               initForceSensor();
 
 
                createComboSelectJumps(true);
@@ -2931,7 +2932,7 @@ public partial class ChronoJumpWindow
 
        private void on_preferences_activate (object o, EventArgs args) 
        {
-               preferencesWin = PreferencesWindow.Show(preferences, rfdList, impulse, current_menuitem_mode, 
configChronojump.Compujump, progVersion);
+               preferencesWin = PreferencesWindow.Show(preferences, current_menuitem_mode, 
configChronojump.Compujump, progVersion);
                
                preferencesWin.FakeButtonImported.Clicked += new 
EventHandler(on_preferences_import_configuration);
                preferencesWin.FakeButtonDebugModeStart.Clicked += new 
EventHandler(on_preferences_debug_mode_start);
@@ -2952,8 +2953,6 @@ public partial class ChronoJumpWindow
        {
                preferences = preferencesWin.GetPreferences;
                LogB.Mute = preferences.muteLogs;
-               rfdList = preferencesWin.GetRFDList;
-               impulse = preferencesWin.GetImpulse;
 
                if(checkbutton_video.Active) {
                        videoCapturePrepare(false); //if error, show message
diff --git a/src/gui/chronojumpIcons.cs b/src/gui/chronojumpIcons.cs
index 8c53e21..810010e 100644
--- a/src/gui/chronojumpIcons.cs
+++ b/src/gui/chronojumpIcons.cs
@@ -123,6 +123,8 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Image image_force_sensor_calibrate;
        [Widget] Gtk.Image image_force_sensor_open_folder;
        [Widget] Gtk.Image image_force_sensor_check_version;
+       [Widget] Gtk.Image image_force_sensor_analyze_options;
+       [Widget] Gtk.Image image_force_sensor_analyze_options_close;
 
        private void putNonStandardIcons()
        {
@@ -244,6 +246,7 @@ public partial class ChronoJumpWindow
 
                pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "image_build.png");
                image_encoder_configuration.Pixbuf = pixbuf;
+               image_force_sensor_analyze_options.Pixbuf = pixbuf;
 
                pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "image_exercise.png");
                image_encoder_exercise.Pixbuf = pixbuf;
@@ -284,6 +287,8 @@ public partial class ChronoJumpWindow
 
                pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "image_close.png");
                image_encoder_exercise1.Pixbuf = pixbuf;
+               image_force_sensor_analyze_options_close.Pixbuf = pixbuf;
+
 
 
                /*
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 5e82fef..654def4 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -4109,6 +4109,8 @@ public partial class ChronoJumpWindow
                hbox_encoder_capture_top.Sensitive = ! show;
                vpaned_encoder_capture_video_and_set_graph.Sensitive = ! show;
                button_encoder_inertial_recalibrate.Sensitive = ! show;
+               hbox_top_person.Sensitive = ! show;
+               hbox_top_person_encoder.Sensitive = ! show;
        }
 
        //info is now info and edit (all values can be changed), and detete (there's delete button)
diff --git a/src/gui/forceSensor.cs b/src/gui/forceSensor.cs
index 66ab413..c6da604 100644
--- a/src/gui/forceSensor.cs
+++ b/src/gui/forceSensor.cs
@@ -15,7 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * Copyright (C) 2017   Xavier de Blas <xaviblas gmail com> 
+ * Copyright (C) 2017-2018   Xavier de Blas <xaviblas gmail com>
  */
 
 using System;
@@ -77,15 +77,6 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.DrawingArea force_capture_drawingarea;
        Gdk.Pixmap force_capture_pixmap = null;
 
-       //analyze tab
-       [Widget] Gtk.Button button_force_sensor_analyze_load;
-       [Widget] Gtk.Label label_force_sensor_analyze;
-       [Widget] Gtk.Image image_force_sensor_graph;
-       [Widget] Gtk.Viewport viewport_force_sensor_graph;
-       [Widget] Gtk.Button button_force_sensor_image_save_rfd;
-
-       [Widget] Gtk.SpinButton spin_force_duration_seconds;
-       [Widget] Gtk.RadioButton radio_force_duration_seconds;
 
        Thread forceCaptureThread;
        static bool forceProcessFinish;
@@ -971,7 +962,6 @@ LogB.Information(" fc R ");
                force_capture_allocationXOld = allocation.Width;
        }
 
-
        private void on_button_force_sensor_load_clicked (object o, EventArgs args)
        {
                if (currentSession == null)
diff --git a/src/gui/forceSensorAnalyze.cs b/src/gui/forceSensorAnalyze.cs
new file mode 100644
index 0000000..9f14d85
--- /dev/null
+++ b/src/gui/forceSensorAnalyze.cs
@@ -0,0 +1,455 @@
+/*
+ * This file is part of ChronoJump
+ *
+ * ChronoJump is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or   
+ *    (at your option) any later version.
+ *    
+ * ChronoJump is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+ *    GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Copyright (C) 2018   Xavier de Blas <xaviblas gmail com>
+ */
+
+using System;
+using System.IO;
+using Gtk;
+using Gdk;
+using Glade;
+using System.Text; //StringBuilder
+using System.Collections.Generic; //List<T>
+using Mono.Unix;
+
+//struct with relevant data used on various functions and threads
+public partial class ChronoJumpWindow 
+{
+       //analyze tab
+       [Widget] Gtk.Button button_force_sensor_analyze_load;
+       [Widget] Gtk.Label label_force_sensor_analyze;
+       [Widget] Gtk.Image image_force_sensor_graph;
+       [Widget] Gtk.Viewport viewport_force_sensor_graph;
+       [Widget] Gtk.Button button_force_sensor_image_save_rfd;
+
+       [Widget] Gtk.SpinButton spin_force_duration_seconds;
+       [Widget] Gtk.RadioButton radio_force_duration_seconds;
+
+       //analyze options
+       [Widget] Gtk.Notebook notebook_force_analyze;
+       [Widget] Gtk.Button button_force_sensor_analyze_options;
+       [Widget] Gtk.HBox hbox_force_1;
+       [Widget] Gtk.HBox hbox_force_2;
+       [Widget] Gtk.HBox hbox_force_3;
+       [Widget] Gtk.HBox hbox_force_4;
+       [Widget] Gtk.HBox hbox_force_impulse;
+       [Widget] Gtk.CheckButton check_force_1;
+       [Widget] Gtk.CheckButton check_force_2;
+       [Widget] Gtk.CheckButton check_force_3;
+       [Widget] Gtk.CheckButton check_force_4;
+       [Widget] Gtk.CheckButton check_force_impulse;
+       [Widget] Gtk.ComboBox combo_force_1_function;
+       [Widget] Gtk.ComboBox combo_force_2_function;
+       [Widget] Gtk.ComboBox combo_force_3_function;
+       [Widget] Gtk.ComboBox combo_force_4_function;
+       [Widget] Gtk.ComboBox combo_force_impulse_function;
+       [Widget] Gtk.ComboBox combo_force_1_type;
+       [Widget] Gtk.ComboBox combo_force_2_type;
+       [Widget] Gtk.ComboBox combo_force_3_type;
+       [Widget] Gtk.ComboBox combo_force_4_type;
+       [Widget] Gtk.ComboBox combo_force_impulse_type;
+       [Widget] Gtk.HBox hbox_force_1_at_ms;
+       [Widget] Gtk.HBox hbox_force_2_at_ms;
+       [Widget] Gtk.HBox hbox_force_3_at_ms;
+       [Widget] Gtk.HBox hbox_force_4_at_ms;
+       [Widget] Gtk.HBox hbox_force_1_at_percent;
+       [Widget] Gtk.HBox hbox_force_2_at_percent;
+       [Widget] Gtk.HBox hbox_force_3_at_percent;
+       [Widget] Gtk.HBox hbox_force_4_at_percent;
+       [Widget] Gtk.HBox hbox_force_impulse_until_percent;
+       [Widget] Gtk.HBox hbox_force_1_from_to;
+       [Widget] Gtk.HBox hbox_force_2_from_to;
+       [Widget] Gtk.HBox hbox_force_3_from_to;
+       [Widget] Gtk.HBox hbox_force_4_from_to;
+       [Widget] Gtk.HBox hbox_force_impulse_from_to;
+       [Widget] Gtk.SpinButton spinbutton_force_1_at_ms;
+       [Widget] Gtk.SpinButton spinbutton_force_2_at_ms;
+       [Widget] Gtk.SpinButton spinbutton_force_3_at_ms;
+       [Widget] Gtk.SpinButton spinbutton_force_4_at_ms;
+       [Widget] Gtk.SpinButton spinbutton_force_1_at_percent;
+       [Widget] Gtk.SpinButton spinbutton_force_2_at_percent;
+       [Widget] Gtk.SpinButton spinbutton_force_3_at_percent;
+       [Widget] Gtk.SpinButton spinbutton_force_4_at_percent;
+       [Widget] Gtk.SpinButton spinbutton_force_impulse_until_percent;
+       [Widget] Gtk.SpinButton spinbutton_force_1_from;
+       [Widget] Gtk.SpinButton spinbutton_force_2_from;
+       [Widget] Gtk.SpinButton spinbutton_force_3_from;
+       [Widget] Gtk.SpinButton spinbutton_force_4_from;
+       [Widget] Gtk.SpinButton spinbutton_force_impulse_from;
+       [Widget] Gtk.SpinButton spinbutton_force_1_to;
+       [Widget] Gtk.SpinButton spinbutton_force_2_to;
+       [Widget] Gtk.SpinButton spinbutton_force_3_to;
+       [Widget] Gtk.SpinButton spinbutton_force_4_to;
+       [Widget] Gtk.SpinButton spinbutton_force_impulse_to;
+
+
+       /*
+        * analyze options -------------------------->
+        */
+
+       private void forceSensorAnalyzeOptionsSensitivity(bool s) //s for sensitive
+       {
+               button_force_sensor_analyze_options.Sensitive = s;
+               button_force_sensor_analyze_load.Sensitive = s;
+
+               main_menu.Sensitive = s;
+               notebook_session_person.Sensitive = s;
+               hbox_contacts_sup_capture_analyze_two_buttons.Sensitive = s;
+               hbox_top_person.Sensitive = s;
+               hbox_top_person_encoder.Sensitive = s;
+       }
+
+       private void on_button_force_sensor_analyze_options_clicked (object o, EventArgs args)
+       {
+               notebook_force_analyze.CurrentPage = 1;
+               forceSensorAnalyzeOptionsSensitivity(false);
+       }
+
+       private void on_button_force_sensor_analyze_options_close_clicked (object o, EventArgs args)
+       {
+               // 1 change stuff on Sqlite if needed
+
+               Sqlite.Open();
+               List<ForceSensorRFD> newRFDList = getRFDValues();
+               int i = 0;
+               foreach(ForceSensorRFD rfd in newRFDList)
+               {
+                       if(rfdList[i].Changed(rfd))
+                       {
+                               SqliteForceSensor.Update(true, rfd);
+                               rfdList[i] = rfd;
+                       }
+                       i ++;
+               }
+
+               ForceSensorImpulse newImpulse = getImpulseValue();
+               if(newImpulse.Changed(impulse))
+               {
+                       SqliteForceSensor.UpdateImpulse(true, newImpulse);
+                       impulse = newImpulse;
+               }
+               Sqlite.Close();
+
+               // 2 change sensitivity of widgets
+
+               notebook_force_analyze.CurrentPage = 0;
+               forceSensorAnalyzeOptionsSensitivity(true);
+       }
+
+       private void initForceSensor ()
+       {
+               createForceCombos();
+               setRFDValues();
+               setImpulseValue();
+       }
+
+       private void check_force_visibilities()
+       {
+               hbox_force_1.Visible = (check_force_1.Active);
+               hbox_force_2.Visible = (check_force_2.Active);
+               hbox_force_3.Visible = (check_force_3.Active);
+               hbox_force_4.Visible = (check_force_4.Active);
+               hbox_force_impulse.Visible = (check_force_impulse.Active);
+       }
+
+       private void on_check_force_clicked (object o, EventArgs args)
+       {
+               check_force_visibilities();
+       }
+
+       private void createForceCombos ()
+       {
+               UtilGtk.ComboUpdate(combo_force_1_function, ForceSensorRFD.FunctionsArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_2_function, ForceSensorRFD.FunctionsArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_3_function, ForceSensorRFD.FunctionsArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_4_function, ForceSensorRFD.FunctionsArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_impulse_function, ForceSensorImpulse.FunctionsArray(true), 
"");
+
+               UtilGtk.ComboUpdate(combo_force_1_type, ForceSensorRFD.TypesArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_2_type, ForceSensorRFD.TypesArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_3_type, ForceSensorRFD.TypesArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_4_type, ForceSensorRFD.TypesArray(true), "");
+               UtilGtk.ComboUpdate(combo_force_impulse_type, ForceSensorImpulse.TypesArrayImpulse(true), "");
+       }
+
+       private void on_combo_force_type_changed (object o, EventArgs args)
+       {
+               Gtk.ComboBox combo = o as ComboBox;
+               if (o == null)
+                       return;
+
+               if(combo == combo_force_1_type)
+                       combo_force_visibility(
+                                       UtilGtk.ComboGetActive(combo_force_1_type),
+                                       hbox_force_1_at_ms,
+                                       hbox_force_1_at_percent,
+                                       hbox_force_1_from_to);
+               else if(combo == combo_force_2_type)
+                       combo_force_visibility(
+                                       UtilGtk.ComboGetActive(combo_force_2_type),
+                                       hbox_force_2_at_ms,
+                                       hbox_force_2_at_percent,
+                                       hbox_force_2_from_to);
+               else if(combo == combo_force_3_type)
+                       combo_force_visibility(
+                                       UtilGtk.ComboGetActive(combo_force_3_type),
+                                       hbox_force_3_at_ms,
+                                       hbox_force_3_at_percent,
+                                       hbox_force_3_from_to);
+               else if(combo == combo_force_4_type)
+                       combo_force_visibility(
+                                       UtilGtk.ComboGetActive(combo_force_4_type),
+                                       hbox_force_4_at_ms,
+                                       hbox_force_4_at_percent,
+                                       hbox_force_4_from_to);
+               else if(combo == combo_force_impulse_type)
+                       combo_force_impulse_visibility(
+                                       UtilGtk.ComboGetActive(combo_force_impulse_type),
+                                       hbox_force_impulse_until_percent,
+                                       hbox_force_impulse_from_to);
+       }
+
+       private void combo_force_visibility (string selected, Gtk.HBox at_ms, Gtk.HBox at_percent, Gtk.HBox 
from_to)
+       {
+               //valid for active == "" and active == "RFD max"
+               at_ms.Visible = false;
+               from_to.Visible = false;
+               at_percent.Visible = false;
+
+               if(selected == Catalog.GetString(ForceSensorRFD.Type_INSTANTANEOUS_name))
+               {
+                       at_ms.Visible = true;
+               }
+               else if(selected == Catalog.GetString(ForceSensorRFD.Type_AVERAGE_name))
+               {
+                       from_to.Visible = true;
+               }
+               else if(selected == Catalog.GetString(ForceSensorRFD.Type_PERCENT_F_MAX_name))
+               {
+                       at_percent.Visible = true;
+               }
+       }
+       private void combo_force_impulse_visibility (string selected, Gtk.HBox until_percent, Gtk.HBox 
from_to)
+       {
+               until_percent.Visible = false;
+               from_to.Visible = false;
+
+               if(selected == Catalog.GetString(ForceSensorImpulse.Type_IMP_UNTIL_PERCENT_F_MAX_name))
+               {
+                       until_percent.Visible = true;
+               }
+               else if(selected == Catalog.GetString(ForceSensorImpulse.Type_IMP_RANGE_name))
+               {
+                       from_to.Visible = true;
+               }
+       }
+
+       private void setRFDValues ()
+       {
+               setRFDValue(rfdList[0], check_force_1, combo_force_1_function, combo_force_1_type,
+                               hbox_force_1_at_ms, spinbutton_force_1_at_ms,
+                               hbox_force_1_at_percent, spinbutton_force_1_at_percent,
+                               hbox_force_1_from_to, spinbutton_force_1_from, spinbutton_force_1_to);
+
+               setRFDValue(rfdList[1], check_force_2, combo_force_2_function, combo_force_2_type,
+                               hbox_force_2_at_ms, spinbutton_force_2_at_ms,
+                               hbox_force_2_at_percent, spinbutton_force_2_at_percent,
+                               hbox_force_2_from_to, spinbutton_force_2_from, spinbutton_force_2_to);
+
+               setRFDValue(rfdList[2], check_force_3, combo_force_3_function, combo_force_3_type,
+                               hbox_force_3_at_ms, spinbutton_force_3_at_ms,
+                               hbox_force_3_at_percent, spinbutton_force_3_at_percent,
+                               hbox_force_3_from_to, spinbutton_force_3_from, spinbutton_force_3_to);
+
+               setRFDValue(rfdList[3], check_force_4, combo_force_4_function, combo_force_4_type,
+                               hbox_force_4_at_ms, spinbutton_force_4_at_ms,
+                               hbox_force_4_at_percent, spinbutton_force_4_at_percent,
+                               hbox_force_4_from_to, spinbutton_force_4_from, spinbutton_force_4_to);
+       }
+
+       private void setRFDValue(ForceSensorRFD rfd, Gtk.CheckButton check, Gtk.ComboBox 
combo_force_function, Gtk.ComboBox combo_force_type,
+                       Gtk.HBox hbox_force_at_ms, Gtk.SpinButton spinbutton_force_at_ms,
+                       Gtk.HBox hbox_force_at_percent, Gtk.SpinButton spinbutton_force_at_percent,
+                       Gtk.HBox hbox_force_from_to, Gtk.SpinButton spinbutton_force_from, Gtk.SpinButton 
spinbutton_force_to)
+       {
+               check.Active = rfd.active;
+
+               combo_force_function.Active = UtilGtk.ComboMakeActive(combo_force_function, 
rfd.FunctionPrint(true));
+               combo_force_type.Active = UtilGtk.ComboMakeActive(combo_force_type, rfd.TypePrint(true));
+
+               hbox_force_at_ms.Visible = false;
+               hbox_force_at_percent.Visible = false;
+               hbox_force_from_to.Visible = false;
+
+               if(rfd.type == ForceSensorRFD.Types.INSTANTANEOUS)
+               {
+                       hbox_force_at_ms.Visible = true;
+                       spinbutton_force_at_ms.Value = rfd.num1;
+               }
+               else if(rfd.type == ForceSensorRFD.Types.AVERAGE)
+               {
+                       hbox_force_from_to.Visible = true;
+                       spinbutton_force_from.Value = rfd.num1;
+                       spinbutton_force_to.Value = rfd.num2;
+               }
+               else if(rfd.type == ForceSensorRFD.Types.PERCENT_F_MAX)
+               {
+                       hbox_force_at_percent.Visible = true;
+                       spinbutton_force_at_percent.Value = rfd.num1;
+               }
+       }
+
+       private List<ForceSensorRFD> getRFDValues()
+       {
+               List<ForceSensorRFD> l = new List<ForceSensorRFD>();
+               l.Add(getRFDValue("RFD1", check_force_1, combo_force_1_function, combo_force_1_type,
+                                       spinbutton_force_1_at_ms, spinbutton_force_1_at_percent,
+                                       spinbutton_force_1_from, spinbutton_force_1_to));
+               l.Add(getRFDValue("RFD2", check_force_2, combo_force_2_function, combo_force_2_type,
+                                       spinbutton_force_2_at_ms, spinbutton_force_2_at_percent,
+                                       spinbutton_force_2_from, spinbutton_force_2_to));
+               l.Add(getRFDValue("RFD3", check_force_3, combo_force_3_function, combo_force_3_type,
+                                       spinbutton_force_3_at_ms, spinbutton_force_3_at_percent,
+                                       spinbutton_force_3_from, spinbutton_force_3_to));
+               l.Add(getRFDValue("RFD4", check_force_4, combo_force_4_function, combo_force_4_type,
+                                       spinbutton_force_4_at_ms, spinbutton_force_4_at_percent,
+                                       spinbutton_force_4_from, spinbutton_force_4_to));
+               return l;
+       }
+       private ForceSensorRFD getRFDValue(string code, Gtk.CheckButton check, Gtk.ComboBox 
combo_force_function, Gtk.ComboBox combo_force_type,
+                       Gtk.SpinButton spinbutton_force_at_ms, Gtk.SpinButton spinbutton_force_at_percent,
+                       Gtk.SpinButton spinbutton_force_from, Gtk.SpinButton spinbutton_force_to)
+       {
+               bool active = check.Active;
+               int num1 = -1;
+               int num2 = -1;
+
+               ForceSensorRFD.Functions function;
+               if(UtilGtk.ComboGetActive(combo_force_function) == ForceSensorRFD.Function_RAW_name)
+                       function = ForceSensorRFD.Functions.RAW;
+               else //(UtilGtk.ComboGetActive(combo_force_function) == ForceSensorRFD.Function_FITTED_name)
+                       function = ForceSensorRFD.Functions.FITTED;
+
+               ForceSensorRFD.Types type;
+               string typeStr = UtilGtk.ComboGetActive(combo_force_type);
+               if(typeStr == Catalog.GetString(ForceSensorRFD.Type_INSTANTANEOUS_name))
+               {
+                       num1 = Convert.ToInt32(spinbutton_force_at_ms.Value);
+                       type = ForceSensorRFD.Types.INSTANTANEOUS;
+               }
+               else if(typeStr == Catalog.GetString(ForceSensorRFD.Type_AVERAGE_name))
+               {
+                       num1 = Convert.ToInt32(spinbutton_force_from.Value);
+                       num2 = Convert.ToInt32(spinbutton_force_to.Value);
+                       type = ForceSensorRFD.Types.AVERAGE;
+               }
+               else if(typeStr == Catalog.GetString(ForceSensorRFD.Type_PERCENT_F_MAX_name))
+               {
+                       num1 = Convert.ToInt32(spinbutton_force_at_percent.Value);
+                       type = ForceSensorRFD.Types.PERCENT_F_MAX;
+               }
+               else // (typeStr == Catalog.GetString(ForceSensorRFD.Type_RFD_MAX_name))
+                       type = ForceSensorRFD.Types.RFD_MAX;
+
+               return new ForceSensorRFD(code, active, function, type, num1, num2);
+       }
+
+       private void setImpulseValue ()
+       {
+               check_force_impulse.Active = impulse.active;
+
+               combo_force_impulse_function.Active = UtilGtk.ComboMakeActive(combo_force_impulse_function, 
impulse.FunctionPrint(true));
+               combo_force_impulse_type.Active = UtilGtk.ComboMakeActive(combo_force_impulse_type, 
impulse.TypePrint(true));
+
+               hbox_force_impulse_until_percent.Visible = false;
+               hbox_force_impulse_from_to.Visible = false;
+
+               if(impulse.type == ForceSensorImpulse.Types.IMP_UNTIL_PERCENT_F_MAX)
+               {
+                       hbox_force_impulse_until_percent.Visible = true;
+                       //num1 is 0
+                       spinbutton_force_impulse_until_percent.Value = impulse.num2;
+               }
+               else if(impulse.type == ForceSensorImpulse.Types.IMP_RANGE)
+               {
+                       hbox_force_impulse_from_to.Visible = true;
+                       spinbutton_force_impulse_from.Value = impulse.num1;
+                       spinbutton_force_impulse_to.Value = impulse.num2;
+               }
+       }
+       private ForceSensorImpulse getImpulseValue ()
+       {
+               bool active = check_force_impulse.Active;
+               int num1 = -1;
+               int num2 = -1;
+
+               ForceSensorImpulse.Functions function;
+               if(UtilGtk.ComboGetActive(combo_force_impulse_function) == 
ForceSensorImpulse.Function_RAW_name)
+                       function = ForceSensorImpulse.Functions.RAW;
+               else //(UtilGtk.ComboGetActive(combo_force_impulse_function) == 
ForceSensorImpulse.Function_FITTED_name)
+                       function = ForceSensorImpulse.Functions.FITTED;
+
+               ForceSensorImpulse.Types type;
+               string typeStr = UtilGtk.ComboGetActive(combo_force_impulse_type);
+
+               if(typeStr == Catalog.GetString(ForceSensorImpulse.Type_IMP_UNTIL_PERCENT_F_MAX_name))
+               {
+                       num1 = 0;
+                       num2 = Convert.ToInt32(spinbutton_force_impulse_until_percent.Value);
+                       type = ForceSensorImpulse.Types.IMP_UNTIL_PERCENT_F_MAX;
+               }
+               else // if(typeStr == Catalog.GetString(ForceSensorImpulse.Type_IMP_RANGE_name))
+               {
+                       num1 = Convert.ToInt32(spinbutton_force_impulse_from.Value);
+                       num2 = Convert.ToInt32(spinbutton_force_impulse_to.Value);
+                       type = ForceSensorImpulse.Types.IMP_RANGE;
+               }
+
+               return new ForceSensorImpulse(active, function, type, num1, num2);
+       }
+
+       private void on_button_force_rfd_default_clicked (object o, EventArgs args)
+       {
+               Sqlite.Open();
+
+               SqliteForceSensor.DeleteAll(true);
+               SqliteForceSensor.InsertDefaultValues(true);
+
+               rfdList = SqliteForceSensor.SelectAll(false);
+               impulse = SqliteForceSensor.SelectImpulse(false);
+
+               setRFDValues();
+               setImpulseValue();
+
+               Sqlite.Close();
+       }
+
+       /*
+        * <------------------------ end of analyze options
+        */
+
+       public List<ForceSensorRFD> GetRFDList
+       {
+               get { return rfdList;  }
+       }
+
+       public ForceSensorImpulse GetImpulse
+       {
+               get { return impulse;  }
+       }
+}
diff --git a/src/gui/preferences.cs b/src/gui/preferences.cs
index aefbb00..59f71ad 100644
--- a/src/gui/preferences.cs
+++ b/src/gui/preferences.cs
@@ -136,61 +136,6 @@ public class PreferencesWindow
        [Widget] Gtk.RadioButton radio_encoder_1RM_weighted2;
        [Widget] Gtk.RadioButton radio_encoder_1RM_weighted3;
 
-       //force sensor tab
-       [Widget] Gtk.HBox hbox_force_1;
-       [Widget] Gtk.HBox hbox_force_2;
-       [Widget] Gtk.HBox hbox_force_3;
-       [Widget] Gtk.HBox hbox_force_4;
-       [Widget] Gtk.HBox hbox_force_impulse;
-       [Widget] Gtk.CheckButton check_force_1;
-       [Widget] Gtk.CheckButton check_force_2;
-       [Widget] Gtk.CheckButton check_force_3;
-       [Widget] Gtk.CheckButton check_force_4;
-       [Widget] Gtk.CheckButton check_force_impulse;
-       [Widget] Gtk.ComboBox combo_force_1_function;
-       [Widget] Gtk.ComboBox combo_force_2_function;
-       [Widget] Gtk.ComboBox combo_force_3_function;
-       [Widget] Gtk.ComboBox combo_force_4_function;
-       [Widget] Gtk.ComboBox combo_force_impulse_function;
-       [Widget] Gtk.ComboBox combo_force_1_type;
-       [Widget] Gtk.ComboBox combo_force_2_type;
-       [Widget] Gtk.ComboBox combo_force_3_type;
-       [Widget] Gtk.ComboBox combo_force_4_type;
-       [Widget] Gtk.ComboBox combo_force_impulse_type;
-       [Widget] Gtk.HBox hbox_force_1_at_ms;
-       [Widget] Gtk.HBox hbox_force_2_at_ms;
-       [Widget] Gtk.HBox hbox_force_3_at_ms;
-       [Widget] Gtk.HBox hbox_force_4_at_ms;
-       [Widget] Gtk.HBox hbox_force_1_at_percent;
-       [Widget] Gtk.HBox hbox_force_2_at_percent;
-       [Widget] Gtk.HBox hbox_force_3_at_percent;
-       [Widget] Gtk.HBox hbox_force_4_at_percent;
-       [Widget] Gtk.HBox hbox_force_impulse_until_percent;
-       [Widget] Gtk.HBox hbox_force_1_from_to;
-       [Widget] Gtk.HBox hbox_force_2_from_to;
-       [Widget] Gtk.HBox hbox_force_3_from_to;
-       [Widget] Gtk.HBox hbox_force_4_from_to;
-       [Widget] Gtk.HBox hbox_force_impulse_from_to;
-       [Widget] Gtk.SpinButton spinbutton_force_1_at_ms;
-       [Widget] Gtk.SpinButton spinbutton_force_2_at_ms;
-       [Widget] Gtk.SpinButton spinbutton_force_3_at_ms;
-       [Widget] Gtk.SpinButton spinbutton_force_4_at_ms;
-       [Widget] Gtk.SpinButton spinbutton_force_1_at_percent;
-       [Widget] Gtk.SpinButton spinbutton_force_2_at_percent;
-       [Widget] Gtk.SpinButton spinbutton_force_3_at_percent;
-       [Widget] Gtk.SpinButton spinbutton_force_4_at_percent;
-       [Widget] Gtk.SpinButton spinbutton_force_impulse_until_percent;
-       [Widget] Gtk.SpinButton spinbutton_force_1_from;
-       [Widget] Gtk.SpinButton spinbutton_force_2_from;
-       [Widget] Gtk.SpinButton spinbutton_force_3_from;
-       [Widget] Gtk.SpinButton spinbutton_force_4_from;
-       [Widget] Gtk.SpinButton spinbutton_force_impulse_from;
-       [Widget] Gtk.SpinButton spinbutton_force_1_to;
-       [Widget] Gtk.SpinButton spinbutton_force_2_to;
-       [Widget] Gtk.SpinButton spinbutton_force_3_to;
-       [Widget] Gtk.SpinButton spinbutton_force_4_to;
-       [Widget] Gtk.SpinButton spinbutton_force_impulse_to;
-
        //multimedia tab
        [Widget] Gtk.CheckButton checkbutton_volume;
        [Widget] Gtk.Table table_gstreamer;
@@ -230,8 +175,6 @@ public class PreferencesWindow
        static PreferencesWindow PreferencesWindowBox;
        
        private Preferences preferences; //stored to update SQL if anything changed
-       private List<ForceSensorRFD> rfdList; //stored to update SQL if anything changed
-       private ForceSensorImpulse impulse;
        private Thread thread;
 
        string databaseURL;
@@ -243,7 +186,6 @@ public class PreferencesWindow
        const int RUNSPAGE = 3;
        const int ENCODERCAPTUREPAGE = 4;
        const int ENCODEROTHERPAGE = 5;
-       const int FORCEPAGE = 6;
 
 
        PreferencesWindow () {
@@ -261,8 +203,8 @@ public class PreferencesWindow
                FakeButtonImported = new Gtk.Button();
                FakeButtonDebugModeStart = new Gtk.Button();
        }
-       
-       static public PreferencesWindow Show (Preferences preferences, List <ForceSensorRFD> rfdList, 
ForceSensorImpulse impulse,
+
+       static public PreferencesWindow Show (Preferences preferences,
                        Constants.Menuitem_modes menu_mode, bool compujump, string progVersion)
        {
                if (PreferencesWindowBox == null) {
@@ -287,12 +229,8 @@ public class PreferencesWindow
                        PreferencesWindowBox.notebook.GetNthPage(ENCODERCAPTUREPAGE).Hide();
                        PreferencesWindowBox.notebook.GetNthPage(ENCODEROTHERPAGE).Hide();
                }
-               if(menu_mode != Constants.Menuitem_modes.FORCESENSOR)
-                       PreferencesWindowBox.notebook.GetNthPage(FORCEPAGE).Hide();
 
                PreferencesWindowBox.preferences = preferences;
-               PreferencesWindowBox.rfdList = rfdList;
-               PreferencesWindowBox.impulse = impulse;
 
                PreferencesWindowBox.createComboLanguage();
 
@@ -534,9 +472,6 @@ public class PreferencesWindow
 
                //done here and not in glade to be shown with the decimal point of user language        
                PreferencesWindowBox.label_encoder_con.Text = (0.7).ToString();
-       
-               //force
-               PreferencesWindowBox.initForceSensor();
 
                //language -->
                if(preferences.language == "")
@@ -647,297 +582,6 @@ public class PreferencesWindow
        }
 
 
-       // ---- Force sensor stuff
-
-       private void initForceSensor ()
-       {
-               createForceCombos();
-               setRFDValues();
-               setImpulseValue();
-       }
-
-       private void check_force_visibilities()
-       {
-               hbox_force_1.Visible = (check_force_1.Active);
-               hbox_force_2.Visible = (check_force_2.Active);
-               hbox_force_3.Visible = (check_force_3.Active);
-               hbox_force_4.Visible = (check_force_4.Active);
-               hbox_force_impulse.Visible = (check_force_impulse.Active);
-       }
-
-       private void on_check_force_clicked (object o, EventArgs args)
-       {
-               check_force_visibilities();
-       }
-
-       private void createForceCombos ()
-       {
-               UtilGtk.ComboUpdate(combo_force_1_function, ForceSensorRFD.FunctionsArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_2_function, ForceSensorRFD.FunctionsArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_3_function, ForceSensorRFD.FunctionsArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_4_function, ForceSensorRFD.FunctionsArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_impulse_function, ForceSensorImpulse.FunctionsArray(true), 
"");
-
-               UtilGtk.ComboUpdate(combo_force_1_type, ForceSensorRFD.TypesArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_2_type, ForceSensorRFD.TypesArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_3_type, ForceSensorRFD.TypesArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_4_type, ForceSensorRFD.TypesArray(true), "");
-               UtilGtk.ComboUpdate(combo_force_impulse_type, ForceSensorImpulse.TypesArrayImpulse(true), "");
-       }
-
-       private void on_combo_force_type_changed (object o, EventArgs args)
-       {
-               Gtk.ComboBox combo = o as ComboBox;
-               if (o == null)
-                       return;
-
-               if(combo == combo_force_1_type)
-                       combo_force_visibility(
-                                       UtilGtk.ComboGetActive(combo_force_1_type),
-                                       hbox_force_1_at_ms,
-                                       hbox_force_1_at_percent,
-                                       hbox_force_1_from_to);
-               else if(combo == combo_force_2_type)
-                       combo_force_visibility(
-                                       UtilGtk.ComboGetActive(combo_force_2_type),
-                                       hbox_force_2_at_ms,
-                                       hbox_force_2_at_percent,
-                                       hbox_force_2_from_to);
-               else if(combo == combo_force_3_type)
-                       combo_force_visibility(
-                                       UtilGtk.ComboGetActive(combo_force_3_type),
-                                       hbox_force_3_at_ms,
-                                       hbox_force_3_at_percent,
-                                       hbox_force_3_from_to);
-               else if(combo == combo_force_4_type)
-                       combo_force_visibility(
-                                       UtilGtk.ComboGetActive(combo_force_4_type),
-                                       hbox_force_4_at_ms,
-                                       hbox_force_4_at_percent,
-                                       hbox_force_4_from_to);
-               else if(combo == combo_force_impulse_type)
-                       combo_force_impulse_visibility(
-                                       UtilGtk.ComboGetActive(combo_force_impulse_type),
-                                       hbox_force_impulse_until_percent,
-                                       hbox_force_impulse_from_to);
-       }
-
-       private void combo_force_visibility (string selected, Gtk.HBox at_ms, Gtk.HBox at_percent, Gtk.HBox 
from_to)
-       {
-               //valid for active == "" and active == "RFD max"
-               at_ms.Visible = false;
-               from_to.Visible = false;
-               at_percent.Visible = false;
-
-               if(selected == Catalog.GetString(ForceSensorRFD.Type_INSTANTANEOUS_name))
-               {
-                       at_ms.Visible = true;
-               }
-               else if(selected == Catalog.GetString(ForceSensorRFD.Type_AVERAGE_name))
-               {
-                       from_to.Visible = true;
-               }
-               else if(selected == Catalog.GetString(ForceSensorRFD.Type_PERCENT_F_MAX_name))
-               {
-                       at_percent.Visible = true;
-               }
-       }
-       private void combo_force_impulse_visibility (string selected, Gtk.HBox until_percent, Gtk.HBox 
from_to)
-       {
-               until_percent.Visible = false;
-               from_to.Visible = false;
-
-               if(selected == Catalog.GetString(ForceSensorImpulse.Type_IMP_UNTIL_PERCENT_F_MAX_name))
-               {
-                       until_percent.Visible = true;
-               }
-               else if(selected == Catalog.GetString(ForceSensorImpulse.Type_IMP_RANGE_name))
-               {
-                       from_to.Visible = true;
-               }
-       }
-
-       private void setRFDValues ()
-       {
-               setRFDValue(rfdList[0], check_force_1, combo_force_1_function, combo_force_1_type,
-                               hbox_force_1_at_ms, spinbutton_force_1_at_ms,
-                               hbox_force_1_at_percent, spinbutton_force_1_at_percent,
-                               hbox_force_1_from_to, spinbutton_force_1_from, spinbutton_force_1_to);
-
-               setRFDValue(rfdList[1], check_force_2, combo_force_2_function, combo_force_2_type,
-                               hbox_force_2_at_ms, spinbutton_force_2_at_ms,
-                               hbox_force_2_at_percent, spinbutton_force_2_at_percent,
-                               hbox_force_2_from_to, spinbutton_force_2_from, spinbutton_force_2_to);
-
-               setRFDValue(rfdList[2], check_force_3, combo_force_3_function, combo_force_3_type,
-                               hbox_force_3_at_ms, spinbutton_force_3_at_ms,
-                               hbox_force_3_at_percent, spinbutton_force_3_at_percent,
-                               hbox_force_3_from_to, spinbutton_force_3_from, spinbutton_force_3_to);
-
-               setRFDValue(rfdList[3], check_force_4, combo_force_4_function, combo_force_4_type,
-                               hbox_force_4_at_ms, spinbutton_force_4_at_ms,
-                               hbox_force_4_at_percent, spinbutton_force_4_at_percent,
-                               hbox_force_4_from_to, spinbutton_force_4_from, spinbutton_force_4_to);
-       }
-
-       private void setRFDValue(ForceSensorRFD rfd, Gtk.CheckButton check, Gtk.ComboBox 
combo_force_function, Gtk.ComboBox combo_force_type,
-                               Gtk.HBox hbox_force_at_ms, Gtk.SpinButton spinbutton_force_at_ms,
-                               Gtk.HBox hbox_force_at_percent, Gtk.SpinButton spinbutton_force_at_percent,
-                               Gtk.HBox hbox_force_from_to, Gtk.SpinButton spinbutton_force_from, 
Gtk.SpinButton spinbutton_force_to)
-       {
-               check.Active = rfd.active;
-
-               combo_force_function.Active = UtilGtk.ComboMakeActive(combo_force_function, 
rfd.FunctionPrint(true));
-               combo_force_type.Active = UtilGtk.ComboMakeActive(combo_force_type, rfd.TypePrint(true));
-
-               hbox_force_at_ms.Visible = false;
-               hbox_force_at_percent.Visible = false;
-               hbox_force_from_to.Visible = false;
-
-               if(rfd.type == ForceSensorRFD.Types.INSTANTANEOUS)
-               {
-                       hbox_force_at_ms.Visible = true;
-                       spinbutton_force_at_ms.Value = rfd.num1;
-               }
-               else if(rfd.type == ForceSensorRFD.Types.AVERAGE)
-               {
-                       hbox_force_from_to.Visible = true;
-                       spinbutton_force_from.Value = rfd.num1;
-                       spinbutton_force_to.Value = rfd.num2;
-               }
-               else if(rfd.type == ForceSensorRFD.Types.PERCENT_F_MAX)
-               {
-                       hbox_force_at_percent.Visible = true;
-                       spinbutton_force_at_percent.Value = rfd.num1;
-               }
-       }
-
-       private List<ForceSensorRFD> getRFDValues()
-       {
-               List<ForceSensorRFD> l = new List<ForceSensorRFD>();
-               l.Add(getRFDValue("RFD1", check_force_1, combo_force_1_function, combo_force_1_type,
-                               spinbutton_force_1_at_ms, spinbutton_force_1_at_percent,
-                               spinbutton_force_1_from, spinbutton_force_1_to));
-               l.Add(getRFDValue("RFD2", check_force_2, combo_force_2_function, combo_force_2_type,
-                               spinbutton_force_2_at_ms, spinbutton_force_2_at_percent,
-                               spinbutton_force_2_from, spinbutton_force_2_to));
-               l.Add(getRFDValue("RFD3", check_force_3, combo_force_3_function, combo_force_3_type,
-                               spinbutton_force_3_at_ms, spinbutton_force_3_at_percent,
-                               spinbutton_force_3_from, spinbutton_force_3_to));
-               l.Add(getRFDValue("RFD4", check_force_4, combo_force_4_function, combo_force_4_type,
-                               spinbutton_force_4_at_ms, spinbutton_force_4_at_percent,
-                               spinbutton_force_4_from, spinbutton_force_4_to));
-               return l;
-       }
-       private ForceSensorRFD getRFDValue(string code, Gtk.CheckButton check, Gtk.ComboBox 
combo_force_function, Gtk.ComboBox combo_force_type,
-                               Gtk.SpinButton spinbutton_force_at_ms, Gtk.SpinButton 
spinbutton_force_at_percent,
-                               Gtk.SpinButton spinbutton_force_from, Gtk.SpinButton spinbutton_force_to)
-       {
-               bool active = check.Active;
-               int num1 = -1;
-               int num2 = -1;
-
-               ForceSensorRFD.Functions function;
-               if(UtilGtk.ComboGetActive(combo_force_function) == ForceSensorRFD.Function_RAW_name)
-                       function = ForceSensorRFD.Functions.RAW;
-               else //(UtilGtk.ComboGetActive(combo_force_function) == ForceSensorRFD.Function_FITTED_name)
-                       function = ForceSensorRFD.Functions.FITTED;
-
-               ForceSensorRFD.Types type;
-               string typeStr = UtilGtk.ComboGetActive(combo_force_type);
-               if(typeStr == Catalog.GetString(ForceSensorRFD.Type_INSTANTANEOUS_name))
-               {
-                       num1 = Convert.ToInt32(spinbutton_force_at_ms.Value);
-                       type = ForceSensorRFD.Types.INSTANTANEOUS;
-               }
-               else if(typeStr == Catalog.GetString(ForceSensorRFD.Type_AVERAGE_name))
-               {
-                       num1 = Convert.ToInt32(spinbutton_force_from.Value);
-                       num2 = Convert.ToInt32(spinbutton_force_to.Value);
-                       type = ForceSensorRFD.Types.AVERAGE;
-               }
-               else if(typeStr == Catalog.GetString(ForceSensorRFD.Type_PERCENT_F_MAX_name))
-               {
-                       num1 = Convert.ToInt32(spinbutton_force_at_percent.Value);
-                       type = ForceSensorRFD.Types.PERCENT_F_MAX;
-               }
-               else // (typeStr == Catalog.GetString(ForceSensorRFD.Type_RFD_MAX_name))
-                       type = ForceSensorRFD.Types.RFD_MAX;
-
-               return new ForceSensorRFD(code, active, function, type, num1, num2);
-       }
-
-       private void setImpulseValue ()
-       {
-               check_force_impulse.Active = impulse.active;
-
-               combo_force_impulse_function.Active = UtilGtk.ComboMakeActive(combo_force_impulse_function, 
impulse.FunctionPrint(true));
-               combo_force_impulse_type.Active = UtilGtk.ComboMakeActive(combo_force_impulse_type, 
impulse.TypePrint(true));
-
-               hbox_force_impulse_until_percent.Visible = false;
-               hbox_force_impulse_from_to.Visible = false;
-
-               if(impulse.type == ForceSensorImpulse.Types.IMP_UNTIL_PERCENT_F_MAX)
-               {
-                       hbox_force_impulse_until_percent.Visible = true;
-                       //num1 is 0
-                       spinbutton_force_impulse_until_percent.Value = impulse.num2;
-               }
-               else if(impulse.type == ForceSensorImpulse.Types.IMP_RANGE)
-               {
-                       hbox_force_impulse_from_to.Visible = true;
-                       spinbutton_force_impulse_from.Value = impulse.num1;
-                       spinbutton_force_impulse_to.Value = impulse.num2;
-               }
-       }
-       private ForceSensorImpulse getImpulseValue ()
-       {
-               bool active = check_force_impulse.Active;
-               int num1 = -1;
-               int num2 = -1;
-
-               ForceSensorImpulse.Functions function;
-               if(UtilGtk.ComboGetActive(combo_force_impulse_function) == 
ForceSensorImpulse.Function_RAW_name)
-                       function = ForceSensorImpulse.Functions.RAW;
-               else //(UtilGtk.ComboGetActive(combo_force_impulse_function) == 
ForceSensorImpulse.Function_FITTED_name)
-                       function = ForceSensorImpulse.Functions.FITTED;
-
-               ForceSensorImpulse.Types type;
-               string typeStr = UtilGtk.ComboGetActive(combo_force_impulse_type);
-
-               if(typeStr == Catalog.GetString(ForceSensorImpulse.Type_IMP_UNTIL_PERCENT_F_MAX_name))
-               {
-                       num1 = 0;
-                       num2 = Convert.ToInt32(spinbutton_force_impulse_until_percent.Value);
-                       type = ForceSensorImpulse.Types.IMP_UNTIL_PERCENT_F_MAX;
-               }
-               else // if(typeStr == Catalog.GetString(ForceSensorImpulse.Type_IMP_RANGE_name))
-               {
-                       num1 = Convert.ToInt32(spinbutton_force_impulse_from.Value);
-                       num2 = Convert.ToInt32(spinbutton_force_impulse_to.Value);
-                       type = ForceSensorImpulse.Types.IMP_RANGE;
-               }
-
-               return new ForceSensorImpulse(active, function, type, num1, num2);
-       }
-
-       private void on_button_force_rfd_default_clicked (object o, EventArgs args)
-       {
-               Sqlite.Open();
-
-               SqliteForceSensor.DeleteAll(true);
-               SqliteForceSensor.InsertDefaultValues(true);
-
-               rfdList = SqliteForceSensor.SelectAll(false);
-               impulse = SqliteForceSensor.SelectImpulse(false);
-
-               setRFDValues();
-               setImpulseValue();
-
-               Sqlite.Close();
-       }
-
-       // ---- end of Force sensor stuff
 
        // ---- multimedia stuff
 
@@ -1754,29 +1398,6 @@ public class PreferencesWindow
                SqlitePreferences.Update("encoder1RMMethod", encoder1RMMethod.ToString(), true);
                preferences.encoder1RMMethod = encoder1RMMethod;
 
-               //---- force sensor
-
-               List<ForceSensorRFD> newRFDList = getRFDValues();
-               int i = 0;
-               foreach(ForceSensorRFD rfd in newRFDList)
-               {
-                       if(rfdList[i].Changed(rfd))
-                       {
-                               SqliteForceSensor.Update(true, rfd);
-                               rfdList[i] = rfd;
-                       }
-                       i ++;
-               }
-
-               ForceSensorImpulse newImpulse = getImpulseValue();
-               if(newImpulse.Changed(impulse))
-               {
-                       SqliteForceSensor.UpdateImpulse(true, newImpulse);
-                       impulse = newImpulse;
-               }
-
-               // end of force sensor
-
 
                //---- end of encoder other
 
@@ -1888,14 +1509,4 @@ public class PreferencesWindow
        {
                get { return preferences;  }
        }
-
-       public List<ForceSensorRFD> GetRFDList
-       {
-               get { return rfdList;  }
-       }
-
-       public ForceSensorImpulse GetImpulse
-       {
-               get { return impulse;  }
-       }
 }


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