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

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

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