|
|
<?xml version="1.0" encoding="utf-8" ?>
<ProjectTypes>
<!--
<ProjectType name='Console'>
<Configuration name='Debug'>
<setting name='OutputDirectory' value='\projects\$(ConfigurationName)\$(ProjectName)' />
<setting name='IntermediateDirectory' value='\projects\$(ConfigurationName)\$(ProjectName)' />
<setting name='Optimization' value='0' />
<setting name='GlobalOptimizations' value='false' />
<setting name='InlineFunctionExpansion' value='0' />
<setting name='FavorSizeOrSpeed' value='1' />
<setting name='OmitFramePointers' value='true' />
<setting name='StringPooling' value='true' />
<setting name='RuntimeLibrary' value='3' />
<setting name='BufferSecurityCheck' value='false' />
<setting name='EnableFunctionLevelLinking' value='true' />
<setting name='DebugInformationFormat' value='3' />
<setting name='UsePrecompiledHeader' value='0' />
<setting name='MinimalRebuild' value='false' />
<setting name='BasicRuntimeChecks' value='3' />
<setting name='WarningLevel' value='3' />
<setting name='Detect64BitPortabilityProblems' value='true' />
<setting name='LinkIncremental' value='1' />
<setting name='OutputFile' value='' />
<setting name='GenerateDebugInformation' value='true' />
<setting name='ProgramDatabaseFile' value='' />
<setting name='SubSystem' value='1' />
<setting name='OptimizeReferences' value='2' />
<setting name='EnableCOMDATFolding' value='2' />
<setting name='TargetMachine' value='1' />
</Configuration>
<Configuration name='Release'>
<setting name='OutputDirectory' value='\projects\$(ConfigurationName)\$(ProjectName)' />
<setting name='IntermediateDirectory' value='\projects\$(ConfigurationName)\$(ProjectName)' />
<setting name='Optimization' value='2' />
<setting name='GlobalOptimizations' value='true' />
<setting name='InlineFunctionExpansion' value='2' />
<setting name='FavorSizeOrSpeed' value='1' />
<setting name='OmitFramePointers' value='true' />
<setting name='StringPooling' value='true' />
<setting name='RuntimeLibrary' value='0' />
<setting name='BufferSecurityCheck' value='false' />
<setting name='EnableFunctionLevelLinking' value='true' />
<setting name='DebugInformationFormat' value='3' />
<setting name='UsePrecompiledHeader' value='0' />
<setting name='MinimalRebuild' value='false' />
<setting name='BasicRuntimeChecks' value='3' />
<setting name='WarningLevel' value='3' />
<setting name='Detect64BitPortabilityProblems' value='true' />
<setting name='LinkIncremental' value='1' />
<setting name='OutputFile' value='' />
<setting name='GenerateDebugInformation' value='false' />
<setting name='ProgramDatabaseFile' value='' />
<setting name='SubSystem' value='1' />
<setting name='OptimizeReferences' value='2' />
<setting name='EnableCOMDATFolding' value='2' />
<setting name='TargetMachine' value='1' />
</Configuration>
</ProjectType>
-->
</ProjectTypes>
|
|
|
using System;
using System.Xml;
namespace ConfigureVC
{
/// <summary>
/// Summary description for ConfigFile.
/// </summary>
public class ConfigFile
{
private XmlDocument mDoc = new XmlDocument();
public ConfigFile()
{
string path = PersistedValues.ConfigFileDirectory + @"\" + PersistedValues.ConfigFilename;
try
{
mDoc.Load(path);
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show("Can't open file '" + path + "':\n " + ex.Message);
}
}
public ProjectTypeEnumerator GetProjectTypeEnumerator()
{
return new ProjectTypeEnumerator(mDoc);
}
public SettingsEnumerator GetSettingsEnumerator(string projecttype)
{
return new SettingsEnumerator(mDoc, projecttype);
}
}
}
|
|
|
using System;
using System.Windows.Forms;
namespace ConfigureVC
{
/// <summary>
/// Summary description for ConfigFileGUI.
/// </summary>
public class ConfigFileGUI
{
public static void GetProjectTypes(ListBox.ObjectCollection list)
{
ConfigFile cf = new ConfigFile();
ProjectTypeEnumerator ptypes = cf.GetProjectTypeEnumerator();
for(ptypes.Reset(); ptypes.MoveNext(); )
list.Add(ptypes.Current);
}
public static void ChooseFile()
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.CheckFileExists = true;
dlg.CheckPathExists = true;
dlg.InitialDirectory = PersistedValues.ConfigFileDirectory;
dlg.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.*";
if (dlg.ShowDialog() != DialogResult.OK) return;
PersistedValues.ConfigFileDirectory = dlg.FileName.Substring(0, dlg.FileName.LastIndexOf("\\"));
PersistedValues.ConfigFilename = dlg.FileName.Substring(dlg.FileName.LastIndexOf("\\") + 1);
}
}
}
|
|
|
using System;
using System.Threading;
namespace ConfigureVC
{
/// <summary>
/// Summary description for ConfigureVC7.
/// </summary>
public class ConfigureVC7
{
private string mFile;
public string File
{
set { mFile = value; }
}
public void Configure(string projecttype)
{
SettingsFile f = new SettingsFile(mFile);
f.Load();
Configure(f, projecttype);
f.Save();
}
private void Configure(SettingsFile f, string projecttype)
{
ConfigFile cfg = new ConfigFile();
SettingsEnumerator settings = cfg.GetSettingsEnumerator(projecttype);
for(settings.Reset(); settings.MoveNext(); )
{
SettingsEnumerator.Setting s = settings.Current;
f.SetValue(s.Name, s.Value);
}
}
}
}
|
|
|
using System;
using System.Windows.Forms;
namespace ConfigureVC
{
/// <summary>
/// Summary description for Converter.
/// </summary>
class Converter
{
public static void Convert(Status status, string file, string projecttype)
{
Cursor.Current = Cursors.WaitCursor;
ConvertFile(file, projecttype);
status.FileConverted(file);
Cursor.Current = Cursors.Default;
}
public static void Convert(Status status, ListBox.ObjectCollection files, string projecttype)
{
Cursor.Current = Cursors.WaitCursor;
int totalcount = files.Count;
int count = 0;
foreach (string file in files)
{
ConvertFile(file, projecttype);
count++;
status.FileConverted(count, totalcount, file);
}
Cursor.Current = Cursors.Default;
}
private static void ConvertFile(string file, string projecttype)
{
ConfigureVC7 cfg = new ConfigureVC7();
cfg.File = file;
cfg.Configure(projecttype);
}
}
}
|
|
|
using System;
using System.Windows.Forms;
using System.IO;
namespace DirectoryTree
{
/// <summary>
/// Summary description for UserControl1.
/// </summary>
public class DirTree : System.Windows.Forms.UserControl
{
private const int cClosedDirImage = 0;
private const int cOpenDirImage = 1;
private const int cFileImage = 2;
private string mFilter = "*.*";
private string mDrive = "C:\\";
private string mPath = "C:\\";
private System.Windows.Forms.TreeView mTreeView;
private System.Windows.Forms.ImageList mImageList;
private System.ComponentModel.IContainer components;
private TreeNode RootNode = new TreeNode("C:\\", cOpenDirImage, cOpenDirImage);
public DirTree()
{
InitializeComponent();
InitializeTree();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#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()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(DirTree));
this.mTreeView = new System.Windows.Forms.TreeView();
this.mImageList = new System.Windows.Forms.ImageList(this.components);
this.SuspendLayout();
//
// mTreeView
//
this.mTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
this.mTreeView.ImageList = this.mImageList;
this.mTreeView.Name = "mTreeView";
this.mTreeView.Size = new System.Drawing.Size(150, 150);
this.mTreeView.TabIndex = 0;
this.mTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.mTreeView_AfterSelect);
//
// mImageList
//
this.mImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.mImageList.ImageSize = new System.Drawing.Size(16, 16);
this.mImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.mImageList.TransparentColor = System.Drawing.Color.Transparent;
//
// DirTree
//
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.mTreeView});
this.Name = "DirTree";
this.ResumeLayout(false);
}
#endregion
public string Path
{
get
{
if (mTreeView.SelectedNode == null) return mPath;
if (IsFile(mTreeView.SelectedNode))
mPath = mTreeView.SelectedNode.Text.Substring(0, mTreeView.SelectedNode.Text.LastIndexOf("\\"));
else
mPath = mTreeView.SelectedNode.Text;
return mPath;
}
}
public string Filter
{
set { mFilter = value; }
get { return mFilter; }
}
public string Drive
{
set
{
mDrive = value;
RootNode.Text = mDrive;
ClearTree();
}
get { return mDrive; }
}
private void DirTree_Resize (object sender, System.EventArgs e)
{
mTreeView.SetBounds(0, 0, mTreeView.ClientRectangle.Width, mTreeView.ClientRectangle.Height);
}
private string BuildDirectory(TreeNode node)
{
string dir = node.Text;
if (dir[dir.Length - 1] != '\\')
dir += "\\";
return dir;
}
private void mTreeView_AfterSelect (object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if (HasSubNodes(e.Node) || IsFile(e.Node)) return;
PopulateNode(e.Node);
}
private void InitializeTree()
{
try
{
mTreeView.Nodes.Add(RootNode);
ClearTree();
}
catch(Exception exx)
{
System.Console.WriteLine(exx.Message.ToString());
}
}
private void PopulateNode(TreeNode node)
{
this.Cursor = Cursors.WaitCursor;
string rootdir = BuildDirectory(node);
AddSubDirectories(node, rootdir);
AddFiles(node, rootdir);
node.Expand();
this.Cursor = Cursors.Default;
}
private void AddSubDirectories(TreeNode node, string rootdir)
{
foreach (string dir in Directory.GetDirectories(rootdir))
node.Nodes.Add(new TreeNode(dir, cClosedDirImage, cOpenDirImage));
}
private void AddFiles(TreeNode node, string rootdir)
{
foreach (string file in Directory.GetFiles(rootdir, mFilter))
node.Nodes.Add(new TreeNode(file, cFileImage, cFileImage));
}
private bool IsFile(TreeNode node)
{
return node.ImageIndex == cFileImage;
}
private bool HasSubNodes(TreeNode node)
{
return node.Nodes.Count > 0;
}
private void ClearTree()
{
RootNode.Nodes.Clear();
PopulateNode(RootNode);
}
}
}
|
|
|
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace DirectoryTree
{
/// <summary>
/// Summary description for DirTreePicker.
/// </summary>
public class DirTreePicker : System.Windows.Forms.Form
{
private DirectoryTree.DirTree mDirTree;
private System.Windows.Forms.Button mOK;
private System.Windows.Forms.Button mCancel;
private System.ComponentModel.IContainer components = null;
public DirTreePicker()
{
InitializeComponent();
}
public string Drive
{
set { mDirTree.Drive = value; }
get { return mDirTree.Drive; }
}
public string Filter
{
set { mDirTree.Filter = value; }
get { return mDirTree.Filter; }
}
public string Path
{
get { return mDirTree.Path; }
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form 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()
{
this.mDirTree = new DirectoryTree.DirTree();
this.mOK = new System.Windows.Forms.Button();
this.mCancel = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// mDirTree
//
this.mDirTree.Cursor = System.Windows.Forms.Cursors.Arrow;
this.mDirTree.Drive = "C:\\";
this.mDirTree.Filter = "*.*";
this.mDirTree.Location = new System.Drawing.Point(8, 40);
this.mDirTree.Name = "mDirTree";
this.mDirTree.Size = new System.Drawing.Size(448, 336);
this.mDirTree.TabIndex = 11;
//
// mOK
//
this.mOK.Location = new System.Drawing.Point(48, 8);
this.mOK.Name = "mOK";
this.mOK.TabIndex = 12;
this.mOK.Text = "OK";
this.mOK.Click += new System.EventHandler(this.mOK_Click);
//
// mCancel
//
this.mCancel.Location = new System.Drawing.Point(144, 8);
this.mCancel.Name = "mCancel";
this.mCancel.TabIndex = 13;
this.mCancel.Text = "Cancel";
this.mCancel.Click += new System.EventHandler(this.mCancel_Click);
//
// DirTreePicker
//
this.Layout += new System.Windows.Forms.LayoutEventHandler(this.DirTreePicker_Layout);
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(464, 389);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.mCancel,
this.mOK,
this.mDirTree});
this.Name = "DirTreePicker";
this.Text = "Folder Picker";
this.ResumeLayout(false);
}
#endregion
private void mOK_Click(object sender, System.EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Dispose();
}
private void mCancel_Click(object sender, System.EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Dispose();
}
private void DirTreePicker_Layout(object sender, LayoutEventArgs e)
{
const int cHGap = 5;
const int cVGap = 7;
mOK.Top = cVGap;
mCancel.Top = cVGap;
int space = (this.ClientSize.Width - cHGap - mOK.Width - mCancel.Width - cHGap) / 3;
mOK.Left = space;
mCancel.Left = mOK.Right + space;
mDirTree.Top = mOK.Bottom + cVGap;
mDirTree.Left = cHGap;
mDirTree.Width = this.ClientSize.Width - cHGap - cHGap;
mDirTree.Height = this.ClientSize.Height - mOK.Bottom - cVGap - cVGap;
}
}
}
|
|
|
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
namespace ConfigureVC
{
/// <summary>
/// Summary description for MainWindow.
/// </summary>
public class MainWindow : System.Windows.Forms.Form
{
private Status mStatus;
private System.Windows.Forms.MainMenu mainMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem mFileSelectProjectMenu;
private System.Windows.Forms.MenuItem mFileExitMenu;
private System.Windows.Forms.ListBox mProjectTypes;
private System.Windows.Forms.StatusBar mStatusBar;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem mConfigFileMenu;
private System.Windows.Forms.ListBox mProjects;
private System.Windows.Forms.ContextMenu mContextMenu;
private System.Windows.Forms.Button mConvertAllBtn;
private System.Windows.Forms.MenuItem menuItem4;
private System.Windows.Forms.MenuItem mConvertMenu;
private System.Windows.Forms.MenuItem mConvertAllMenu;
private System.Windows.Forms.MenuItem menuItem5;
private System.Windows.Forms.OpenFileDialog mProjectTreeChooser;
private System.Windows.Forms.MenuItem mFileSelectProjectTreeMenu;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public MainWindow()
{
InitializeComponent();
mProjects.Items.Clear();
InitializeProjectTypes();
mContextMenu.MenuItems.Add(mConvertMenu.CloneMenu());
mContextMenu.MenuItems.Add(mConvertAllMenu.CloneMenu());
mStatus = new Status(mConvertAllMenu, mContextMenu.MenuItems[1], mConvertAllBtn,
mStatusBar, mConvertMenu, mContextMenu.MenuItems[0],
mProjects, mProjectTypes);
mStatus.Initialize();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form 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()
{
this.mConvertAllBtn = new System.Windows.Forms.Button();
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.mFileExitMenu = new System.Windows.Forms.MenuItem();
this.menuItem4 = new System.Windows.Forms.MenuItem();
this.mConvertMenu = new System.Windows.Forms.MenuItem();
this.mConvertAllMenu = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem();
this.mFileSelectProjectMenu = new System.Windows.Forms.MenuItem();
this.mFileSelectProjectTreeMenu = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.mConfigFileMenu = new System.Windows.Forms.MenuItem();
this.mProjectTypes = new System.Windows.Forms.ListBox();
this.mStatusBar = new System.Windows.Forms.StatusBar();
this.mProjects = new System.Windows.Forms.ListBox();
this.mContextMenu = new System.Windows.Forms.ContextMenu();
this.mProjectTreeChooser = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// mConvertAllBtn
//
this.mConvertAllBtn.Location = new System.Drawing.Point(8, 0);
this.mConvertAllBtn.Name = "mConvertAllBtn";
this.mConvertAllBtn.Size = new System.Drawing.Size(72, 23);
this.mConvertAllBtn.TabIndex = 0;
this.mConvertAllBtn.Text = "Convert All";
this.mConvertAllBtn.Click += new System.EventHandler(this.ConvertAllAction);
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1,
this.menuItem4,
this.menuItem2});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mFileExitMenu});
this.menuItem1.Text = "File";
//
// mFileExitMenu
//
this.mFileExitMenu.Index = 0;
this.mFileExitMenu.Text = "Exit";
this.mFileExitMenu.Click += new System.EventHandler(this.mFileExitMenu_Click);
//
// menuItem4
//
this.menuItem4.Index = 1;
this.menuItem4.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mConvertMenu,
this.mConvertAllMenu,
this.menuItem5,
this.mFileSelectProjectMenu,
this.mFileSelectProjectTreeMenu});
this.menuItem4.Text = "Action";
//
// mConvertMenu
//
this.mConvertMenu.Index = 0;
this.mConvertMenu.Text = "Convert";
this.mConvertMenu.Click += new System.EventHandler(this.ConvertSingleProjectAction);
//
// mConvertAllMenu
//
this.mConvertAllMenu.Index = 1;
this.mConvertAllMenu.Text = "Convert All";
this.mConvertAllMenu.Click += new System.EventHandler(this.ConvertAllAction);
//
// menuItem5
//
this.menuItem5.Index = 2;
this.menuItem5.Text = "-";
//
// mFileSelectProjectMenu
//
this.mFileSelectProjectMenu.Index = 3;
this.mFileSelectProjectMenu.Text = "Select Project Files...";
this.mFileSelectProjectMenu.Click += new System.EventHandler(this.mSelectProjectMenu_Click);
//
// mFileSelectProjectTreeMenu
//
this.mFileSelectProjectTreeMenu.Index = 4;
this.mFileSelectProjectTreeMenu.Text = "Select Project Tree...";
this.mFileSelectProjectTreeMenu.Click += new System.EventHandler(this.mFileSelectProjectTreeMenu_Click);
//
// menuItem2
//
this.menuItem2.Index = 2;
this.menuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mConfigFileMenu});
this.menuItem2.Text = "Options";
//
// mConfigFileMenu
//
this.mConfigFileMenu.Index = 0;
this.mConfigFileMenu.Text = "Select Config File...";
this.mConfigFileMenu.Click += new System.EventHandler(this.mConfigFileMenu_Click);
//
// mProjectTypes
//
this.mProjectTypes.Location = new System.Drawing.Point(88, 0);
this.mProjectTypes.Name = "mProjectTypes";
this.mProjectTypes.Size = new System.Drawing.Size(392, 56);
this.mProjectTypes.TabIndex = 3;
this.mProjectTypes.SelectedIndexChanged += new System.EventHandler(this.mProjectTypes_SelectedIndexChanged);
//
// mStatusBar
//
this.mStatusBar.Location = new System.Drawing.Point(0, 339);
this.mStatusBar.Name = "mStatusBar";
this.mStatusBar.Size = new System.Drawing.Size(632, 22);
this.mStatusBar.TabIndex = 4;
this.mStatusBar.Text = "StatusBar";
//
// mProjects
//
this.mProjects.Location = new System.Drawing.Point(0, 56);
this.mProjects.Name = "mProjects";
this.mProjects.Size = new System.Drawing.Size(616, 264);
this.mProjects.TabIndex = 5;
this.mProjects.MouseDown += new System.Windows.Forms.MouseEventHandler(this.mProjects_MouseDown);
this.mProjects.SelectedIndexChanged += new System.EventHandler(this.mProjects_SelectedIndexChanged);
//
// mProjectTreeChooser
//
this.mProjectTreeChooser.CheckFileExists = false;
//
// MainWindow
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(632, 361);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.mProjects,
this.mStatusBar,
this.mProjectTypes,
this.mConvertAllBtn});
this.Menu = this.mainMenu1;
this.Name = "MainWindow";
this.Text = "Configure VC7 Projects";
this.Layout += new System.Windows.Forms.LayoutEventHandler(this.MainWindow_Layout);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new MainWindow());
}
private void InitializeProjectTypes()
{
ConfigFileGUI.GetProjectTypes(mProjectTypes.Items);
}
private void MainWindow_Layout(object sender, LayoutEventArgs e)
{
const int cHGap = 5;
const int cVGap = 7;
mConvertAllBtn.Top = cVGap;
mConvertAllBtn.Left = cHGap;
mProjectTypes.Top = cVGap;
mProjectTypes.Left = cHGap + mConvertAllBtn.Width + cHGap;
mProjectTypes.Width = this.ClientSize.Width
- mProjectTypes.Left
- cHGap;
//
mProjects.Top = cVGap + mProjectTypes.Height + cVGap;
mProjects.Height = this.ClientSize.Height
- mProjects.Top
- mStatusBar.Height;
mProjects.Left = cHGap;
mProjects.Width = this.ClientSize.Width
- mProjects.Left
- cHGap;
}
private void mFileExitMenu_Click(object sender, System.EventArgs e)
{
this.Close();
}
private void mSelectProjectMenu_Click(object sender, System.EventArgs e)
{
ProjectChooser.ChooseFiles(mProjects, mStatus);
}
private void mFileSelectProjectTreeMenu_Click(object sender, System.EventArgs e)
{
ProjectChooser.ChooseDirectory(mProjects, mStatus);
}
private void mConfigFileMenu_Click(object sender, System.EventArgs e)
{
ConfigFileGUI.ChooseFile();
}
private void mProjectTypes_SelectedIndexChanged(object sender, EventArgs e)
{
mStatus.ProjectTypeSelected();
}
private void mProjects_SelectedIndexChanged(object sender, EventArgs e)
{
mStatus.ProjectSelected();
}
private void mProjects_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) return;
if (mProjects.Items.Count == 0) return;
mProjects.SelectedIndex = mProjects.IndexFromPoint(e.X, e.Y);
if (mProjects.SelectedIndex < 0) return;
mContextMenu.Show(mProjects, new Point(e.X, e.Y));
}
private void ConvertSingleProjectAction(object sender, System.EventArgs e)
{
if (!mStatus.ReadyToConvert()) return;
Converter.Convert(mStatus, (string) mProjects.SelectedItem, mProjectTypes.Text);
}
private void ConvertAllAction(object sender, System.EventArgs e)
{
if (!mStatus.ReadyToConvert()) return;
Converter.Convert(mStatus, mProjects.Items, mProjectTypes.Text);
}
}
}
|
|
|
using System;
using Microsoft.Win32;
namespace ConfigureVC
{
/// <summary>
/// Summary description for PersistedValues.
/// </summary>
public class PersistedValues
{
const string cRootKey = @"Software\arrizza\ConfigureVC";
public static string LastDirectoryVisited
{
get { return ReadValue("LastDirectoryVisited", @"d:\"); }
set { WriteValue("LastDirectoryVisited", value); }
}
public static string ConfigFileDirectory
{
get { return ReadValue("ConfigFileDirectory", Utils.StartupDirectory); }
set { WriteValue("ConfigFileDirectory", value); }
}
public static string ConfigFilename
{
get { return ReadValue("ConfigFilename", "jConfigureVC.xml" ); }
set { WriteValue("ConfigFilename", value); }
}
//-----------------------------
private static string ReadValue(string name, string defvalue)
{
return CheckValue(name, GetStringValue(name), defvalue);
}
private static void WriteValue(string name, string val)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(cRootKey, true);
key.SetValue(name, val);
key.Close();
}
private static string CheckValue(string name, string val, string defvalue)
{
if (val == null)
{
val = defvalue;
WriteValue(name, val);
}
return val;
}
private static string GetStringValue(string name)
{
RegistryKey key = GetKey();
string val = (string) key.GetValue(name);
key.Close();
return val;
}
private static RegistryKey GetKey()
{
RegistryKey key = Registry.LocalMachine.CreateSubKey(cRootKey);
key.Flush();
return key;
}
}
}
|
|
|
using System;
using System.Windows.Forms;
using System.Collections;
using System.IO;
namespace ConfigureVC
{
/// <summary>
/// Summary description for FileChooser.
/// </summary>
class ProjectChooser
{
public static void ChooseFiles(ListBox projects, Status status)
{
ProjectChooser pc = new ProjectChooser(projects, status);
pc.ChooseFilesDialog();
}
public static void ChooseDirectory(ListBox projects, Status status)
{
ProjectChooser pc = new ProjectChooser(projects, status);
pc.ChooseDirectoryDialog();
}
ListBox mProjects;
Status mStatus;
private ProjectChooser(ListBox projects, Status status)
{
mProjects = projects;
mStatus = status;
}
private void ChooseFilesDialog()
{
OpenFileDialog mProjectFileChooser = new OpenFileDialog();
mProjectFileChooser.Multiselect = true;
mProjectFileChooser.CheckFileExists = true;
mProjectFileChooser.CheckPathExists = true;
mProjectFileChooser.InitialDirectory = PersistedValues.LastDirectoryVisited;
mProjectFileChooser.Filter = "VC Projects (*.vcproj)|*.vcproj|All files (*.*)|*.*";
if (mProjectFileChooser.ShowDialog() == DialogResult.OK)
SaveChosenFiles(mProjectFileChooser.FileNames);
}
private void ChooseDirectoryDialog()
{
DirectoryTree.DirTreePicker dt = new DirectoryTree.DirTreePicker();
dt.Filter = "*.vcproj";
if (dt.ShowDialog() == DialogResult.OK)
SaveFilesInDirectories(dt.Path);
}
private void SaveChosenFiles(string[] files)
{
SaveLastDirectory(files[0]);
SaveUniqueFiles(files);
mStatus.ProjectsChosen();
}
private void SaveLastDirectory(string file)
{
PersistedValues.LastDirectoryVisited = file.Substring(0, file.LastIndexOf("\\"));
}
private void SaveUniqueFiles(string[] files)
{
foreach (string file in files)
{
if (mProjects.Items.Contains(file)) continue;
mProjects.Items.Add(file);
}
}
private void SaveFilesInDirectories(string path)
{
ArrayList dirs = new ArrayList();
dirs.Add(path);
while (dirs.Count != 0)
{
string dir = (string) dirs[0];
dirs.RemoveAt(0);
dirs.AddRange(Directory.GetDirectories(dir));
SaveUniqueFiles(Directory.GetFiles(dir, "*.vcproj"));
}
mStatus.ProjectsChosen();
}
}
}
|
|
|
using System;
using System.Collections;
using System.Xml;
namespace ConfigureVC
{
/// <summary>
/// Summary description for ProjectTypeEnumerator.
/// </summary>
public class ProjectTypeEnumerator: IEnumerator
{
private XmlDocument mDoc;
private XmlNodeList mProjectTypeNodes;
private int mProjectTypeIndex;
public ProjectTypeEnumerator(XmlDocument doc)
{
mDoc = doc;
Reset();
}
public void Reset()
{
mProjectTypeNodes = mDoc.SelectNodes("//ProjectTypes/ProjectType");
mProjectTypeIndex = -1;
}
public bool MoveNext()
{
mProjectTypeIndex++;
return mProjectTypeIndex < mProjectTypeNodes.Count;
}
public string Current
{
get
{
XmlNode nameattr = mProjectTypeNodes[mProjectTypeIndex].SelectSingleNode("@name");
return nameattr.Value;
}
}
object IEnumerator.Current
{
get { return Current; }
}
}
}
|
|
|
using System;
using System.Xml;
namespace ConfigureVC
{
//---------------------
public abstract class Setting
{
protected XmlDocument mDoc;
protected string mAttrName;
protected XmlNode mParentNode;
protected XmlNode mAttrNode;
public Setting(XmlDocument doc, string attrname)
{
mDoc = doc;
mAttrName = attrname;
}
public abstract void Set(string xpath, string value);
protected void GetNodes(string xpath)
{
mAttrNode = null;
mParentNode = mDoc.SelectSingleNode(xpath);
if (mParentNode == null) return;
mAttrNode = mParentNode.SelectSingleNode("@" + mAttrName);
}
protected void AppendNewSetting()
{
string ns = mDoc.GetNamespaceOfPrefix("");
mAttrNode = mDoc.CreateNode(XmlNodeType.Attribute, mAttrName, ns);
mAttrNode.Value = "";
mParentNode.Attributes.Append((XmlAttribute) mAttrNode);
}
protected void Delete()
{
mParentNode.Attributes.Remove((XmlAttribute) mAttrNode);
}
}
//---------------------
public class IntSetting : Setting
{
public IntSetting(XmlDocument doc, string attrname)
: base(doc, attrname)
{
}
public override void Set(string xpath, string value)
{
int parm = Int32.Parse(value);
Set(xpath, parm);
}
public void Set(string xpath, int value)
{
GetNodes(xpath);
if (mAttrNode == null)
CreateNew(value);
else
Set(value);
}
private void Set(int value)
{
//this is a string compare of two numerics
//watch out for leading zeros and other padding...
if (value.ToString().Equals(mAttrNode.Value)) return;
mAttrNode.Value = value.ToString();
}
private void CreateNew(int value)
{
AppendNewSetting();
Set(value);
}
}
//---------------------
public class BoolSetting : Setting
{
public BoolSetting(XmlDocument doc, string attrname)
: base(doc, attrname)
{
}
public override void Set(string xpath, string value)
{
bool parm;
if (value.ToLower().Equals("true"))
parm = true;
else if (value.ToLower().Equals("false"))
parm = false;
else
throw new Exception("SetValue(): Bad value for boolean parm: '" + value + "'");
Set(xpath, parm);
}
private void Set(string xpath, bool value)
{
GetNodes(xpath);
if (mAttrNode == null)
CreateNew(value);
else
Set(value);
}
private void Set(bool value)
{
if (mAttrNode.Value.Equals("TRUE") == value) return;
mAttrNode.Value = value ? "TRUE" : "FALSE";
}
private void CreateNew(bool value)
{
if (value == false) return;
AppendNewSetting();
Set(value);
}
}
//---------------------
public class StringSetting : Setting
{
public StringSetting(XmlDocument doc, string attrname)
: base(doc, attrname)
{
}
public override void Set(string xpath, string value)
{
GetNodes(xpath);
if (mAttrNode == null)
{
if (!value.Equals(""))
CreateNew(value);
}
else if (value.Equals(""))
Delete();
else
Set(value);
}
private void Set(string value)
{
if (mAttrNode.Value.Equals(value)) return;
mAttrNode.Value = value;
}
private void CreateNew(string value)
{
AppendNewSetting();
Set(value);
}
}
}
|
|
|
using System;
using System.Collections;
using System.Xml;
namespace ConfigureVC
{
/// <summary>
/// Summary description for SettingEnumerator.
/// </summary>
public class SettingsEnumerator: IEnumerator
{
private XmlDocument mDoc;
private XmlNodeList mConfigurationNodes;
private XmlNodeList mSettingsNodes;
private int mConfigurationIndex;
private int mSettingsIndex;
private string mProjectType;
public class Setting
{
public Setting(string name, string val)
{
Name = name;
Value = val;
}
public string Name;
public string Value;
}
public SettingsEnumerator(XmlDocument doc, string projecttype)
{
mDoc = doc;
mProjectType = projecttype;
Reset();
}
public void Reset()
{
mConfigurationNodes = mDoc.SelectNodes("//ProjectTypes/ProjectType[@name='" + mProjectType + "']/Configuration");
mConfigurationIndex = -1;
mSettingsIndex = -1;
}
public bool MoveNext()
{
if (mConfigurationIndex != -1)
{
mSettingsIndex++;
if (mSettingsIndex < mSettingsNodes.Count)
return true;
}
mConfigurationIndex++;
if (mConfigurationIndex >= mConfigurationNodes.Count)
return false;
mSettingsNodes = mConfigurationNodes[mConfigurationIndex].SelectNodes("setting");
mSettingsIndex = -1;
return true;
}
public Setting Current
{
get
{
XmlNode nameattr;
if (mSettingsIndex == -1)
{
nameattr = mConfigurationNodes[mConfigurationIndex].SelectSingleNode("@name");
return new Setting("Configuration", nameattr.Value);
}
//return setting node
nameattr = mSettingsNodes[mSettingsIndex].SelectSingleNode("@name");
XmlNode valueattr = mSettingsNodes[mSettingsIndex].SelectSingleNode("@value");
return new Setting(nameattr.Value, valueattr.Value);
}
}
// The current property on the IEnumerator interface:
object IEnumerator.Current
{
get
{
return Current;
}
}
}
}
|
|
|
using System;
using System.Xml;
using System.Collections;
namespace ConfigureVC
{
//todo:
//configuration:
// DeleteExtensionsOnClean="*.xx;*.obj;*.ilk;*.pdb;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.bat;$(TargetPath)"
//compiler:
// PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
// AdditionalIncludeDirectories="incdir"
// AdditionalUsingDirectories="usingref"
// PrecompiledHeaderThrough="pch.h"
// DisableSpecificWarnings="1386"
// ForcedIncludeFiles="forcinc"
// ForcedUsingFiles="forceusing"
// UndefinePreprocessorDefinitions="undefthisone"
//linker:
// AdditionalDependencies="xx.klib"
// AdditionalLibraryDirectories="addliibpath"
// IgnoreDefaultLibraryNames="ignore.lib"
// AddModuleNamesToAssembly="addmod"
// ForceSymbolReferences="symb"
// DelayLoadDLLs="delld"
// StripPrivateSymbols="strpuibvat"
// FunctionOrder="abcdfuncorder"
// MergeSections="nmergesect"
public class SettingsFactory
{
private SettingType mSettingType;
private string mAttrName;
private XPathType mXPath;
private static Hashtable mSettingsMap = new Hashtable();
private static bool mInitialized = false;
private enum XPathType {eCompiler, eLinker, eConfig}
private enum SettingType {eInt32, eBool, eString}
static SettingsFactory()
{
if (mInitialized) return;
mInitialized = true;
//configuration
AddStringSetting("OutputDirectory", XPathType.eConfig);
AddStringSetting("IntermediateDirectory", XPathType.eConfig);
AddInt32Setting("ConfigurationType", XPathType.eConfig);
AddInt32Setting("UseOfMFC", XPathType.eConfig);
AddInt32Setting("UseOfATL", XPathType.eConfig);
AddBoolSetting("ATLMinimizesCRunTimeLibraryUsage", XPathType.eConfig);
AddInt32Setting("CharacterSet", XPathType.eConfig);
AddBoolSetting("ManagedExtensions", XPathType.eConfig);
AddBoolSetting("WholeProgramOptimization", XPathType.eConfig);
//Compiler
AddInt32Setting("Optimization", XPathType.eCompiler);
AddBoolSetting("GlobalOptimizations", XPathType.eCompiler);
AddInt32Setting("InlineFunctionExpansion", XPathType.eCompiler);
AddBoolSetting("EnableIntrinsicFunctions", XPathType.eCompiler);
AddBoolSetting("ImproveFloatingPointConsistency",XPathType.eCompiler);
AddInt32Setting("FavorSizeOrSpeed", XPathType.eCompiler);
AddBoolSetting("OmitFramePointers", XPathType.eCompiler);
AddBoolSetting("EnableFiberSafeOptimizations", XPathType.eCompiler);
AddInt32Setting("OptimizeForProcessor", XPathType.eCompiler);
AddInt32Setting("OptimizeForWindowsApplication",XPathType.eCompiler);
AddBoolSetting("MinimalRebuild", XPathType.eCompiler);
AddBoolSetting("IgnoreStandardIncludePath", XPathType.eCompiler);
AddInt32Setting("GeneratePreprocessedFile", XPathType.eCompiler);
AddBoolSetting("KeepComments", XPathType.eCompiler);
AddBoolSetting("StringPooling", XPathType.eCompiler);
AddBoolSetting("ExceptionHandling", XPathType.eCompiler);
AddInt32Setting("BasicRuntimeChecks", XPathType.eCompiler);
AddBoolSetting("SmallerTypeCheck", XPathType.eCompiler);
AddInt32Setting("RuntimeLibrary", XPathType.eCompiler);
AddInt32Setting("StructMemberAlignment", XPathType.eCompiler);
AddBoolSetting("BufferSecurityCheck", XPathType.eCompiler);
AddBoolSetting("EnableFunctionLevelLinking",XPathType.eCompiler);
AddBoolSetting("DisableLanguageExtensions", XPathType.eCompiler);
AddBoolSetting("DefaultCharIsUnsigned", XPathType.eCompiler);
AddBoolSetting("TreatWChar_tAsBuiltInType", XPathType.eCompiler);
AddBoolSetting("ForceConformanceInForLoopScope", XPathType.eCompiler);
AddBoolSetting("RuntimeTypeInfo", XPathType.eCompiler);
AddInt32Setting("UsePrecompiledHeader", XPathType.eCompiler);
AddBoolSetting("ExpandAttributedSource", XPathType.eCompiler);
AddInt32Setting("AssemblerOutput", XPathType.eCompiler);
AddInt32Setting("BrowseInformation", XPathType.eCompiler);
AddInt32Setting("WarningLevel", XPathType.eCompiler);
AddBoolSetting("WarnAsError", XPathType.eCompiler);
AddBoolSetting("SuppressStartupBanner", XPathType.eCompiler);
AddBoolSetting("Detect64BitPortabilityProblems", XPathType.eCompiler);
AddInt32Setting("DebugInformationFormat", XPathType.eCompiler);
AddInt32Setting("CompileAsManaged", XPathType.eCompiler);
AddInt32Setting("CallingConvention", XPathType.eCompiler);
AddInt32Setting("CompileAs", XPathType.eCompiler);
AddBoolSetting("ShowIncludes", XPathType.eCompiler);
AddBoolSetting("UndefineAllPreprocessorDefinitions", XPathType.eCompiler);
//Linker
AddBoolSetting("RegisterOutput", XPathType.eLinker);
AddBoolSetting("IgnoreImportLibrary", XPathType.eLinker);
AddInt32Setting("ShowProgress", XPathType.eLinker);
AddStringSetting("OutputFile", XPathType.eLinker);
AddStringSetting("Version", XPathType.eLinker);
AddInt32Setting("LinkIncremental", XPathType.eLinker);
//jaa: ?? AddBoolSetting("SuppressStartupBanner", XPathType.eLinker);
AddBoolSetting("IgnoreAllDefaultLibraries", XPathType.eLinker);
AddStringSetting("ModuleDefinitionFile", XPathType.eLinker);
AddStringSetting("EmbedManagedResourceFile", XPathType.eLinker);
AddBoolSetting("IgnoreEmbeddedIDL", XPathType.eLinker);
AddBoolSetting("GenerateDebugInformation", XPathType.eLinker);
AddStringSetting("ProgramDatabaseFile", XPathType.eLinker);
AddBoolSetting("GenerateMapFile", XPathType.eLinker);
AddStringSetting("MapFileName", XPathType.eLinker);
AddBoolSetting("MapExports", XPathType.eLinker);
AddBoolSetting("MapLines", XPathType.eLinker);
AddInt32Setting("SubSystem", XPathType.eLinker);
AddInt32Setting("HeapReserveSize", XPathType.eLinker);
AddInt32Setting("HeapCommitSize", XPathType.eLinker);
AddInt32Setting("StackReserveSize", XPathType.eLinker);
AddInt32Setting("StackCommitSize", XPathType.eLinker);
AddInt32Setting("LargeAddressAware", XPathType.eLinker);
AddInt32Setting("TerminalServerAware", XPathType.eLinker);
AddBoolSetting("SwapRunFromCD", XPathType.eLinker);
AddBoolSetting("SwapRunFromNet", XPathType.eLinker);
AddInt32Setting("OptimizeReferences", XPathType.eLinker);
AddInt32Setting("EnableCOMDATFolding", XPathType.eLinker);
AddInt32Setting("OptimizeForWindows98", XPathType.eLinker);
AddStringSetting("EntryPointSymbol", XPathType.eLinker);
AddBoolSetting("ResourceOnlyDLL", XPathType.eLinker);
AddBoolSetting("SetChecksum", XPathType.eLinker);
AddInt32Setting("BaseAddress", XPathType.eLinker);
AddBoolSetting("TurnOffAssemblyGeneration", XPathType.eLinker);
AddBoolSetting("SupportUnloadOfDelayLoadedDLL", XPathType.eLinker);
AddStringSetting("ImportLibrary", XPathType.eLinker);
AddInt32Setting("TargetMachine", XPathType.eLinker);
}
private static void AddBoolSetting(string name, XPathType xpt)
{
mSettingsMap.Add(name, new SettingsFactory(SettingType.eBool, name, xpt));
}
private static void AddInt32Setting(string name, XPathType xpt)
{
mSettingsMap.Add(name, new SettingsFactory(SettingType.eInt32, name, xpt));
}
private static void AddStringSetting(string name, XPathType xpt)
{
mSettingsMap.Add(name, new SettingsFactory(SettingType.eString, name, xpt));
}
private SettingsFactory(SettingType t, string a, XPathType xp)
{
mSettingType = t;
mAttrName = a;
mXPath = xp;
}
public static SettingsFactory GetFor(string settingname)
{
return (SettingsFactory) mSettingsMap[settingname];
}
public Setting GetSetting(XmlDocument doc)
{
switch(mSettingType)
{
case SettingType.eInt32 : return new IntSetting(doc, mAttrName);
case SettingType.eBool : return new BoolSetting(doc, mAttrName);
case SettingType.eString : return new StringSetting(doc, mAttrName);
default: throw new Exception("SetValue(): Bad Parm type: '" + mSettingType.ToString() + "'");
}
}
public string GetXPath(SettingsFile sf)
{
switch (mXPath)
{
case XPathType.eCompiler: return sf.CompilerXPath;
case XPathType.eLinker: return sf.LinkerXPath;
case XPathType.eConfig: return sf.ConfigurationXPath;
default: throw new Exception("GetXPath(): Bad XPath enum");
}
}
}
}
|
|
|
using System;
using System.IO;
using System.Text;
using System.Xml;
namespace ConfigureVC
{
/// <summary>
/// Summary description for SettingsFile.
/// </summary>
public class SettingsFile
{
private string mFile;
private string mConfiguration; //the current configuration Debug or Release
private XmlDocument mDoc = new XmlDocument();
public SettingsFile(string fname)
{
mFile = fname;
mConfiguration = "Debug";
}
public void Load()
{
Stream s = new FileStream(mFile, FileMode.Open);
mDoc.Load(s);
s.Close();
}
public void Save()
{
VcProjWriter w = new VcProjWriter(new FileStream(mFile, FileMode.Create));
mDoc.Save(w);
w.Close();
}
public void SetValue(string setting, string value)
{
if (setting.ToLower().Equals("configuration"))
Configuration = value;
else
SetValue(SettingsFactory.GetFor(setting), setting, value);
}
//-------------- PRIVATE FROM HERE ON ----------------------------
private void SetValue(SettingsFactory factory, string setting, string value)
{
if (factory == null) throw new Exception("SetValue(): unknown setting: '" + setting + "'");
factory.GetSetting(mDoc).Set(factory.GetXPath(this), value);
}
private string Configuration
{
set { mConfiguration = value; }
}
internal string LinkerXPath
{
get { return ConfigurationXPath + "/Tool[@Name='VCLinkerTool']"; }
}
internal string CompilerXPath
{
get { return ConfigurationXPath + "/Tool[@Name='VCCLCompilerTool']"; }
}
internal string ConfigurationXPath
{
get { return "//VisualStudioProject/Configurations/Configuration[@Name='" + mConfiguration + "|Win32']"; }
}
}
}
|
|
|
using System;
using System.Windows.Forms;
namespace ConfigureVC
{
/// <summary>
/// Summary description for Status.
/// </summary>
class Status
{
MenuItem mConvertAllMenu;
MenuItem mConvertAllPopupMenu;
Button mConvertAllBtn;
StatusBar mStatusBar;
MenuItem mConvertMenu;
MenuItem mConvertPopupMenu;
ListBox mProjects;
ListBox mProjectTypes;
public Status(MenuItem convertall, MenuItem convertallpopup, Button convertallbtn,
StatusBar statusbar, MenuItem convert, MenuItem convertpopup,
ListBox projects, ListBox projecttypes)
{
mConvertAllMenu = convertall;
mConvertAllPopupMenu = convertallpopup;
mConvertAllBtn = convertallbtn;
mStatusBar = statusbar;
mConvertMenu = convert;
mConvertPopupMenu = convertpopup;
mProjects = projects;
mProjectTypes = projecttypes;
}
public void Initialize()
{
StatusText = "Select a project...";
InitializeAllItems();
}
public bool ReadyToConvert()
{
return ProjectTypeHasBeenSelected() && ProjectFilesHaveBeenSelected();
}
public void ProjectsChosen()
{
EnableForConvertAll();
}
public void ProjectTypeSelected()
{
if (mProjects.SelectedIndex != -1)
EnableForConvertSingle();
EnableForConvertAll();
}
public void ProjectSelected()
{
EnableForConvertSingle();
}
public void FileConverted(string file)
{
StatusText = "Project has been converted: " + file;
}
public void FileConverted(int count, int totalcount, string file)
{
StatusText = "Project " + count + " of " + totalcount + " has been converted: " + file;
}
//-----------------
private void EnableForConvertAll()
{
if (!ReadyToConvert()) return;
mConvertAllMenu.Enabled = true;
mConvertAllPopupMenu.Enabled = true;
mConvertAllBtn.Enabled = true;
}
private string StatusText
{
set { mStatusBar.Text = value; }
}
private void EnableForConvertSingle()
{
if (!ReadyToConvert()) return;
mConvertMenu.Enabled = true;
mConvertPopupMenu.Enabled = true;
}
private void InitializeAllItems()
{
mConvertMenu.Enabled = false;
mConvertAllMenu.Enabled = false;
mConvertAllBtn.Enabled = false;
mConvertPopupMenu.Enabled = false;
mConvertAllPopupMenu.Enabled = false;
}
private bool ProjectTypeHasBeenSelected()
{
if (mProjectTypes.Text != null && !mProjectTypes.Text.Equals("")) return true;
StatusText = "Select a Project Type to apply...";
return false;
}
private bool ProjectFilesHaveBeenSelected()
{
if (mProjects.Items.Count > 0) return true;
StatusText = "Select at least one Project file to apply changes to...";
return false;
}
}
}
|
|
|
using System;
using System.Runtime.InteropServices;
namespace ConfigureVC
{
public class Utils
{
internal delegate string getcmdlineDelegate();
internal static getcmdlineDelegate func = new getcmdlineDelegate(getcmdline);
public static string StartupDirectory
{
get
{
string commandLine = func().Trim();
if (commandLine[0] == '\"')
{
commandLine = commandLine.Substring(1, commandLine.IndexOf("\"", 1));
}
else
{
int ispace = commandLine.IndexOf(" ");
if (ispace > 0)
commandLine = commandLine.Substring(0, ispace);
}
return commandLine.Substring(0, commandLine.LastIndexOf('\\'));
}
}
[ DllImport( "Kernel32.dll", CharSet=CharSet.Auto )]
private static extern IntPtr GetCommandLine();
internal static string getcmdline()
{
return Marshal.PtrToStringAuto( GetCommandLine() );
}
}
}
|
|
|
using System;
using System.IO;
using System.Xml;
namespace ConfigureVC
{
/// <summary>
/// Summary description for VcProjWriter.
/// </summary>
class VcProjWriter : XmlTextWriter
{
int mIndentLevel;
public VcProjWriter(Stream s)
: base(s, System.Text.Encoding.GetEncoding("Windows-1252"))
{
mIndentLevel = 0;
Formatting = Formatting.Indented;
Indentation = 8;
IndentChar = ' ';
}
public override void WriteStartElement(string prefix, string name, string ns)
{
base.WriteStartElement(prefix, name, ns);
mIndentLevel++;
}
public override void WriteEndElement()
{
mIndentLevel--;
base.WriteEndElement();
}
public override void WriteFullEndElement()
{
mIndentLevel--;
base.WriteFullEndElement();
}
public override void WriteStartAttribute(string prefix, string name, string ns)
{
base.Flush();
base.BaseStream.WriteByte(0x0D);
base.BaseStream.WriteByte(0x0A);
for(int i = 0; i < (base.Indentation * mIndentLevel) - 1; ++i)
base.BaseStream.WriteByte(Convert.ToByte(base.IndentChar));
base.Flush();
base.WriteStartAttribute(prefix, name, ns);
base.Flush();
}
}
}
|