[chronojump] force sensor options from preferences to main gui analyze tab
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] force sensor options from preferences to main gui analyze tab
- Date: Wed, 14 Mar 2018 18:55:52 +0000 (UTC)
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]