[commit] r2011 - in trunk/SDK/DotNet/CSharpComponentWizard/Templates: . CSharpAddon
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Tue Aug 14 14:27:26 CDT 2012
Author: ksmyth
Date: Tue Aug 14 14:27:25 2012
New Revision: 2011
Log:
Set up GMEConsole. Disable Addon during xme import and library attach
Modified:
trunk/SDK/DotNet/CSharpComponentWizard/Templates/CSharpAddon.zip
trunk/SDK/DotNet/CSharpComponentWizard/Templates/CSharpAddon/MyAddon.cs
trunk/SDK/DotNet/CSharpComponentWizard/Templates/rezip.sh
Modified: trunk/SDK/DotNet/CSharpComponentWizard/Templates/CSharpAddon.zip
==============================================================================
Binary file (source and/or target). No diff available.
Modified: trunk/SDK/DotNet/CSharpComponentWizard/Templates/CSharpAddon/MyAddon.cs
==============================================================================
--- trunk/SDK/DotNet/CSharpComponentWizard/Templates/CSharpAddon/MyAddon.cs Tue Aug 14 14:27:08 2012 (r2010)
+++ trunk/SDK/DotNet/CSharpComponentWizard/Templates/CSharpAddon/MyAddon.cs Tue Aug 14 14:27:25 2012 (r2011)
@@ -19,6 +19,8 @@
private MgaAddOn addon;
private bool componentEnabled = true;
+ private bool handleEvents = true;
+ GMEConsole GMEConsole { get; set; }
// Event handlers for addons
#region MgaEventSink members
@@ -26,9 +28,37 @@
{
if (@event == globalevent_enum.GLOBALEVENT_CLOSE_PROJECT)
{
+ if (GMEConsole != null)
+ {
+ if (GMEConsole.gme != null)
+ {
+ Marshal.FinalReleaseComObject(GMEConsole.gme);
+ }
+ GMEConsole = null;
+ }
Marshal.FinalReleaseComObject(addon);
addon = null;
}
+ if (@event == globalevent_enum.APPEVENT_XML_IMPORT_BEGIN)
+ {
+ handleEvents = false;
+ addon.EventMask = 0;
+ }
+ else if (@event == globalevent_enum.APPEVENT_XML_IMPORT_END)
+ {
+ unchecked { addon.EventMask = (uint)ComponentConfig.eventMask; }
+ handleEvents = true;
+ }
+ else if (@event == globalevent_enum.APPEVENT_LIB_ATTACH_BEGIN)
+ {
+ addon.EventMask = 0;
+ handleEvents = false;
+ }
+ else if (@event == globalevent_enum.APPEVENT_LIB_ATTACH_END)
+ {
+ unchecked { addon.EventMask = (uint)ComponentConfig.eventMask; }
+ handleEvents = true;
+ }
if (!componentEnabled)
{
return;
@@ -46,15 +76,27 @@
/// <param name="param">extra information provided for cetertain event types</param>
public void ObjectEvent(MgaObject subject, uint eventMask, object param)
{
- if (!componentEnabled)
+ if (!componentEnabled || !handleEvents)
{
return;
}
+ if (GMEConsole == null)
+ {
+ GMEConsole = GMEConsole.CreateFromProject(subject.Project);
+ }
// TODO: Handle object events (OR eventMask with the members of objectevent_enum)
// Warning: Only those events are received that you have subscribed for by setting ComponentConfig.eventMask
+ // If the event is OBJEVENT_DESTROYED, most operations on subject will fail
+ // Safe operations: getting Project, ObjType, ID, MetaRole, Meta, MetaBase, Name, AbsPath
+ // Operations that will fail: all others, including attribute access and graph navigation
+ // Try handling OBJEVENT_PRE_DESTROYED if these operations are necessary
+
+ // Be careful not to modify Library objects (check subject.IsLibObject)
+
// MessageBox.Show(eventMask.ToString());
+ // GMEConsole.Out.WriteLine(subject.Name);
}
@@ -62,10 +104,10 @@
#region IMgaComponentEx Members
- public void Initialize(MgaProject p)
+ public void Initialize(MgaProject project)
{
// Creating addon
- p.CreateAddOn(this, out addon);
+ project.CreateAddOn(this, out addon);
// Setting event mask (see ComponentConfig.eventMask)
unchecked
{
Modified: trunk/SDK/DotNet/CSharpComponentWizard/Templates/rezip.sh
==============================================================================
--- trunk/SDK/DotNet/CSharpComponentWizard/Templates/rezip.sh Tue Aug 14 14:27:08 2012 (r2010)
+++ trunk/SDK/DotNet/CSharpComponentWizard/Templates/rezip.sh Tue Aug 14 14:27:25 2012 (r2011)
@@ -1 +1 @@
-rm *zip && ( cd CSharpInterpreter && /c/Program\ Files\ \(x86\)/7-Zip/7z.exe a -x\!.svn -r ../CSharpInterpreter.zip * ) && ( cd CSharpAddon/ && /c/Program\ Files\ \(x86\)/7-Zip/7z.exe a -x\!.svn -r ../CSharpAddon.zip * )
+rm *zip ; ( cd CSharpInterpreter && /cygdrive/c/Program\ Files/7-Zip/7z.exe a -x\!.svn -r ../CSharpInterpreter.zip * ) && ( cd CSharpAddon/ && /cygdrive/c/Program\ Files/7-Zip/7z.exe a -x\!.svn -r ../CSharpAddon.zip * )
More information about the gme-commit
mailing list