コード例 #1
0
        internal LayerEffectRegistration(LayerEffectDescriptor descriptor, Plugin plugin)
        {
            LayerEffectDescriptor = descriptor;
            Plugin = plugin;

            Plugin.PluginDisabled += PluginOnPluginDisabled;
        }
コード例 #2
0
        internal LayerEffectRegistration(LayerEffectDescriptor descriptor, PluginFeature pluginFeature)
        {
            LayerEffectDescriptor = descriptor;
            PluginFeature         = pluginFeature;

            PluginFeature.Disabled += OnDisabled;
        }
コード例 #3
0
        public static LayerEffectDescriptor Create(Guid missingPluginGuid)
        {
            LayerEffectDescriptor descriptor = new LayerEffectDescriptor("Missing effect", "This effect could not be loaded", "FileQuestion", null, Constants.EffectPlaceholderPlugin)
            {
                PlaceholderFor = missingPluginGuid
            };

            return(descriptor);
        }
コード例 #4
0
        public LayerEffectRegistration RegisterLayerEffect(LayerEffectDescriptor descriptor)
        {
            if (descriptor == null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            return(LayerEffectStore.Add(descriptor));
        }
コード例 #5
0
        public static LayerEffectRegistration Add(LayerEffectDescriptor descriptor)
        {
            LayerEffectRegistration registration;

            lock (Registrations)
            {
                if (Registrations.Any(r => r.LayerEffectDescriptor == descriptor))
                {
                    throw new ArtemisCoreException($"Store already contains layer brush '{descriptor.DisplayName}'");
                }

                registration = new LayerEffectRegistration(descriptor, descriptor.LayerEffectProvider.PluginInfo.Instance)
                {
                    IsInStore = true
                };
                Registrations.Add(registration);
            }

            OnLayerEffectAdded(new LayerEffectStoreEvent(registration));
            return(registration);
        }