コード例 #1
0
ファイル: MainForm.cs プロジェクト: radtek/Sln2CMakes
        private void tvwProjectTree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            lvwItemDetail.Items.Clear();
            cbbProjectConfigs.Items.Clear();

            if (null == tvwProjectTree.SelectedNode)
            {
                return;
            }

            object obj = tvwProjectTree.SelectedNode.Tag;

            if (null == obj)
            {
                return;
            }

            if (obj is Vs.Solution)
            {
                Vs.Solution  solution = tvwProjectTree.SelectedNode.Tag as Vs.Solution;
                ListViewItem item     = lvwItemDetail.Items.Add("Version");
                item.SubItems.Add(solution.Version.ToString());

                item = lvwItemDetail.Items.Add("Path");
                item.SubItems.Add(solution.Path);
            }
            else if (obj is Vs.VcxProject)
            {
                Vs.VcxProject vcxProj = obj as Vs.VcxProject;
                int           index   = -1;
                foreach (Vs.VcProjectConfigurationItem config in vcxProj.ConfigurationItems)
                {
                    index = cbbProjectConfigs.Items.Add(config);
                }
                cbbProjectConfigs.SelectedIndex = 0;
                cbbProjectConfigs.SelectedItem  = cbbProjectConfigs.Items[0];
                cbbProjectConfigs_SelectedIndexChanged(this, new EventArgs());
            }
            else if (obj is Vs.CodeFile)
            {
                Vs.CodeFile  codeFile = obj as Vs.CodeFile;
                ListViewItem item     = lvwItemDetail.Items.Add("Type");
                if (codeFile is Vs.HeaderFile)
                {
                    item.SubItems.Add("Header");
                }
                else
                {
                    item.SubItems.Add("Source");
                }
                item = lvwItemDetail.Items.Add("Path");
                item.SubItems.Add(codeFile.AbsolutePath);
                item = lvwItemDetail.Items.Add("Relative Path");
                item.SubItems.Add(codeFile.RelativePath);
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: radtek/Sln2CMakes
 private void InsertProjectItemNode(Vs.Project prj, TreeNode parentNode)
 {
     lvwItemDetail.Items.Clear();
     if (prj is Vs.VcxProject)
     {
         Vs.VcxProject vcxProj = prj as Vs.VcxProject;
         foreach (Vs.HeaderFile hdr in vcxProj.HeaderFileItems)
         {
             TreeNode headerNode = parentNode.Nodes.Add(hdr.Name);
             headerNode.Checked = true;
             headerNode.Tag     = hdr;
         }
         foreach (Vs.SourceFile src in vcxProj.SourceFileItems)
         {
             TreeNode sourceNode = parentNode.Nodes.Add(src.Name);
             sourceNode.Tag     = src;
             sourceNode.Checked = true;
         }
     }
 }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: radtek/Sln2CMakes
        private void cbbProjectConfigs_SelectedIndexChanged(object sender, EventArgs e)
        {
            lvwItemDetail.Items.Clear();
            if (tvwProjectTree.SelectedNode == null || tvwProjectTree.SelectedNode.Tag == null)
            {
                return;
            }

            object obj = tvwProjectTree.SelectedNode.Tag;

            if (obj is Vs.VcxProject)
            {
                Vs.VcxProject project = obj as Vs.VcxProject;
                object        sel     = cbbProjectConfigs.SelectedItem;
                Vs.VcxProjectConfigurationItem configurationItem = sel as Vs.VcxProjectConfigurationItem;
                if (null == configurationItem)
                {
                    return;
                }

                ListViewItem item = null;
                if (null != configurationItem.ProjectPropertyGroup)
                {
                    item = lvwItemDetail.Items.Add("ConfigurationType");
                    item.SubItems.Add(configurationItem.ProjectPropertyGroup.ConfigurationType.ToString());

                    item = lvwItemDetail.Items.Add("OutDir");
                    item.SubItems.Add(configurationItem.ProjectPropertyGroup.OutDir);

                    item = lvwItemDetail.Items.Add("IntDir");
                    item.SubItems.Add(configurationItem.ProjectPropertyGroup.IntDir);

                    item = lvwItemDetail.Items.Add("TargetName");
                    item.SubItems.Add(configurationItem.ProjectPropertyGroup.TargetName);
                }

                if (null != configurationItem.ProjectItemDefinitionGroup)
                {
                    if (null != configurationItem.ProjectItemDefinitionGroup.Compilation)
                    {
                        item = lvwItemDetail.Items.Add("Include Directories");
                        string dirs = string.Empty;
                        foreach (string dir in configurationItem.ProjectItemDefinitionGroup.Compilation.IncludeDirectories)
                        {
                            if (dirs != string.Empty)
                            {
                                dirs += ";";
                            }
                            dirs += dir;
                        }
                        item.SubItems.Add(dirs);

                        item = lvwItemDetail.Items.Add("Preprocessors");
                        string defs = string.Empty;
                        foreach (string def in configurationItem.ProjectItemDefinitionGroup.Compilation.Preprocessors)
                        {
                            if (defs != string.Empty)
                            {
                                defs += ";";
                            }
                            defs += def;
                        }
                        item.SubItems.Add(defs);
                    }
                    if (null != configurationItem.ProjectItemDefinitionGroup.Linking)
                    {
                        item = lvwItemDetail.Items.Add("OutputFile");
                        item.SubItems.Add(configurationItem.ProjectItemDefinitionGroup.Linking.OutputFile);
                    }
                }

                if (null != configurationItem.ProjectImportGroup)
                {
                    if (null != configurationItem.ProjectImportGroup.Items)
                    {
                        foreach (string file in configurationItem.ProjectImportGroup.Items)
                        {
                            item = lvwItemDetail.Items.Add("Import");
                            item.SubItems.Add(file);
                        }
                    }
                }
            }
        }