private void TryCreateIcons(IIconsCreator iconsConverter)
        {
            IXImage icon = null;

            this.GetType().TryGetAttribute <IconAttribute>(a =>
            {
                icon = a.Icon;
            });

            if (icon == null)
            {
                icon = Defaults.Icon;
            }

            //TODO: create different icons for highlighted and suppressed
            var regular     = icon;
            var highlighted = icon;
            var suppressed  = icon;

            //Creation of icons may fail if user doesn't have write permissions or icon is locked
            try
            {
                iconsConverter.ConvertIcon(new MacroFeatureIcon(icon, MacroFeatureIconInfo.RegularName));
                iconsConverter.ConvertIcon(new MacroFeatureIcon(highlighted, MacroFeatureIconInfo.HighlightedName));
                iconsConverter.ConvertIcon(new MacroFeatureIcon(suppressed, MacroFeatureIconInfo.SuppressedName));
                iconsConverter.ConvertIcon(new MacroFeatureHighResIcon(icon, MacroFeatureIconInfo.RegularName));
                iconsConverter.ConvertIcon(new MacroFeatureHighResIcon(highlighted, MacroFeatureIconInfo.HighlightedName));
                iconsConverter.ConvertIcon(new MacroFeatureHighResIcon(suppressed, MacroFeatureIconInfo.SuppressedName));
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
            }
        }
Ejemplo n.º 2
0
 protected PropertyManagerPageBaseControlConstructor(ISldWorks app, swPropertyManagerPageControlType_e type,
                                                     IIconsCreator iconsConv)
 {
     m_App      = app;
     m_IconConv = iconsConv;
     m_Type     = type;
 }
Ejemplo n.º 3
0
        private void CreateIcons(CommandGroup cmdGroup, CommandGroupSpec cmdBar, IIconsCreator iconsConv)
        {
            var mainIcon = cmdBar.Icon;

            if (mainIcon == null)
            {
                mainIcon = Defaults.Icon;
            }

            IXImage[] iconList = null;

            if (cmdBar.Commands != null)
            {
                iconList = cmdBar.Commands.Select(c => c.Icon ?? Defaults.Icon).ToArray();
            }

            //NOTE: if commands are not used, main icon will fail if toolbar commands image list is not specified, so it is required to specify it explicitly

            if (CompatibilityUtils.SupportsHighResIcons(m_App.Sw, CompatibilityUtils.HighResIconsScope_e.CommandManager))
            {
                var iconsList = iconsConv.ConvertIcon(new CommandGroupHighResIcon(mainIcon));
                cmdGroup.MainIconList = iconsList;

                if (iconList != null && iconList.Any())
                {
                    cmdGroup.IconList = iconsConv.ConvertIconsGroup(
                        iconList.Select(i => new CommandGroupHighResIcon(i)).ToArray());
                }
                else
                {
                    cmdGroup.IconList = iconsList;
                }
            }
            else
            {
                var mainIconPath = iconsConv.ConvertIcon(new CommandGroupIcon(mainIcon));

                var smallIcon = mainIconPath[0];
                var largeIcon = mainIconPath[1];

                cmdGroup.SmallMainIcon = smallIcon;
                cmdGroup.LargeMainIcon = largeIcon;

                if (iconList != null && iconList.Any())
                {
                    var iconListPath  = iconsConv.ConvertIconsGroup(iconList.Select(i => new CommandGroupIcon(i)).ToArray());
                    var smallIconList = iconListPath[0];
                    var largeIconList = iconListPath[1];

                    cmdGroup.SmallIconList = smallIconList;
                    cmdGroup.LargeIconList = largeIconList;
                }
                else
                {
                    cmdGroup.SmallIconList = smallIcon;
                    cmdGroup.LargeIconList = largeIcon;
                }
            }
        }
Ejemplo n.º 4
0
 public PropertyManagerPageBitmapControl(IIconsCreator iconsConv,
                                         int id, object tag, Size?size,
                                         IPropertyManagerPageBitmap bitmap,
                                         SwPropertyManagerPageHandler handler) : base(bitmap, id, tag, handler)
 {
     m_Size      = size.HasValue ? size.Value : new Size(36, 36);
     m_IconsConv = iconsConv;
 }
Ejemplo n.º 5
0
        internal PropertyManagerPageConstructor(ISldWorks app, IIconsCreator iconsConv, SwPropertyManagerPageHandler handler)
        {
            m_App       = app;
            m_IconsConv = iconsConv;

            m_Handler = handler;
            handler.Init(m_App);
        }
Ejemplo n.º 6
0
        private ITaskpaneView CreateTaskPaneView(IIconsCreator iconConv, IXImage icon,
                                                 string title)
        {
            if (icon == null)
            {
                if (Spec.Icon != null)
                {
                    icon = Spec.Icon;
                }
            }

            if (string.IsNullOrEmpty(title))
            {
                title = Spec.Title;
            }

            ITaskpaneView taskPaneView;

            if (m_App.Sw.SupportsHighResIcons(CompatibilityUtils.HighResIconsScope_e.TaskPane))
            {
                string[] taskPaneIconImages = null;

                if (icon != null)
                {
                    taskPaneIconImages = iconConv.ConvertIcon(new TaskPaneHighResIcon(icon));
                }

                taskPaneView = m_App.Sw.CreateTaskpaneView3(taskPaneIconImages, title);
            }
            else
            {
                var taskPaneIconImage = "";

                if (icon != null)
                {
                    taskPaneIconImage = iconConv.ConvertIcon(new TaskPaneIcon(icon)).First();
                }

                taskPaneView = m_App.Sw.CreateTaskpaneView2(taskPaneIconImage, title);
            }

            LoadButtons(taskPaneView, m_App.Sw);

            return(taskPaneView);
        }
Ejemplo n.º 7
0
        internal SwPropertyManagerPage(ISwApplication app, IPageSpec pageSpec, IServiceProvider svcProvider, SwPropertyManagerPageHandler handler,
                                       CreateDynamicControlsDelegate createDynCtrlHandler)
        {
            m_App = app;

            m_IsDisposed = false;

            m_SvcProvider = svcProvider;

            m_Logger = m_SvcProvider.GetService <IXLogger>();

            m_IconsConv = m_SvcProvider.GetService <IIconsCreator>();

            //TODO: validate that handler is COM visible
            Handler = handler;

            Handler.Closed  += OnClosed;
            Handler.Closing += OnClosing;
            m_PmpBuilder     = new PropertyManagerPageBuilder(app, m_IconsConv, Handler, pageSpec, m_Logger);

            m_ContextProvider = new BaseContextProvider();

            m_Page = m_PmpBuilder.CreatePage <TModel>(createDynCtrlHandler, m_ContextProvider);

            var ctrls = new List <IPropertyManagerPageElementEx>();

            foreach (var binding in m_Page.Binding.Bindings)
            {
                binding.Changed += OnBindingValueChanged;

                var ctrl = binding.Control;

                if (ctrl is IPropertyManagerPageElementEx)
                {
                    ctrls.Add((IPropertyManagerPageElementEx)ctrl);
                }
                else
                {
                    m_Logger.Log($"Unrecognized control type: {ctrl?.GetType().FullName}", XCad.Base.Enums.LoggerMessageSeverity_e.Error);
                }
            }

            Controls = ctrls.ToArray();
        }
Ejemplo n.º 8
0
 internal PropertyManagerPageBuilder(ISwApplication app, IIconsCreator iconsConv, SwPropertyManagerPageHandler handler, IPageSpec pageSpec, IXLogger logger)
     : this(app, new PmpTypeDataBinder(),
            new PropertyManagerPageConstructor(app.Sw, iconsConv, handler),
            new PropertyManagerPageGroupControlConstructor(),
            new PropertyManagerPageTextBoxControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageNumberBoxConstructor(app.Sw, iconsConv),
            new PropertyManagerPageCheckBoxControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageEnumComboBoxControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageCustomItemsComboBoxControlConstructor(app, iconsConv),
            new PropertyManagerPageSelectionBoxControlConstructor(app, iconsConv, logger),
            new PropertyManagerPageOptionBoxConstructor(app.Sw, iconsConv),
            new PropertyManagerPageButtonControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageBitmapControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageTabConstructor(iconsConv),
            new PropertyManagerPageCustomControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageBitmapButtonConstructor(app.Sw, iconsConv))
 {
     m_PageSpec = pageSpec;
 }
Ejemplo n.º 9
0
        internal SwPropertyManagerPage(ISwApplication app, IPageSpec pageSpec, IServiceProvider svcProvider, Type handlerType)
        {
            m_App = app;

            m_SvcProvider = svcProvider;

            m_Logger = m_SvcProvider.GetService <IXLogger>();

            m_IconsConv = m_SvcProvider.GetService <IIconsCreator>();

            //TODO: validate that handlerType inherits PropertyManagerPageHandlerEx and it is COM visible with parameterless constructor
            Handler = (SwPropertyManagerPageHandler)Activator.CreateInstance(handlerType);

            Handler.DataChanged += OnDataChanged;
            Handler.Closed      += OnClosed;
            Handler.Closing     += OnClosing;
            m_PmpBuilder         = new PropertyManagerPageBuilder(app, m_IconsConv, Handler, pageSpec, m_Logger);

            m_Page   = m_PmpBuilder.CreatePage <TModel>();
            Controls = m_Page.Binding.Bindings.Select(b => b.Control)
                       .OfType <IPropertyManagerPageControlEx>().ToArray();
        }
 public PropertyManagerPageButtonControlConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_Button, iconsConv)
 {
 }
 public PropertyManagerPageListBoxControlConstructor(ISwApplication app, IIconsCreator iconsConv)
     : base(app.Sw, swPropertyManagerPageControlType_e.swControlType_Listbox, iconsConv)
 {
     m_SwApp  = app;
     m_Helper = new PropertyManagerPageItemsControlConstructorHelper();
 }
Ejemplo n.º 12
0
 public PropertyManagerPageNumberBoxConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_Numberbox, iconsConv)
 {
 }
 public PropertyManagerPageCustomItemsComboBoxControlConstructor(ISwApplication app, IIconsCreator iconsConv)
     : base(app, iconsConv)
 {
 }
 public PropertyManagerPageTabConstructor(IIconsCreator iconsConv)
 {
     m_IconsConv = iconsConv;
 }
 public PropertyManagerPageSelectionBoxControlConstructor(ISwApplication app, IIconsCreator iconsConv, IXLogger logger)
     : base(app.Sw, swPropertyManagerPageControlType_e.swControlType_Selectionbox, iconsConv)
 {
     m_SwApp  = app;
     m_Logger = logger;
 }
 public PropertyManagerPageCustomControlConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_WindowFromHandle, iconsConv)
 {
 }
 public PropertyManagerPageEnumComboBoxControlConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, iconsConv)
 {
 }
 public PropertyManagerPageComboBoxControlConstructorBase(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_Combobox, iconsConv)
 {
 }
Ejemplo n.º 19
0
 public PropertyManagerPageBitmapControlConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_Bitmap, iconsConv)
 {
     m_IconsConv = iconsConv;
 }
 public PropertyManagerPageOptionBoxConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_Option, iconsConv)
 {
 }
Ejemplo n.º 21
0
 public PropertyManagerPageTextBlockControlConstructor(ISldWorks app, IIconsCreator iconsConv)
     : base(app, swPropertyManagerPageControlType_e.swControlType_Label, iconsConv)
 {
 }