Example #1
0
 /// <summary>
 /// Creates an instance of the class
 /// </summary>
 /// <param name="parent">addin owner instance</param>
 /// <exception cref="ArgumentNullException">parent is null(Nothing in Visual Basic)</exception>
 public CustomTaskPaneConsumer(IOfficeCOMAddin parent)
 {
     if (null == parent)
     {
         throw new ArgumentNullException("parent");
     }
     Parent = parent;
 }
 /// <summary>
 /// Creates an instance of the class
 /// </summary>
 /// <param name="parent">addin owner instance</param>
 /// <exception cref="ArgumentNullException">parent is null(Nothing in Visual Basic)</exception>
 public RibbonExtensibility(IOfficeCOMAddin parent)
 {
     if (null == parent)
     {
         throw new ArgumentNullException("parent");
     }
     Parent = parent;
 }
        public void ProceedCustomPaneAttributes(Core factory, OfficeApi.ICTPFactory taskPaneFactory, OfficeApi.Tools.CustomTaskPaneCollection taskPanes,
                                                NetOffice.Tools.OnErrorHandler onError, ICOMObject application,
                                                Type addinType, IOfficeCOMAddin addin,
                                                CallOnCreateTaskPaneInfoHandler callOnCreateTaskPaneInfo,
                                                CustomTaskPane_VisibleStateChangeEventHandler visibleStateChange,
                                                CustomTaskPane_DockPositionStateChangeEventHandler dockPositionStateChange)
        {
            try
            {
                var paneAttributes = NetOffice.Attributes.AttributeExtensions.GetCustomAttributes <CustomPaneAttribute>(addinType);
                foreach (CustomPaneAttribute itemPane in paneAttributes)
                {
                    if (null != itemPane)
                    {
                        TaskPaneInfo item = taskPanes.Add(itemPane.PaneType, itemPane.PaneType.Name, itemPane.Creation);
                        if (!item.CreateAtStartup)
                        {
                            Action <TaskPaneInfo> method = delegate(TaskPaneInfo info)
                            {
                                CreateCustomPane(info, factory, taskPaneFactory, taskPanes, onError, application);
                            };
                            item.SetCreateAction(method);
                        }

                        item.Title                = itemPane.Title;
                        item.Visible              = itemPane.Visible;
                        item.DockPosition         = (OfficeApi.Enums.MsoCTPDockPosition)Enum.Parse(typeof(OfficeApi.Enums.MsoCTPDockPosition), itemPane.DockPosition.ToString());
                        item.DockPositionRestrict = (OfficeApi.Enums.MsoCTPDockPositionRestrict)Enum.Parse(typeof(OfficeApi.Enums.MsoCTPDockPositionRestrict), itemPane.DockPositionRestrict.ToString());
                        item.Width                = itemPane.Width;
                        item.Height               = itemPane.Height;
                        item.Arguments            = new object[] { addin, this };
                        if (callOnCreateTaskPaneInfo(item))
                        {
                            item.VisibleStateChange      += visibleStateChange;
                            item.DockPositionStateChange += dockPositionStateChange;
                        }
                        else
                        {
                            taskPanes.Remove(item);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                if (null != onError)
                {
                    onError(ErrorMethodKind.CTPFactoryAvailable, exception);
                }
            }
        }