private List <MenuItem> LoadMenuFromExtensionPoint() { Log.Debug("Entering"); List <MenuItem> addinItems = new List <MenuItem>(); Mono.Addins.ExtensionNodeList nodes = Mono.Addins.AddinManager.GetExtensionNodes(ExtensionPath.SystemTray); Log.Debug($"Found '{nodes.Count}' items ..."); foreach (Mono.Addins.ExtensionNode node in nodes) { Mono.Addins.TypeExtensionNode typeNode = node as Mono.Addins.TypeExtensionNode; try { SysTrayAddin addin = typeNode.CreateInstance() as SysTrayAddin; Log.Debug($"SysTrayAdd-in [{addin.ToString()}]"); addinItems = addin.MenuItems(); } catch (Exception ex) { Log.Error("Couldn't create SysTrayAddin instance: " + ex.Message); } } return(addinItems); }
void OnNoteAddinDisabled(Mono.Addins.ExtensionNodeEventArgs args) { Mono.Addins.TypeExtensionNode type_node = args.ExtensionNode as Mono.Addins.TypeExtensionNode; try { OnDisabledAddin(type_node.Id); } catch (Exception e) { Logger.Debug("Error unloading add-in: " + e.Message); } }
private void StartupHandler_ExtensionChanged(object sender, Mono.Addins.ExtensionNodeEventArgs args) { LogDebug("OnStartChanged {"); LogDebug($" Path - {args.Path}"); LogDebug($" Node - {args.ExtensionNode}"); LogDebug($" Object - {args.ExtensionObject}"); LogDebug($" Changed - {args.Change.ToString()}"); Mono.Addins.TypeExtensionNode extNode = args.ExtensionNode as Mono.Addins.TypeExtensionNode; LogDebug($" ExtNode: {extNode.ToString()}"); LogDebug(" Running..."); IStartupExtension ext = (IStartupExtension)args.ExtensionObject; ext.Run(); LogDebug("}"); }
public void ReloadPages() { _preferencePages.Clear(); Mono.Addins.ExtensionNodeList nodes = Mono.Addins.AddinManager.GetExtensionNodes(ExtensionPath.PreferencePage); foreach (Mono.Addins.ExtensionNode node in nodes) { Mono.Addins.TypeExtensionNode typeNode = node as Mono.Addins.TypeExtensionNode; try { //BROKEN: 2018-12-05 //PreferencePageExtension instance = typeNode.CreateInstance() as PreferencePageExtension; //InitPage(instance, typeNode.Id, typeNode.TypeName); } catch (Exception ex) { Log.Error($"Couldn't initialize PreferencePage id '{typeNode.Id}': " + ex.Message); } } }
public void LoadAddinsForNote(Note note) { Mono.Addins.ExtensionNodeList list = Mono.Addins.AddinManager.GetExtensionNodes("/Tomboy/NoteAddins"); foreach (Mono.Addins.ExtensionNode node in list) { Mono.Addins.TypeExtensionNode type_node = node as Mono.Addins.TypeExtensionNode; try { NoteAddin n_addin = type_node.CreateInstance() as NoteAddin; // Keep track of the addins added to each note AttachAddin(type_node.Id, note, n_addin); } catch (Exception e) { Logger.Warn("Couldn't create a NoteAddin instance: {0}", e.Message); } } // Make sure we remove addins when a note is deleted note.Manager.NoteDeleted += OnNoteDeleted; }
void OnNoteAddinEnabled(Mono.Addins.ExtensionNodeEventArgs args) { // Load NoteAddins if (Tomboy.DefaultNoteManager == null) { return; // too early -- YUCK! Bad hack } foreach (Note note in Tomboy.DefaultNoteManager.Notes) { // Create a new NoteAddin Mono.Addins.TypeExtensionNode type_node = args.ExtensionNode as Mono.Addins.TypeExtensionNode; try { NoteAddin n_addin = type_node.CreateInstance() as NoteAddin; // Keep track of the addins added to each note AttachAddin(type_node.Id, note, n_addin); } catch (Exception e) { Logger.Debug("Couldn't create a NoteAddin instance: {0}", e.Message); } } }
void OnApplicationAddinExtensionChanged(object sender, Mono.Addins.ExtensionNodeEventArgs args) { Mono.Addins.TypeExtensionNode type_node = args.ExtensionNode as Mono.Addins.TypeExtensionNode; ApplicationAddin addin; if (args.Change == Mono.Addins.ExtensionChange.Add) { // Load NoteAddins if (Tomboy.DefaultNoteManager == null) { return; // too early -- YUCK! Bad hack } addin = type_node.GetInstance( typeof(ApplicationAddin)) as ApplicationAddin; if (addin != null) { if (addin.Initialized == false) { try { addin.Initialize(); app_addins [type_node.Id] = addin; } catch (Exception e) { Logger.Debug("Error initializing app addin {0}: {1}\n{2}", addin.GetType().ToString(), e.Message, e.StackTrace); } } } } else { if (app_addins.ContainsKey(type_node.Id)) { addin = app_addins [type_node.Id]; try { addin.Shutdown(); } catch (Exception e1) { Logger.Warn("Error shutting down app addin {0}: {1}\n{2}", addin.GetType().ToString(), e1.Message, e1.StackTrace); } finally { app_addins.Remove(type_node.Id); } try { addin.Dispose(); } catch (Exception e1) { Logger.Warn("Error disposing app addin: {0} - {1}", addin.GetType().ToString(), e1.Message); } } } if (ApplicationAddinListChanged != null) { ApplicationAddinListChanged(sender, args); } }