├── .gitattributes
├── .gitignore
├── AcadAddinManager.csproj
├── AcadAddinManager.sln
├── AcadAddinManager.sln.DotSettings
├── AcadHelper.cs
├── AddinManager.Bundle.zip
├── AddinManager.Bundle
├── AddinManager.cuix
├── Contents
│ └── AcadAddinManager.dll
└── PackageContents.xml
├── AddinManagerService.cs
├── App.cs
├── Data
├── Addin.cs
├── AddinsData.cs
└── CommandMethod.cs
├── FodyWeavers.xml
├── Properties
└── AssemblyInfo.cs
├── README.md
├── UI
├── AddinVM.cs
├── AddinsVM.cs
├── AddinsView.xaml
└── AddinsView.xaml.cs
├── lib
├── AcCoreMgd.dll
├── AcCoreMgd.xml
├── AcDbMgd.dll
├── AcDbMgd.xml
├── AcMgd.dll
└── AcMgd.xml
├── stylecop.ruleset
└── version.json
/.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 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | bld/
21 | [Bb]in/
22 | [Oo]bj/
23 | [Ll]og/
24 |
25 | # Visual Studio 2015 cache/options directory
26 | .vs/
27 | # Uncomment if you have tasks that create the project's static files in wwwroot
28 | #wwwroot/
29 |
30 | # MSTest test Results
31 | [Tt]est[Rr]esult*/
32 | [Bb]uild[Ll]og.*
33 |
34 | # NUNIT
35 | *.VisualState.xml
36 | TestResult.xml
37 |
38 | # Build Results of an ATL Project
39 | [Dd]ebugPS/
40 | [Rr]eleasePS/
41 | dlldata.c
42 |
43 | # DNX
44 | project.lock.json
45 | project.fragment.lock.json
46 | artifacts/
47 |
48 | *_i.c
49 | *_p.c
50 | *_i.h
51 | *.ilk
52 | *.meta
53 | *.obj
54 | *.pch
55 | *.pdb
56 | *.pgc
57 | *.pgd
58 | *.rsp
59 | *.sbr
60 | *.tlb
61 | *.tli
62 | *.tlh
63 | *.tmp
64 | *.tmp_proj
65 | *.log
66 | *.vspscc
67 | *.vssscc
68 | .builds
69 | *.pidb
70 | *.svclog
71 | *.scc
72 |
73 | # Chutzpah Test files
74 | _Chutzpah*
75 |
76 | # Visual C++ cache files
77 | ipch/
78 | *.aps
79 | *.ncb
80 | *.opendb
81 | *.opensdf
82 | *.sdf
83 | *.cachefile
84 | *.VC.db
85 | *.VC.VC.opendb
86 |
87 | # Visual Studio profiler
88 | *.psess
89 | *.vsp
90 | *.vspx
91 | *.sap
92 |
93 | # TFS 2012 Local Workspace
94 | $tf/
95 |
96 | # Guidance Automation Toolkit
97 | *.gpState
98 |
99 | # ReSharper is a .NET coding add-in
100 | _ReSharper*/
101 | *.[Rr]e[Ss]harper
102 | *.DotSettings.user
103 |
104 | # JustCode is a .NET coding add-in
105 | .JustCode
106 |
107 | # TeamCity is a build add-in
108 | _TeamCity*
109 |
110 | # DotCover is a Code Coverage Tool
111 | *.dotCover
112 |
113 | # NCrunch
114 | _NCrunch_*
115 | .*crunch*.local.xml
116 | nCrunchTemp_*
117 |
118 | # MightyMoose
119 | *.mm.*
120 | AutoTest.Net/
121 |
122 | # Web workbench (sass)
123 | .sass-cache/
124 |
125 | # Installshield output folder
126 | [Ee]xpress/
127 |
128 | # DocProject is a documentation generator add-in
129 | DocProject/buildhelp/
130 | DocProject/Help/*.HxT
131 | DocProject/Help/*.HxC
132 | DocProject/Help/*.hhc
133 | DocProject/Help/*.hhk
134 | DocProject/Help/*.hhp
135 | DocProject/Help/Html2
136 | DocProject/Help/html
137 |
138 | # Click-Once directory
139 | publish/
140 |
141 | # Publish Web Output
142 | *.[Pp]ublish.xml
143 | *.azurePubxml
144 | # TODO: Comment the next line if you want to checkin your web deploy settings
145 | # but database connection strings (with potential passwords) will be unencrypted
146 | #*.pubxml
147 | *.publishproj
148 |
149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
150 | # checkin your Azure Web App publish settings, but sensitive information contained
151 | # in these scripts will be unencrypted
152 | PublishScripts/
153 |
154 | # NuGet Packages
155 | *.nupkg
156 | # The packages folder can be ignored because of Package Restore
157 | **/packages/*
158 | # except build/, which is used as an MSBuild target.
159 | !**/packages/build/
160 | # Uncomment if necessary however generally it will be regenerated when needed
161 | #!**/packages/repositories.config
162 | # NuGet v3's project.json files produces more ignoreable files
163 | *.nuget.props
164 | *.nuget.targets
165 |
166 | # Microsoft Azure Build Output
167 | csx/
168 | *.build.csdef
169 |
170 | # Microsoft Azure Emulator
171 | ecf/
172 | rcf/
173 |
174 | # Windows Store app package directories and files
175 | AppPackages/
176 | BundleArtifacts/
177 | Package.StoreAssociation.xml
178 | _pkginfo.txt
179 |
180 | # Visual Studio cache files
181 | # files ending in .cache can be ignored
182 | *.[Cc]ache
183 | # but keep track of directories ending in .cache
184 | !*.[Cc]ache/
185 |
186 | # Others
187 | ClientBin/
188 | ~$*
189 | *~
190 | *.dbmdl
191 | *.dbproj.schemaview
192 | *.jfm
193 | *.pfx
194 | *.publishsettings
195 | node_modules/
196 | orleans.codegen.cs
197 |
198 | # Since there are multiple workflows, uncomment next line to ignore bower_components
199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
200 | #bower_components/
201 |
202 | # RIA/Silverlight projects
203 | Generated_Code/
204 |
205 | # Backup & report files from converting an old project file
206 | # to a newer Visual Studio version. Backup files are not needed,
207 | # because we have git ;-)
208 | _UpgradeReport_Files/
209 | Backup*/
210 | UpgradeLog*.XML
211 | UpgradeLog*.htm
212 |
213 | # SQL Server files
214 | *.mdf
215 | *.ldf
216 |
217 | # Business Intelligence projects
218 | *.rdl.data
219 | *.bim.layout
220 | *.bim_*.settings
221 |
222 | # Microsoft Fakes
223 | FakesAssemblies/
224 |
225 | # GhostDoc plugin setting file
226 | *.GhostDoc.xml
227 |
228 | # Node.js Tools for Visual Studio
229 | .ntvs_analysis.dat
230 |
231 | # Visual Studio 6 build log
232 | *.plg
233 |
234 | # Visual Studio 6 workspace options file
235 | *.opt
236 |
237 | # Visual Studio LightSwitch build output
238 | **/*.HTMLClient/GeneratedArtifacts
239 | **/*.DesktopClient/GeneratedArtifacts
240 | **/*.DesktopClient/ModelManifest.xml
241 | **/*.Server/GeneratedArtifacts
242 | **/*.Server/ModelManifest.xml
243 | _Pvt_Extensions
244 |
245 | # Paket dependency manager
246 | .paket/paket.exe
247 | paket-files/
248 |
249 | # FAKE - F# Make
250 | .fake/
251 |
252 | # JetBrains Rider
253 | .idea/
254 | *.sln.iml
255 |
256 | # CodeRush
257 | .cr/
258 |
259 | # Python Tools for Visual Studio (PTVS)
260 | __pycache__/
261 | *.pyc
262 | *.jar
263 | FodyWeavers.xsd
264 |
--------------------------------------------------------------------------------
/AcadAddinManager.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {D64C4A0A-6F50-4BF2-9252-043256B9F8CC}
8 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
9 | Library
10 | Properties
11 | AcadAddinManager
12 | AcadAddinManager
13 | v4.7.1
14 | 512
15 |
16 |
17 |
18 |
19 |
20 | true
21 | full
22 | false
23 | bin\Debug\
24 | DEBUG;TRACE
25 | prompt
26 | 4
27 | latest
28 | x64
29 |
30 |
31 | pdbonly
32 | false
33 | bin\Release\
34 | TRACE
35 | prompt
36 | 4
37 | latest
38 | x64
39 |
40 |
41 | true
42 |
43 |
44 |
45 | lib\AcCoreMgd.dll
46 | False
47 |
48 |
49 | lib\AcDbMgd.dll
50 | False
51 |
52 |
53 | lib\AcMgd.dll
54 | False
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | AddinsView.xaml
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 |
110 |
111 | Designer
112 | MSBuild:Compile
113 |
114 |
115 |
116 |
117 | 4.1.0
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | xcopy "$(ProjectDir)bin\Debug" "c:\ProgramData\Autodesk\ApplicationPlugins\AddinManager.Bundle\Contents\" /Y /C /Q
128 |
129 |
130 |
--------------------------------------------------------------------------------
/AcadAddinManager.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.27004.2005
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AcadAddinManager", "AcadAddinManager.csproj", "{D64C4A0A-6F50-4BF2-9252-043256B9F8CC}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {D64C4A0A-6F50-4BF2-9252-043256B9F8CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {D64C4A0A-6F50-4BF2-9252-043256B9F8CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {D64C4A0A-6F50-4BF2-9252-043256B9F8CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {D64C4A0A-6F50-4BF2-9252-043256B9F8CC}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {2480AF53-6AA5-43FA-9667-9CE23EFE81FF}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/AcadAddinManager.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
3 | <?xml version="1.0" encoding="utf-16"?><Profile name="PIK"><CSReorderTypeMembers>True</CSReorderTypeMembers><CSCodeStyleAttributes ArrangeTypeAccessModifier="False" ArrangeTypeMemberAccessModifier="False" SortModifiers="True" RemoveRedundantParentheses="False" AddMissingParentheses="False" ArrangeBraces="False" ArrangeAttributes="False" ArrangeArgumentsStyle="False" ArrangeCodeBodyStyle="False" ArrangeVarStyle="False" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSReformatCode>True</CSReformatCode></Profile>
4 | 0
5 | 1
6 | 1
7 | 1
8 | 1
9 |
10 | NEVER
11 | False
12 | True
13 | False
14 | True
15 | CHOP_IF_LONG
16 | CHOP_IF_LONG
17 | <?xml version="1.0" encoding="utf-16"?>
18 | <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
19 | <TypePattern DisplayName="Non-reorderable types">
20 | <TypePattern.Match>
21 | <Or>
22 | <And>
23 | <Kind Is="Interface" />
24 | <Or>
25 | <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" />
26 | <HasAttribute Name="System.Runtime.InteropServices.ComImport" />
27 | </Or>
28 | </And>
29 | <Kind Is="Struct" />
30 | <HasAttribute Name="JetBrains.Annotations.NoReorderAttribute" />
31 | <HasAttribute Name="JetBrains.Annotations.NoReorder" />
32 | </Or>
33 | </TypePattern.Match>
34 | </TypePattern>
35 | <TypePattern DisplayName="xUnit.net Test Classes" RemoveRegions="All">
36 | <TypePattern.Match>
37 | <And>
38 | <Kind Is="Class" />
39 | <HasMember>
40 | <And>
41 | <Kind Is="Method" />
42 | <HasAttribute Name="Xunit.FactAttribute" Inherited="True" />
43 | </And>
44 | </HasMember>
45 | </And>
46 | </TypePattern.Match>
47 | <Entry DisplayName="Setup/Teardown Methods">
48 | <Entry.Match>
49 | <Or>
50 | <Kind Is="Constructor" />
51 | <And>
52 | <Kind Is="Method" />
53 | <ImplementsInterface Name="System.IDisposable" />
54 | </And>
55 | </Or>
56 | </Entry.Match>
57 | <Entry.SortBy>
58 | <Kind Order="Constructor" />
59 | </Entry.SortBy>
60 | </Entry>
61 | <Entry DisplayName="All other members" />
62 | <Entry Priority="100" DisplayName="Test Methods">
63 | <Entry.Match>
64 | <And>
65 | <Kind Is="Method" />
66 | <HasAttribute Name="Xunit.FactAttribute" />
67 | </And>
68 | </Entry.Match>
69 | <Entry.SortBy>
70 | <Name />
71 | </Entry.SortBy>
72 | </Entry>
73 | </TypePattern>
74 | <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All">
75 | <TypePattern.Match>
76 | <And>
77 | <Kind Is="Class" />
78 | <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" />
79 | </And>
80 | </TypePattern.Match>
81 | <Entry DisplayName="Setup/Teardown Methods">
82 | <Entry.Match>
83 | <And>
84 | <Kind Is="Method" />
85 | <Or>
86 | <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" />
87 | <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" />
88 | <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" />
89 | <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" />
90 | </Or>
91 | </And>
92 | </Entry.Match>
93 | </Entry>
94 | <Entry DisplayName="All other members" />
95 | <Entry Priority="100" DisplayName="Test Methods">
96 | <Entry.Match>
97 | <And>
98 | <Kind Is="Method" />
99 | <HasAttribute Name="NUnit.Framework.TestAttribute" />
100 | </And>
101 | </Entry.Match>
102 | <Entry.SortBy>
103 | <Name />
104 | </Entry.SortBy>
105 | </Entry>
106 | </TypePattern>
107 | <TypePattern DisplayName="Default Pattern">
108 | <Entry DisplayName="Fields">
109 | <Entry.Match>
110 | <Or>
111 | <Kind Is="Constant" />
112 | <Kind Is="Field" />
113 | </Or>
114 | </Entry.Match>
115 | <Entry.SortBy>
116 | <Access />
117 | <Static />
118 | <Readonly />
119 | </Entry.SortBy>
120 | </Entry>
121 | <Entry DisplayName="Constructors">
122 | <Entry.Match>
123 | <Kind Is="Constructor" />
124 | </Entry.Match>
125 | <Entry.SortBy>
126 | <Access />
127 | <Static />
128 | </Entry.SortBy>
129 | </Entry>
130 | <Entry DisplayName="Destructors">
131 | <Entry.Match>
132 | <Kind Is="Destructor" />
133 | </Entry.Match>
134 | </Entry>
135 | <Entry DisplayName="Delegates">
136 | <Entry.Match>
137 | <Kind Is="Delegate" />
138 | </Entry.Match>
139 | <Entry.SortBy>
140 | <Access />
141 | </Entry.SortBy>
142 | </Entry>
143 | <Entry DisplayName="Events">
144 | <Entry.Match>
145 | <Kind Is="Event" />
146 | </Entry.Match>
147 | <Entry.SortBy>
148 | <Access />
149 | <Static />
150 | </Entry.SortBy>
151 | </Entry>
152 | <Entry DisplayName="Enums">
153 | <Entry.Match>
154 | <Kind Is="Enum" />
155 | </Entry.Match>
156 | <Entry.SortBy>
157 | <Access />
158 | </Entry.SortBy>
159 | </Entry>
160 | <Entry DisplayName="Interfaces">
161 | <Entry.Match>
162 | <Kind Is="Interface" />
163 | </Entry.Match>
164 | <Entry.SortBy>
165 | <Access />
166 | </Entry.SortBy>
167 | </Entry>
168 | <Entry DisplayName="Properties">
169 | <Entry.Match>
170 | <Or>
171 | <Kind Is="Property" />
172 | <Kind Is="Autoproperty" />
173 | </Or>
174 | </Entry.Match>
175 | <Entry.SortBy>
176 | <Abstract />
177 | <Access />
178 | <Static />
179 | </Entry.SortBy>
180 | </Entry>
181 | <Entry DisplayName="Indexers">
182 | <Entry.Match>
183 | <Kind Is="Indexer" />
184 | </Entry.Match>
185 | <Entry.SortBy>
186 | <Access />
187 | <Static />
188 | <Readonly />
189 | </Entry.SortBy>
190 | </Entry>
191 | <Entry DisplayName="Methods">
192 | <Entry.Match>
193 | <Kind Is="Method" />
194 | </Entry.Match>
195 | <Entry.SortBy>
196 | <Access />
197 | <Static />
198 | </Entry.SortBy>
199 | </Entry>
200 | <Entry DisplayName="Structs">
201 | <Entry.Match>
202 | <Kind Is="Struct" />
203 | </Entry.Match>
204 | </Entry>
205 | <Entry DisplayName="Classes">
206 | <Entry.Match>
207 | <Kind Is="Class" />
208 | </Entry.Match>
209 | </Entry>
210 | </TypePattern>
211 | </Patterns>
212 | True
213 | True
214 | True
215 | <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" />
216 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
217 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
218 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
219 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
220 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
221 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
222 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
223 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
224 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
225 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
226 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
227 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
228 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
229 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
230 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
231 | <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" />
232 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
233 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
234 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
235 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
236 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
237 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
238 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
239 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
240 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
241 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
242 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
243 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
244 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
245 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
246 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
247 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
248 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
249 | <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" />
250 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
251 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
252 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
253 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
254 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
255 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
256 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
257 | LIVE_MONITOR
258 | LIVE_MONITOR
259 | DO_NOTHING
260 | LIVE_MONITOR
261 | LIVE_MONITOR
262 | LIVE_MONITOR
263 | LIVE_MONITOR
264 | LIVE_MONITOR
265 | LIVE_MONITOR
266 | LIVE_MONITOR
267 | LIVE_MONITOR
268 | DO_NOTHING
269 | LIVE_MONITOR
270 | AUTO_FIX
271 | True
272 | True
273 | True
274 | True
275 | True
276 | True
277 | True
278 | True
279 | True
280 | True
281 | True
282 |
283 |
284 |
285 |
286 |
287 | False
288 |
289 |
290 |
291 |
292 | False
293 |
294 |
295 |
296 |
297 |
298 |
299 |
--------------------------------------------------------------------------------
/AcadHelper.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager
2 | {
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using Autodesk.AutoCAD.ApplicationServices;
9 | using Application = Autodesk.AutoCAD.ApplicationServices.Core.Application;
10 |
11 | public static class AcadHelper
12 | {
13 | public static void Write(this string msg)
14 | {
15 | Application.DocumentManager.MdiActiveDocument?.Editor?.WriteMessage($"\n{msg}");
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AddinManager.Bundle.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vildar82/AcadAddinManager/7e74703241456ae9b4e6fa0568d644892bc54ff4/AddinManager.Bundle.zip
--------------------------------------------------------------------------------
/AddinManager.Bundle/AddinManager.cuix:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vildar82/AcadAddinManager/7e74703241456ae9b4e6fa0568d644892bc54ff4/AddinManager.Bundle/AddinManager.cuix
--------------------------------------------------------------------------------
/AddinManager.Bundle/Contents/AcadAddinManager.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vildar82/AcadAddinManager/7e74703241456ae9b4e6fa0568d644892bc54ff4/AddinManager.Bundle/Contents/AcadAddinManager.dll
--------------------------------------------------------------------------------
/AddinManager.Bundle/PackageContents.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
13 |
14 |
18 |
22 |
23 |
24 |
27 |
28 |
--------------------------------------------------------------------------------
/AddinManagerService.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager
2 | {
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Reflection;
8 | using System.Windows;
9 | using Data;
10 | using UI;
11 | using Autodesk.AutoCAD.Runtime;
12 | using JetBrains.Annotations;
13 | using NetLib.IO;
14 | using NLog;
15 | using Application = Autodesk.AutoCAD.ApplicationServices.Application;
16 | using Exception = System.Exception;
17 | using Path = System.IO.Path;
18 |
19 | public static class AddinManagerService
20 | {
21 | private static CommandMethod lastMethod;
22 | private static AddinsView addinsView;
23 | private static ILogger Log => LogManager.GetCurrentClassLogger();
24 |
25 | public static List Resolvers { get; set; }
26 |
27 | public static void ClearAddins()
28 | {
29 | var addinDir = GetTempDir();
30 | try
31 | {
32 | Directory.Delete(addinDir, true);
33 | $"Очищена папка загрузки плагинов '{addinDir}'.".Write();
34 | }
35 | catch (Exception ex)
36 | {
37 | Log.Error(ex);
38 | $"Ошибка очистки папки загрузки плагинов '{addinDir}' - {ex.Message}.".Write();
39 | }
40 | }
41 |
42 | [CommandMethod("AddinManager", CommandFlags.Session)]
43 | public static void AddinManager()
44 | {
45 | try
46 | {
47 | if (addinsView == null)
48 | {
49 | var addinsVM = new AddinsVM();
50 | addinsView = new AddinsView(addinsVM);
51 | }
52 |
53 | Autodesk.AutoCAD.ApplicationServices.Core.Application.ShowModelessWindow(addinsView);
54 | }
55 | catch (OperationCanceledException)
56 | {
57 | // Отменено пользователем
58 | }
59 | catch (Exception ex)
60 | {
61 | Log.Error(ex);
62 | throw;
63 | }
64 | }
65 |
66 | [CommandMethod("AddinManagerLast", CommandFlags.Session)]
67 | public static void AddinManagerLast()
68 | {
69 | try
70 | {
71 | if (lastMethod == null)
72 | {
73 | AddinManager();
74 | return;
75 | }
76 |
77 | UpdateAndInvoke(lastMethod);
78 | }
79 | catch (OperationCanceledException)
80 | {
81 | }
82 | catch (Exception ex)
83 | {
84 | Log.Error(ex);
85 | throw;
86 | }
87 | }
88 |
89 | public static void UpdateAndInvoke(CommandMethod command)
90 | {
91 | if (NetLib.IO.Path.IsNewestFile(lastMethod.Addin.AddinFile, lastMethod.Addin.AddinTempFile))
92 | {
93 | lastMethod.Addin = GetAddin(lastMethod.Addin.AddinFile);
94 | var method = lastMethod.Addin.Commands.FirstOrDefault(m => m.Method.Name == lastMethod.Method.Name &&
95 | m.Command.GlobalName == lastMethod.Command.GlobalName);
96 | if (method == null)
97 | {
98 | MessageBox.Show($"Не найдена команда {lastMethod.Command.GlobalName} ({lastMethod.Method.Name}).",
99 | "AddinManager", MessageBoxButton.OK, MessageBoxImage.Error);
100 | AddinManager();
101 | return;
102 | }
103 |
104 | lastMethod = method;
105 | $"Сборка обновлена - {lastMethod.Addin.AddinFile} от {File.GetLastWriteTime(lastMethod.Addin.AddinFile):dd.MM.yy HH:mm:ss}.".Write();
106 | }
107 |
108 | Invoke(lastMethod);
109 | }
110 |
111 | public static void Invoke(CommandMethod commandMethod)
112 | {
113 | lastMethod = commandMethod;
114 | Resolvers = commandMethod.Addin.Resolvers;
115 | Application.Idle += InvokeOnIdle;
116 | }
117 |
118 | private static void InvokeOnIdle(object sender, EventArgs e)
119 | {
120 | Application.Idle -= InvokeOnIdle;
121 | try
122 | {
123 | var doc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
124 | LoadResolvers(Resolvers);
125 | var method = lastMethod.Method;
126 | using (doc.LockDocument())
127 | {
128 | if (method.IsStatic)
129 | {
130 | method.Invoke(null, null);
131 | }
132 | else
133 | {
134 | var instance = Activator.CreateInstance(method.DeclaringType);
135 | method.Invoke(instance, null);
136 | }
137 | }
138 | }
139 | finally
140 | {
141 | AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
142 | }
143 | }
144 |
145 | [NotNull]
146 | public static Addin GetAddin(string addinFile)
147 | {
148 | var addin = new Addin {AddinFile = addinFile};
149 | addin.AddinTempFile = GetTempAddin(addin.AddinFile);
150 | addin.Resolvers = DllResolve.GetDllResolve(Path.GetDirectoryName(addin.AddinTempFile),
151 | SearchOption.AllDirectories, ".dll", ".exe");
152 | Resolvers = addin.Resolvers;
153 | AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
154 | AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
155 | var addinAsm = Assembly.LoadFile(addin.AddinTempFile);
156 | addin.Commands = GetCommandMethods(addinAsm, addin);
157 | return addin;
158 | }
159 |
160 | private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
161 | {
162 | try
163 | {
164 | return Resolvers.FirstOrDefault(r => r.IsResolve(args.Name))?.LoadAssembly();
165 | }
166 | catch (Exception ex)
167 | {
168 | Log.Error(ex);
169 | ex.Message.Write();
170 | return null;
171 | }
172 | }
173 |
174 | [NotNull]
175 | private static List GetCommandMethods(Assembly asm, Addin addin)
176 | {
177 | return (from type in asm.GetTypes()
178 | from methodInfo in type.GetMethods().ToList()
179 | let commandAtr = methodInfo.GetCustomAttributes(typeof(CommandMethodAttribute), false).FirstOrDefault()
180 | where commandAtr != null
181 | select new CommandMethod
182 | {
183 | Command = (CommandMethodAttribute) commandAtr,
184 | Method = methodInfo,
185 | Addin = addin
186 | }).OrderBy(o => o.Command.GlobalName).ToList();
187 | }
188 |
189 | private static string GetTempAddin(string addinFile)
190 | {
191 | var dir = Path.GetDirectoryName(addinFile);
192 | var guid = Guid.NewGuid().ToString();
193 | var tempDir = Path.Combine(GetTempDir(), guid);
194 | Directory.CreateDirectory(tempDir);
195 | NetLib.IO.Path.CopyDirectory(dir, tempDir);
196 | return Path.Combine(tempDir, Path.GetFileName(addinFile));
197 | }
198 |
199 | private static string GetTempDir()
200 | {
201 | return Path.Combine(Path.GetTempPath(), "AcadAddinManager");
202 | }
203 |
204 | private static void LoadResolvers(List resolvers)
205 | {
206 | foreach (var dllResolve in resolvers)
207 | {
208 | try
209 | {
210 | Assembly.LoadFrom(dllResolve.DllFile);
211 | }
212 | catch (Exception ex)
213 | {
214 | Log.Error(ex);
215 | ex.Message.Write();
216 | }
217 | }
218 | }
219 | }
220 | }
--------------------------------------------------------------------------------
/App.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager
2 | {
3 | using Autodesk.AutoCAD.Runtime;
4 |
5 | class App : IExtensionApplication
6 | {
7 | public void Initialize()
8 | {
9 | "Загружен AddinManager. Команды:\nAddinManager - выбор плагина и запуск команды,\nAddinManagerLast - запуск последней команды.".Write();
10 | AddinManagerService.ClearAddins();
11 | }
12 |
13 | public void Terminate()
14 | {
15 | AddinManagerService.ClearAddins();
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Data/Addin.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager.Data
2 | {
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Reactive.Linq;
6 | using System.Text.RegularExpressions;
7 | using System.Windows.Threading;
8 | using NetLib;
9 | using NetLib.IO;
10 | using NetLib.WPF;
11 | using ReactiveUI;
12 | using ReactiveUI.Legacy;
13 |
14 | public class Addin
15 | {
16 | public string AddinFile { get; set; }
17 | public string AddinTempFile { get; set; }
18 | public List Resolvers { get; set; }
19 | public List Commands { get; set; }
20 | }
21 | }
--------------------------------------------------------------------------------
/Data/AddinsData.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager.Data
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class AddinsData
6 | {
7 | public List AddinFiles { get; set; } = new List();
8 |
9 | public string LastAddin { get; set; }
10 |
11 | public string LastCommand { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Data/CommandMethod.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager.Data
2 | {
3 | using System.Reflection;
4 | using Autodesk.AutoCAD.Runtime;
5 |
6 | public class CommandMethod
7 | {
8 | public CommandMethodAttribute Command { get; set; }
9 | public MethodInfo Method { get; set; }
10 | public Addin Addin { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using AcadAddinManager;
5 | using Autodesk.AutoCAD.Runtime;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("AcadAddinManager")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("")]
14 | [assembly: AssemblyProduct("AcadAddinManager")]
15 | [assembly: AssemblyCopyright("Copyright © 2017")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 | [assembly: CommandClass(typeof(AddinManagerService))]
19 | [assembly: ExtensionApplication(typeof(App))]
20 |
21 | // Setting ComVisible to false makes the types in this assembly not visible
22 | // to COM components. If you need to access a type in this assembly from
23 | // COM, set the ComVisible attribute to true on that type.
24 | [assembly: ComVisible(false)]
25 |
26 | // The following GUID is for the ID of the typelib if this project is exposed to COM
27 | [assembly: Guid("d64c4a0a-6f50-4bf2-9252-043256b9f8cc")]
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AutoCAD Addin Manager
2 | Update NET assemblies without restart AutoCAD.
3 |
4 | ## Instalation
5 | Copy AddinManager.Bundle to ApplicationPlugins AutoCAD: c:\ProgramData\Autodesk\ApplicationPlugins, or %appdata%\Autodesk\ApplicationPlugins.
6 |
7 | ## Use
8 | Commands:
9 | * AddinManager - select assembly file and command method and run it.
10 | * AddinManagerLast - update assembly and run last selected method.
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/UI/AddinVM.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager.UI
2 | {
3 | using System;
4 | using System.Collections.ObjectModel;
5 | using System.IO;
6 | using System.Reactive.Linq;
7 | using System.Text.RegularExpressions;
8 | using Data;
9 | using DynamicData;
10 | using NetLib;
11 | using NetLib.WPF;
12 | using ReactiveUI;
13 |
14 | public class AddinVM : BaseModel
15 | {
16 | public AddinVM(Addin addin)
17 | {
18 | Addin = addin;
19 | Name = Path.GetFileName(addin.AddinFile);
20 |
21 | AllCommands = new SourceList();
22 | AllCommands.AddRange(addin.Commands);
23 |
24 | var searchObs = this.WhenAnyValue(v => v.Filter).Skip(1)
25 | .Throttle(TimeSpan.FromMilliseconds(300)).Select(s => true);
26 | AllCommands.Connect()
27 | .Filter(filter)
28 | .AutoRefreshOnObservable(c => searchObs)
29 | .Bind(out var data)
30 | .Subscribe();
31 | Commands = data;
32 | }
33 |
34 | public Addin Addin { get; set; }
35 | public string Name { get; set; }
36 |
37 | public string Filter { get; set; }
38 | public SourceList AllCommands { get; set; }
39 | public ReadOnlyObservableCollection Commands { get; set; }
40 |
41 | private bool filter(CommandMethod com)
42 | {
43 | return Filter.IsNullOrEmpty() || Regex.IsMatch(com.Command.GlobalName, Filter, RegexOptions.IgnoreCase);
44 | }
45 |
46 | public void Update()
47 | {
48 | Addin = AddinManagerService.GetAddin(Addin.AddinFile);
49 | AllCommands.Clear();
50 | AllCommands.AddRange(Addin.Commands);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/UI/AddinsVM.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager.UI
2 | {
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Collections.ObjectModel;
6 | using System.Linq;
7 | using System.Reactive;
8 | using System.Reactive.Linq;
9 | using System.Text.RegularExpressions;
10 | using System.Threading.Tasks;
11 | using Data;
12 | using DynamicData;
13 | using Microsoft.Win32;
14 | using NetLib;
15 | using NetLib.WPF;
16 | using ReactiveUI;
17 |
18 | public class AddinsVM : BaseViewModel
19 | {
20 | private LocalFileData fileData;
21 | private string errors;
22 |
23 | public AddinsVM()
24 | {
25 | Init();
26 | }
27 |
28 | public string Search { get; set; }
29 |
30 | public SourceList AllAddins { get; set; }
31 |
32 | public ReadOnlyObservableCollection Addins { get; set; }
33 |
34 | public AddinVM Addin { get; set; }
35 |
36 | public CommandMethod Command { get; set; }
37 |
38 | public ReactiveCommand Start { get; set; }
39 |
40 | public ReactiveCommand RemoveAddin { get; set; }
41 |
42 | public ReactiveCommand AddAddin { get; set; }
43 |
44 | public ReactiveCommand UpdateCommands { get; set; }
45 |
46 | private async void Init()
47 | {
48 | var addins = await LoadAddins();
49 | AllAddins = new SourceList();
50 | AllAddins.AddRange(addins.Select(s => new AddinVM(s)));
51 |
52 | var searchObs = this.WhenAnyValue(v => v.Search).Skip(1).Throttle(TimeSpan.FromMilliseconds(300)).Select(s => true);
53 | AllAddins.Connect()
54 | .Filter(filter)
55 | .AutoRefreshOnObservable(c => searchObs)
56 | .Bind(out var data)
57 | .Subscribe();
58 | Addins = data;
59 |
60 | if (!fileData.Data.LastAddin.IsNullOrEmpty())
61 | {
62 | Addin = AllAddins.Items.FirstOrDefault(a => a.Addin.AddinFile.EqualsIgnoreCase(fileData.Data.LastAddin));
63 | if (Addin != null && !fileData.Data.LastCommand.IsNullOrEmpty())
64 | Command = Addin.Addin.Commands.FirstOrDefault(
65 | c => c.Command.GlobalName == fileData.Data.LastCommand);
66 | }
67 |
68 | var canStart = this.WhenAnyValue(v => v.Command).Select(s => s != null);
69 | Start = CreateCommand(() =>
70 | {
71 | HideMe();
72 | var addin = Addin;
73 | var com = Command;
74 | fileData.Data.AddinFiles.Remove(addin.Addin.AddinFile);
75 | fileData.Data.AddinFiles.Insert(0, addin.Addin.AddinFile);
76 | fileData.Data.LastAddin = addin.Addin.AddinFile;
77 | fileData.Data.LastCommand = Command.Method.Name;
78 | OnClosing();
79 | AllAddins.Remove(addin);
80 | AllAddins.Insert(0, addin);
81 | Addin = addin;
82 | Command = com;
83 | AddinManagerService.Invoke(com);
84 | }, canStart);
85 | RemoveAddin = CreateCommand(a =>
86 | {
87 | AllAddins.Remove(a);
88 | fileData.Data.AddinFiles.Remove(a.Addin.AddinFile);
89 | });
90 | AddAddin = CreateCommand(AddAddinExec);
91 | if (!errors.IsNullOrEmpty())
92 | ShowMessage(errors, "Ошибка загрузки файлов сборок");
93 |
94 | UpdateCommands = CreateCommand(UpdateCommandsExec);
95 | }
96 |
97 | private bool filter(AddinVM ad)
98 | {
99 | return Search.IsNullOrEmpty() || Regex.IsMatch(ad.Addin.AddinFile, Search, RegexOptions.IgnoreCase);
100 | }
101 |
102 | private Task> LoadAddins()
103 | {
104 | return Task.Run(() =>
105 | {
106 | var file = NetLib.IO.Path.GetUserPluginFile("AcadAddinManager", "AcadAddinManagerData.json");
107 | fileData = new LocalFileData(file, false);
108 | fileData.TryLoad(() => new AddinsData());
109 | errors = string.Empty;
110 | return fileData.Data.AddinFiles.Select(s =>
111 | {
112 | try
113 | {
114 | return AddinManagerService.GetAddin(s);
115 | }
116 | catch (Exception ex)
117 | {
118 | errors += $"{s} - {ex.Message}.\n\n";
119 | return null;
120 | }
121 | })
122 | .Where(w => w != null).ToList();
123 | });
124 | }
125 |
126 | ///
127 | public override void OnClosing()
128 | {
129 | fileData.Data.AddinFiles = AllAddins.Items.Select(s => s.Addin.AddinFile).ToList();
130 | fileData.TrySave();
131 | }
132 |
133 | private void AddAddinExec()
134 | {
135 | var file = SelectAddin();
136 | var addinExist = AllAddins.Items.FirstOrDefault(a => a.Addin.AddinFile.EqualsIgnoreCase(file));
137 | if (addinExist != null)
138 | {
139 | ShowMessage("Такая сборка уже есть");
140 | Addin = addinExist;
141 | return;
142 | }
143 |
144 | var addin = AddinManagerService.GetAddin(file);
145 | AllAddins.Insert(0, new AddinVM(addin));
146 | fileData.Data.AddinFiles.Insert(0, file);
147 | }
148 |
149 | private static string SelectAddin()
150 | {
151 | var dlg = new OpenFileDialog
152 | {
153 | Title = "AddinManager - выбор сборки плагина autocad",
154 | Filter = "Net assembly files (*.dll) | *.dll;"
155 | };
156 | return dlg.ShowDialog() == true ? dlg.FileName : throw new OperationCanceledException();
157 | }
158 |
159 | private void UpdateCommandsExec()
160 | {
161 | Addin?.Update();
162 | }
163 | }
164 | }
165 |
--------------------------------------------------------------------------------
/UI/AddinsView.xaml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
26 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
63 |
65 |
66 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/UI/AddinsView.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace AcadAddinManager.UI
2 | {
3 | ///
4 | /// Interaction logic for AddinsView.xaml
5 | ///
6 | public partial class AddinsView
7 | {
8 | public AddinsView(AddinsVM vm)
9 | : base (vm)
10 | {
11 | InitializeComponent();
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/AcCoreMgd.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vildar82/AcadAddinManager/7e74703241456ae9b4e6fa0568d644892bc54ff4/lib/AcCoreMgd.dll
--------------------------------------------------------------------------------
/lib/AcDbMgd.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vildar82/AcadAddinManager/7e74703241456ae9b4e6fa0568d644892bc54ff4/lib/AcDbMgd.dll
--------------------------------------------------------------------------------
/lib/AcMgd.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vildar82/AcadAddinManager/7e74703241456ae9b4e6fa0568d644892bc54ff4/lib/AcMgd.dll
--------------------------------------------------------------------------------
/lib/AcMgd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | AcMgd
5 |
6 |
7 |
8 |
9 | Wrapper (wraps AcApDocWindow)
10 |
11 |
12 | Closes the document window.
13 |
14 |
15 | Activates the document window.
16 |
17 |
18 | This event will be sent when the document for the document window is ready.
19 |
20 |
21 | Gets or sets the title of the document window.
22 |
23 |
24 | Gets the document attached to the document window.
25 |
26 |
27 |
28 | Class used for creating WPF based document window
29 |
30 |
31 | Constructor, using a WPF visual to create a WPF document window.
32 | WPF visual to be used to create WPF document window as a sub-window of AutoCAD
33 |
34 |
35 |
36 | Wrapper (wraps AcApDocWindowManager)
37 |
38 |
39 | This is LookupDocumentWindow, a member of class DocumentWindowCollection.
40 |
41 |
42 | Get the enumerator used to iterate document windows inside document window collection.
43 |
44 |
45 | Change the order of document windows.
46 | Document window to be moved
47 | New index for where to put the document window moved as the new position, the range for this parameter should be between 0 and Count-1
48 |
49 |
50 | Add a web page as a document window to the document window collection.
51 | Title of the document window which will be shown in the file tab
52 | URI of the web page
53 |
54 |
55 | Add the document to the document window collection.
56 | document window to be added into document window collection
57 |
58 |
59 | Event triggered when a document window is activated.
60 |
61 |
62 | This is CopyTo, a member of class DocumentWindowCollection.
63 |
64 |
65 | Arrange icons for MDI child windows.
66 |
67 |
68 | Tile vertically for MDI child windows.
69 |
70 |
71 | Tile horizontally for MDI child windows.
72 |
73 |
74 | Cascade for MDI child windows.
75 |
76 |
77 | This is Dispose, a member of class DocumentWindowCollection.
78 |
79 |
80 | Gets the count of all the document windows.
81 |
82 |
83 | Gets which document window is currently activated.
84 |
85 |
86 | This is SyncRoot, a member of class DocumentWindowCollection.
87 |
88 |
89 | This is IsSynchronized, a member of class DocumentWindowCollection.
90 |
91 |
92 |
93 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewActionBase.
94 |
95 |
96 | This is Execute, a member of class LivePreviewActionBase.
97 |
98 |
99 | This is OnAborted, a member of class LivePreviewActionBase.
100 |
101 |
102 |
103 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewContextProxy.
104 |
105 |
106 | This is Dispose, a member of class LivePreviewContextProxy.
107 |
108 |
109 |
110 | This class holds information related to a menu item.
111 |
112 |
113 | Constructs a new menu item with a given icon.
114 | Input new item name
115 | Input new icon
116 |
117 |
118 | Constructs a new menu item.
119 | Input new item
120 |
121 |
122 | Occurs when the menu item is clicked by the user.
123 |
124 |
125 | String displayed by the MenuItem.
126 |
127 |
128 | True if the MenuItem is enabled otherwise false.
129 |
130 |
131 | True if the MenuItem is visible otherwise false.
132 |
133 |
134 | True if the MenuItem is checked otherwise false.
135 |
136 |
137 | Returns the Icon property value.
138 |
139 |
140 |
141 | This .NET class wraps the AduiPaletteSet ObjectARX class. This class now supports themed icons for the Palette set icon that is displayed in the caption of the palette set. The new Theme-based Icon methods supercede the SetIcon and GetIcon methods of a Winforms of WPF palette set is to be themed. If a palette set does not support theming, then the new themed APIs need not be used.
142 |
143 |
144 | Constructs a new palette set with the given name.
145 | Input name of palette set
146 |
147 |
148 |
149 | This function is equivalent to CAdUiPaletteSet::SetAllowTransparency()..
150 | Input true to enable transparency
151 |
152 |
153 | Activates palette set window based on the index specified.
154 | Input index to activate
155 |
156 |
157 |
158 | Returns either the small (16x16) or large icon (32x32) of the palette set for the current theme.
159 |
160 |
161 | A convenience method for setting the large and small icon for the given theme of the palette.
162 | icon to be set
163 | theme to be applied to
164 |
165 |
166 | This is Add, a member of class PaletteSet.
167 |
168 |
169 | Adds palette set window.
170 | Input palette name
171 | Input palette control
172 |
173 |
174 |
175 | This is AddVisual, a member of class PaletteSet.
176 |
177 |
178 | Adds a visual window.
179 | Input palette name
180 | Input visual control
181 |
182 |
183 | Floats the PaletteSet with area position and size specified by the Rectangle.
184 | Rectangle specifying the position and size of the floating PaletteSet
185 |
186 |
187 | Makes the PaletteSet floating.
188 | Top left positon on the screen where PaletteSet will be positioned.
189 |
190 |
191 | Removes palette set window based on the index specified.
192 | Input index of item to remove
193 |
194 |
195 | Copies the palette in this palette set to the array starting from the specified index.
196 | Input target array
197 | Input first index to copy elements to
198 |
199 |
200 | Returns the IEnumerator interface to enumerate the elements of the collection.
201 |
202 |
203 | Occurs when the palette set data is loaded from XML.
204 |
205 |
206 | Occurs when the palette set data is saved to XML.
207 |
208 |
209 | Occurs when a detail of the palette set's state has changed.
210 |
211 |
212 | This is Focused, a member of class PaletteSet.
213 |
214 |
215 | Occurs when the palette set size changes.
216 |
217 |
218 | Occurs when the palette set data is activated.
219 |
220 |
221 | Occurs when the palette is given a context menu.
222 |
223 |
224 | Returns the palette set style.
225 |
226 |
227 | Controls if the palette set can be docked by the user.
228 |
229 |
230 | Returns the AutoRollUp property value.
231 |
232 |
233 | Returns the RolledUp property value.
234 |
235 |
236 | Name of the palette set window.
237 |
238 |
239 | Returns the Count property value.
240 |
241 |
242 | Opacity of the palette set window.
243 |
244 |
245 | Location of the palette set window title bar.
246 |
247 |
248 | Gets or sets whether the palette set will keep the input focus even when AutoCAD requests the focus.
249 |
250 |
251 | Returns the Dock property value.
252 |
253 |
254 | Provides access to the 16x16 palette set icon used when the light theme is active.
255 |
256 |
257 | Provides access to the 32x32 palette set icon used when the light theme is active.
258 |
259 |
260 | Provides access to the 16x16 palette set icon used when the dark theme is active.
261 |
262 |
263 | Provides access to the 32x32 palette set icon used when the dark theme is active.
264 |
265 |
266 | True if the palette set window is visible; otherwise false.
267 |
268 |
269 | This is DeviceIndependentSize, a member of class PaletteSet.
270 |
271 |
272 | This is DeviceIndependentLocation, a member of class PaletteSet.
273 |
274 |
275 | Minimum size of the palette set window.
276 |
277 |
278 | Returns the Anchored property value.
279 |
280 |
281 | Actual size of the palette set window.
282 |
283 |
284 | Location of the palette set window.
285 |
286 |
287 | This is Icon, a member of class PaletteSet.
288 |
289 |
290 |
291 | This class contains information necessary to extend a tabbed dialog.
292 |
293 |
294 | Accesses the control that fills the client area of the tab.
295 |
296 |
297 | Accesses the event handler that is called when the user clicks the OK button in the main dialog to apply changes and dismiss the dialog.
298 |
299 |
300 | Accesses the event handler that is called when the main dialog is canceled.
301 |
302 |
303 | Accesses the event handler that is called when the user clicks the Help button in the main dialog.
304 |
305 |
306 | Accesses the event handler that is called when the user clicks the Apply button in the main dialog to apply changes.
307 |
308 |
309 |
310 | This type allows users to extend various context (shortcut) menus in AutoCAD. There are 3 scenarios where this class can be used:
311 |
312 |
313 | Occurs when the ContextMenuExtension object is displayed by AutoCAD.
314 |
315 |
316 | Returns a string representing title.
317 |
318 |
319 |
320 | Applications derive from this class to implement custom drag-and-drop behavior in AutoCAD. See the Microsoft documentation for the IDropTarget interface for detailed information.
321 |
322 |
323 | See the Microsoft .NET API documentation for details.
324 |
325 |
326 |
327 | This .NET class wraps the AcPane ObjectARX class.
328 |
329 |
330 | Default constructor.
331 |
332 |
333 | Returns the text displayed in the pane.
334 |
335 |
336 | Returns the current pane style.
337 |
338 |
339 | Returns the new minimum width for the pane (in logical units). When an icon is displayed in the pane, any value less than the icon width (16) is ignored. The default minimum pane width is 0.
340 |
341 |
342 | Returns the maximum width for the pane, in logical units. The default maximum pane width is 0, which means the pane will be sized according to the pane text. This value is ignored when an icon is displayed in the pane.
343 |
344 |
345 |
346 | This .NET class wraps the AcTrayItem ObjectARX class.
347 |
348 |
349 | Default constructor.
350 |
351 |
352 | Wraps AcTrayItem.ShowBubbleWindow. Displays a bubble notification window next to the tray item icon in the tray icon area of the status bar. The bubble window base point is centered on the tray item icon.
353 | Input bubble to show
354 |
355 |
356 | Wraps AcTrayItem.CloseAllBubbleWindows.
357 |
358 |
359 |
360 | This .NET class wraps the AcTrayItemBubbleWindowControl ObjectARX class.
361 |
362 |
363 | Wraps the following functions:.
364 |
365 |
366 | Wraps the following functions: AcTrayItemBubbleWindowControl.GetIconType, AcTrayItemBubbleWindowControl.SetIconType.
367 |
368 |
369 | Accesses the title string that is displayed in the bubble window.
370 |
371 |
372 | Accesses the descriptive text that is displayed in the bubble window.
373 |
374 |
375 | Accesses the hyperlink text that is displayed in the bubble window.
376 |
377 |
378 | Accesses the URL string that is invoked when the user selects the hyperlink text in the bubble window.
379 |
380 |
381 | Accesses the descriptive text that is displayed below the hypertext( if there is any) in the bubble window.
382 |
383 |
384 |
385 | This class contains parameters and operations related to tabbed dialog related events.
386 |
387 |
388 | Add user defined page to the tabbed dialog firing this event.
389 | Input the name of the newly created tab.
390 | Input a TabeddedDialogExtension that is responsible for the client area of the new tab.
391 |
392 |
393 |
394 | This class provides event parameters related to the mouse-down events in the status bar area.
395 |
396 |
397 | X mouse screen coordinate.
398 |
399 |
400 | Y mouse screen coordinate.
401 |
402 |
403 | Returns true if the mouse event is a double click; otherwise, returns false.
404 |
405 |
406 | Returns the Button property value.
407 |
408 |
409 |
410 | This class provides data for the TrayItemBubbleWindow.Closed event.
411 |
412 |
413 | Accesses the close reason property.
414 |
415 |
416 |
417 | This .NET class wraps the AcApStatusBar ObjectARX class.
418 |
419 |
420 | Returns the specified default pane or null if the specified pane is not found in the status bar.
421 | Input one of the valid values from DefaultPane enumeration.
422 |
423 |
424 | Removes one or more default panes from the status bar.
425 | Input Autodesk.AutoCAD.Windows.DefaultPane object. Input bitwise union of one or more of the valid DefaultPane enums.
426 |
427 |
428 | Closes the bubble window.
429 |
430 |
431 | Updates all panes and tray items in the status bar.
432 |
433 |
434 | Gets the collection of Panes in the status bar.
435 |
436 |
437 | Gets the collection of TrayItems in the status bar.
438 |
439 |
440 | Accesses the window of the status bar.
441 |
442 |
443 |
444 | This class represents a collection of panes.
445 |
446 |
447 | Returns an IEnumerator for the collection.
448 |
449 |
450 | Removes the value based on the index specified.
451 | Input index of item to remove
452 |
453 |
454 | Clears the object represented by value from this collection.
455 |
456 |
457 | Copies the PaneCollection class or a portion of it to a one-dimensional array.
458 | Input one-dimensional array that is the destination
459 | Input zero-based index in array at which copying begins.
460 |
461 |
462 | Inserts value at position index in the collection.
463 | Input index to insert at
464 | Input to insert
465 |
466 |
467 | Removes the object represented by value from this collection.
468 | Input pane to remove
469 |
470 |
471 | Returns a value indicating whether the collection contains an object that matches value.
472 | Input object to check for
473 |
474 |
475 | Returns the zero-based index of the collection item that matches value.
476 | Input object to retrieve index of
477 |
478 |
479 | Adds the object represented by value to this collection. Returns the zero-based index of the newly added collection item.
480 | Input object to add
481 |
482 |
483 | Gets the number of elements contained in the PaneCollection object.
484 |
485 |
486 | Gets a value indicating whether the PaneCollection has a fixed size.
487 |
488 |
489 | Gets a value indicating whether the PaneCollection is read-only.
490 |
491 |
492 |
493 | This class represents a collection of TrayItem objects.
494 |
495 |
496 | Returns an IEnumerator for this collection.
497 |
498 |
499 | Removes the item in the collection at position index.
500 | Input index to remove at
501 |
502 |
503 | Clears or reset tray item collection.
504 |
505 |
506 | Copies this collection or a portion of it to a one-dimensional array.
507 | Input Autodesk.AutoCAD.Windows.TrayItem object. One-dimensional array that is the destination of the elements copied from TrayItemCollection; the array must have zero-based indexing.
508 | Input. The zero-based index in array at which copying begins.
509 |
510 |
511 | Inserts value at position index in the collection.
512 | Input index to insert at
513 | Input value to insert
514 |
515 |
516 | Removes tray item from the status bar.
517 | Input value to remove
518 |
519 |
520 | Returns a value indicating whether the collection contains an object that matches value.
521 | Input value to check for
522 |
523 |
524 | Returns the zero-based index of the collection item that matches value.
525 | Input value to retrieve the index of
526 |
527 |
528 | Adds the object represented by value to this collection. Returns the zero-based index of the newly added collection item.
529 | Input value to add
530 |
531 |
532 | Accesses the number of elements actually contained in the TrayItemCollection.
533 |
534 |
535 | True if the TrayItemCollection has a fixed size; otherwise, false. The default is false.
536 |
537 |
538 | True if the TrayItemCollection is read-only; otherwise, false. The default is false.
539 |
540 |
541 |
542 | This .NET enum wraps the AcDefaultPane ObjectARX enum. This contains the default panes for the application status bar.
543 |
544 |
545 |
546 | This .NET class wraps the AcStatusBarItem ObjectARX class.
547 |
548 |
549 | Wraps the following functions:.
550 |
551 |
552 | This callback function is invoked when a pane or tray item is removed from the status bar.
553 |
554 |
555 | Wraps AcStatusBarItem.ScreenToClient. This function converts the screen coordinates of a specified point on the screen to client-area coordinates. The new coordinates are relative to the upper-left corner of the status bar control window client area.
556 | Input or POINT structure that contains the screen coordinates to be converted.
557 |
558 |
559 | Wraps AcStatusBarItem.ClientToScreen. This function uses the status bar control window's client coordinates in the POINT structure or in the CPoint object pointed to by p to compute new screen coordinates. It then replaces the coordinates in the structure with the new coordinates. The new screen coordinates are relative to the upper-left corner of the system display.
560 | Input or POINT structure that contains the client coordinates to be converted.
561 |
562 |
563 | Returns the icon object representing the icon displayed for the pane or tray item in the status bar.
564 |
565 |
566 | Returns the pane's or tray item's tooltip text.
567 |
568 |
569 | This enables or disables the status bar item, which is a pane or a tray item.
570 |
571 |
572 | Hides or shows the pane or tray item.
573 |
574 |
575 |
576 | This .NET enum wraps the possible values returned by the AcPane.GetStyle() ObjectARX function. This function returns the current pane style.
577 |
578 |
579 |
580 | This .NET enum wraps an AcTrayItemBubbleWindowControl ObjectARX enum.
581 |
582 |
583 |
584 | This .NET enum wraps the possible values returned by the AcTrayItemBubbleWindowControl.GetIconType() ObjectARX function. This function returns the bubble window icon type.
585 |
586 |
587 |
588 | This is the base class for various menu-like types.
589 |
590 |
591 | Returns the MenuItems contained in this Menu.
592 |
593 |
594 |
595 | This collection contains MenuItem objects.
596 |
597 |
598 | Constructs a new collection.
599 | Input the parent for this object
600 |
601 |
602 | Returns an enumerator object for this collection.
603 |
604 |
605 | Removes the object whose index in the collection is index.
606 | Input index of item to remove.
607 |
608 |
609 | Removes all objects from the collection.
610 |
611 |
612 | Copies this collection or a portion of it to a one-dimensional array.
613 | Input one-dimensional array that is the destination of the elements copied from this collection; the array must have zero-based indexing.
614 | Input the zero-based index in array at which copying begins.
615 |
616 |
617 | Inserts an element into the MenuItemCollection at the specified index.
618 | Input the zero-based index at which value should be inserted.
619 | Input the MenuItem to insert. The value can be a null reference.
620 |
621 |
622 | Removes the first occurrence of a specific object from the collection.
623 | Input the MenuItem to remove from the collection; the value can be a null reference.
624 |
625 |
626 | Determines whether an element is in the MenuItemCollection. Returns true if value is found in the MenuItemCollection; otherwise, returns false.
627 | Input the MenuItem to locate in this collection; the value can be a null reference.
628 |
629 |
630 | Searches for the specified MenuItem and returns the zero-based index of the first occurrence of value within the entire collection, if found; otherwise, returns -1.
631 | Input the MenuItem to locate in the collection; the value can be a null reference.
632 |
633 |
634 | Adds an object to the end of the MenuItemCollection. Returns the MenuItemCollection index at which the value has been added.
635 | Input the MenuItem to be added to the end of this collection; the value can be a null reference.
636 |
637 |
638 | Returns the number of elements actually contained in the MenuItemCollection.
639 |
640 |
641 | Gets a value indicating whether the MenuItemCollection has a fixed size.
642 |
643 |
644 | Gets a value indicating whether the MenuItemCollection is read-only.
645 |
646 |
647 |
648 |
649 |
650 | Adds a default mode context (shortcut) menu.
651 | Input Autodesk.AutoCAD.Windows.ContextMenuExtension object. The context (shortcut) menu to be displayed as part of the default context menu.
652 |
653 |
654 | Removes a mode context (shortcut) menu for a given class.
655 | Input Autodesk.AutoCAD.Windows.ContextMenuExtension object. The context (shortcut) menu to be removed as part of the default context menu.
656 |
657 |
658 | Adds a context (shortcut) menu for a given class.
659 | Input Autodesk.AutoCAD.Runtime.RXClass object. The runtime class of the object that has the context (shortcut) menu.
660 | Input Autodesk.AutoCAD.Windows.ContextMenuExtension object. The context (shortcut) menu to be displayed as part of the object selection context menu.
661 |
662 |
663 | Removes a mode context (shortcut) menu for a given class.
664 | Input Autodesk.AutoCAD.Runtime.RXClass object. The runtime class of the object that has the context (shortcut) menu.
665 | Input Autodesk.AutoCAD.Windows.ContextMenuExtension object. The context (shortcut) menu to be removed as part of the object selection context (shortcut) menu.
666 |
667 |
668 | Calls context help with a set prefix.
669 | Input window
670 | Input context ID
671 | Input help prefix
672 |
673 |
674 | Calls the context help with a null helpPrefix.
675 | Input window
676 | Input context ID
677 |
678 |
679 | Calls the help document with a specific topic.
680 | Input name of help file
681 | Input topic to open
682 |
683 |
684 | This .NET method wraps the ObjectARX acedHelpForExternal function.
685 |
686 |
687 | Adds (loads) a partial menu to the current main menu.
688 | The menu filename. Can be provided with or without a path, though if provided without a path, it is expected that the file is located on the current support files search path. The method call is rejected if the string is null, empty, or "." .
689 |
690 |
691 | Removes (unloads) a partial menu from the current main menu.
692 | The menu filename. Can be provided with or without a path, though there is a better chance of success if provided without a path.
693 |
694 |
695 | Changes the currently loaded main menu.
696 | The menu filename. Can be provided with or without a path, though if provided without a path, it is expected that the file is located on the current support files search path. The method call is rejected if null or the empty string; to unload the main menu, supply "." .
697 |
698 |
699 | Sets the current workspace.
700 |
701 |
702 | Updates the User Interface in AutoCAD to reflect any changes made to the currently loaded menus.
703 |
704 |
705 | Use this function to launch a modal dialog with the specified URI. The window hosts a browser window which displays the html page.
706 | URI of the page to be loaded into the modal window
707 |
708 |
709 | Use this function to launch a modal dialog with the specified URI. The window hosts a browser window which displays the html page.
710 | Owner Window
711 | URI of the page to be loaded into the modal window
712 |
713 |
714 |
715 | Use this function to launch a modal dialog with the specified URI. The window hosts a browser window which displays the html page.
716 | Owner Window
717 | URI of the page to be loaded into the modal window
718 | Saves the current size and position of the window if set to true
719 |
720 |
721 | Use this function to launch a modeless dialog with the specified URI. The window hosts a browser window which displays the html page.
722 | URI of the page to be loaded into the modeless window
723 |
724 |
725 | Use this function to launch a modeless dialog with the specified URI. The window hosts a browser window which displays the html page.
726 | Owner Window
727 | URI of the page to be loaded into the modeless window
728 |
729 |
730 |
731 | Use this function to launch a modeless dialog with the specified URI. The window hosts a browser window which displays the html page.
732 | Owner Window
733 | URI of the page to be loaded into the modeless window
734 | _nt_
735 |
736 |
737 | This is ToSystemDrawingPoint, a member of class Application.
738 |
739 |
740 | This is ToSystemDrawingSize, a member of class Application.
741 |
742 |
743 | Accesses the AcadApplication.
744 |
745 |
746 | Accesses the collection of DocumentWindow objects.
747 |
748 |
749 | Accesses the status bar.
750 |
751 |
752 | Accesses the preferences.
753 |
754 |
755 | Accesses the menu bar.
756 |
757 |
758 | Returns the menu groups.
759 |
760 |
761 | Accesses the InfoCenter property.
762 |
763 |
764 | This is IsSteelInstalled, a member of class Application.
765 |
766 |
767 |
768 | This class manages the InfoCenter Manager and connects it with the InfoCenter toolbar.
769 |
770 |
771 | Description to come.
772 | Input.
773 | Input.
774 | Input.
775 |
776 |
777 | Invokes the toolbar to be moved.
778 |
779 |
780 | Invokes the toolbar to be resized.
781 | Input width
782 |
783 |
784 | InfoCenter toolbar's visibility property value.
785 |
786 |
787 | Indicates whether the InfoCenter toolbar should retain focus or return it to the Application.
788 |
789 |
790 | Returns the client information.
791 |
792 |
793 | This is UPIXMLData, a member of class InfoCenter.
794 |
795 |
796 |
797 | Used in DocumentWindowActivated event as event args<
798 |
799 |
800 | Identify which document window is activated.
801 |
802 |
803 |
804 |
805 |
806 | Converts an object into a Document.
807 | Input the object to be converted
808 |
809 |
810 |
811 |
812 |
813 |
814 | Wrapper (wraps AcApDwgDocWindow)
815 |
816 |
817 | Represent the document of drawing file.
818 |
819 |
820 |
821 | This is class Autodesk.AutoCAD.EditorInput.ConstraintUtilities.
822 |
823 |
824 |
825 | This function is used to show or hide the constraint bars for all or a given set of constrained entities..
826 | Array of full sub-entity paths of entities for which constraint bars are to be shown or hidden. If this array is empty, the show/hide action will then be applied to all constrained entities in the active document.
827 | Set this to true to show constraint bars, set to false to hide constraint bars.
828 |
829 |
830 |
831 | This is class Autodesk.AutoCAD.Windows.WindowExtension.
832 |
833 |
834 |
835 | This wraps the ObjectARX AcEdInplaceTextEditorSettings class.
836 |
837 |
838 | Constructor.
839 |
840 |
841 | This wraps the ObjectARX AcEdInplaceTextEditorSettings::editFlags() and AcEdInplaceTextEditorSettings::setEditFlags() methods.
842 |
843 |
844 | This wraps the ObjectARX AcEdInplaceTextEditorSettings::sourceEntityType() and AcEdInplaceTextEditorSettings::setSourceEntityType() methods.
845 |
846 |
847 | This wraps the ObjectARX AcEdInplaceTextEditorSettings::tabSupported() and AcEdInplaceTextEditorSettings::setSupportTab() methods.
848 |
849 |
850 | This wraps the ObjectARX AcEdInplaceTextEditorSettings::simpleMText() and AcEdInplaceTextEditorSettings::setSimpleMText() methods.
851 |
852 |
853 | This wraps the ObjectARX AcEdInplaceTextEditorSettings::definedHeight() and AcEdInplaceTextEditorSettings::setDefinedHeight() methods.
854 |
855 |
856 |
857 | This .NET class wraps the ObjectARX AcEdInplaceTextEditor class.
858 |
859 |
860 | This wraps AcEdInplaceTextEditor::invoke(AcDbMText* pMtext, const AcEdInplaceTextEditorSettings* pSettings).
861 |
862 |
863 | This wrapsAcEdInplaceTextEditor::undo().
864 |
865 |
866 | This wrapsAcEdInplaceTextEditor::redo().
867 |
868 |
869 | This wraps AcEdInplaceTextEditor::cut().
870 |
871 |
872 | This wraps AcEdInplaceTextEditor::copy().
873 |
874 |
875 | This wraps AcEdInplaceTextEditor::paste().
876 |
877 |
878 | This wraps AcEdInplaceTextEditor::pasteWithoutFormats().
879 |
880 |
881 | This wraps AcEdInplaceTextEditor::replaceAllMatchItems().
882 |
883 |
884 | This wraps AcEdInplaceTextEditor::replaceCurrentMatchItem().
885 |
886 |
887 | This wraps AcEdInplaceTextEditor::findMatchItem().
888 |
889 |
890 | This wraps AcEdInplaceTextEditor::drawHighlight().
891 |
892 |
893 | This wrapsAcEdInplaceTextEditor::removeHightlight().
894 |
895 |
896 | This wraps AcEdInplaceTextEditor::insertFile().
897 |
898 |
899 | This wraps AcEdInplaceTextEditor::otherSymbol().
900 |
901 |
902 | This wrapsAcEdInplaceTextEditor::invokeParagraphDialog().
903 |
904 |
905 | This wrapsAcEdInplaceTextEditor::invokeWipeoutDialog().
906 |
907 |
908 | This .NET method wraps the ObjectARX AcEdInplaceTextEditor::invokeColumnsDialog method.
909 |
910 |
911 | This wraps AcEdInplaceTextEditor::invokeFindReplaceDialog().
912 |
913 |
914 | This wrapsAcEdInplaceTextEditor::invokeImportTextDialog().
915 |
916 |
917 | This wraps AcEdInplaceTextEditor::invokeFieldDialog().
918 |
919 |
920 | This wraps AcEdInplaceTextEditor::invokeSpellSettingDialog().
921 |
922 |
923 | This wraps AcEdInplaceTextEditor::invokeSpellerDictinaryDialog().
924 |
925 |
926 | This wraps AcEdInplaceTextEditor::invokeHightlightColorDialog().
927 |
928 |
929 | This wraps AcEdInplaceTextEditor::invokeHelpDialog().
930 |
931 |
932 | This wraps AcEdInplaceTextEditor::invokeNewFeatureWorkshop().
933 |
934 |
935 | This wraps AcEdInplaceTextEditor::invokeStackPropertyDialog().
936 |
937 |
938 | This .NET method wraps the ObjectARX AcEdInplaceTextEditor::columnMenusInput method.
939 |
940 |
941 | This .NET method wraps the ObjectARX AcEdInplaceTextEditor::attachmentMenusInput method.
942 |
943 |
944 | This wraps AcEdInplaceTextEditor::lineSpaceMenusInput().
945 |
946 |
947 | This wrapsAcEdInplaceTextEditor::numberingMenusInput().
948 |
949 |
950 | This wraps AcEdInplaceTextEditor::symbolMenusInput().
951 |
952 |
953 | This .NET method wraps the ObjectARX AcEdInplaceTextEditor::contextMenusInput method.
954 |
955 |
956 | This is SetStaticColumnsWithCount, a member of class InplaceTextEditor.
957 |
958 |
959 | This wraps AcEdInplaceTextEditor::current().
960 |
961 |
962 | This wraps AcEdInplaceTextEditor::canUndo().
963 |
964 |
965 | This wrapsAcEdInplaceTextEditor::canRedo().
966 |
967 |
968 | This wraps the ObjectARX AcEdInplaceTextEditor::annotative() and AcEdInplaceTextEditor::setAnnotative() methods.
969 |
970 |
971 | This wrapsAcEdInplaceTextEditor::isTableCell().
972 |
973 |
974 | This wraps AcEdInplaceTextEditor::isSimpleMtext().
975 |
976 |
977 | This wraps AcEdInplaceTextEditor::isText().
978 |
979 |
980 | This wraps AcEdInplaceTextEditor::isMultiAttribute().
981 |
982 |
983 | This wraps AcEdInplaceTextEditor::isParagraphSupported().
984 |
985 |
986 | This wraps the ObjectARX AcEdInplaceTextEditor::spellerEnabled() and AcEdInplaceTextEditor::toggleSpelling() methods.
987 |
988 |
989 | This wraps AcEdInplaceTextEditor::rulerSupported().
990 |
991 |
992 | This wraps the ObjectARX AcEdInplaceTextEditor::rulerHidden() and AcEdInplaceTextEditor::setRulerHidden() methods.
993 |
994 |
995 | This wraps the ObjectARX AcEdInplaceTextEditor::opaqueBackground() and AcEdInplaceTextEditor::setOpaqueBackground() methods.
996 |
997 |
998 | This wraps the ObjectARX AcEdInplaceTextEditor::forcedOpaqueBackground().
999 |
1000 |
1001 | This wraps the ObjectARX AcEdInplaceTextEditor::toolbarHidden() and AcEdInplaceTextEditor::setToolbarHidden() methods.
1002 |
1003 |
1004 | This wraps the ObjectARX AcEdInplaceTextEditor::toolbarOptionHidden() and AcEdInplaceTextEditor::setToolbarOptionHidden() methods.
1005 |
1006 |
1007 | This wraps the ObjectARX AcEdInplaceTextEditor::canExitInplaceEditor() and AcEdInplaceTextEditor::setCanExitInplaceEditor() methods.
1008 |
1009 |
1010 | This wraps AcEdInplaceTextEditor::layerColor().
1011 |
1012 |
1013 | This wraps AcEdInplaceTextEditor::getAlignmentFromAttachment().
1014 |
1015 |
1016 | This wraps AcEdInplaceTextEditor::wysiwyg() and AcEdInplaceTextEditor::enableWysiwyg() methods.
1017 |
1018 |
1019 | This wraps AcEdInplaceTextEditor::undoRecordingDisabled(), AcEdInplaceTextEditor::setUndoRecordingDisable() methods.
1020 |
1021 |
1022 | This wraps AcEdInplaceTextEditor::canCut().
1023 |
1024 |
1025 | This wraps AcEdInplaceTextEditor::canCopy().
1026 |
1027 |
1028 | This wraps AcEdInplaceTextEditor::canPaste().
1029 |
1030 |
1031 |
1032 | This is class Autodesk.AutoCAD.EditorInput.EditorExtension.
1033 |
1034 |
1035 |
1036 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewEventArgs.
1037 |
1038 |
1039 | This is LivePreviewEventArgs, a member of class LivePreviewEventArgs.
1040 |
1041 |
1042 | This is LockDocument, a member of class LivePreviewEventArgs.
1043 |
1044 |
1045 | This is Document, a member of class LivePreviewEventArgs.
1046 |
1047 |
1048 | This is Parameters, a member of class LivePreviewEventArgs.
1049 |
1050 |
1051 | This is CommandParameter, a member of class LivePreviewEventArgs.
1052 |
1053 |
1054 |
1055 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewAction.
1056 |
1057 |
1058 | This is Execute, a member of class LivePreviewAction.
1059 |
1060 |
1061 | This is OnAborted, a member of class LivePreviewActionBase.
1062 |
1063 |
1064 |
1065 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewCommand.
1066 |
1067 |
1068 | This is LivePreviewCommand, a member of class LivePreviewCommand.
1069 |
1070 |
1071 | This is Execute, a member of class LivePreviewCommand.
1072 |
1073 |
1074 |
1075 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewDelegate.
1076 |
1077 |
1078 | This is LivePreviewDelegate, a member of class LivePreviewDelegate.
1079 |
1080 |
1081 | This is LivePreviewDelegate, a member of class LivePreviewDelegate.
1082 |
1083 |
1084 | This is Execute, a member of class LivePreviewDelegate.
1085 |
1086 |
1087 | This is OnAborted, a member of class LivePreviewDelegate.
1088 |
1089 |
1090 |
1091 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewPropertySetting.
1092 |
1093 |
1094 | This is LivePreviewPropertySetting, a member of class LivePreviewPropertySetting.
1095 |
1096 |
1097 | This is Execute, a member of class LivePreviewPropertySetting.
1098 |
1099 |
1100 |
1101 | This is class Autodesk.AutoCAD.EditorInput.LivePreview.
1102 |
1103 |
1104 | This is LivePreview, a member of class LivePreview.
1105 |
1106 |
1107 | This is LivePreview, a member of class LivePreview.
1108 |
1109 |
1110 |
1111 | This is LivePreview, a member of class LivePreview.
1112 |
1113 |
1114 | This is PreviewWillStart, a member of class LivePreview.
1115 |
1116 |
1117 | This is PreviewStarted, a member of class LivePreview.
1118 |
1119 |
1120 | This is PreviewWillEnd, a member of class LivePreview.
1121 |
1122 |
1123 | This is PreviewEnded, a member of class LivePreview.
1124 |
1125 |
1126 | This is RecordingWillStart, a member of class LivePreview.
1127 |
1128 |
1129 | This is RecordingStarted, a member of class LivePreview.
1130 |
1131 |
1132 | This is RecordingWillEnd, a member of class LivePreview.
1133 |
1134 |
1135 | This is RecordingEnded, a member of class LivePreview.
1136 |
1137 |
1138 | This is IsPreviewStarted, a member of class LivePreview.
1139 |
1140 |
1141 | This is IsPreviewStarted, a member of class LivePreview.
1142 |
1143 |
1144 | This is IsPreviewRecording, a member of class LivePreview.
1145 |
1146 |
1147 | This is IsPreviewRecording, a member of class LivePreview.
1148 |
1149 |
1150 | This is StartRecording, a member of class LivePreview.
1151 |
1152 |
1153 | This is EndRecording, a member of class LivePreview.
1154 |
1155 |
1156 | This is AbortAll, a member of class LivePreview.
1157 |
1158 |
1159 |
1160 | This is EndPreview, a member of class LivePreview.
1161 |
1162 |
1163 |
1164 | This is EndPreview, a member of class LivePreview.
1165 |
1166 |
1167 | This is EndPreview, a member of class LivePreview.
1168 |
1169 |
1170 | This is EndPreview, a member of class LivePreview.
1171 |
1172 |
1173 | This is QueueAction, a member of class LivePreview.
1174 |
1175 |
1176 | This is QueueAction, a member of class LivePreview.
1177 |
1178 |
1179 | This is Previewing, a member of class LivePreview.
1180 |
1181 |
1182 |
1183 | This is class Autodesk.AutoCAD.EditorInput.LivePreviewContextParameter.
1184 |
1185 |
1186 | This is Type, a member of class LivePreviewContextParameter.
1187 |
1188 |
1189 | This is Value, a member of class LivePreviewContextParameter.
1190 |
1191 |
1192 | This is LivePreview, a member of class LivePreviewContextParameter.
1193 |
1194 |
1195 |
1196 | This is record Autodesk.AutoCAD.EditorInput.LivePreviewContextType.
1197 |
1198 |
1199 |
1200 | This class represents various reusable visuals of the AutoCAD editor.
1201 |
1202 |
1203 | Represents the application icon, which is a small bitmap image used to represent an object.
1204 |
1205 |
1206 | Sets the bitmap image property value.
1207 |
1208 |
1209 | Picks the bitmap image property value.
1210 |
1211 |
1212 |
1213 | This class represents a dialog box that allows the user to choose a file.
1214 |
1215 |
1216 | Shows open file dialog box.
1217 |
1218 |
1219 | Gets the file names chosen by the user when multiple selection is allowed.
1220 |
1221 |
1222 | The filename chosen by the user.
1223 |
1224 |
1225 |
1226 | This class represents a dialog box that allows the user to choose a file.
1227 |
1228 |
1229 | Shows save file dialog box.
1230 |
1231 |
1232 | The filename chosen by the user.
1233 |
1234 |
1235 |
1236 | This class represents a dialog box that allows the user to choose a color.
1237 |
1238 |
1239 | Shows color dialog box.
1240 |
1241 |
1242 | Gets or sets whether meta colors are to be included.
1243 |
1244 |
1245 | Accesses the color that the user chooses or sets as default.
1246 |
1247 |
1248 |
1249 | This class represents a dialog box that allows the user to choose a linetype.
1250 |
1251 |
1252 | Shows line type dialog box.
1253 |
1254 |
1255 | True if meta linetypes are to be included, otherwise false.
1256 |
1257 |
1258 | A linetype value.
1259 |
1260 |
1261 |
1262 | This class represents a dialog box that allows the user to choose a lineweight.
1263 |
1264 |
1265 | Shows line weight dialog box.
1266 |
1267 |
1268 | True if meta lineweights are to be included, otherwise false.
1269 |
1270 |
1271 | Accesses the lineweight value.
1272 |
1273 |
1274 |
1275 | This class represents a dialog box that allows the user to choose a plot style.
1276 |
1277 |
1278 | Shows plot style dialog box.
1279 |
1280 |
1281 | True if meta plotstyles are to be included, otherwise false.
1282 |
1283 |
1284 | Accesses the plotstyle value.
1285 |
1286 |
1287 |
1288 | This class provides data for the PalettePersist event.
1289 |
1290 |
1291 | Constructor.
1292 | Input configuration section
1293 |
1294 |
1295 | Returns the ConfigurationSection property value.
1296 |
1297 |
1298 |
1299 | This class provides data for the PaletteSetState event.
1300 |
1301 |
1302 | COnstructs a new event argument with a given state.
1303 | Input event index state
1304 |
1305 |
1306 | Returns the NewState property value.
1307 |
1308 |
1309 |
1310 | This enum indexes various palette set states.
1311 |
1312 |
1313 |
1314 | This is class Autodesk.AutoCAD.Windows.PaletteSetFocusedEventArgs.
1315 |
1316 |
1317 |
1318 | This class provides event parameters related to the size-setting events in the palette set.
1319 |
1320 |
1321 | This constructs an object with information for pixel and device-independent units.
1322 | Input pixel width
1323 | Input pixel height
1324 | Input device-independent width
1325 | Input device-independent height
1326 |
1327 |
1328 | Accesses the width of the palette set.
1329 |
1330 |
1331 | Accesses the height of the palette set.
1332 |
1333 |
1334 | Accesses the device independent width value.
1335 |
1336 |
1337 | Accesses the device independent height value.
1338 |
1339 |
1340 |
1341 | This class provides data for the PaletteActivated event.
1342 |
1343 |
1344 | Constructs a new event argument.
1345 | Input palette to display when activated
1346 | Input palette to display when deactivated
1347 |
1348 |
1349 | Returns the Activated property value.
1350 |
1351 |
1352 | Returns the Deactivated property value.
1353 |
1354 |
1355 |
1356 | This .NET class wraps the CAdUiPalette ObjectARX class.
1357 |
1358 |
1359 | Accesses the name of the palette.
1360 |
1361 |
1362 | Accesses the palette set this palette is a part of.
1363 |
1364 |
1365 |
1366 | This class provides data for the PaletteAddContextMenu event.
1367 |
1368 |
1369 | Accesses the a collection of the menu items.
1370 |
1371 |
1372 | Accesses a list of the removed menu items.
1373 |
1374 |
1375 | Location within the palette set of the event that triggered the context menu.
1376 |
1377 |
1378 | Accesses the palette tab of the tab for which the context menu is being displayed.
1379 |
1380 |
1381 |
1382 | This class represents palette set styles.
1383 |
1384 |
1385 |
1386 | This class represents values that indicate the current docked site or the potential dock sites for a window.
1387 |
1388 |
1389 |
1390 | This class represents values indicating the title bar location for a palette set.
1391 |
1392 |
1393 |
1394 | This is class Autodesk.AutoCAD.Windows.PaletteSetDockSite.
1395 |
1396 |
1397 | This is Uninitialize, a member of class PaletteSetDockSite.
1398 |
1399 |
1400 | This is Dock, a member of class PaletteSetDockSite.
1401 |
1402 |
1403 |
1404 | This class encapsulates properties of IPerPropertyBrowsing objects implemented for a tool palette.
1405 |
1406 |
1407 | Returns the ProgId property value.
1408 |
1409 |
1410 | Returns the LefIconResource property value.
1411 |
1412 |
1413 | Returns the LeftIconType property value.
1414 |
1415 |
1416 | Returns the EllipsisBmpResource property value.
1417 |
1418 |
1419 | Returns the EllipsisBmpType property value.
1420 |
1421 |
1422 | Returns the IsFullView property value.
1423 |
1424 |
1425 |
1426 | This attribute identifies flyout entries.
1427 |
1428 |
1429 | Returns the dispatch ID value.
1430 |
1431 |
1432 |
1433 | This class contains a tool's name and the name of its image.
1434 |
1435 |
1436 | Constructor.
1437 | Input tool name
1438 | Input tool image location
1439 |
1440 |
1441 | Returns the ToolName property value.
1442 |
1443 |
1444 | Returns the ToolImage property value.
1445 |
1446 |
1447 |
1448 | This abstract class defines a general custom tool that can be used to implement any type of tool supported by tool palettes. It aggregates the various tool interfaces and provides extensive boilerplate implementations that simplify the creation of custom tools.
1449 |
1450 |
1451 | Determines the application's response when a user drops entities on the Tool Palettes window from the AutoCAD editor.
1452 | Input entity
1453 |
1454 |
1455 | Returns the StockTool associated with the tool.
1456 | Input catalog name
1457 |
1458 |
1459 | Creates a Palette, and adds it to the catalog passed in. It then returns the palette.
1460 | Input catalog name
1461 | Input palette name
1462 |
1463 |
1464 | Creates the tool object. The returned pointer is allocated in the heap and should be deleted after use.
1465 |
1466 |
1467 | Creates a Flyout tool, which can contain packages of other tools.
1468 | Input palette
1469 | Input shape package
1470 | Input tool name override
1471 |
1472 |
1473 | Returns the singleton shape catalog, which contains the shape packages.
1474 | Input shape name
1475 |
1476 |
1477 | Returns the StockTool pointer associated with the tool, and returns NULL if the stock tool is not found.
1478 |
1479 |
1480 | Called by the framework before displaying the dialog to edit the tool properties. The framework calls this method after calling the Load() method. This method is called only when the editing is handled by the framework. It is not called if the editing is handled by the tool.
1481 |
1482 |
1483 | The framework calls this method to create a new tool. The tool uses this call to initialize the tool data members.
1484 |
1485 |
1486 | The framework calls this method to get the IDropTarget interface from the tool. If the tool wishes to support drag-and-drop objects, it must implement this interface and pass it to the framework through this method.
1487 |
1488 |
1489 | Called by the framework when a tool is edited in the framework's default tool properties editor and the user presses OK. The tool should validate any data changed by the user.
1490 |
1491 |
1492 | Gets the IUnknown of IAcadToolProperties. The implementation class for IAcadTool should cache the IAcadToolProperties pointer passed into the SetToolProperties() method, and return that pointer in this function's toolProperties parameter.
1493 |
1494 |
1495 | Called by the framework on a stock tool when a dragged object leaves a palette containing tools.
1496 |
1497 |
1498 | Returns the ToolGuid property value.
1499 |
1500 |
1501 | Returns the ToolName property value.
1502 |
1503 |
1504 | Returns the ToolImage property value.
1505 |
1506 |
1507 | Returns the FlayoutPackageID property value.
1508 |
1509 |
1510 | Returns the CurrentShapeId property value.
1511 |
1512 |
1513 | Returns the EditMode property value.
1514 |
1515 |
1516 |
1517 | This enum lists types of tool edit operations.
1518 |
1519 |
1520 |
1521 | This enum defines contexts from which a tool palette context menu might be launched.
1522 |
1523 |
1524 |
1525 | This enum lists possible return status values for tool palette context menus.
1526 |
1527 |
1528 |
1529 | This .NET class wraps the ExecutionContext ObjectARX class. ExecutionContext contains values that indicate how a Tool Palette tool is launched.
1530 |
1531 |
1532 |
1533 |
--------------------------------------------------------------------------------
/stylecop.ruleset:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/version.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
3 | "version": "1.1"
4 | }
--------------------------------------------------------------------------------