[chronojump] Run interval track distance with button and genericWin
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Run interval track distance with button and genericWin
- Date: Thu, 8 Feb 2018 16:25:48 +0000 (UTC)
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]