[chronojump] chronopic windows (2) on serverEvaluator zoom buttons unsensitive because missing images



commit f3cc2d050bd73e22ab7758fb2a22d362da9d537d
Author: Xavier de Blas <xaviblas gmail com>
Date:   Sat Dec 26 14:58:37 2009 +0100

    chronopic windows (2)
    on serverEvaluator zoom buttons unsensitive because missing images

 chronojump_server/bin/chronojumpServer.dll |  Bin 276480 -> 276480 bytes
 glade/chronojump.glade                     |  168 +++++++++++++----
 src/gui/chronopic.cs                       |  291 ++++++++++++++++++++-------
 3 files changed, 345 insertions(+), 114 deletions(-)
---
diff --git a/chronojump_server/bin/chronojumpServer.dll b/chronojump_server/bin/chronojumpServer.dll
index 92214c2..786c4b7 100755
Binary files a/chronojump_server/bin/chronojumpServer.dll and b/chronojump_server/bin/chronojumpServer.dll differ
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 1042909..d0e1a02 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -7518,8 +7518,8 @@ suitable for agility tests)</property>
                                         <property name="receives_default">False</property>
                                         <property name="tooltip" translatable="yes">Edit selected person (E)</property>
                                         <signal name="clicked" handler="on_edit_current_person_clicked"/>
-                                        <accelerator key="E" signal="clicked"/>
                                         <accelerator key="e" signal="clicked" modifiers="GDK_SHIFT_MASK"/>
+                                        <accelerator key="E" signal="clicked"/>
                                         <child>
                                           <widget class="GtkImage" id="image1977">
                                             <property name="visible">True</property>
@@ -18399,6 +18399,7 @@ by you</property>
     <child>
       <widget class="GtkVBox" id="vbox159">
         <property name="visible">True</property>
+        <property name="orientation">vertical</property>
         <property name="spacing">8</property>
         <child>
           <widget class="GtkNotebook" id="notebook3">
@@ -18408,6 +18409,7 @@ by you</property>
               <widget class="GtkVBox" id="vbox162">
                 <property name="visible">True</property>
                 <property name="border_width">6</property>
+                <property name="orientation">vertical</property>
                 <property name="spacing">10</property>
                 <child>
                   <widget class="GtkVBox" id="vbox163">
@@ -18709,6 +18711,7 @@ by you</property>
             <child>
               <widget class="GtkVBox" id="vbox164">
                 <property name="visible">True</property>
+                <property name="orientation">vertical</property>
                 <property name="spacing">8</property>
                 <child>
                   <widget class="GtkLabel" id="label658">
@@ -18857,14 +18860,15 @@ by you</property>
                     </child>
                     <child>
                       <widget class="GtkButton" id="button_zoom_cp1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip" translatable="yes">Expand image and show description</property>
                         <signal name="clicked" handler="on_button_cp1_zoom_clicked"/>
                         <child>
                           <widget class="GtkImage" id="image_zoom_cp1">
                             <property name="visible">True</property>
+                            <property name="sensitive">False</property>
                           </widget>
                         </child>
                       </widget>
@@ -18879,14 +18883,15 @@ by you</property>
                     </child>
                     <child>
                       <widget class="GtkButton" id="button_zoom_cp2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip" translatable="yes">Expand image and show description</property>
                         <signal name="clicked" handler="on_button_cp2_zoom_clicked"/>
                         <child>
                           <widget class="GtkImage" id="image_zoom_cp2">
                             <property name="visible">True</property>
+                            <property name="sensitive">False</property>
                           </widget>
                         </child>
                       </widget>
@@ -18901,14 +18906,15 @@ by you</property>
                     </child>
                     <child>
                       <widget class="GtkButton" id="button_zoom_cp3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip" translatable="yes">Expand image and show description</property>
                         <signal name="clicked" handler="on_button_cp3_zoom_clicked"/>
                         <child>
                           <widget class="GtkImage" id="image_zoom_cp3">
                             <property name="visible">True</property>
+                            <property name="sensitive">False</property>
                           </widget>
                         </child>
                       </widget>
@@ -18954,6 +18960,7 @@ by you</property>
                 <child>
                   <widget class="GtkVBox" id="vbox167">
                     <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
                     <child>
                       <widget class="GtkLabel" id="label662">
                         <property name="visible">True</property>
@@ -19001,6 +19008,7 @@ by you</property>
             <child>
               <widget class="GtkVBox" id="vbox161">
                 <property name="visible">True</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <widget class="GtkVBox" id="vbox166">
                     <property name="visible">True</property>
@@ -19064,14 +19072,15 @@ by you</property>
                         </child>
                         <child>
                           <widget class="GtkButton" id="button_zoom_contact_steel">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">False</property>
                             <property name="receives_default">False</property>
                             <property name="tooltip" translatable="yes">Expand image and show description</property>
                             <signal name="clicked" handler="on_button_contact_steel_zoom_clicked"/>
                             <child>
                               <widget class="GtkImage" id="image_zoom_contact_steel">
                                 <property name="visible">True</property>
+                                <property name="sensitive">False</property>
                               </widget>
                             </child>
                           </widget>
@@ -19086,14 +19095,15 @@ by you</property>
                         </child>
                         <child>
                           <widget class="GtkButton" id="button_zoom_contact_modular">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">False</property>
                             <property name="receives_default">False</property>
                             <property name="tooltip" translatable="yes">Expand image and show description</property>
                             <signal name="clicked" handler="on_button_contact_modular_zoom_clicked"/>
                             <child>
                               <widget class="GtkImage" id="image_zoom_contact_modular">
                                 <property name="visible">True</property>
+                                <property name="sensitive">False</property>
                               </widget>
                             </child>
                           </widget>
@@ -19108,14 +19118,15 @@ by you</property>
                         </child>
                         <child>
                           <widget class="GtkButton" id="button_zoom_infrared">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">False</property>
                             <property name="receives_default">False</property>
                             <property name="tooltip" translatable="yes">Expand image and show description</property>
                             <signal name="clicked" handler="on_button_infrared_zoom_clicked"/>
                             <child>
                               <widget class="GtkImage" id="image_zoom_infrared">
                                 <property name="visible">True</property>
+                                <property name="sensitive">False</property>
                               </widget>
                             </child>
                           </widget>
@@ -20112,7 +20123,7 @@ by you</property>
       <widget class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
         <property name="orientation">vertical</property>
-        <property name="spacing">10</property>
+        <property name="spacing">12</property>
         <child>
           <widget class="GtkTable" id="table1">
             <property name="visible">True</property>
@@ -20152,10 +20163,23 @@ by you</property>
               <widget class="GtkHBox" id="hbox3">
                 <property name="visible">True</property>
                 <child>
-                  <placeholder/>
+                  <widget class="GtkComboBox" id="combo_linux2">
+                    <property name="visible">True</property>
+                    <property name="items">/dev/ttyUSB?
+</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
                 <child>
-                  <placeholder/>
+                  <widget class="GtkComboBox" id="combo_windows2">
+                    <property name="visible">True</property>
+                    <property name="items">COM?</property>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -20169,10 +20193,23 @@ by you</property>
               <widget class="GtkHBox" id="hbox4">
                 <property name="visible">True</property>
                 <child>
-                  <placeholder/>
+                  <widget class="GtkComboBox" id="combo_linux3">
+                    <property name="visible">True</property>
+                    <property name="items">/dev/ttyUSB?
+</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
                 <child>
-                  <placeholder/>
+                  <widget class="GtkComboBox" id="combo_windows3">
+                    <property name="visible">True</property>
+                    <property name="items">COM?</property>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -20186,10 +20223,23 @@ by you</property>
               <widget class="GtkHBox" id="hbox5">
                 <property name="visible">True</property>
                 <child>
-                  <placeholder/>
+                  <widget class="GtkComboBox" id="combo_linux4">
+                    <property name="visible">True</property>
+                    <property name="items">/dev/ttyUSB?
+</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
                 <child>
-                  <placeholder/>
+                  <widget class="GtkComboBox" id="combo_windows4">
+                    <property name="visible">True</property>
+                    <property name="items">COM?</property>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -20205,7 +20255,7 @@ by you</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <signal name="clicked" handler="on_button_connect_cp1_clicked"/>
+                <signal name="clicked" handler="on_button_connect_cp_clicked"/>
               </widget>
               <packing>
                 <property name="left_attach">2</property>
@@ -20229,6 +20279,7 @@ by you</property>
                   <widget class="GtkImage" id="image_cp1_yes">
                     <property name="visible">True</property>
                     <property name="stock">gtk-yes</property>
+                    <property name="icon-size">6</property>
                   </widget>
                   <packing>
                     <property name="position">1</property>
@@ -20241,7 +20292,7 @@ by you</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox185">
+              <widget class="GtkVBox" id="vbox2">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <child>
@@ -20257,6 +20308,7 @@ by you</property>
                   <widget class="GtkImage" id="image_cp2_yes">
                     <property name="visible">True</property>
                     <property name="stock">gtk-yes</property>
+                    <property name="icon-size">6</property>
                   </widget>
                   <packing>
                     <property name="position">1</property>
@@ -20271,7 +20323,7 @@ by you</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox185">
+              <widget class="GtkVBox" id="vbox3">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <child>
@@ -20287,6 +20339,7 @@ by you</property>
                   <widget class="GtkImage" id="image_cp3_yes">
                     <property name="visible">True</property>
                     <property name="stock">gtk-yes</property>
+                    <property name="icon-size">6</property>
                   </widget>
                   <packing>
                     <property name="position">1</property>
@@ -20301,7 +20354,7 @@ by you</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox185">
+              <widget class="GtkVBox" id="vbox4">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <child>
@@ -20317,6 +20370,7 @@ by you</property>
                   <widget class="GtkImage" id="image_cp4_yes">
                     <property name="visible">True</property>
                     <property name="stock">gtk-yes</property>
+                    <property name="icon-size">6</property>
                   </widget>
                   <packing>
                     <property name="position">1</property>
@@ -20331,16 +20385,40 @@ by you</property>
               </packing>
             </child>
             <child>
-              <placeholder/>
+              <widget class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label">Chronopic 1</property>
+              </widget>
             </child>
             <child>
-              <placeholder/>
+              <widget class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label">Chronopic 2</property>
+              </widget>
+              <packing>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+              </packing>
             </child>
             <child>
-              <placeholder/>
+              <widget class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label">Chronopic 3</property>
+              </widget>
+              <packing>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+              </packing>
             </child>
             <child>
-              <placeholder/>
+              <widget class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label">Chronopic 4</property>
+              </widget>
+              <packing>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+              </packing>
             </child>
             <child>
               <placeholder/>
@@ -20352,37 +20430,49 @@ by you</property>
               <placeholder/>
             </child>
             <child>
-              <widget class="GtkLabel" id="label4">
-                <property name="visible">True</property>
-                <property name="label">Chronopic 1</property>
-              </widget>
+              <placeholder/>
             </child>
             <child>
-              <widget class="GtkLabel" id="label4">
+              <widget class="GtkButton" id="button_connect_cp2">
+                <property name="label" translatable="yes">Connect</property>
                 <property name="visible">True</property>
-                <property name="label">Chronopic 2</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <signal name="clicked" handler="on_button_connect_cp_clicked"/>
               </widget>
               <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label4">
+              <widget class="GtkButton" id="button_connect_cp3">
+                <property name="label" translatable="yes">Connect</property>
                 <property name="visible">True</property>
-                <property name="label">Chronopic 3</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <signal name="clicked" handler="on_button_connect_cp_clicked"/>
               </widget>
               <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
                 <property name="top_attach">3</property>
                 <property name="bottom_attach">4</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label4">
+              <widget class="GtkButton" id="button_connect_cp4">
+                <property name="label" translatable="yes">Connect</property>
                 <property name="visible">True</property>
-                <property name="label">Chronopic 4</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <signal name="clicked" handler="on_button_connect_cp_clicked"/>
               </widget>
               <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
                 <property name="top_attach">4</property>
                 <property name="bottom_attach">5</property>
               </packing>
@@ -20406,6 +20496,8 @@ by you</property>
                 <signal name="clicked" handler="on_button_help_clicked"/>
               </widget>
               <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
diff --git a/src/gui/chronopic.cs b/src/gui/chronopic.cs
index f1a4106..9ef393b 100644
--- a/src/gui/chronopic.cs
+++ b/src/gui/chronopic.cs
@@ -47,9 +47,20 @@ public class ChronopicWindow
 				
 	//[Widget] Gtk.Entry entry_multi_chronopic_cp2;
 	
-	[Widget] Gtk.ComboBox combo_linux1;
-	[Widget] Gtk.ComboBox combo_windows1;
 	string [] comboWindowsOptions;
+	[Widget] Gtk.ComboBox combo_windows1;
+	[Widget] Gtk.ComboBox combo_windows2;
+	[Widget] Gtk.ComboBox combo_windows3;
+	[Widget] Gtk.ComboBox combo_windows4;
+	[Widget] Gtk.ComboBox combo_linux1;
+	[Widget] Gtk.ComboBox combo_linux2;
+	[Widget] Gtk.ComboBox combo_linux3;
+	[Widget] Gtk.ComboBox combo_linux4;
+	
+	[Widget] Gtk.Button button_connect_cp1;
+	[Widget] Gtk.Button button_connect_cp2;
+	[Widget] Gtk.Button button_connect_cp3;
+	[Widget] Gtk.Button button_connect_cp4;
 
 	//chronopic connection thread
 	Thread thread;
@@ -57,7 +68,8 @@ public class ChronopicWindow
 	bool updateChronopicWinValuesState;
 	string updateChronopicWinValuesMessage;
 	[Widget] Gtk.Button fakeChronopicButton; //raised when chronopic detection ended
-	
+
+	bool isWindows;	
 
 	//preferences variables
 	private static string chronopicPort;
@@ -92,8 +104,6 @@ public class ChronopicWindow
 
 	States loggedState;		//log of last state
 
-
-	
 	public ChronopicWindow()
 	{
 		Glade.XML gxml;
@@ -102,22 +112,16 @@ public class ChronopicWindow
 
 		//put an icon to window
 		UtilGtk.IconWindow(chronopic_window);
-		
-		if(Util.IsWindows()) 
-			combo_linux1.Hide();
+
+		if(Util.IsWindows())
+			isWindows = true;
 		else
-			combo_windows1.Hide();
+			isWindows = false;
+
+		setDefaultValues();		
 
-		connected = false;
-		image_cp1_yes.Hide();
-		image_cp2_yes.Hide();
-		image_cp3_yes.Hide();
-		image_cp4_yes.Hide();
-		
-		currentCp = 1; //TODO: change
-		
 		chronopicPort = SqlitePreferences.Select("chronopicPort");
-	
+
 		if(chronopicPort != Constants.ChronopicDefaultPortWindows && 
 				(chronopicPort != Constants.ChronopicDefaultPortLinux && File.Exists(chronopicPort))
 		  ) {
@@ -144,14 +148,62 @@ public class ChronopicWindow
 			ChronopicWindowBox = new ChronopicWindow ();
 		}
 		
-		ChronopicWindowBox.comboStuff();
-		
+		ChronopicWindowBox.createCombos();
 		ChronopicWindowBox.chronopic_window.Show();
 		
 		return ChronopicWindowBox;
 	}
 
-	private void comboStuff() {
+	private void setDefaultValues() {
+		if(isWindows) {
+			combo_linux1.Hide();
+			combo_linux2.Hide();
+			combo_linux3.Hide();
+			combo_linux4.Hide();
+				
+			combo_windows2.Sensitive = false;
+			combo_windows3.Sensitive = false;
+			combo_windows4.Sensitive = false;
+		} else {
+			combo_windows1.Hide();
+			combo_windows2.Hide();
+			combo_windows3.Hide();
+			combo_windows4.Hide();
+				
+			combo_linux2.Sensitive = false;
+			combo_linux3.Sensitive = false;
+			combo_linux4.Sensitive = false;
+		}
+			
+		button_connect_cp1.Sensitive = false;
+		button_connect_cp2.Sensitive = false;
+		button_connect_cp3.Sensitive = false;
+		button_connect_cp4.Sensitive = false;
+
+		connected = false;
+		image_cp1_yes.Hide();
+		image_cp2_yes.Hide();
+		image_cp3_yes.Hide();
+		image_cp4_yes.Hide();
+		
+		currentCp = 1; //TODO: change
+	}
+	
+	private void createCombos() {
+		if(isWindows) {
+			ChronopicWindowBox.createComboWindows(combo_windows1);
+			ChronopicWindowBox.createComboWindows(combo_windows2);
+			ChronopicWindowBox.createComboWindows(combo_windows3);
+			ChronopicWindowBox.createComboWindows(combo_windows4);
+		} else {
+			ChronopicWindowBox.createComboLinux(combo_linux1);
+			ChronopicWindowBox.createComboLinux(combo_linux2);
+			ChronopicWindowBox.createComboLinux(combo_linux3);
+			ChronopicWindowBox.createComboLinux(combo_linux4);
+		}
+	}
+
+	private void createComboWindows(Gtk.ComboBox myCombo) {
 		//combo port stuff
 		comboWindowsOptions = new string[257];
 		int count = 0;
@@ -160,27 +212,56 @@ public class ChronopicWindow
 		
 		chronopicPort = SqlitePreferences.Select("chronopicPort");
 
-		if(Util.IsWindows()) {
-			UtilGtk.ComboUpdate(combo_windows1, comboWindowsOptions, comboWindowsOptions[0]);
+		UtilGtk.ComboUpdate(myCombo, comboWindowsOptions, comboWindowsOptions[0]);
+
+		if(chronopicPort.Length > 0 && myCombo == combo_windows1)
+			myCombo.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, chronopicPort);
+		else
+			myCombo.Active = 0; //first option
 			
-			if(chronopicPort.Length > 0)
-				combo_windows1.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, chronopicPort);
-			else
-				combo_windows1.Active = 0; //first option
-		} else {
-			string [] usbSerial = Directory.GetFiles("/dev/", "ttyUSB*");
-			string [] serial = Directory.GetFiles("/dev/", "ttyS*");
-			string [] all = Util.AddArrayString(usbSerial, serial);
-			string [] def = Util.StringToStringArray(Constants.ChronopicDefaultPortLinux);
-			string [] allWithDef = Util.AddArrayString(def, all);
+		myCombo.Changed += new EventHandler (on_combo_changed);
+	}
+
+	private void createComboLinux(Gtk.ComboBox myCombo) {
+		string [] usbSerial = Directory.GetFiles("/dev/", "ttyUSB*");
+		string [] serial = Directory.GetFiles("/dev/", "ttyS*");
+		string [] all = Util.AddArrayString(usbSerial, serial);
+		string [] def = Util.StringToStringArray(Constants.ChronopicDefaultPortLinux);
+		string [] allWithDef = Util.AddArrayString(def, all);
+
+		UtilGtk.ComboUpdate(myCombo, allWithDef, Constants.ChronopicDefaultPortLinux);
+
+		if(chronopicPort.Length > 0 && myCombo == combo_linux1)
+			myCombo.Active = UtilGtk.ComboMakeActive(allWithDef, chronopicPort);
+		else 
+			myCombo.Active = 0; //first option
+		
+		myCombo.Changed += new EventHandler (on_combo_changed);
+	}
 	
-			UtilGtk.ComboUpdate(combo_linux1, allWithDef, Constants.ChronopicDefaultPortLinux);
-			
-			if(chronopicPort.Length > 0)
-				combo_linux1.Active = UtilGtk.ComboMakeActive(allWithDef, chronopicPort);
-			else 
-				combo_linux1.Active = 0; //first option
-		}
+	private void on_combo_changed(object o, EventArgs args) {
+		ComboBox combo = o as ComboBox;
+		if (o == null)
+			return;
+
+		//combo is not sensitive when it has been connected
+		//this helps to have button_connect with correct sensitiveness after close window	
+		if(! combo.Sensitive)
+			return;
+
+		bool portOk = true;
+		if(UtilGtk.ComboGetActive(combo) == Constants.ChronopicDefaultPortWindows ||
+				UtilGtk.ComboGetActive(combo) == Constants.ChronopicDefaultPortLinux) 
+			portOk = false;
+
+		if (o == combo_linux1 || o == combo_windows1) 
+			button_connect_cp1.Sensitive = portOk;
+		else if (o == combo_linux2 || o == combo_windows2) 
+			button_connect_cp2.Sensitive = portOk;
+		else if (o == combo_linux3 || o == combo_windows3) 
+			button_connect_cp3.Sensitive = portOk;
+		else if (o == combo_linux4 || o == combo_windows4) 
+			button_connect_cp4.Sensitive = portOk;
 	}
 
 	private void chronopicAtStart(object o, EventArgs args) {
@@ -226,7 +307,7 @@ public class ChronopicWindow
 	private Chronopic chronopicInit (Chronopic myCp, out SerialPort mySp, Chronopic.Plataforma myPS, string myPort, out string returnString, out bool success) 
 	{
 		Log.WriteLine ( Catalog.GetString ("starting connection with chronopic") );
-		if(Util.IsWindows())
+		if(isWindows)
 			Log.WriteLine ( Catalog.GetString ("If you have previously used the modem via a serial port (in a GNU/Linux session, and you selected serial port), Chronojump will crash.") );
 
 		success = true;
@@ -275,7 +356,7 @@ public class ChronopicWindow
 			returnString = Catalog.GetString("Problems communicating to chronopic.");
 			if(currentCp == 1) 
 				returnString += " " + Catalog.GetString("Changed platform to 'Simulated'");
-			if(Util.IsWindows()) {
+			if(isWindows) {
 				returnString += Catalog.GetString("\n\nOn Windows we recommend to remove and connect USB or serial cable from the computer after every unsuccessful port test.");
 				returnString += Catalog.GetString("\n... And after cancelling Chronopic detection.");
 				returnString += Catalog.GetString("\n\n... Later, when you close Chronojump it will probably get frozen. If this happens, let's press CTRL+C on the black screen.");
@@ -292,7 +373,10 @@ public class ChronopicWindow
 	}
 	
 
-	private void on_button_connect_cp1_clicked (object o, EventArgs args) {
+	private void on_button_connect_cp_clicked (object o, EventArgs args) {
+		Button btn = o as Button;
+		if (o == null)
+			return;
 		/*
 		if(image_cp2_no.Visible)
 			currentCp = 2;
@@ -302,10 +386,27 @@ public class ChronopicWindow
 			currentCp = 4;
 			*/
 
-		if(Util.IsWindows())
-			chronopicPort = UtilGtk.ComboGetActive(combo_windows1);
-		else
-			chronopicPort = UtilGtk.ComboGetActive(combo_linux1);
+		if(isWindows){
+			if (o == button_connect_cp1) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_windows1);
+			else if (o == button_connect_cp2) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_windows2);
+			else if (o == button_connect_cp3) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_windows3);
+			else if (o == button_connect_cp4) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_windows4);
+		}
+		else {
+			if (o == button_connect_cp1) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_linux1);
+			else if (o == button_connect_cp2) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_linux2);
+			else if (o == button_connect_cp3) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_linux3);
+			else if (o == button_connect_cp4) 
+				chronopicPort = UtilGtk.ComboGetActive(combo_linux4);
+		}
+
 		prepareChronopicConnection();
 	}
 	
@@ -327,7 +428,7 @@ public class ChronopicWindow
 		image_cp3_yes.Hide();
 		image_cp4_yes.Hide();
 
-		if(Util.IsWindows()) {
+		if(isWindows) {
 			combo_windows1.Sensitive = false;
 			combo_linux1.Hide();
 			string [] comboWindowsOptions = new string[257];
@@ -410,7 +511,7 @@ public class ChronopicWindow
 				combo_linux1.Sensitive = false;
 		
 				//regenerate combos (maybe some ports have been deleted on using before going to simulated)
-				if(Util.IsWindows()) {
+				if(isWindows) {
 					string [] comboWindowsOptions = new string[257];
 					for (int count = 0, i=1; i <= 257; i ++)
 						comboWindowsOptions[i-1] = "COM" + i;
@@ -486,7 +587,7 @@ public class ChronopicWindow
 			myPort = chronopicPort;
 		/*
 		else {
-			if(Util.IsWindows()) 
+			if(isWindows) 
 				myPort = UtilGtk.ComboGetActive(combo_windows1);
 			else
 				myPort = UtilGtk.ComboGetActive(combo_linux1);
@@ -496,34 +597,87 @@ public class ChronopicWindow
 		if(currentCp == 1) {
 			cp = chronopicInit(cp, out sp, platformState, myPort, out message, out success);
 			if(success) {
+				button_connect_cp1.Sensitive = false;
 				image_cp1_no.Hide();
 				image_cp1_yes.Show();
-			} else {
-				image_cp1_no.Show();
-				image_cp1_yes.Hide();
+			
+				if(isWindows) {
+					combo_windows1.Sensitive = false;
+					combo_windows2.Sensitive = true;
+					UtilGtk.ComboDelThisValue(combo_windows2, myPort);
+					combo_windows2.Active = 0; //first option
+					UtilGtk.ComboDelThisValue(combo_windows3, myPort);
+					combo_windows3.Active = 0;
+					UtilGtk.ComboDelThisValue(combo_windows4, myPort);
+					combo_windows4.Active = 0;
+				} else {
+					combo_linux1.Sensitive = false;
+					combo_linux2.Sensitive = true;
+					UtilGtk.ComboDelThisValue(combo_linux2, myPort);
+					combo_linux2.Active = 0; //first option
+					UtilGtk.ComboDelThisValue(combo_linux3, myPort);
+					combo_linux3.Active = 0;
+					UtilGtk.ComboDelThisValue(combo_linux4, myPort);
+					combo_linux4.Active = 0;
+				}
 			}
 		}
 		else if(currentCp == 2) {
 			cp2 = chronopicInit(cp2, out sp2, platformState2, myPort, out message, out success);
 			if(success) {
+				button_connect_cp2.Sensitive = false;
 				image_cp2_no.Hide();
 				image_cp2_yes.Show();
-			} 
+			
+				if(isWindows) {
+					combo_windows2.Sensitive = false;
+					combo_windows3.Sensitive = true;
+					UtilGtk.ComboDelThisValue(combo_windows3, myPort);
+					combo_windows3.Active = 0;
+					UtilGtk.ComboDelThisValue(combo_windows4, myPort);
+					combo_windows4.Active = 0;
+				} else {
+					combo_linux2.Sensitive = false;
+					combo_linux3.Sensitive = true;
+					UtilGtk.ComboDelThisValue(combo_linux3, myPort);
+					combo_linux3.Active = 0;
+					UtilGtk.ComboDelThisValue(combo_linux4, myPort);
+					combo_linux4.Active = 0;
+				}
+			}
 		}
 		else if(currentCp == 3) {
 			cp3 = chronopicInit(cp3, out sp3, platformState3, myPort, out message, out success);
 			if(success) {
+				button_connect_cp3.Sensitive = false;
 				image_cp3_no.Hide();
 				image_cp3_yes.Show();
-			} 
+			
+				if(isWindows) {
+					combo_windows3.Sensitive = false;
+					combo_windows4.Sensitive = true;
+					UtilGtk.ComboDelThisValue(combo_windows4, myPort);
+					combo_windows4.Active = 0;
+				} else {
+					combo_linux3.Sensitive = false;
+					combo_linux4.Sensitive = true;
+					UtilGtk.ComboDelThisValue(combo_linux4, myPort);
+					combo_linux4.Active = 0;
+				}
+			}
 		}
 		else if(currentCp == 4) {
 			cp4 = chronopicInit(cp4, out sp4, platformState4, myPort, out message, out success);
 			if(success) {
+				button_connect_cp4.Sensitive = false;
 				image_cp4_no.Hide();
 				image_cp4_yes.Show();
-				//button_connect_cp.Sensitive = false;
-			} 
+			
+				if(isWindows) 
+					combo_windows4.Sensitive = false;
+				else 
+					combo_linux4.Sensitive = false;
+			}
 		}
 		
 
@@ -546,25 +700,8 @@ public class ChronopicWindow
 //					button_run_analysis.Sensitive = false;
 				}
 			}
-	
-			//disallow selection of that port for other chronopics
-			//and change sensitiveness of combo port 
-			if(Util.IsWindows()) {
-				UtilGtk.ComboDelThisValue(combo_windows1, myPort);
-				combo_windows1.Active = 0; //first option
-				if(currentCp < 4)
-					combo_windows1.Sensitive = true;
-				else
-					combo_windows1.Sensitive = false;
-			} else {
-				UtilGtk.ComboDelThisValue(combo_linux1, myPort);
-				combo_linux1.Active = 0; //first option
-				if(currentCp < 4)
-					combo_linux1.Sensitive = true;
-				else
-					combo_linux1.Sensitive = false;
-			}
 			*/
+	
 		} else {
 			updateChronopicWinValuesState= false; //disconnected
 			updateChronopicWinValuesMessage= message;
@@ -604,8 +741,10 @@ public class ChronopicWindow
 
 	void on_delete_event (object o, DeleteEventArgs args)
 	{
+		//nice: this makes windows no destroyed, then it works like button_close
+		args.RetVal = true;
 		ChronopicWindowBox.chronopic_window.Hide();
-		ChronopicWindowBox = null;
+//		ChronopicWindowBox = null;
 	}
 
 



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