[chronojump] Run interval track distance with button and genericWin



commit e4a14858bd28fd7897624bd7e43d0105e8d62cf1
Author: Xavier de Blas <xaviblas gmail com>
Date:   Thu Feb 8 17:23:47 2018 +0100

    Run interval track distance with button and genericWin

 glade/app1.glade      |   74 +++++++++++++++++++++++++++++++++++++++++++++++--
 src/gui/chronojump.cs |    3 +-
 src/gui/run.cs        |   64 ++++++++++++++++++++++++++++++++----------
 3 files changed, 122 insertions(+), 19 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index b502f10..e7fa800 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -6706,6 +6706,74 @@ EncoderInertialCapture</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">25</property>
                                                             <child>
+                                                            <widget class="GtkButton" 
id="button_runs_interval_track_distance">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="receives_default">True</property>
+                                                            <property name="relief">half</property>
+                                                            <signal name="clicked" 
handler="on_button_runs_interval_track_distance_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox28">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label294">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">|--</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="label_runs_interval_track_distance_value">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_runs_interval_track_distance_units">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">m</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label295">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">--|</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">3</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="hbox104">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -6790,7 +6858,7 @@ EncoderInertialCapture</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">0</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
@@ -6858,7 +6926,7 @@ EncoderInertialCapture</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">1</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
                                                             <child>
@@ -6905,7 +6973,7 @@ EncoderInertialCapture</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">2</property>
+                                                            <property name="position">3</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 7137953..98d379a 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -3895,7 +3895,8 @@ public partial class ChronoJumpWindow
                                return;
                        }
 
-                       extra_window_runs_interval_distance = (double) 
extra_window_runs_interval_spinbutton_distance.Value;
+                       //extra_window_runs_interval_distance = (double) 
extra_window_runs_interval_spinbutton_distance.Value;
+                       extra_window_runs_interval_distance = 
Convert.ToDouble(label_runs_interval_track_distance_value.Text);
                        extra_window_runs_interval_limit = extra_window_runs_interval_spinbutton_limit.Value;
                        
                        on_run_interval_activate(canCaptureC);
diff --git a/src/gui/run.cs b/src/gui/run.cs
index e80b714..5457763 100644
--- a/src/gui/run.cs
+++ b/src/gui/run.cs
@@ -904,9 +904,9 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Label label_runs_simple_track_distance_units;
 
        //options runs interval
-       [Widget] Gtk.Label extra_window_runs_interval_label_distance;
-       [Widget] Gtk.SpinButton extra_window_runs_interval_spinbutton_distance;
-       [Widget] Gtk.Label extra_window_runs_interval_label_distance_units;
+       [Widget] Gtk.Button button_runs_interval_track_distance;
+       [Widget] Gtk.Label label_runs_interval_track_distance_value;
+       //[Widget] Gtk.Label label_runs_interval_track_distance_units; //always "m"
        [Widget] Gtk.Label extra_window_runs_interval_label_limit;
        [Widget] Gtk.SpinButton extra_window_runs_interval_spinbutton_limit;
        [Widget] Gtk.Label extra_window_runs_interval_label_limit_units;
@@ -1036,10 +1036,10 @@ public partial class ChronoJumpWindow
                changeTestImage(EventType.Types.RUN.ToString(), myRunType.Name, myRunType.ImageFileName);
 
                if(myRunType.Distance > 0) {
-                       extra_window_runs_interval_spinbutton_distance.Value = myRunType.Distance;
+                       label_runs_interval_track_distance_value.Text = myRunType.Distance.ToString();
                        extra_window_showDistanceData(myRunType, true, false);  //visible, sensitive
                } else if(myRunType.Distance == 0) {
-                       extra_window_runs_interval_spinbutton_distance.Value = 
extra_window_runs_interval_distance; 
+                       label_runs_interval_track_distance_value.Text = 
extra_window_runs_interval_distance.ToString();
                        extra_window_showDistanceData(myRunType, true, true);   //visible, sensitive
                } else { //variableDistancesString (eg. MTGUG) don't show anything
                        extra_window_showDistanceData(myRunType, false, false); //visible, sensitive
@@ -1124,13 +1124,8 @@ public partial class ChronoJumpWindow
 
        private void extra_window_showDistanceData (RunType myRunType, bool show, bool sensitive ) {
                if(myRunType.HasIntervals) {
-                       extra_window_runs_interval_label_distance.Visible = show;
-                       extra_window_runs_interval_spinbutton_distance.Visible = show;
-                       extra_window_runs_interval_label_distance_units.Visible = show;
-               
-                       extra_window_runs_interval_label_distance.Sensitive = sensitive;
-                       extra_window_runs_interval_spinbutton_distance.Sensitive = sensitive;
-                       extra_window_runs_interval_label_distance_units.Sensitive = sensitive;
+                       button_runs_interval_track_distance.Visible = show;
+                       button_runs_interval_track_distance.Sensitive = sensitive;
                } else {
                        button_runs_simple_track_distance.Visible = show;
                        button_runs_simple_track_distance.Sensitive = sensitive;
@@ -1147,28 +1142,58 @@ public partial class ChronoJumpWindow
                extra_window_runs_interval_label_limit_units.Sensitive = sensitive;
        }
 
+       // ----
+       // ---- start of track distance
+       // ----
+
+       // ---- 1) gui calls
+
        private void on_button_runs_simple_track_distance_clicked (object o, EventArgs args)
        {
                string text = Catalog.GetString("Lap distance (between barriers)");
                string labelAtLeft = Catalog.GetString("Distance in meters");
+
                if(currentRunType.Name == "Margaria")
                {
                        text = Catalog.GetString("Vertical distance between stairs third and nine.");
                        labelAtLeft = Catalog.GetString("Distance in millimeters");
                }
 
+               createGenericWinForTrackDistance(true, text, labelAtLeft,
+                               Convert.ToDouble(label_runs_simple_track_distance_value.Text));
+       }
+
+       private void on_button_runs_interval_track_distance_clicked (object o, EventArgs args)
+       {
+               string text = Catalog.GetString("Lap distance (between barriers)");
+               string labelAtLeft = Catalog.GetString("Distance in meters");
+
+               createGenericWinForTrackDistance(false, text, labelAtLeft,
+                               Convert.ToDouble(label_runs_interval_track_distance_value.Text));
+       }
+
+       // ---- 2) create genericWin
+
+       private void createGenericWinForTrackDistance(bool simpleOrInterval, string text, string labelAtLeft, 
double initialValue)
+       {
                genericWin = GenericWindow.Show(Catalog.GetString("Track distance"), text, 
Constants.GenericWindowShow.HBOXSPINDOUBLE2);
 
                genericWin.LabelSpinDouble2 = labelAtLeft;
                genericWin.SetSpinDouble2Increments(0.1, 1);
                genericWin.SetSpinDouble2Range(0, 100000.0);
                genericWin.SetSpinDouble2Digits(1);
-               genericWin.SetSpinDouble2Value(Convert.ToDouble(label_runs_simple_track_distance_value.Text));
+               genericWin.SetSpinDouble2Value(initialValue);
 
-               genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_runs_simple_track_distance_accepted);
-               genericWin.Button_accept.Clicked += new 
EventHandler(on_button_runs_simple_track_distance_accepted);
+               if(simpleOrInterval) {
+                       genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_runs_simple_track_distance_accepted);
+                       genericWin.Button_accept.Clicked += new 
EventHandler(on_button_runs_simple_track_distance_accepted);
+               } else {
+                       genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_runs_interval_track_distance_accepted);
+                       genericWin.Button_accept.Clicked += new 
EventHandler(on_button_runs_interval_track_distance_accepted);
+               }
        }
 
+       // ---- 3) return from genericWin
        void on_button_runs_simple_track_distance_accepted (object obj, EventArgs args)
        {
                genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_runs_simple_track_distance_accepted);
@@ -1177,6 +1202,15 @@ public partial class ChronoJumpWindow
                                preferences.digitsNumber);
        }
 
+       void on_button_runs_interval_track_distance_accepted (object obj, EventArgs args)
+       {
+               genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_runs_interval_track_distance_accepted);
+
+               label_runs_interval_track_distance_value.Text = 
Util.TrimDecimals(genericWin.SpinDouble2Selected.ToString(),
+                               preferences.digitsNumber);
+       }
+
+       // ---- end of track distance
 
        private bool changingCheckboxesRunWithReactionTime = false;
        private void on_check_run_simple_with_reaction_time_clicked (object o, EventArgs args)


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