[Monodevelop-patches-list] r2633 - in trunk/MonoDevelop/Core/src/MonoDevelop.Base: . Gui Gui/Dialogs Gui/Dialogs/CombineConfiguration Gui/Pads/SolutionPad Gui/ToolWidgets Gui/Workbench/Layouts Services/File Services/ProcessService Services/Project

Lluis Sanchez <lluis@ximian.com> lluis at mono-cvs.ximian.com
Mon Jul 11 11:19:45 EDT 2005


Author: lluis
Date: 2005-07-11 11:19:45 -0400 (Mon, 11 Jul 2005)
New Revision: 2633

Added:
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineOptionsDialog.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/ToolWidgets/
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/ToolWidgets/ConfigurationComboBox.cs
Modified:
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/TreeViewOptions.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/ITreeBuilderContext.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/TreeViewPad.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Makefile.am
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/MonoDevelopCore.addin.xml
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/IFileService.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/ProcessService/ProcessService.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/Project/ProjectService.cs
Log:
2005-07-11  Lluis Sanchez Gual  <lluis at novell.com> 

	* Services/File/IFileService.cs: 
	* Services/File/DefaultFileService.cs: Added OpenFile overload to open
	a file at place the cursor at a given line at column.
	
	* Services/ProcessService/ProcessService.cs: Provide the assembly location
	when creating an out of process object.
	
	* Services/Project/ProjectService.cs: Use the new combine options dialog.
	Store and restore the active configuration of the root combine.
	
	* Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs:
	Implemented.
	* Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs:
	new option panel that shows the list of configurations of a combine.
	
	* Gui/Dialogs/TreeViewOptions.cs: Added new overridable methods to
	make costumization easier.
	* Gui/Dialogs/CombineOptionsDialog.cs: New dialog that shows the options
	for a combine.
	* Gui/Workbench/Layouts/SdiWorkspaceLayout.cs: Include the IPadContent
	in the command route.
	* Gui/Pads/SolutionPad/TreeViewPad.cs: Use the new ICommandDelegatorRouter
	interface. Made some methods virtual. The key for GetComposedIcon is now
	an object, instead of an string.
	
	* Gui/Pads/SolutionPad/ITreeBuilderContext.cs:The key for GetComposedIcon
	is now an object, instead of an string.
	
	* Gui/ToolWidgets/ConfigurationComboBox.cs: Toolbar widget that shows
	the active configuration.
	
	* Base.glade: Added new combine configuration dialogs.
	* MonoDevelopCore.addin.xml: Added the ConfigurationSelector command and
	the new combine configuration panels.



Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade	2005-07-11 15:19:45 UTC (rev 2633)
@@ -20,7 +20,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -97,10 +96,6 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">TreeView</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -127,9 +122,6 @@
 		      <property name="rules_hint">False</property>
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
-		      <property name="fixed_height_mode">False</property>
-		      <property name="hover_selection">False</property>
-		      <property name="hover_expand">False</property>
 		      <signal name="button_release_event" handler="OnButtonRelease" last_modification_time="Thu, 04 Mar 2004 06:11:16 GMT"/>
 		    </widget>
 		  </child>
@@ -196,10 +188,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -266,10 +254,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="type">label_item</property>
@@ -295,10 +279,6 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">tab</property>
@@ -342,7 +322,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -419,10 +398,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -466,9 +441,6 @@
 				  <property name="rules_hint">False</property>
 				  <property name="reorderable">False</property>
 				  <property name="enable_search">True</property>
-				  <property name="fixed_height_mode">False</property>
-				  <property name="hover_selection">False</property>
-				  <property name="hover_expand">False</property>
 				</widget>
 			      </child>
 			    </widget>
@@ -510,10 +482,6 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -564,10 +532,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -595,10 +559,6 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -630,10 +590,6 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">txt_name</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -654,7 +610,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			  <signal name="changed" handler="PathChanged" last_modification_time="Sat, 17 Jan 2004 17:21:33 GMT"/>
 			</widget>
@@ -680,10 +636,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -709,10 +661,6 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">txt_subdirectory</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -733,7 +681,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			  <signal name="changed" handler="PathChanged" last_modification_time="Sat, 17 Jan 2004 17:24:07 GMT"/>
 			</widget>
@@ -802,10 +750,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -866,7 +810,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -944,10 +887,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="tab_expand">False</property>
@@ -968,10 +907,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">tab</property>
@@ -1023,9 +958,6 @@
 			      <property name="rules_hint">False</property>
 			      <property name="reorderable">False</property>
 			      <property name="enable_search">True</property>
-			      <property name="fixed_height_mode">False</property>
-			      <property name="hover_selection">False</property>
-			      <property name="hover_expand">False</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -1092,10 +1024,6 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -1139,7 +1067,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox8">
@@ -1166,10 +1093,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1197,10 +1120,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1331,10 +1250,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1362,10 +1277,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1455,7 +1366,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox13">
@@ -1521,7 +1431,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox17">
@@ -1548,10 +1457,6 @@
 	      <property name="yalign">0</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1568,7 +1473,6 @@
 	      <property name="directory_entry">True</property>
 	      <property name="modal">True</property>
 	      <property name="use_filechooser">True</property>
-	      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 	      <child internal-child="entry">
 		<widget class="GtkEntry" id="combo-entry1">
@@ -1579,7 +1483,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 	      </child>
@@ -1617,10 +1521,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1648,10 +1548,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1757,10 +1653,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1788,10 +1680,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1862,7 +1750,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox2">
@@ -1913,10 +1800,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2062,10 +1945,6 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -2123,7 +2002,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox66">
@@ -2182,10 +2060,6 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
-	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	  <property name="width_chars">-1</property>
-	  <property name="single_line_mode">False</property>
-	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -2213,10 +2087,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -2320,7 +2190,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox32">
@@ -2353,9 +2222,6 @@
 		  <property name="rules_hint">False</property>
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
-		  <property name="fixed_height_mode">False</property>
-		  <property name="hover_selection">False</property>
-		  <property name="hover_expand">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -2417,10 +2283,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2493,7 +2355,7 @@
 	      <property name="max_length">0</property>
 	      <property name="text" translatable="yes"></property>
 	      <property name="has_frame">True</property>
-	      <property name="invisible_char">*</property>
+	      <property name="invisible_char" translatable="yes">*</property>
 	      <property name="activates_default">False</property>
 	    </widget>
 	    <packing>
@@ -2519,10 +2381,6 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">combo-entry2</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -2548,10 +2406,6 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">titleTextBox</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -2576,10 +2430,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -2604,10 +2454,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -2637,7 +2483,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -2696,7 +2542,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -2745,7 +2591,6 @@
 	      <property name="directory_entry">False</property>
 	      <property name="modal">True</property>
 	      <property name="use_filechooser">True</property>
-	      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 	      <child internal-child="entry">
 		<widget class="GtkEntry" id="combo-entry2">
@@ -2756,7 +2601,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 	      </child>
@@ -2844,7 +2689,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox40">
@@ -2871,10 +2715,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -2903,10 +2743,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2944,10 +2780,6 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">projectNameEntry</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -2968,7 +2800,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -3030,14 +2862,10 @@
 			  <property name="wrap">False</property>
 			  <property name="selectable">False</property>
 			  <property name="xalign">0</property>
-			  <property name="yalign">0.00999999977648</property>
+			  <property name="yalign">0.01</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">scrolledwindow5</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -3115,10 +2943,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -3147,10 +2971,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3205,10 +3025,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3266,7 +3082,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox48">
@@ -3287,10 +3102,6 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
-	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	  <property name="width_chars">-1</property>
-	  <property name="single_line_mode">False</property>
-	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -3319,9 +3130,6 @@
 	      <property name="rules_hint">False</property>
 	      <property name="reorderable">False</property>
 	      <property name="enable_search">True</property>
-	      <property name="fixed_height_mode">False</property>
-	      <property name="hover_selection">False</property>
-	      <property name="hover_expand">False</property>
 	    </widget>
 	  </child>
 	</widget>
@@ -3348,7 +3156,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox49">
@@ -3375,10 +3182,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -3406,10 +3209,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3468,10 +3267,6 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -3488,7 +3283,6 @@
 			      <property name="directory_entry">False</property>
 			      <property name="modal">True</property>
 			      <property name="use_filechooser">True</property>
-			      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 			      <child internal-child="entry">
 				<widget class="GtkEntry" id="combo-entry3">
@@ -3499,7 +3293,7 @@
 				  <property name="max_length">0</property>
 				  <property name="text" translatable="yes"></property>
 				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
+				  <property name="invisible_char" translatable="yes">*</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
@@ -3590,10 +3384,6 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -3619,9 +3409,6 @@
 				  <property name="rules_hint">False</property>
 				  <property name="reorderable">False</property>
 				  <property name="enable_search">True</property>
-				  <property name="fixed_height_mode">False</property>
-				  <property name="hover_selection">False</property>
-				  <property name="hover_expand">False</property>
 				</widget>
 			      </child>
 			    </widget>
@@ -3672,10 +3459,6 @@
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
 			      <property name="mnemonic_widget">combo-entry4</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -3692,7 +3475,6 @@
 			      <property name="directory_entry">True</property>
 			      <property name="modal">True</property>
 			      <property name="use_filechooser">True</property>
-			      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 			      <child internal-child="entry">
 				<widget class="GtkEntry" id="combo-entry4">
@@ -3703,7 +3485,7 @@
 				  <property name="max_length">0</property>
 				  <property name="text" translatable="yes"></property>
 				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
+				  <property name="invisible_char" translatable="yes">*</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
@@ -3766,7 +3548,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox57">
@@ -3818,10 +3599,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3833,8 +3610,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="singleCombo">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3902,10 +3677,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3945,9 +3716,6 @@
 			      <property name="rules_hint">False</property>
 			      <property name="reorderable">False</property>
 			      <property name="enable_search">True</property>
-			      <property name="fixed_height_mode">False</property>
-			      <property name="hover_selection">False</property>
-			      <property name="hover_expand">False</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -4029,10 +3797,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -4044,8 +3808,6 @@
 		      <child>
 			<widget class="GtkComboBox" id="actionCombo">
 			  <property name="visible">True</property>
-			  <property name="add_tearoffs">False</property>
-			  <property name="focus_on_click">True</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -4097,7 +3859,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -4166,10 +3927,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -4199,9 +3956,6 @@
 		  <property name="rules_hint">True</property>
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
-		  <property name="fixed_height_mode">False</property>
-		  <property name="hover_selection">False</property>
-		  <property name="hover_expand">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -4237,10 +3991,6 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -4268,10 +4018,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -4415,7 +4161,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -4484,10 +4229,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -4505,7 +4246,7 @@
 	      <property name="max_length">0</property>
 	      <property name="text" translatable="yes"></property>
 	      <property name="has_frame">True</property>
-	      <property name="invisible_char">*</property>
+	      <property name="invisible_char" translatable="yes">*</property>
 	      <property name="activates_default">True</property>
 	    </widget>
 	    <packing>
@@ -4537,7 +4278,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox68">
@@ -4559,10 +4299,6 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
-	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	  <property name="width_chars">-1</property>
-	  <property name="single_line_mode">False</property>
-	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -4590,10 +4326,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -4610,7 +4342,6 @@
 	      <property name="directory_entry">True</property>
 	      <property name="modal">True</property>
 	      <property name="use_filechooser">True</property>
-	      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 	      <child internal-child="entry">
 		<widget class="GtkEntry" id="combo-entry5">
@@ -4621,7 +4352,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 	      </child>
@@ -4656,7 +4387,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox66">
@@ -4683,10 +4413,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -4715,10 +4441,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -4756,10 +4478,6 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">assemblyNameEntry</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -4785,10 +4503,6 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">combo-entry6</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -4814,10 +4528,6 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">parametersEntry</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -4838,7 +4548,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -4859,7 +4569,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -4879,7 +4589,6 @@
 			  <property name="directory_entry">True</property>
 			  <property name="modal">True</property>
 			  <property name="use_filechooser">True</property>
-			  <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 			  <child internal-child="entry">
 			    <widget class="GtkEntry" id="combo-entry6">
@@ -4890,7 +4599,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
+			      <property name="invisible_char" translatable="yes">*</property>
 			      <property name="activates_default">False</property>
 			    </widget>
 			  </child>
@@ -4989,10 +4698,6 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -5021,10 +4726,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5056,10 +4757,6 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">combo-entry7</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -5085,10 +4782,6 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">combo-entry8</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -5114,10 +4807,6 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">combo-entry9</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -5136,7 +4825,6 @@
 		      <property name="directory_entry">False</property>
 		      <property name="modal">True</property>
 		      <property name="use_filechooser">True</property>
-		      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 		      <child internal-child="entry">
 			<widget class="GtkEntry" id="combo-entry7">
@@ -5147,7 +4835,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 		      </child>
@@ -5168,7 +4856,6 @@
 		      <property name="directory_entry">False</property>
 		      <property name="modal">True</property>
 		      <property name="use_filechooser">True</property>
-		      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 		      <child internal-child="entry">
 			<widget class="GtkEntry" id="combo-entry8">
@@ -5179,7 +4866,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 		      </child>
@@ -5200,7 +4887,6 @@
 		      <property name="directory_entry">False</property>
 		      <property name="modal">True</property>
 		      <property name="use_filechooser">True</property>
-		      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 		      <child internal-child="entry">
 			<widget class="GtkEntry" id="combo-entry9">
@@ -5211,7 +4897,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 		      </child>
@@ -5264,7 +4950,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -5355,10 +5040,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5419,10 +5100,6 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -5466,7 +5143,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -5550,10 +5226,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -5625,10 +5297,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -5691,10 +5359,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5712,7 +5376,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">True</property>
 		</widget>
 		<packing>
@@ -5764,10 +5428,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5785,7 +5445,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">True</property>
 		</widget>
 		<packing>
@@ -5884,8 +5544,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="specialSearchStrategyComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5920,10 +5578,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5935,8 +5589,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="searchLocationComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -5975,7 +5627,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -6063,10 +5714,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6084,7 +5731,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">True</property>
 		</widget>
 		<packing>
@@ -6136,10 +5783,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6157,7 +5800,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -6193,10 +5836,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6214,7 +5853,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -6332,8 +5971,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="specialSearchStrategyComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6368,10 +6005,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6383,8 +6016,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="searchLocationComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6423,7 +6054,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -6520,10 +6150,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -6586,10 +6212,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6607,7 +6229,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">True</property>
 		</widget>
 		<packing>
@@ -6659,10 +6281,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6680,7 +6298,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">True</property>
 		</widget>
 		<packing>
@@ -6732,10 +6350,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6753,7 +6367,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -6789,10 +6403,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6810,7 +6420,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -6928,8 +6538,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="specialSearchStrategyComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6964,10 +6572,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -6979,8 +6583,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="searchLocationComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -7019,7 +6621,6 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -7103,10 +6704,6 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -7169,10 +6766,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -7190,7 +6783,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">True</property>
 		</widget>
 		<packing>
@@ -7289,8 +6882,6 @@
 	      <child>
 		<widget class="GtkComboBox" id="specialSearchStrategyComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -7325,10 +6916,6 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -7340,11 +6927,363 @@
 	      <child>
 		<widget class="GtkComboBox" id="searchLocationComboBox">
 		  <property name="visible">True</property>
-		  <property name="add_tearoffs">False</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkWindow" id="CombineConfigurationsPanel">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Configurations</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+  <child>
+    <widget class="GtkVBox" id="vbox74">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">6</property>
+
+      <child>
+	<widget class="GtkHBox" id="hbox60">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">6</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="label104">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Select a target configuration for each solution item:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkScrolledWindow" id="scrolledwindow11">
+	  <property name="visible">True</property>
+	  <property name="can_focus">True</property>
+	  <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	  <property name="shadow_type">GTK_SHADOW_IN</property>
+	  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	  <child>
+	    <widget class="GtkTreeView" id="configsList">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="headers_visible">True</property>
+	      <property name="rules_hint">False</property>
+	      <property name="reorderable">False</property>
+	      <property name="enable_search">True</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkWindow" id="CombineEntryConfigurationsPanel">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Configurations</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+  <child>
+    <widget class="GtkVBox" id="vbox75">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+	<widget class="GtkHBox" id="hbox61">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">6</property>
+
+	  <child>
+	    <widget class="GtkScrolledWindow" id="scrolledwindow12">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	      <property name="shadow_type">GTK_SHADOW_IN</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkTreeView" id="configsList">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="headers_visible">True</property>
+		  <property name="rules_hint">False</property>
+		  <property name="reorderable">False</property>
+		  <property name="enable_search">True</property>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox76">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">6</property>
+
+	      <child>
+		<widget class="GtkButton" id="addButton">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label">gtk-add</property>
+		  <property name="use_stock">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
 		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="copyButton">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label">gtk-copy</property>
+		  <property name="use_stock">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="removeButton">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label">gtk-remove</property>
+		  <property name="use_stock">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="renameButton">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Rename</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="NewConfigurationDialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">New Configuration</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox6">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area6">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="cancelbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="okbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="vbox77">
+	  <property name="border_width">7</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">6</property>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox62">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">6</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label105">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Name:</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="nameEntry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">0</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char" translatable="yes">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
 		  <property name="expand">True</property>
 		  <property name="fill">True</property>
 		</packing>
@@ -7356,14 +7295,332 @@
 	      <property name="fill">False</property>
 	    </packing>
 	  </child>
+
+	  <child>
+	    <widget class="GtkCheckButton" id="createChildrenCheck">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Create configurations for all solution items</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="active">True</property>
+	      <property name="inconsistent">False</property>
+	      <property name="draw_indicator">True</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="RenameConfigurationDialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Rename Configuration</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="vbox78">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="hbuttonbox2">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="button9">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button10">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
 	  <property name="expand">False</property>
 	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
 	</packing>
       </child>
+
+      <child>
+	<widget class="GtkVBox" id="vbox79">
+	  <property name="border_width">7</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">6</property>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox63">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">6</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label106">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">New name:</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="nameEntry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">0</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char" translatable="yes">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkCheckButton" id="renameChildrenCheck">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Rename configurations in all solution items</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="active">True</property>
+	      <property name="inconsistent">False</property>
+	      <property name="draw_indicator">True</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
     </widget>
   </child>
 </widget>
+
+<widget class="GtkDialog" id="DeleteConfigurationDialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Delete Configuration</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox7">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area7">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="button11">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-no</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-9</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button12">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="has_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="has_focus">True</property>
+	      <property name="label">gtk-yes</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-8</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHBox" id="hbox64">
+	  <property name="border_width">12</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">12</property>
+
+	  <child>
+	    <widget class="GtkImage" id="image6">
+	      <property name="visible">True</property>
+	      <property name="stock">gtk-dialog-question</property>
+	      <property name="icon_size">6</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox80">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">6</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label107">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Are you sure you want to delete this configuration?</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="deleteChildrenCheck">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Delete also configurations in solution items</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">True</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog	2005-07-11 15:19:45 UTC (rev 2633)
@@ -1,3 +1,40 @@
+2005-07-11  Lluis Sanchez Gual  <lluis at novell.com> 
+
+	* Services/File/IFileService.cs: 
+	* Services/File/DefaultFileService.cs: Added OpenFile overload to open
+	a file at place the cursor at a given line at column.
+	
+	* Services/ProcessService/ProcessService.cs: Provide the assembly location
+	when creating an out of process object.
+	
+	* Services/Project/ProjectService.cs: Use the new combine options dialog.
+	Store and restore the active configuration of the root combine.
+	
+	* Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs:
+	Implemented.
+	* Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs:
+	new option panel that shows the list of configurations of a combine.
+	
+	* Gui/Dialogs/TreeViewOptions.cs: Added new overridable methods to
+	make costumization easier.
+	* Gui/Dialogs/CombineOptionsDialog.cs: New dialog that shows the options
+	for a combine.
+	* Gui/Workbench/Layouts/SdiWorkspaceLayout.cs: Include the IPadContent
+	in the command route.
+	* Gui/Pads/SolutionPad/TreeViewPad.cs: Use the new ICommandDelegatorRouter
+	interface. Made some methods virtual. The key for GetComposedIcon is now
+	an object, instead of an string.
+	
+	* Gui/Pads/SolutionPad/ITreeBuilderContext.cs:The key for GetComposedIcon
+	is now an object, instead of an string.
+	
+	* Gui/ToolWidgets/ConfigurationComboBox.cs: Toolbar widget that shows
+	the active configuration.
+	
+	* Base.glade: Added new combine configuration dialogs.
+	* MonoDevelopCore.addin.xml: Added the ConfigurationSelector command and
+	the new combine configuration panels.
+
 2005-07-11  Lluis Sanchez Gual  <lluis at novell.com>
 
 	* Internal/Codons/Commands/CommandCodon.cs: Set the text and description

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -1,335 +1,79 @@
-// <file>
-//     <copyright see="prj:///doc/copyright.txt"/>
-//     <license see="prj:///doc/license.txt"/>
-//     <owner name="Mike Krüger" email="mike at icsharpcode.net"/>
-//     <version value="$version"/>
-// </file>
+
 using System;
 using System.Collections;
-using System.ComponentModel;
-using System.Drawing;
 
 using MonoDevelop.Internal.Project;
 using MonoDevelop.Core.Properties;
 using MonoDevelop.Core.Services;
-using MonoDevelop.Core.AddIns.Codons;
+using MonoDevelop.Gui.Widgets;
+using Gtk;
 
 namespace MonoDevelop.Gui.Dialogs.OptionPanels
-{/*
-	/// <summary>
-	/// Summary description for UserControl3.
-	/// </summary>
+{
 	public class CombineConfigurationPanel : AbstractOptionPanel
 	{
-		private System.Windows.Forms.Label label2;
-		private System.Windows.Forms.ComboBox comboBox1;
-		private System.Windows.Forms.Button button4;
-		private System.Windows.Forms.GroupBox groupBox1;
-		private System.Windows.Forms.CheckBox checkBox1;
-		private System.Windows.Forms.ComboBox actioncomboBox;
-		private System.Windows.Forms.ListView entrylistView;
-		private System.Windows.Forms.Label label1;
-		private System.Windows.Forms.ColumnHeader columnHeader1;
-		private System.Windows.Forms.ColumnHeader columnHeader2;
-		private System.Windows.Forms.ColumnHeader columnHeader3;
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.Container components = null;
-		ResourceService resourceService = (ResourceService)ServiceManager.Services.GetService(typeof(IResourceService));
+		CombineConfigurationPanelWidget widget;
 		
-		
-		Combine combine;
-		
-		void SetValues(object sender, EventArgs e)
+		class CombineConfigurationPanelWidget : GladeWidgetExtract 
 		{
-			this.combine = (Combine)((IProperties)CustomizationObject).GetProperty("Combine");
-			checkBox1.CheckedChanged += new EventHandler(OptionsChanged);
-			actioncomboBox.SelectedIndexChanged += new EventHandler(OptionsChanged);
-			entrylistView.SelectedIndexChanged += new EventHandler(SelectEntry);
-			button4.Click += new EventHandler(StartConfigurationManager);
+ 			[Glade.Widget] Gtk.TreeView configsList;
+			TreeStore store;
+			Combine combine;
+			CombineConfiguration configuration;
 			
-			InitializeConfigurationComboBox();
-			InitializeEntryListView(null, null);
-		}
-		
-		public override bool ReceiveDialogMessage(DialogMessage message)
-		{
-			if (message == DialogMessage.OK) {
+			public CombineConfigurationPanelWidget (IProperties CustomizationObject): base ("Base.glade", "CombineConfigurationsPanel")
+			{
+				combine = (Combine)((IProperties)CustomizationObject).GetProperty("Combine");
+				configuration = (CombineConfiguration)((IProperties)CustomizationObject).GetProperty("Config");
 				
+				store = new TreeStore (typeof(object), typeof(string), typeof(bool), typeof(string));
+				configsList.Model = store;
+				configsList.HeadersVisible = true;
+				
+				TreeViewColumn col = new TreeViewColumn ();
+				CellRendererText sr = new CellRendererText ();
+				col.PackStart (sr, true);
+				col.Expand = true;
+				col.AddAttribute (sr, "text", 1);
+				col.Title = "Solution Item";
+				configsList.AppendColumn (col);
+				
+				CellRendererToggle tt = new CellRendererToggle ();
+				tt.Activatable = true;
+				tt.Toggled += new ToggledHandler (OnBuildToggled);
+				configsList.AppendColumn ("Build", tt, "active", 2);
+				configsList.AppendColumn ("Configuration", new CellRendererText (), "text", 3);
+				
+				foreach (CombineConfigurationEntry ce in configuration.Entries)
+					store.AppendValues (ce, ce.Entry.Name, ce.Build, ce.ConfigurationName);
 			}
-		// TODO
-//			foreach (ListViewItem item in entrylistView.Items) {
-//				CombineConfiguration.Config config = combine.ActiveConfiguration.GetConfiguration(item.Text);
-//				config.Build             = Boolean.Parse(item.SubItems[1]);
-//				config.ConfigurationName = Boolean.Parse(item.SubItems[0]);
-//			}
-			return true;
-		}
-		
-		public CombineConfigurationPanel()
-		{
-			// This call is required by the Windows.Forms Form Designer.
-			InitializeComponent();
 			
-			CustomizationObjectChanged += new EventHandler(SetValues);
-		}
-		
-		void StartConfigurationManager(object sender, EventArgs e)
-		{
-			new ConfigurationManager().ShowDialog();
-		}
-		void OptionsChanged(object sender, EventArgs e)
-		{
-			if (entrylistView.SelectedItems == null || 
-				entrylistView.SelectedItems.Count == 0) 
-				return;
-			ListViewItem item = entrylistView.SelectedItems[0]; 
-			if (item == null || item.SubItems.Count < 3)
-				return;
-			item.SubItems[2].Text = checkBox1.Checked.ToString();
-			item.SubItems[1].Text = actioncomboBox.SelectedItem.ToString();
-		}
-		
-		void SelectEntry(object sender, EventArgs e)
-		{
-			actioncomboBox.Items.Clear();
-			if (entrylistView.SelectedItems.Count == 0) {
-				actioncomboBox.Enabled = checkBox1.Enabled = false;
-				return;
+			void OnBuildToggled (object sender, ToggledArgs args)
+			{
+				TreeIter iter;
+				if (store.GetIter (out iter, new TreePath (args.Path))) {
+					CombineConfigurationEntry entry = (CombineConfigurationEntry) store.GetValue (iter, 0);
+					entry.Build = !entry.Build;
+					store.SetValue (iter, 2, entry.Build);
+				}
 			}
-			actioncomboBox.Enabled = checkBox1.Enabled = true;
 			
-			ListViewItem item = entrylistView.SelectedItems[0]; 
-			
-			CombineConfiguration.Config config = null;
-			if (comboBox1.SelectedIndex == 0)
-				config = combine.ActiveConfiguration.GetConfiguration(combine.GetEntryNumber(item.Text));
-			else
-				config = ((CombineConfiguration)combine.Configurations[comboBox1.SelectedItem.ToString()]).GetConfiguration(combine.GetEntryNumber(item.Text));
-			
-			checkBox1.Checked = Boolean.Parse(item.SubItems[2].Text);
-			
-			CombineEntry entry = (CombineEntry)combine.Entries[combine.GetEntryNumber(item.Text)];
-			int index = 0;
-			if (entry.Entry is Project) {
-				Project subproject = (Project)entry.Entry;
-				for (int i = 0; i < subproject.Configurations.Count; ++i) {
-					string name = ((IConfiguration)subproject.Configurations[i]).Name;
-					if (name == item.SubItems[1].Text)
-						index = i;
-					actioncomboBox.Items.Add(name);
-				}
-				
-			} else {
-				Combine    subcombine = (Combine)entry.Entry;
-				
-				for (int i = 0; i < subcombine.Configurations.Count; ++i) {
-					string name = ((CombineConfiguration)subcombine.Configurations[i]).Name;
-					if (name == item.SubItems[1].Text)
-						index = i;
-					actioncomboBox.Items.Add(name);
-				}
+			public bool Store()
+			{
+				return true;
 			}
-			actioncomboBox.SelectedIndex = index;
 		}
-		
-		void InitializeEntryListView(object sender, EventArgs e)
-		{
-			entrylistView.BeginUpdate();
-			entrylistView.Items.Clear();
-			foreach (CombineEntry entry in combine.Entries) {
-				CombineConfiguration.Config config = combine.ActiveConfiguration.GetConfiguration(combine.GetEntryNumber(entry.Name));
-				entrylistView.Items.Add(new ListViewItem(new string[] {
-					entry.Name,
-					config.ConfigurationName,
-					config.Build.ToString()
-				}));
-			}
-			entrylistView.EndUpdate();
-		}
-		
-		void InitializeConfigurationComboBox()
-		{
-			if (combine.ActiveConfiguration != null) {
-				comboBox1.Items.Add("Active(" + combine.ActiveConfiguration.Name +")");
-			} else {
-				comboBox1.Items.Add("No active");
-			}
-			foreach (DictionaryEntry dentry in combine.Configurations) {
-				CombineConfiguration cconf = (CombineConfiguration)dentry.Value;
-				comboBox1.Items.Add(cconf.Name);
-			}
-			comboBox1.SelectedIndex = 0;
-			comboBox1.SelectedIndexChanged += new EventHandler(InitializeEntryListView);
-		}
 
-		/// <summary>
-		/// Clean up any resources being used.
-		/// </summary>
-		protected override void Dispose(bool disposing)
+		public override void LoadPanelContents()
 		{
-			if (disposing) {
-				if (components != null){
-					components.Dispose();
-				}
-			}
-			base.Dispose(disposing);
+			Add (widget = new CombineConfigurationPanelWidget ((IProperties) CustomizationObject));
 		}
 
-		#region Component Designer generated code
-		/// <summary> 
-		/// Required method for Designer support - do not modify 
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
+		public override bool StorePanelContents()
 		{
-			PropertyService propertyService = (PropertyService)ServiceManager.Services.GetService(typeof(PropertyService));
-			bool flat = Crownwood.Magic.Common.VisualStyle.IDE == (Crownwood.Magic.Common.VisualStyle)propertyService.GetProperty("MonoDevelop.Gui.VisualStyle", Crownwood.Magic.Common.VisualStyle.IDE);
-			this.label2 = new System.Windows.Forms.Label();
-			this.comboBox1 = new System.Windows.Forms.ComboBox();
-			this.button4 = new System.Windows.Forms.Button();
-			this.groupBox1 = new System.Windows.Forms.GroupBox();
-			this.checkBox1 = new System.Windows.Forms.CheckBox();
-			this.actioncomboBox = new System.Windows.Forms.ComboBox();
-			this.entrylistView = new System.Windows.Forms.ListView();
-			this.label1 = new System.Windows.Forms.Label();
-			this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
-			this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
-			this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
-			this.groupBox1.SuspendLayout();
-			this.SuspendLayout();
-			// 
-			// label2
-			// 
-			this.label2.Location = new System.Drawing.Point(16, 8);
-			this.label2.Name = "label2";
-			this.label2.Size = new System.Drawing.Size(168, 16);
-			this.label2.TabIndex = 0;
-			this.label2.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.CombineConfigLabel");
-			
-			//
-			// comboBox1
-			// 
-			this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.comboBox1.DropDownWidth = 176;
-			this.comboBox1.Location = new System.Drawing.Point(16, 24);
-			this.comboBox1.Name = "comboBox1";
-			this.comboBox1.Size = new System.Drawing.Size(224, 21);
-			this.comboBox1.TabIndex = 1;
-			// 
-			// button4
-			// 
-			this.button4.Location = new System.Drawing.Point(248, 24);
-			this.button4.Name = "button4";
-			this.button4.Size = new System.Drawing.Size(136, 23);
-			this.button4.TabIndex = 8;
-			this.button4.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.ConfigurationManagerButton");
-			button4.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-			
-			//
-			// groupBox1
-			// 
-			this.groupBox1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-				| System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right);
-			this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
-																					this.checkBox1,
-																					this.actioncomboBox,
-																					this.entrylistView,
-																					this.label1});
-			this.groupBox1.Location = new System.Drawing.Point(8, 56);
-			this.groupBox1.Name = "groupBox1";
-			this.groupBox1.Size = new System.Drawing.Size(432, 272);
-			this.groupBox1.TabIndex = 9;
-			this.groupBox1.TabStop = false;
-			this.groupBox1.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.EntriesGroupBox");
-			groupBox1.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-			
-			// 
-			// checkBox1
-			// 
-			this.checkBox1.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
-			this.checkBox1.Location = new System.Drawing.Point(232, 248);
-			this.checkBox1.Name = "checkBox1";
-			this.checkBox1.Size = new System.Drawing.Size(128, 16);
-			this.checkBox1.TabIndex = 7;
-			this.checkBox1.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.BuildCheckBox");
-			checkBox1.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-			
-			// 
-			// actioncomboBox
-			// 
-			this.actioncomboBox.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
-			this.actioncomboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.actioncomboBox.DropDownWidth = 168;
-			this.actioncomboBox.Location = new System.Drawing.Point(8, 248);
-			this.actioncomboBox.Name = "actioncomboBox";
-			this.actioncomboBox.Size = new System.Drawing.Size(216, 21);
-			this.actioncomboBox.TabIndex = 5;
-			
-			//
-			// entrylistView
-			// 
-			this.entrylistView.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-				| System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right);
-			this.entrylistView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-																							this.columnHeader1,
-																							this.columnHeader2,
-																							this.columnHeader3});
-			this.entrylistView.FullRowSelect = true;
-			this.entrylistView.GridLines = true;
-			this.entrylistView.HideSelection = false;
-			this.entrylistView.Location = new System.Drawing.Point(8, 16);
-			this.entrylistView.MultiSelect = false;
-			this.entrylistView.Name = "entrylistView";
-			this.entrylistView.Size = new System.Drawing.Size(416, 208);
-			this.entrylistView.TabIndex = 6;
-			this.entrylistView.View = System.Windows.Forms.View.Details;
-			entrylistView.BorderStyle  = flat ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
-			
-			//
-			// label1
-			// 
-			this.label1.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
-			this.label1.Location = new System.Drawing.Point(8, 232);
-			this.label1.Name = "label1";
-			this.label1.Size = new System.Drawing.Size(176, 16);
-			this.label1.TabIndex = 4;
-			this.label1.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.EntryConfigurationLabel");
-			
-			//
-			// columnHeader1
-			// 
-			this.columnHeader1.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.EntryColumnHeader");
-			this.columnHeader1.Width = 242;
-			
-			//
-			// columnHeader2
-			// 
-			this.columnHeader2.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.ConfigurationColumnHeader");
-			this.columnHeader2.Width = 109;
-			
-			// 
-			// columnHeader3
-			// 
-			this.columnHeader3.Text = resourceService.GetString("Dialog.Options.CombineOptions.Configurations.BuildColumnHeader");
-			
-			// 
-			// UserControl3
-			// 
-			this.Controls.AddRange(new System.Windows.Forms.Control[] {this.groupBox1,
-			                       this.label2,
-			                       this.comboBox1,
-			                       this.button4});
-			this.Name = "UserControl3";
-			this.Size = new System.Drawing.Size(448, 336);
-			this.groupBox1.ResumeLayout(false);
-			this.ResumeLayout(false);
-
-		}
-		#endregion
-	}*/
+	        bool success = widget.Store ();
+			return success;			
+       	}
+	}
 }
 

Added: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -0,0 +1,296 @@
+//
+// CombineEntryConfigurationsPanel.cs
+//
+// Author:
+//   Lluis Sanchez Gual
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.Reflection;
+
+using MonoDevelop.Internal.Project;
+using MonoDevelop.Core.Properties;
+using MonoDevelop.Core.Services;
+using MonoDevelop.Gui.Widgets;
+using MonoDevelop.Services;
+using Gtk;
+using Glade;
+
+namespace MonoDevelop.Gui.Dialogs.OptionPanels
+{
+	public class CombineEntryConfigurationsPanel : AbstractOptionPanel
+	{
+		CombineEntryConfigurationsPanelWidget widget;
+		
+		class CombineEntryConfigurationsPanelWidget : GladeWidgetExtract 
+		{
+   			[Glade.Widget] Button addButton;
+ 			[Glade.Widget] Button removeButton;
+ 			[Glade.Widget] Button renameButton;
+ 			[Glade.Widget] Button copyButton;
+ 			[Glade.Widget] Gtk.TreeView configsList;
+			
+			TreeStore store;
+			Combine combine;
+			ConfigurationData configData;
+			
+			public CombineEntryConfigurationsPanelWidget (IProperties CustomizationObject): base ("Base.glade", "CombineEntryConfigurationsPanel")
+			{
+				combine = (Combine)((IProperties)CustomizationObject).GetProperty("Combine");
+				configData = (ConfigurationData)((IProperties)CustomizationObject).GetProperty("CombineConfigData");
+				
+				store = new TreeStore (typeof(object), typeof(string));
+				configsList.Model = store;
+				configsList.HeadersVisible = true;
+				
+				TreeViewColumn col = new TreeViewColumn ();
+				CellRendererText sr = new CellRendererText ();
+				col.PackStart (sr, true);
+				col.AddAttribute (sr, "text", 1);
+				col.Title = GettextCatalog.GetString ("Configuration");
+				configsList.AppendColumn (col);
+				
+				foreach (CombineConfiguration cc in configData.Configurations)
+					store.AppendValues (cc, cc.Name);
+
+				addButton.Clicked += new EventHandler (OnAddConfiguration);
+				removeButton.Clicked += new EventHandler (OnRemoveConfiguration);
+				renameButton.Clicked += new EventHandler (OnRenameConfiguration);
+				copyButton.Clicked += new EventHandler (OnCopyConfiguration);
+			}
+			
+			void OnAddConfiguration (object sender, EventArgs args)
+			{
+				AddConfiguration (null);
+			}
+
+			void OnCopyConfiguration (object sender, EventArgs args)
+			{
+				Gtk.TreeModel foo;
+				Gtk.TreeIter iter;
+				if (!configsList.Selection.GetSelected (out foo, out iter))
+					return;
+					
+				CombineConfiguration cc = (CombineConfiguration) store.GetValue (iter, 0);
+				AddConfiguration (cc.Name);
+			}
+
+			void AddConfiguration (string copyFrom)
+			{
+				AddConfigurationDialog dlg = new AddConfigurationDialog ();
+				try {
+					bool done = false;
+					do {
+						if (dlg.Run () == Gtk.ResponseType.Ok) {
+							if (dlg.Name.Length == 0) {
+								Runtime.MessageService.ShowWarning (GettextCatalog.GetString ("Please enter a valid configuration name."));
+							} else if (configData.Configurations [dlg.Name] != null) {
+								Runtime.MessageService.ShowWarning (string.Format (GettextCatalog.GetString ("A configuration with the name '{0}' already exists."), dlg.Name));
+							} else {
+								CombineConfiguration cc = (CombineConfiguration) configData.AddConfiguration (dlg.Name, copyFrom, dlg.CreateChildren);
+								store.AppendValues (cc, cc.Name);
+								done = true;
+							}
+						} else
+							done = true;
+					} while (!done);
+				} finally {
+					dlg.Destroy ();
+				}
+			}
+
+			void OnRemoveConfiguration (object sender, EventArgs args)
+			{
+				Gtk.TreeModel foo;
+				Gtk.TreeIter iter;
+				if (!configsList.Selection.GetSelected (out foo, out iter))
+					return;
+				
+				if (configData.Configurations.Count == 1) {
+					Runtime.MessageService.ShowWarning (GettextCatalog.GetString ("There must be at least one configuration."));
+					return;
+				}
+				
+				CombineConfiguration cc = (CombineConfiguration) store.GetValue (iter, 0);
+				DeleteConfigDialog dlg = new DeleteConfigDialog ();
+				
+				try {
+					if (dlg.Run () == Gtk.ResponseType.Yes) {
+						configData.RemoveConfiguration (cc.Name, dlg.DeleteChildren);
+						store.Remove (ref iter);
+					}
+				} finally {
+					dlg.Destroy ();
+				}
+			}
+			
+			void OnRenameConfiguration (object sender, EventArgs args)
+			{
+				Gtk.TreeModel foo;
+				Gtk.TreeIter iter;
+				if (!configsList.Selection.GetSelected (out foo, out iter))
+					return;
+					
+				CombineConfiguration cc = (CombineConfiguration) store.GetValue (iter, 0);
+				RenameConfigDialog dlg = new RenameConfigDialog ();
+				dlg.Name = cc.Name;
+				
+				try {
+					bool done = false;
+					do {
+						if (dlg.Run () == Gtk.ResponseType.Ok) {
+							if (dlg.Name.Length == 0) {
+								Runtime.MessageService.ShowWarning (GettextCatalog.GetString ("Please enter a valid configuration name."));
+							} else if (configData.Configurations [dlg.Name] != null) {
+								Runtime.MessageService.ShowWarning (string.Format (GettextCatalog.GetString ("A configuration with the name '{0}' already exists."), dlg.Name));
+							} else {
+								configData.RenameConfiguration (cc.Name, dlg.Name, dlg.RenameChildren);
+								store.SetValue (iter, 1, cc.Name);
+								done = true;
+							}
+						} else
+							done = true;
+					} while (!done);
+				} finally {
+					dlg.Destroy ();
+				}
+			}
+
+			public bool Store()
+			{
+				configData.Update ();
+				return true;
+			}
+		}
+
+		public override void LoadPanelContents()
+		{
+			Add (widget = new CombineEntryConfigurationsPanelWidget ((IProperties) CustomizationObject));
+		}
+
+		public override bool StorePanelContents()
+		{
+	        bool success = widget.Store ();
+			return success;			
+       	}
+	}
+	
+	class AddConfigurationDialog
+	{
+		Glade.XML glade;
+		[Glade.Widget] Dialog NewConfigurationDialog;
+		[Glade.Widget] CheckButton createChildrenCheck;
+		[Glade.Widget] Entry nameEntry;
+		
+		public AddConfigurationDialog ()
+		{
+			// we must do it from *here* otherwise, we get this assembly, not the caller
+			glade = new XML (Assembly.GetCallingAssembly (), "Base.glade", "NewConfigurationDialog", null);
+			glade.Autoconnect (this);
+		}
+		
+		public string Name {
+			get { return nameEntry.Text; }
+			set { nameEntry.Text = value; }
+		}
+		
+		public bool CreateChildren {
+			get { return createChildrenCheck.Active; }
+		}
+		
+		public Gtk.ResponseType Run ()
+		{
+			return (Gtk.ResponseType) NewConfigurationDialog.Run ();
+		}
+		
+		public void Destroy ()
+		{
+			NewConfigurationDialog.Destroy ();
+		}
+	}
+	
+	class RenameConfigDialog
+	{
+		Glade.XML glade;
+		[Glade.Widget] Dialog RenameConfigurationDialog;
+		[Glade.Widget] CheckButton renameChildrenCheck;
+		[Glade.Widget] Entry nameEntry;
+		
+		public RenameConfigDialog ()
+		{
+			// we must do it from *here* otherwise, we get this assembly, not the caller
+			glade = new XML (Assembly.GetCallingAssembly (), "Base.glade", "RenameConfigurationDialog", null);
+			glade.Autoconnect (this);
+		}
+		
+		public string Name {
+			get { return nameEntry.Text; }
+			set { nameEntry.Text = value; }
+		}
+		
+		public bool RenameChildren {
+			get { return renameChildrenCheck.Active; }
+		}
+		
+		public Gtk.ResponseType Run ()
+		{
+			return (Gtk.ResponseType) RenameConfigurationDialog.Run ();
+		}
+		
+		public void Destroy ()
+		{
+			RenameConfigurationDialog.Destroy ();
+		}
+	}
+	
+	class DeleteConfigDialog
+	{
+		Glade.XML glade;
+		[Glade.Widget] Dialog DeleteConfigurationDialog;
+		[Glade.Widget] CheckButton deleteChildrenCheck;
+		
+		public DeleteConfigDialog ()
+		{
+			// we must do it from *here* otherwise, we get this assembly, not the caller
+			glade = new XML (Assembly.GetCallingAssembly (), "Base.glade", "DeleteConfigurationDialog", null);
+			glade.Autoconnect (this);
+		}
+		
+		public bool DeleteChildren {
+			get { return deleteChildrenCheck.Active; }
+		}
+		
+		public Gtk.ResponseType Run ()
+		{
+			return (Gtk.ResponseType) DeleteConfigurationDialog.Run ();
+		}
+		
+		public void Destroy ()
+		{
+			DeleteConfigurationDialog.Destroy ();
+		}
+	}
+}
+

Added: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineOptionsDialog.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineOptionsDialog.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/CombineOptionsDialog.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -0,0 +1,222 @@
+//
+// CombineOptionsDialog.cs
+//
+// Author:
+//   Lluis Sanchez Gual
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.ComponentModel;
+
+using MonoDevelop.Core.AddIns;
+using MonoDevelop.Core.Services;
+using MonoDevelop.Core.Properties;
+using MonoDevelop.Core.AddIns.Codons;
+using MonoDevelop.Internal.Project;
+using MonoDevelop.Services;
+
+namespace MonoDevelop.Gui.Dialogs
+{
+	public class CombineOptionsDialog : TreeViewOptions
+	{
+		Combine combine;
+		
+		IAddInTreeNode configurationNode;
+		ConfigurationData configData;
+		Gtk.TreeIter configIter;
+	
+		public CombineOptionsDialog (Combine combine, IAddInTreeNode node, IAddInTreeNode configurationNode) : base(null, null)
+		{
+			this.combine = combine;
+			this.configurationNode = configurationNode;
+			this.Title = GettextCatalog.GetString ("Combine Options");
+			
+			configData = ConfigurationData.Build (combine);
+			configData.ConfigurationsChanged += new EventHandler (OnConfigChanged);
+			
+			properties = new DefaultProperties();
+			properties.SetProperty ("Combine", combine);
+			properties.SetProperty ("CombineConfigData", configData);
+			
+			AddNodes (properties, Gtk.TreeIter.Zero, node.BuildChildItems (this));			
+			
+			SelectFirstNode ();	
+		}
+		
+		void OnConfigChanged (object o, EventArgs a)
+		{
+			Gtk.TreeIter iter;
+			if (treeStore.IterChildren (out iter, configIter)) {
+				while (treeStore.Remove (ref iter));
+			}
+			FillConfigurations ();
+			Gtk.TreePath path = treeStore.GetPath (configIter);
+			TreeView.ExpandRow (path, false);
+		}
+		
+		void FillConfigurations ()
+		{
+			foreach (IConfiguration config in configData.Configurations) {
+				DefaultProperties configNodeProperties = new DefaultProperties();
+				configNodeProperties.SetProperty("Combine", combine);
+				configNodeProperties.SetProperty("Config", config);
+				
+				ArrayList list = configurationNode.BuildChildItems (this);
+				if (list.Count > 1) {
+					Gtk.TreeIter newNode = AddPath (config.Name, configIter);
+					AddNodes (configNodeProperties, newNode, list);
+				} else {
+					AddNode (config.Name, configNodeProperties, configIter, (IDialogPanelDescriptor) list [0]);
+				}
+			}
+		}
+		
+		protected override void AddChildNodes (object customizer, Gtk.TreeIter iter, IDialogPanelDescriptor descriptor)
+		{
+			if (descriptor.ID != "Configurations") {
+				base.AddChildNodes (customizer, iter, descriptor);
+			} else {
+				configIter = iter;
+				FillConfigurations ();
+			}
+		}
+		
+		protected override void OnSelectNode (Gtk.TreeIter iter, IDialogPanelDescriptor descriptor)
+		{
+			base.OnSelectNode (iter, descriptor);
+			if (descriptor != null && descriptor.ID == "Configurations") {
+				Gtk.TreePath path = treeStore.GetPath (iter);
+				TreeView.ExpandRow (path, false);
+			}
+		}
+	}
+	
+	class ConfigurationData
+	{
+		public ConfigurationCollection Configurations = new ConfigurationCollection ();
+		public ArrayList Children = new ArrayList ();
+		public CombineEntry Entry;
+		
+		public ConfigurationData (CombineEntry entry)
+		{
+			this.Entry = entry;
+		}
+		
+		public static ConfigurationData Build (CombineEntry entry)
+		{
+			ConfigurationData data = new ConfigurationData (entry);
+			foreach (IConfiguration conf in entry.Configurations) {
+				IConfiguration copy = entry.CreateConfiguration (conf.Name);
+				copy.CopyFrom (conf);
+				data.Configurations.Add (copy);
+			}
+			
+			if (entry is Combine) {
+				foreach (CombineEntry e in ((Combine)entry).Entries)
+					data.Children.Add (ConfigurationData.Build (e));
+			}
+			return data;
+		}
+		
+		public void Update ()
+		{
+			foreach (IConfiguration conf in Configurations) {
+				IConfiguration old = Entry.Configurations [conf.Name];
+				if (old != null) {
+					old.CopyFrom (conf);
+				} else {
+					Entry.Configurations.Add (conf);
+				}
+			}
+			ArrayList toRemove = new ArrayList ();
+			foreach (IConfiguration conf in Entry.Configurations) {
+				if (Configurations [conf.Name] == null)
+					toRemove.Add (conf);
+			}
+			
+			foreach (IConfiguration conf in toRemove)
+				Entry.Configurations.Remove (conf);
+				
+			foreach (ConfigurationData data in Children)
+				data.Update ();
+		}
+		
+		public IConfiguration AddConfiguration (string name, string sourceName, bool createChildConfigurations)
+		{
+			IConfiguration conf = Entry.CreateConfiguration (name);
+			if (sourceName != null) {
+				IConfiguration sc = Configurations [sourceName];
+				if (sc != null)
+					conf.CopyFrom (sc);
+			}
+			
+			if (Entry is Combine) {
+				CombineConfiguration cc = (CombineConfiguration) conf;
+				foreach (ConfigurationData data in Children) {
+					CombineConfigurationEntry ce = cc.AddEntry (data.Entry);
+					if (createChildConfigurations) {
+						ce.ConfigurationName = name;
+						if (data.Configurations [name] == null)
+							data.AddConfiguration (name, sourceName, createChildConfigurations);
+					} else {
+						if (data.Configurations.Count > 0)
+							ce.ConfigurationName = data.Configurations [0].Name;
+					}
+				}
+			}
+			
+			Configurations.Add (conf);
+			if (ConfigurationsChanged != null)
+				ConfigurationsChanged (this, null);
+			return conf;
+		}
+		
+		public void RemoveConfiguration (string name, bool removeChildConfigurations)
+		{
+			Configurations.Remove (name);
+			if (removeChildConfigurations) {
+				foreach (ConfigurationData data in Children)
+					data.RemoveConfiguration (name, true);
+			}
+			if (ConfigurationsChanged != null)
+				ConfigurationsChanged (this, null);
+		}
+		
+		public void RenameConfiguration (string oldName, string newName, bool renameChildConfigurations)
+		{
+			IConfiguration cc = Configurations [oldName];
+			if (cc != null)
+				cc.Name = newName;
+			if (renameChildConfigurations) {
+				foreach (ConfigurationData data in Children)
+					data.RenameConfiguration (oldName, newName, true);
+			}
+			if (ConfigurationsChanged != null)
+				ConfigurationsChanged (this, null);
+		}
+		
+		public event EventHandler ConfigurationsChanged;
+	}
+}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/TreeViewOptions.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/TreeViewOptions.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/TreeViewOptions.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -84,46 +84,70 @@
 			}
 		}		
 		
-		protected void AddNodes(object customizer, Gtk.TreeIter iter, ArrayList dialogPanelDescriptors)
+		protected void AddNodes (object customizer, Gtk.TreeIter iter, ArrayList dialogPanelDescriptors)
 		{
 			foreach (IDialogPanelDescriptor descriptor in dialogPanelDescriptors) {
-				if (descriptor.DialogPanel != null) { // may be null, if it is only a "path"
-					descriptor.DialogPanel.CustomizationObject = customizer;
-					((Gtk.Frame)descriptor.DialogPanel.Control).Shadow = Gtk.ShadowType.None;
-					OptionPanels.Add(descriptor.DialogPanel);
-					mainBook.AppendPage (descriptor.DialogPanel.Control, new Gtk.Label ("a"));
-				}
+				AddNode (descriptor.Label, customizer, iter, descriptor);
+			}
+		}
+		
+		protected virtual void AddNode (string label, object customizer, Gtk.TreeIter iter, IDialogPanelDescriptor descriptor)
+		{
+			if (descriptor.DialogPanel != null) { // may be null, if it is only a "path"
+				descriptor.DialogPanel.CustomizationObject = customizer;
+				((Gtk.Frame)descriptor.DialogPanel.Control).Shadow = Gtk.ShadowType.None;
+				OptionPanels.Add (descriptor.DialogPanel);
+				mainBook.AppendPage (descriptor.DialogPanel.Control, new Gtk.Label ("a"));
+			}
 			
-				Gtk.TreeIter i;
-				if (iter.Equals (Gtk.TreeIter.Zero)) {
-					i = treeStore.AppendValues (descriptor.Label, descriptor);
-				} else {
-					i = treeStore.AppendValues (iter, descriptor.Label, descriptor);
-				}
-				
-				if (descriptor.DialogPanelDescriptors != null) {
-					AddNodes (customizer, i, descriptor.DialogPanelDescriptors);
-				}
+			Gtk.TreeIter i;
+			if (iter.Equals (Gtk.TreeIter.Zero)) {
+				i = treeStore.AppendValues (label, descriptor);
+			} else {
+				i = treeStore.AppendValues (iter, label, descriptor);
 			}
+
+			AddChildNodes (customizer, i, descriptor);
 		}
 		
+		protected virtual Gtk.TreeIter AddPath (string label, Gtk.TreeIter iter)
+		{
+			if (iter.Equals (Gtk.TreeIter.Zero))
+				return treeStore.AppendValues (label, null);
+			else
+				return treeStore.AppendValues (iter, label, null);
+		}
+		
+		protected virtual void AddChildNodes (object customizer, Gtk.TreeIter iter, IDialogPanelDescriptor descriptor)
+		{
+			if (descriptor.DialogPanelDescriptors != null) {
+				AddNodes (customizer, iter, descriptor.DialogPanelDescriptors);
+			}
+		}
+		
 		protected virtual void SelectNode(object sender, EventArgs e)
 		{
 			Gtk.TreeModel mdl;
 			Gtk.TreeIter  iter;
 			if (TreeView.Selection.GetSelected (out mdl, out iter)) {
-				if (treeStore.IterHasChild (iter)) {
-					Gtk.TreeIter new_iter;
-					treeStore.IterChildren (out new_iter, iter);
-					Gtk.TreePath new_path = treeStore.GetPath (new_iter);
-					TreeView.ExpandToPath (new_path);
-					TreeView.Selection.SelectPath (new_path);
-				} else {
-					SetOptionPanelTo ((IDialogPanelDescriptor)treeStore.GetValue (iter, 1));
-				}
+				IDialogPanelDescriptor descriptor = treeStore.GetValue (iter, 1) as IDialogPanelDescriptor;
+				OnSelectNode (iter, descriptor);
 			}
 		}
 		
+		protected virtual void OnSelectNode (Gtk.TreeIter iter, IDialogPanelDescriptor descriptor)
+		{
+			if (treeStore.IterHasChild (iter) && (descriptor == null || descriptor.DialogPanel == null)) {
+				Gtk.TreeIter new_iter;
+				treeStore.IterChildren (out new_iter, iter);
+				Gtk.TreePath new_path = treeStore.GetPath (new_iter);
+				TreeView.ExpandToPath (new_path);
+				TreeView.Selection.SelectPath (new_path);
+			} else {
+				SetOptionPanelTo (descriptor);
+			}
+		}
+		
 		// selects a specific node in the treeview options
 		protected void SelectSpecificNode(Gtk.TreeIter iter)
 		{
@@ -132,9 +156,8 @@
 			TreeView.ExpandToPath (new_path);
 			TreeView.Selection.SelectPath (new_path);
 			IDialogPanelDescriptor descriptor = treeStore.GetValue (iter, 1) as IDialogPanelDescriptor;  
-			if (descriptor != null) {
+			if (descriptor != null)
 				SetOptionPanelTo (descriptor);
-			}
 		}
 		
 		public TreeViewOptions (IProperties properties, IAddInTreeNode node)

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/ITreeBuilderContext.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/ITreeBuilderContext.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/ITreeBuilderContext.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -38,8 +38,8 @@
 		ITreeNavigator GetTreeNavigator (object dataObject);
 		
 		Gdk.Pixbuf GetIcon (string iconId);
-		Gdk.Pixbuf GetComposedIcon (Gdk.Pixbuf baseIcon, string compositionId);
-		void CacheComposedIcon (Gdk.Pixbuf baseIcon, string compositionId, Gdk.Pixbuf composedIcon);
+		Gdk.Pixbuf GetComposedIcon (Gdk.Pixbuf baseIcon, object compositionKey);
+		void CacheComposedIcon (Gdk.Pixbuf baseIcon, object compositionKey, Gdk.Pixbuf composedIcon);
 		
 		TreeViewPad Tree { get; }
 	}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/TreeViewPad.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/TreeViewPad.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/SolutionPad/TreeViewPad.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -53,7 +53,7 @@
 	/// <summary>
 	/// This class implements a project browser.
 	/// </summary>
-	public class TreeViewPad : IPadContent, IMementoCapable, ICommandRouter
+	public class TreeViewPad : IPadContent, IMementoCapable, ICommandDelegatorRouter
 	{
 		string title;
 		string icon;
@@ -108,7 +108,7 @@
 			set { defaultPosition = value; }
 		}
 
-		public Gtk.Widget Control {
+		public virtual Gtk.Widget Control {
 			get {
 				return contentPanel;
 			}
@@ -212,7 +212,7 @@
 			
 			Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow ();
 			sw.Add(tree);
-			contentPanel = new TreeFrame (this);
+			contentPanel = new Gtk.Frame ();
 			contentPanel.Add(sw);
 			
 			tree.TestExpandRow += new Gtk.TestExpandRowHandler (OnTestExpandRow);
@@ -397,8 +397,13 @@
 			}
 		}
 		
-		object ICommandRouter.GetNextCommandTarget ()
+		object ICommandDelegatorRouter.GetNextCommandTarget ()
 		{
+			return null;
+		}
+		
+		object ICommandDelegatorRouter.GetDelegatedCommandTarget ()
+		{
 			TreeNodeNavigator node = (TreeNodeNavigator) GetSelectedNode ();
 			if (node != null) {
 				NodeBuilder[] chain = node.NodeBuilderChain;
@@ -412,16 +417,16 @@
 						if (n < chain.Length - 1)
 							handlers [n].SetNextTarget (handlers [n+1]);
 						else
-							handlers [n].SetNextTarget (contentPanel.Parent);
+							handlers [n].SetNextTarget (null);
 					}
 					return handlers [0];
 				}
 			}
-			return contentPanel.Parent;
+			return null;
 		}
 
 		[CommandHandler (ViewCommands.Open)]
-		public void ActivateCurrentItem ()
+		public virtual void ActivateCurrentItem ()
 		{
 			TreeNodeNavigator node = (TreeNodeNavigator) GetSelectedNode ();
 			if (node != null) {
@@ -1073,21 +1078,21 @@
 				return icon;
 			}
 			
-			public Gdk.Pixbuf GetComposedIcon (Gdk.Pixbuf baseIcon, string compositionId)
+			public Gdk.Pixbuf GetComposedIcon (Gdk.Pixbuf baseIcon, object compositionKey)
 			{
 				Hashtable itable = composedIcons [baseIcon] as Hashtable;
 				if (itable == null) return null;
-				return itable [compositionId] as Gdk.Pixbuf;
+				return itable [compositionKey] as Gdk.Pixbuf;
 			}
 			
-			public void CacheComposedIcon (Gdk.Pixbuf baseIcon, string compositionId, Gdk.Pixbuf composedIcon)
+			public void CacheComposedIcon (Gdk.Pixbuf baseIcon, object compositionKey, Gdk.Pixbuf composedIcon)
 			{
 				Hashtable itable = composedIcons [baseIcon] as Hashtable;
 				if (itable == null) {
 					itable = new Hashtable ();
 					composedIcons [baseIcon] = itable;
 				}
-				itable [compositionId] = composedIcon;
+				itable [compositionKey] = composedIcon;
 			}
 			
 			public ITreeNavigator GetTreeNavigator (object dataObject)
@@ -1148,8 +1153,9 @@
 							tree.ExpandRow (path, false);
 						}
 				
-						tree.Selection.SelectIter (currentIter);
-						tree.ScrollToCell (store.GetPath (currentIter), null, false, 0, 0);
+//						tree.Selection.SelectIter (currentIter);
+						tree.SetCursor (store.GetPath (currentIter), pad.complete_column, false);
+//						tree.ScrollToCell (store.GetPath (currentIter), null, false, 0, 0);
 					}
 				}
 			}
@@ -1415,7 +1421,10 @@
 			{
 				object data = store.GetValue (currentIter, TreeViewPad.DataItemColumn);
 				NodeBuilder[] chain = (NodeBuilder[]) store.GetValue (currentIter, TreeViewPad.BuilderChainColumn);
-				UpdateNode (chain, data);
+				
+				NodeAttributes ats = GetAttributes (chain, data);
+				UpdateNode (chain, ats, data);
+				
 			}
 			
 			public void ResetState ()
@@ -1487,13 +1496,8 @@
 				AddChild (dataObject, false);
 			}
 			
-			public void AddChild (object dataObject, bool moveToChild)
+			NodeAttributes GetAttributes (NodeBuilder[] chain, object dataObject)
 			{
-				if (dataObject == null) throw new ArgumentNullException ("dataObject");
-				
-				NodeBuilder[] chain = pad.GetBuilderChain (dataObject.GetType ());
-				if (chain == null) return;
-				
 				Gtk.TreeIter oldIter = currentIter;
 				NodeAttributes ats = NodeAttributes.None;
 				
@@ -1501,7 +1505,18 @@
 					nb.GetNodeAttributes (this, dataObject, ref ats);
 					currentIter = oldIter;
 				}
+				return ats;
+			}
+			
+			public void AddChild (object dataObject, bool moveToChild)
+			{
+				if (dataObject == null) throw new ArgumentNullException ("dataObject");
 				
+				NodeBuilder[] chain = pad.GetBuilderChain (dataObject.GetType ());
+				if (chain == null) return;
+				
+				Gtk.TreeIter oldIter = currentIter;
+				NodeAttributes ats = GetAttributes (chain, dataObject);
 				if ((ats & NodeAttributes.Hidden) != 0)
 					return;
 				
@@ -1515,7 +1530,7 @@
 				
 				pad.RegisterNode (it, dataObject, chain);
 				
-				BuildNode (it, chain, dataObject);
+				BuildNode (it, chain, ats, dataObject);
 				if (moveToChild)
 					currentIter = it;
 				else
@@ -1524,7 +1539,7 @@
 				pad.NotifyInserted (it, dataObject);
 			}
 			
-			void BuildNode (Gtk.TreeIter it, NodeBuilder[] chain, object dataObject)
+			void BuildNode (Gtk.TreeIter it, NodeBuilder[] chain, NodeAttributes ats, object dataObject)
 			{
 				Gtk.TreeIter oldIter = currentIter;
 				currentIter = it;
@@ -1535,7 +1550,7 @@
 				store.SetValue (it, TreeViewPad.DataItemColumn, dataObject);
 				store.SetValue (it, TreeViewPad.BuilderChainColumn, chain);
 				
-				UpdateNode (chain, dataObject);
+				UpdateNode (chain, ats, dataObject);
 				
 				bool hasChildren = HasChildNodes (chain, dataObject);
 				store.SetValue (currentIter, TreeViewPad.FilledColumn, !hasChildren);
@@ -1557,7 +1572,7 @@
 				return false;
 			}
 			
-			void UpdateNode (NodeBuilder[] chain, object dataObject)
+			void UpdateNode (NodeBuilder[] chain, NodeAttributes ats, object dataObject)
 			{
 				Gdk.Pixbuf icon = null;
 				Gdk.Pixbuf closedIcon = null;
@@ -1586,14 +1601,15 @@
 					closedIcon = gicon;
 				}
 				
-				SetNodeInfo (currentIter, text, icon, closedIcon);
+				SetNodeInfo (currentIter, ats, text, icon, closedIcon);
 			}
 			
-			void SetNodeInfo (Gtk.TreeIter it, string text, Gdk.Pixbuf icon, Gdk.Pixbuf closedIcon)
+			void SetNodeInfo (Gtk.TreeIter it, NodeAttributes ats, string text, Gdk.Pixbuf icon, Gdk.Pixbuf closedIcon)
 			{
 				store.SetValue (it, TreeViewPad.TextColumn, text);
 				if (icon != null) store.SetValue (it, TreeViewPad.OpenIconColumn, icon);
 				if (closedIcon != null) store.SetValue (it, TreeViewPad.ClosedIconColumn, closedIcon);
+				tree.QueueDraw ();
 			}
 
 			void CreateChildren (NodeBuilder[] chain, object dataObject)
@@ -1689,20 +1705,5 @@
 		}
 	}
 	
-	class TreeFrame: Gtk.Frame, ICommandRouter
-	{
-		object nextTarget;
-		
-		public TreeFrame (object nextTarget)
-		{
-			this.nextTarget = nextTarget;
-		}
-		
-		object ICommandRouter.GetNextCommandTarget ()
-		{
-			return nextTarget;
-		}
-	}
-	
 	public delegate void TreeNodeCallback (ITreeNavigator nav);
 }

Added: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/ToolWidgets/ConfigurationComboBox.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/ToolWidgets/ConfigurationComboBox.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/ToolWidgets/ConfigurationComboBox.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -0,0 +1,109 @@
+//
+// ConfigurationComboBox.cs
+//
+// Author:
+//   Lluis Sanchez Gual
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using MonoDevelop.Services;
+using MonoDevelop.Internal.Project;
+
+namespace MonoDevelop.Gui
+{
+	public class ConfigurationComboBox: Gtk.Alignment
+	{
+		Gtk.ComboBox combo;
+		ConfigurationEventHandler onActiveConfigurationChanged;
+		
+		public ConfigurationComboBox (): base (0.5f, 0.5f, 1.0f, 0f)
+		{
+			LeftPadding = 3;
+			RightPadding = 3;
+			combo = Gtk.ComboBox.NewText ();
+			combo.Changed += new EventHandler (OnChanged);
+			Add (combo);
+			ShowAll ();
+			onActiveConfigurationChanged = (ConfigurationEventHandler) Runtime.DispatchService.GuiDispatch (new ConfigurationEventHandler (OnActiveConfigurationChanged));
+			Runtime.ProjectService.CombineOpened += (CombineEventHandler) Runtime.DispatchService.GuiDispatch (new CombineEventHandler (OpenCombine));
+			Runtime.ProjectService.CombineClosed += (CombineEventHandler) Runtime.DispatchService.GuiDispatch (new CombineEventHandler (CloseCombine));
+			Reset ();
+		}
+		
+		void Reset ()
+		{
+			((Gtk.ListStore)combo.Model).Clear ();
+			combo.AppendText ("dummy");
+			combo.Active = -1;
+			combo.Sensitive = false;
+		}
+		
+		void OpenCombine (object sender, CombineEventArgs e)
+		{
+			((Gtk.ListStore)combo.Model).Clear ();
+			combo.Sensitive = true;
+			int active = 0;
+			for (int n=0; n < e.Combine.Configurations.Count; n++) {
+				IConfiguration c = e.Combine.Configurations [n];
+				combo.AppendText (c.Name);
+				if (e.Combine.ActiveConfiguration == c)
+					active = n;
+			}
+			combo.Active = active;
+			combo.ShowAll ();
+			
+			e.Combine.ActiveConfigurationChanged += onActiveConfigurationChanged;
+		}
+
+		void CloseCombine (object sender, CombineEventArgs e)
+		{
+			Reset ();
+			e.Combine.ActiveConfigurationChanged -= onActiveConfigurationChanged;
+		}
+		
+		void OnActiveConfigurationChanged (object sender, ConfigurationEventArgs e)
+		{
+			Combine combine = (Combine) e.CombineEntry;
+			for (int n=0; n < combine.Configurations.Count; n++) {
+				IConfiguration c = combine.Configurations [n];
+				if (combine.ActiveConfiguration == c) {
+					combo.Active = n;
+					break;
+				}
+			}
+		}
+		
+		protected void OnChanged (object sender, EventArgs args)
+		{
+			if (Runtime.ProjectService.CurrentOpenCombine != null) {
+				Gtk.TreeIter iter;
+				if (combo.GetActiveIter (out iter)) {
+					string cs = (string) combo.Model.GetValue (iter, 0);
+					IConfiguration conf = Runtime.ProjectService.CurrentOpenCombine.GetConfiguration (cs);
+					Runtime.ProjectService.CurrentOpenCombine.ActiveConfiguration = conf;
+				}
+			}
+		}
+	}
+}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -375,7 +375,11 @@
 			Gtk.Label label = item.TabLabel as Gtk.Label;
 			label.UseMarkup = true;
 
-			item.Add (content.Control);
+			if (content is Widget)
+				item.Add (content.Control);
+			else
+				item.Add (new CommandRouterContainer (content.Control, content, true));
+				
 			item.ShowAll ();
 			item.HideItem ();
 

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Makefile.am
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Makefile.am	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Makefile.am	2005-07-11 15:19:45 UTC (rev 2633)
@@ -70,6 +70,7 @@
 Gui/Pads/SolutionPad/TreeViewPad.cs \
 Gui/Pads/SolutionPad/TypeNodeBuilder.cs \
 Gui/Pads/DefaultMonitorPad.cs \
+Gui/ToolWidgets/ConfigurationComboBox.cs \
 Gui/AbstractPadContent.cs \
 Gui/ISecondaryViewContent.cs \
 Gui/IViewContent.cs \
@@ -112,6 +113,7 @@
 Gui/Dialogs/Wizard/IWizardPanel.cs \
 Gui/Dialogs/Wizard/AbstractWizardPanel.cs \
 Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs \
+Gui/Dialogs/CombineConfiguration/CombineEntryConfigurationsPanel.cs \
 Gui/Dialogs/CombineConfiguration/CombineDependencyPanel.cs \
 Gui/Dialogs/CombineConfiguration/CombineStartupPanel.cs \
 Gui/Dialogs/CombineConfiguration/CombineBuildOptions.cs \
@@ -129,6 +131,7 @@
 Gui/Dialogs/TipOfTheDay.cs \
 Gui/Dialogs/NewFileDialog.cs \
 Gui/Dialogs/ProjectOptionsDialog.cs \
+Gui/Dialogs/CombineOptionsDialog.cs \
 Gui/Dialogs/NewLayoutDialog.cs \
 Gui/Dialogs/ReplaceDialog.cs \
 Gui/Dialogs/ReplaceInFilesDialog.cs \
@@ -447,7 +450,10 @@
 Internal/Project/Combine/CyclicBuildOrderException.cs \
 Internal/Project/Combine/CombineConfiguration.cs \
 Internal/Project/Combine/NoStartupCombineDefinedException.cs \
+Internal/Project/Combine/ConfigurationCollection.cs \
+Internal/Project/Combine/ConfigurationEventHandler.cs \
 Internal/Project/Combine/CombineEntry.cs \
+Internal/Project/Combine/CombineEntryCollection.cs \
 Internal/Project/Combine/CombineEntryEventArgs.cs \
 Internal/Project/Combine/CombineEntryRenamedEventArgs.cs \
 Internal/Templates/FileDescriptionTemplate.cs \

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/MonoDevelopCore.addin.xml
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/MonoDevelopCore.addin.xml	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/MonoDevelopCore.addin.xml	2005-07-11 15:19:45 UTC (rev 2633)
@@ -264,12 +264,12 @@
 				shortcut = "Shift|F5"
 				description = "Stop current build or application execution"
 				_label = "Stop" />
-<!--		<Command id = "MonoDevelop.Commands.ProjectCommands.ConfigurationSelector"
+		<Command id = "MonoDevelop.Commands.ProjectCommands.ConfigurationSelector"
 				type = "custom"
 				widget = "MonoDevelop.Gui.ConfigurationComboBox"
-				_label = "Configuration Box" />
--->
+				_label = "Active Configuration" />
 
+
 		<!-- FileCommands -->
 		
 		<Command id = "MonoDevelop.Commands.FileCommands.OpenFile"
@@ -640,17 +640,15 @@
 		</DialogPanel>
 	</Extension>
 	
-	<!-- TODO : complete the combine options dialog -->
-
-	<Extension path = "/SharpDevelop/Workbench/CombineOptions">
+	<Extension path = "/SharpDevelop/Workbench/CombineOptions/GeneralOptions">
 		<DialogPanel id    = "Common"
 		             _label = "Common">
 			<DialogPanel id = "Startup"
 			             _label = "Startup Properties"
 			             class = "MonoDevelop.Gui.Dialogs.OptionPanels.CombineStartupPanel"/>
-                       <DialogPanel id = "Build"
-                                     _label = "Build Properties"
-                                     class = "MonoDevelop.Gui.Dialogs.OptionPanels.CombineBuildOptions"/>
+			<DialogPanel id = "Build"
+						_label = "Build Properties"
+						class = "MonoDevelop.Gui.Dialogs.OptionPanels.CombineBuildOptions"/>
 
 <!-- 		<DialogPanel id = "Dependency"
 			             _label = "${res:Dialog.Options.CombineOptions.Dependencies.PanelName}"
@@ -658,16 +656,17 @@
 
 		</DialogPanel>
 
-		<!-- ORIGINAL #D COMMENT
-		<DialogPanel id    = "Configuration"
-		             _label = "${res:Dialog.Options.CombineOptions.ConfigurationOptions}">
-			<DialogPanel id = "Configuration"
-			             _label = "${res:Dialog.Options.CombineOptions.Configurations.PanelName}"
-			             class = "MonoDevelop.Gui.Dialogs.OptionPanels.CombineConfigurationPanel"/>
-		</DialogPanel> -->
-
+		<DialogPanel id = "Configurations"
+			             _label = "Configurations"
+			             class = "MonoDevelop.Gui.Dialogs.OptionPanels.CombineEntryConfigurationsPanel"/>
 	</Extension>
 	
+	<Extension path = "/SharpDevelop/Workbench/CombineOptions/ConfigurationProperties">
+		<DialogPanel id = "EntryConfigurations"
+			             _label = "Configurations"
+			             class = "MonoDevelop.Gui.Dialogs.OptionPanels.CombineConfigurationPanel"/>
+	</Extension>
+
 <!-- not using these, since the OpenFileTab has been removed (replaced with Tab_Label) jba 5 march 2004
 	<Extension path = "/SharpDevelop/Workbench/OpenFileTab/ContextMenu">
                 <MenuItem id = "Close"
@@ -827,9 +826,9 @@
 			<CommandItem id = "MonoDevelop.Commands.EditCommands.Copy" />
 			<CommandItem id = "MonoDevelop.Commands.EditCommands.Paste" />
 			<CommandItem id = "MonoDevelop.Commands.EditCommands.Delete" />
-<!--			<CommandItem id = "MonoDevelop.Commands.ProjectCommands.ConfigurationSelector" />-->
 		</ItemSet>
 		<ItemSet id = "Build" _label = "Build">
+			<CommandItem id = "MonoDevelop.Commands.ProjectCommands.ConfigurationSelector" />
 			<CommandItem id = "MonoDevelop.Commands.ProjectCommands.Build" />
 			<CommandItem id = "MonoDevelop.Commands.ProjectCommands.BuildSolution" />
 			<CommandItem id = "MonoDevelop.Commands.ProjectCommands.Run" />

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -31,6 +31,8 @@
 			public IProgressMonitor ProgressMonitor;
 			public string FileName;
 			public bool BringToFront;
+			public int Line;
+			public int Column;
 		}
 		
 		public RecentOpen RecentOpen {
@@ -54,17 +56,17 @@
 		{
 			IDisplayBinding binding;
 			Project project;
-			bool select;
+			FileInformation fileInfo;
 			
-			public LoadFileWrapper(IDisplayBinding binding, bool select)
+			public LoadFileWrapper(IDisplayBinding binding, FileInformation fileInfo)
 			{
-				this.select = select;
+				this.fileInfo = fileInfo;
 				this.binding = binding;
 			}
 			
-			public LoadFileWrapper(IDisplayBinding binding, Project project, bool select)
+			public LoadFileWrapper(IDisplayBinding binding, Project project, FileInformation fileInfo)
 			{
-				this.select = select;
+				this.fileInfo = fileInfo;
 				this.binding = binding;
 				this.project = project;
 			}
@@ -77,8 +79,12 @@
 					newContent.HasProject = true;
 					newContent.Project = project;
 				}
-				WorkbenchSingleton.Workbench.ShowView (newContent, select);
+				WorkbenchSingleton.Workbench.ShowView (newContent, fileInfo.BringToFront);
 				Runtime.Gui.DisplayBindings.AttachSubWindows(newContent.WorkbenchWindow);
+				
+				if (fileInfo.Line != -1 && newContent is IPositionable) {
+					((IPositionable)newContent).JumpTo (fileInfo.Line, fileInfo.Column != -1 ? fileInfo.Column : 0);
+				}
 			}
 		}
 		
@@ -89,6 +95,11 @@
 		
 		public IAsyncOperation OpenFile (string fileName, bool bringToFront)
 		{
+			return OpenFile (fileName, -1, -1, bringToFront);
+		}
+		
+		public IAsyncOperation OpenFile (string fileName, int line, int column, bool bringToFront)
+		{
 			foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
 				if (content.ContentName == fileName) {
 					if (bringToFront)
@@ -102,6 +113,8 @@
 			openFileInfo.ProgressMonitor = pm;
 			openFileInfo.FileName = fileName;
 			openFileInfo.BringToFront = bringToFront;
+			openFileInfo.Line = line;
+			openFileInfo.Column = column;
 			Runtime.DispatchService.GuiDispatch (new StatefulMessageHandler (realOpenFile), openFileInfo);
 			return pm.AsyncOperation;
 		}
@@ -153,8 +166,12 @@
 				
 				foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
 					if (content.ContentName == fileName) {
-						if (oFileInfo.BringToFront)
+						if (oFileInfo.BringToFront) {
 							content.WorkbenchWindow.SelectWindow();
+							if (oFileInfo.Line != -1 && content is IPositionable) {
+								((IPositionable)content).JumpTo (oFileInfo.Line, oFileInfo.Column != -1 ? oFileInfo.Column : 0);
+							}
+						}
 						return;
 					}
 				}
@@ -168,13 +185,13 @@
 					
 					if (combine != null && project != null)
 					{
-						if (Runtime.FileUtilityService.ObservedLoad(new NamedFileOperationDelegate(new LoadFileWrapper(binding, project, oFileInfo.BringToFront).Invoke), fileName) == FileOperationResult.OK) {
+						if (Runtime.FileUtilityService.ObservedLoad(new NamedFileOperationDelegate(new LoadFileWrapper(binding, project, oFileInfo).Invoke), fileName) == FileOperationResult.OK) {
 							Runtime.FileService.RecentOpen.AddLastFile (fileName, project.Name);
 						}
 					}
 					else
 					{
-						if (Runtime.FileUtilityService.ObservedLoad(new NamedFileOperationDelegate(new LoadFileWrapper(binding, null, oFileInfo.BringToFront).Invoke), fileName) == FileOperationResult.OK) {
+						if (Runtime.FileUtilityService.ObservedLoad(new NamedFileOperationDelegate(new LoadFileWrapper(binding, null, oFileInfo).Invoke), fileName) == FileOperationResult.OK) {
 							Runtime.FileService.RecentOpen.AddLastFile (fileName, null);
 						}
 					}
@@ -188,7 +205,7 @@
 							Gnome.Url.Show ("file://" + fileName);
 						//}
 					} catch {
-						if (Runtime.FileUtilityService.ObservedLoad(new NamedFileOperationDelegate (new LoadFileWrapper (Runtime.Gui.DisplayBindings.LastBinding, null, oFileInfo.BringToFront).Invoke), fileName) == FileOperationResult.OK) {
+						if (Runtime.FileUtilityService.ObservedLoad(new NamedFileOperationDelegate (new LoadFileWrapper (Runtime.Gui.DisplayBindings.LastBinding, null, oFileInfo).Invoke), fileName) == FileOperationResult.OK) {
 							Runtime.FileService.RecentOpen.AddLastFile (fileName, null);
 						}
 					}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/IFileService.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/IFileService.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/IFileService.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -35,6 +35,7 @@
 		/// </remarks>
 		IAsyncOperation OpenFile (string fileName);
 		IAsyncOperation OpenFile (string fileName, bool bringToFront);
+		IAsyncOperation OpenFile (string fileName, int line, int column, bool bringToFront);
 		
 		/// <remarks>
 		/// Opens a new file with a given name, language and file content

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/ProcessService/ProcessService.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/ProcessService/ProcessService.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/ProcessService/ProcessService.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -129,7 +129,7 @@
 		
 		public RemoteProcessObject CreateExternalProcessObject (Type type, bool shared)
 		{
-			return GetHost (shared).CreateInstance (type);
+			return GetHost (shared).CreateInstance (type.Assembly.Location, type.FullName);
 		}
 		
 		public RemoteProcessObject CreateExternalProcessObject (string assemblyPath, string typeName, bool shared)

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/Project/ProjectService.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/Project/ProjectService.cs	2005-07-11 15:03:17 UTC (rev 2632)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/Project/ProjectService.cs	2005-07-11 15:19:45 UTC (rev 2633)
@@ -695,16 +695,11 @@
 			} else if (entry is Combine) {
 				Combine combine = (Combine) entry;
 				
-				DefaultProperties defaultProperties = new DefaultProperties();
-				defaultProperties.SetProperty ("Combine", combine);
-				TreeViewOptions optionsDialog = new TreeViewOptions (defaultProperties,
-																		   AddInTreeSingleton.AddInTree.GetTreeNode("/SharpDevelop/Workbench/CombineOptions"));
-			//		optionsDialog.SetDefaultSize = new Size(700, 450);
-			//		optionsDialog.FormBorderStyle = FormBorderStyle.FixedDialog;
-			//				
-			//		optionsDialog.TransientFor = (Gtk.Window)WorkbenchSingleton.Workbench;
-					optionsDialog.Run ();
-			//		optionsDialog.Hide ();
+				IAddInTreeNode generalOptionsNode          = AddInTreeSingleton.AddInTree.GetTreeNode("/SharpDevelop/Workbench/CombineOptions/GeneralOptions");
+				IAddInTreeNode configurationPropertiesNode = AddInTreeSingleton.AddInTree.GetTreeNode("/SharpDevelop/Workbench/CombineOptions/ConfigurationProperties");
+				
+				CombineOptionsDialog optionsDialog = new CombineOptionsDialog (combine, generalOptionsNode, configurationPropertiesNode);
+				optionsDialog.Run ();
 			}
 			
 			SaveCombine ();
@@ -914,6 +909,10 @@
 							break;
 						}
 					}
+					name = properties.GetProperty("ActiveConfiguration", "");
+					IConfiguration conf = combine.GetConfiguration (name);
+					if (conf != null)
+						combine.ActiveConfiguration = conf;
 				}
 			} 
 		}
@@ -964,6 +963,7 @@
 			IProperties properties = new DefaultProperties();
 			string name = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null ? String.Empty : WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.ContentName;
 			properties.SetProperty("ActiveWindow", name == null ? String.Empty : name);
+			properties.SetProperty("ActiveConfiguration", combine.ActiveConfiguration == null ? String.Empty : combine.ActiveConfiguration.Name);
 			
 			XmlElement propertynode = doc.CreateElement("Properties");
 			doc.DocumentElement.AppendChild(propertynode);




More information about the Monodevelop-patches-list mailing list