Browse Source

Refactoring

pull/30/head
PeterForstmeier 13 years ago
parent
commit
31720c1678
  1. 136
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/LinkerOptionsXaml.xaml.cs
  2. 89
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/PreprocessorOptions.xaml.cs

136
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/LinkerOptionsXaml.xaml.cs

@ -36,20 +36,22 @@ namespace ICSharpCode.CppBinding.Project @@ -36,20 +36,22 @@ namespace ICSharpCode.CppBinding.Project
InitializeComponent();
}
void Initialize()
private void Initialize()
{
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
project.ActiveConfiguration, project.ActivePlatform);
var msDefGroup = new MSBuildItemDefinitionGroup(project, project.ActiveConfiguration, project.ActivePlatform);
this.additionalLibsTextBox.Text = group.GetElementMetadata(metaElement,"AdditionalDependencies");
this.additionalLibsTextBox.Text = GetElementMetaData(msDefGroup,"AdditionalDependencies");
this.addModuleTextBox.Text = group.GetElementMetadata(metaElement,"AddModuleNamesToAssembly");
this.addModuleTextBox.Text = GetElementMetaData(msDefGroup,"AddModuleNamesToAssembly");
this.resourceFileTextBox.Text = group.GetElementMetadata(metaElement,"EmbedManagedResourceFile");
this.resourceFileTextBox.Text = GetElementMetaData(msDefGroup,"EmbedManagedResourceFile");
this.additionalOptionsTextBox.Text = group.GetElementMetadata(metaElement,"AdditionalOptions");
this.additionalOptionsTextBox.Text = GetElementMetaData(msDefGroup,"AdditionalOptions");
var def = GetElementMetaData(msDefGroup,"GenerateDebugInformation");
var def = group.GetElementMetadata(metaElement,"GenerateDebugInformation");
bool check;
if (bool.TryParse(def, out check))
{
@ -59,7 +61,7 @@ namespace ICSharpCode.CppBinding.Project @@ -59,7 +61,7 @@ namespace ICSharpCode.CppBinding.Project
IsDirty = false;
}
#region Properties
public ProjectProperty<string> LibraryPath {
@ -67,7 +69,7 @@ namespace ICSharpCode.CppBinding.Project @@ -67,7 +69,7 @@ namespace ICSharpCode.CppBinding.Project
}
bool checkBoxChecked;
private bool checkBoxChecked;
public bool CheckBoxChecked {
get {return checkBoxChecked;}
@ -83,6 +85,7 @@ namespace ICSharpCode.CppBinding.Project @@ -83,6 +85,7 @@ namespace ICSharpCode.CppBinding.Project
#endregion
#region Save/Load
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
@ -101,101 +104,94 @@ namespace ICSharpCode.CppBinding.Project @@ -101,101 +104,94 @@ namespace ICSharpCode.CppBinding.Project
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
project.ActiveConfiguration, project.ActivePlatform);
group.SetElementMetadata(metaElement,"AdditionalDependencies",this.additionalLibsTextBox.Text);
group.SetElementMetadata(metaElement,"AddModuleNamesToAssembly",this.addModuleTextBox.Text);
group.SetElementMetadata(metaElement,"EmbedManagedResourceFile",this.resourceFileTextBox.Text);
group.SetElementMetadata(metaElement,"AdditionalOptions",this.additionalOptionsTextBox.Text);
SetElementMetaData(group,"AdditionalDependencies",this.additionalLibsTextBox.Text);
SetElementMetaData(group,"AddModuleNamesToAssembly",this.addModuleTextBox.Text);
SetElementMetaData(group,"EmbedManagedResourceFile",this.resourceFileTextBox.Text);
SetElementMetaData(group,"AdditionalOptions",this.additionalOptionsTextBox.Text);
string check = "false";
if ((bool)this.debugInfoCheckBox.IsChecked) {
check = "true";
}
group.SetElementMetadata(metaElement,"GenerateDebugInformation",check);
SetElementMetaData(group,"GenerateDebugInformation",check);
return base.Save(project, configuration, platform);
}
#endregion
#region MSBuildItemDefinitionGroup Set-Get
private static string GetElementMetaData (MSBuildItemDefinitionGroup group,string name)
{
return group.GetElementMetadata(metaElement,name);
}
private static void SetElementMetaData (MSBuildItemDefinitionGroup group,string name,string value)
{
group.SetElementMetadata(metaElement,name,value);
}
#endregion
void LibraryPathButton_Click(object sender, RoutedEventArgs e)
private void LibraryPathButton_Click(object sender, RoutedEventArgs e)
{
var dlg = InitStringListEditor(StringParser.Parse("${res:Global.Folder}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.Library}:"),true);
string[] strings = this.libraryPathTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.libraryPathTextBox.Text = String.Join(";", dlg.GetList());
}
PopulateStringListEditor(StringParser.Parse("${res:Global.Folder}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.Library}:"),
this.libraryPathTextBox,
true);
}
void AdditionalLibsButton_Click(object sender, RoutedEventArgs e)
private void AdditionalLibsButton_Click(object sender, RoutedEventArgs e)
{
var dlg = InitStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.AdditionalLibs}:"),false);
string[] strings = this.additionalLibsTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.additionalLibsTextBox.Text = String.Join(";",dlg.GetList());
}
PopulateStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.AdditionalLibs}:"),
this.additionalLibsTextBox,
false);
}
void AddModuleButton_Click(object sender, RoutedEventArgs e)
private void AddModuleButton_Click(object sender, RoutedEventArgs e)
{
var dlg = InitStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.AddModule}"),false);
string[] strings = this.addModuleTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.addModuleTextBox.Text = String.Join(";",dlg.GetList());
}
PopulateStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.AddModule}"),
this.addModuleTextBox,
false);
}
void ResourceFileButton_Click(object sender, RoutedEventArgs e)
private void ResourceFileButton_Click(object sender, RoutedEventArgs e)
{
var dlg = InitStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.ManagedResourceFile}"),false);
string[] strings = this.resourceFileTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.resourceFileTextBox.Text = String.Join(";",dlg.GetList());
}
PopulateStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Linker.ManagedResourceFile}"),
this.resourceFileTextBox,
false);
}
static StringListEditorDialogXaml InitStringListEditor(string title, string listCaption,bool browseForDirectoty)
public static void PopulateStringListEditor(string title, string listCaption,TextBox textBox,bool browseForDirectoty)
{
StringListEditorDialogXaml dlg = new StringListEditorDialogXaml();
dlg.TitleText = title;
dlg.ListCaption = listCaption;
dlg.BrowseForDirectory = browseForDirectoty;
return dlg;
var stringListDialog = new StringListEditorDialogXaml();
stringListDialog.TitleText = title;
stringListDialog.ListCaption = listCaption;
stringListDialog.BrowseForDirectory = browseForDirectoty;
string[] strings = textBox.Text.Split(';');
stringListDialog.LoadList (strings);
stringListDialog.ShowDialog();
if (stringListDialog.DialogResult.HasValue && stringListDialog.DialogResult.Value)
{
textBox.Text = String.Join(";",stringListDialog.GetList());
}
}
void TextBox_TextChanged(object sender, TextChangedEventArgs e)
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
IsDirty = true;
}
}
}

89
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/PreprocessorOptions.xaml.cs

@ -22,8 +22,8 @@ namespace ICSharpCode.CppBinding.Project @@ -22,8 +22,8 @@ namespace ICSharpCode.CppBinding.Project
public partial class PreprocessorOptions : ProjectOptionPanel,INotifyPropertyChanged
{
private const string metaElement ="ClCompile";
private MSBuildBasedProject project;
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
public PreprocessorOptions()
{
@ -36,11 +36,11 @@ namespace ICSharpCode.CppBinding.Project @@ -36,11 +36,11 @@ namespace ICSharpCode.CppBinding.Project
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
project.ActiveConfiguration, project.ActivePlatform);
this.defineTextBox.Text = group.GetElementMetadata(metaElement,"PreprocessorDefinitions");
this.defineTextBox.Text = GetElementMetaData(group,"PreprocessorDefinitions");
this.undefineTextBox.Text = group.GetElementMetadata(metaElement,"UndefinePreprocessorDefinitions" );
this.undefineTextBox.Text = GetElementMetaData(group,"UndefinePreprocessorDefinitions" );
var defs = group.GetElementMetadata(metaElement,"UndefineAllPreprocessorDefinitions");
var defs = GetElementMetaData(group,"UndefineAllPreprocessorDefinitions");
bool check;
if (bool.TryParse(defs, out check))
@ -93,77 +93,66 @@ namespace ICSharpCode.CppBinding.Project @@ -93,77 +93,66 @@ namespace ICSharpCode.CppBinding.Project
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
project.ActiveConfiguration, project.ActivePlatform);
group.SetElementMetadata(metaElement,"PreprocessorDefinitions",this.defineTextBox.Text);
SetElementMetaData(group,"PreprocessorDefinitions",this.defineTextBox.Text);
group.SetElementMetadata(metaElement,"UndefinePreprocessorDefinitions",this.undefineTextBox.Text);
SetElementMetaData(group,"UndefinePreprocessorDefinitions",this.undefineTextBox.Text);
string check = "false";
if ((bool)this.undefineAllCheckBox.IsChecked) {
check = "true";
}
group.SetElementMetadata(metaElement,"UndefineAllPreprocessorDefinitions",check);
SetElementMetaData(group,"UndefineAllPreprocessorDefinitions",check);
return base.Save(project, configuration, platform);
}
#endregion
#region MSBuildItemDefinitionGroup Set-Get
void IncludePathButton_Click(object sender, RoutedEventArgs e)
private static string GetElementMetaData (MSBuildItemDefinitionGroup group,string name)
{
StringListEditorDialogXaml dlg = new StringListEditorDialogXaml();
dlg.TitleText = StringParser.Parse("${res:Global.Folder}:");
dlg.ListCaption = StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Preprocessor.Includes}:");
dlg.BrowseForDirectory = true;
string[] strings = this.includePathTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.includePathTextBox.Text = String.Join(";", dlg.GetList());
}
return group.GetElementMetadata(metaElement,name);
}
void DefinePathButton_Click(object sender, RoutedEventArgs e)
private static void SetElementMetaData (MSBuildItemDefinitionGroup group,string name,string value)
{
StringListEditorDialogXaml dlg = new StringListEditorDialogXaml();
dlg.TitleText = StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:");
dlg.ListCaption = StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Preprocessor.Definitions}:");
string[] strings = this.defineTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.defineTextBox.Text = String.Join(";",dlg.GetList());
}
group.SetElementMetadata(metaElement,name,value);
}
#endregion
private void IncludePathButton_Click(object sender, RoutedEventArgs e)
{
LinkerOptionsXaml.PopulateStringListEditor(StringParser.Parse("${res:Global.Folder}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Preprocessor.Includes}:"),
this.includePathTextBox,
true);
}
void UndefineButton_Click(object sender, RoutedEventArgs e)
private void DefinePathButton_Click(object sender, RoutedEventArgs e)
{
StringListEditorDialogXaml dlg = new StringListEditorDialogXaml();
dlg.TitleText = StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:");
dlg.ListCaption = StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:");
string[] strings = this.undefineTextBox.Text.Split(';');
dlg.LoadList (strings);
dlg.BrowseForDirectory = false;
dlg.ShowDialog();
if (dlg.DialogResult.HasValue && dlg.DialogResult.Value)
{
this.undefineTextBox.Text = String.Join(";",dlg.GetList());
}
LinkerOptionsXaml.PopulateStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.Preprocessor.Definitions}:"),
this.defineTextBox,
false);
}
void TextBox_TextChanged(object sender, TextChangedEventArgs e)
private void UndefineButton_Click(object sender, RoutedEventArgs e)
{
IsDirty = true;
LinkerOptionsXaml.PopulateStringListEditor(StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
StringParser.Parse("${res:ICSharpCode.CppBinding.ProjectOptions.SymbolLabel}:"),
this.undefineTextBox,
false);
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
IsDirty = true;
}
}
}
Loading…
Cancel
Save