├── .gitattributes ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CS ├── AnthonyDuguid.pfx ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── Settings.png │ └── VisioAddin.png ├── Ribbon.cs ├── Ribbon.xml ├── Scripts │ ├── AssemblyInfo.cs │ ├── ErrorHandler.cs │ └── Ribbon_Buttons.cs ├── ShapeExtract.csproj ├── ShapeExtract.sln ├── ThisAddIn.Designer.cs ├── ThisAddIn.Designer.xml ├── ThisAddIn.cs ├── app.config └── packages.config ├── Images └── ReadMe │ ├── header.png │ ├── header.pptx │ ├── header_footer.vsdx │ ├── ribbon.group.about.png │ ├── ribbon.group.help.png │ ├── vsto.ribbon.settings.png │ └── vsto.visio.shape.extract.png ├── LICENSE ├── README.md ├── VB ├── AnthonyDuguid.pfx ├── Forms │ ├── Settings.designer.vb │ ├── Settings.resx │ └── Settings.vb ├── My Project │ ├── AssemblyInfo.vb │ ├── Resources.Designer.vb │ ├── Resources.resx │ ├── Settings.Designer.vb │ └── Settings.settings ├── Resources │ ├── GroupInfo.png │ ├── HelpApi.png │ ├── HelpAsBuilt.png │ ├── HelpEmail.png │ ├── Settings.png │ └── VisioAddin.png ├── Ribbon.xml ├── Scripts │ ├── AssemblyInfo.vb │ ├── ErrorHandler.vb │ ├── Ribbon_Buttons.vb │ └── Ribbon_Events.vb ├── ShapeExtract.sln ├── ShapeExtract.vbproj ├── ThisAddIn.Designer.vb ├── ThisAddIn.Designer.xml ├── ThisAddIn.vb └── app.config └── VBA ├── ShapeExtract.Original.VBA.txt ├── ShapeExtract.vsdm └── header_footer.vsdx /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /VB/obj/Debug 2 | /VB/bin/Debug 3 | /VB/.vs/ShapeExtract/v14 4 | /VB/obj/Debug 5 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at anthonyduguid@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /CS/AnthonyDuguid.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Visio-projects/Visio-Shape-Extract/14c3e97b88c8f5b19d21802972c4f60d0038837a/CS/AnthonyDuguid.pfx -------------------------------------------------------------------------------- /CS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using System.Security; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Shape Extract")] 10 | [assembly: AssemblyDescription("Visio Addin Shape Extract")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("Anthony Duguid")] 13 | [assembly: AssemblyProduct("ShapeExtract")] 14 | [assembly: AssemblyCopyright("Anthony Duguid")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("870111f5-d6ab-4fad-b05a-2aa78b377764")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion("1.0.0.0")] 37 | [assembly: AssemblyFileVersion("1.0.0.0")] 38 | 39 | -------------------------------------------------------------------------------- /CS/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ShapeExtract.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ShapeExtract.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap Settings { 67 | get { 68 | object obj = ResourceManager.GetObject("Settings", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap VisioAddin { 77 | get { 78 | object obj = ResourceManager.GetObject("VisioAddin", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /CS/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\Settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\VisioAddin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | -------------------------------------------------------------------------------- /CS/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ShapeExtract.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.ApplicationScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("Anthony Duguid")] 29 | public string App_Author { 30 | get { 31 | return ((string)(this["App_Author"])); 32 | } 33 | } 34 | 35 | [global::System.Configuration.UserScopedSettingAttribute()] 36 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 37 | [global::System.Configuration.DefaultSettingValueAttribute("")] 38 | public string App_FileExport { 39 | get { 40 | return ((string)(this["App_FileExport"])); 41 | } 42 | set { 43 | this["App_FileExport"] = value; 44 | } 45 | } 46 | 47 | [global::System.Configuration.UserScopedSettingAttribute()] 48 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 49 | [global::System.Configuration.DefaultSettingValueAttribute("C:\\Temp")] 50 | public string App_PathExportLocation { 51 | get { 52 | return ((string)(this["App_PathExportLocation"])); 53 | } 54 | set { 55 | this["App_PathExportLocation"] = value; 56 | } 57 | } 58 | 59 | [global::System.Configuration.UserScopedSettingAttribute()] 60 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 61 | [global::System.Configuration.DefaultSettingValueAttribute("https://github.com/Office-projects/VisioShapeExtract/blob/master/README.md")] 62 | public string App_PathReadMe { 63 | get { 64 | return ((string)(this["App_PathReadMe"])); 65 | } 66 | set { 67 | this["App_PathReadMe"] = value; 68 | } 69 | } 70 | 71 | [global::System.Configuration.UserScopedSettingAttribute()] 72 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 73 | [global::System.Configuration.DefaultSettingValueAttribute("https://github.com/Office-projects/VisioShapeExtract/issues/new")] 74 | public string App_PathReportIssue { 75 | get { 76 | return ((string)(this["App_PathReportIssue"])); 77 | } 78 | set { 79 | this["App_PathReportIssue"] = value; 80 | } 81 | } 82 | 83 | [global::System.Configuration.UserScopedSettingAttribute()] 84 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 85 | [global::System.Configuration.DefaultSettingValueAttribute("07/31/2017 13:05:00")] 86 | public global::System.DateTime App_ReleaseDate { 87 | get { 88 | return ((global::System.DateTime)(this["App_ReleaseDate"])); 89 | } 90 | set { 91 | this["App_ReleaseDate"] = value; 92 | } 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /CS/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | Anthony Duguid 7 | 8 | 9 | 10 | 11 | 12 | C:\Temp 13 | 14 | 15 | https://github.com/Office-projects/VisioShapeExtract/blob/master/README.md 16 | 17 | 18 | https://github.com/Office-projects/VisioShapeExtract/issues/new 19 | 20 | 21 | 07/31/2017 13:05:00 22 | 23 | 24 | -------------------------------------------------------------------------------- /CS/Resources/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Visio-projects/Visio-Shape-Extract/14c3e97b88c8f5b19d21802972c4f60d0038837a/CS/Resources/Settings.png -------------------------------------------------------------------------------- /CS/Resources/VisioAddin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Visio-projects/Visio-Shape-Extract/14c3e97b88c8f5b19d21802972c4f60d0038837a/CS/Resources/VisioAddin.png -------------------------------------------------------------------------------- /CS/Ribbon.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Windows.Forms; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Runtime.InteropServices; 8 | using System.Text; 9 | using Office = Microsoft.Office.Core; 10 | using ShapeExtract.Scripts; 11 | 12 | namespace ShapeExtract 13 | { 14 | [ComVisible(true)] 15 | public class Ribbon : Office.IRibbonExtensibility 16 | { 17 | private Office.IRibbonUI ribbon; 18 | 19 | public Ribbon() 20 | { 21 | } 22 | 23 | public string GetCustomUI(string ribbonID) 24 | { 25 | return GetResourceText("ShapeExtract.Ribbon.xml"); 26 | } 27 | 28 | public void Ribbon_Load(Office.IRibbonUI ribbonUI) 29 | { 30 | this.ribbon = ribbonUI; 31 | //AssemblyInfo.SetAddRemoveProgramsIcon("ExcelAddin.ico"); 32 | } 33 | 34 | private static string GetResourceText(string resourceName) 35 | { 36 | Assembly asm = Assembly.GetExecutingAssembly(); 37 | string[] resourceNames = asm.GetManifestResourceNames(); 38 | for (int i = 0; i < resourceNames.Length; ++i) 39 | { 40 | if (string.Compare(resourceName, resourceNames[i], StringComparison.OrdinalIgnoreCase) == 0) 41 | { 42 | using (StreamReader resourceReader = new StreamReader(asm.GetManifestResourceStream(resourceNames[i]))) 43 | { 44 | if (resourceReader != null) 45 | { 46 | return resourceReader.ReadToEnd(); 47 | } 48 | } 49 | } 50 | } 51 | return null; 52 | } 53 | 54 | /// 55 | /// Assigns the value to an application setting 56 | /// 57 | /// Represents the object passed into the callback procedure of a control in a ribbon or another user interface that can be customized by using Office Fluent ribbon extensibility. 58 | /// A method that returns true or false if the control is enabled 59 | public void OnAction(Office.IRibbonControl control) 60 | { 61 | try 62 | { 63 | switch (control.Id) 64 | { 65 | case "btnExtractShapes": 66 | ExportShapeValues(); 67 | break; 68 | case "btnOpenFolder": 69 | OpenFile(); 70 | break; 71 | case "btnSettings": 72 | OpenSettings(); 73 | break; 74 | case "btnOpenReadMe": 75 | OpenReadMe(); 76 | break; 77 | case "btnOpenNewIssue": 78 | OpenNewIssue(); 79 | break; 80 | } 81 | } 82 | catch (Exception ex) 83 | { 84 | ErrorHandler.DisplayMessage(ex); 85 | } 86 | 87 | } 88 | 89 | /// 90 | /// Assigns text to a label on the ribbon from the xml file 91 | /// 92 | /// Represents the object passed into the callback procedure of a control in a ribbon or another user interface that can be customized by using Office Fluent ribbon extensibility. 93 | /// A method that returns a string for a label. 94 | public string GetLabelText(Office.IRibbonControl control) 95 | { 96 | try 97 | { 98 | switch (control.Id) 99 | { 100 | case "tabShapeExtract": 101 | if (Application.ProductVersion.Substring(0, 2) == "15") //for Excel 2013 102 | { 103 | return AssemblyInfo.Title.ToUpper(); 104 | } 105 | else 106 | { 107 | return AssemblyInfo.Title; 108 | } 109 | case "txtCopyright": 110 | return "© " + AssemblyInfo.Copyright; 111 | case "txtDescription": 112 | return AssemblyInfo.Title.Replace("&", "&&") + " " + AssemblyInfo.AssemblyVersion; 113 | case "txtReleaseDate": 114 | System.DateTime dteCreateDate = Properties.Settings.Default.App_ReleaseDate; 115 | //return dteCreateDate.ToString("dd-MMM-yyyy hh:mm tt"); 116 | return string.Empty; 117 | default: 118 | return string.Empty; 119 | } 120 | } 121 | catch (Exception ex) 122 | { 123 | ErrorHandler.DisplayMessage(ex); 124 | return string.Empty; 125 | } 126 | } 127 | 128 | 129 | 130 | public static void ExportShapeValues() 131 | { 132 | 133 | } 134 | 135 | public static void OpenFile() 136 | { 137 | string filePath = Properties.Settings.Default.App_FileExport; 138 | try 139 | { 140 | if (filePath == string.Empty) 141 | return; 142 | var attributes = File.GetAttributes(filePath); 143 | File.SetAttributes(filePath, attributes | FileAttributes.ReadOnly); 144 | System.Diagnostics.Process.Start(filePath); 145 | 146 | } 147 | catch (System.ComponentModel.Win32Exception) 148 | { 149 | MessageBox.Show("No application is assicated to this file type." + Environment.NewLine + Environment.NewLine + filePath, "No action taken.", MessageBoxButtons.OK, MessageBoxIcon.Information); 150 | return; 151 | 152 | } 153 | catch (Exception ex) 154 | { 155 | ErrorHandler.DisplayMessage(ex); 156 | 157 | } 158 | } 159 | 160 | /// 161 | /// Opens the settings taskpane 162 | /// 163 | /// 164 | public static void OpenSettings() 165 | { 166 | try 167 | { 168 | //open settings form 169 | 170 | } 171 | catch (Exception ex) 172 | { 173 | ErrorHandler.DisplayMessage(ex); 174 | } 175 | } 176 | 177 | /// 178 | /// Opens an as built help file 179 | /// 180 | /// 181 | public static void OpenReadMe() 182 | { 183 | //ErrorHandler.CreateLogRecord(); 184 | System.Diagnostics.Process.Start(Properties.Settings.Default.App_PathReadMe); 185 | 186 | } 187 | 188 | /// 189 | /// Opens an as built help file 190 | /// 191 | /// 192 | public static void OpenNewIssue() 193 | { 194 | //ErrorHandler.CreateLogRecord(); 195 | System.Diagnostics.Process.Start(Properties.Settings.Default.App_PathReportIssue); 196 | 197 | } 198 | 199 | } 200 | } 201 | -------------------------------------------------------------------------------- /CS/Ribbon.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 14 |