/// <summary>
/// Wraps the ToolbarManager class, if present.
/// </summary>
/// <returns><c>true</c>, if ToolbarManager is wrapped, <c>false</c> otherwise.</returns>
protected static bool TryWrapToolbarManager()
{
if (ToolbarManager == null)
{
Tools.PostDebugMessage(string.Format(
"{0}: Loading ToolbarManager.",
"ToolbarButtonWrapper"
));
ToolbarManager = AssemblyLoader.loadedAssemblies
.Select(a => a.assembly.GetExportedTypes())
.SelectMany(t => t)
.FirstOrDefault(t => t.FullName == "Toolbar.ToolbarManager");
Tools.PostDebugMessage(string.Format(
"{0}: Loaded ToolbarManager. Getting Instance.",
"ToolbarButtonWrapper"
));
if (ToolbarManager == null)
{
return(false);
}
TBManagerInstance = ToolbarManager.GetProperty(
"Instance",
System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static
)
.GetValue(null, null);
Tools.PostDebugMessage(string.Format(
"{0}: Got ToolbarManager Instance '{1}'. Getting 'add' method.",
"ToolbarButtonWrapper",
TBManagerInstance
));
TBManagerAdd = ToolbarManager.GetMethod("add");
Tools.PostDebugMessage(string.Format(
"{0}: Got ToolbarManager Instance 'add' method. Loading IButton.",
"ToolbarButtonWrapper"
));
}
return(true);
}