Inheritance: ViewModelBase
        static TopWallpaperRenderer()
        {
            ScreenArea = new Rect(0, 0, 412, 240);

            var defTopAlt = new BitmapImage();
            defTopAlt.BeginInit();
            //defTopAlt.StreamSource = (Stream) Extensions.GetResources(@"TopAlt_DefMask\.png").First().Value;
            defTopAlt.UriSource = new Uri(@"pack://application:,,,/ThemeEditor.WPF;component/Resources/TopAlt_DefMask.png");
            defTopAlt.CacheOption = BitmapCacheOption.OnLoad;
            defTopAlt.EndInit();

            var bgrData = defTopAlt.GetBgr24Data();
            RawTexture rTex = new RawTexture(defTopAlt.PixelWidth, defTopAlt.PixelHeight, RawTexture.DataFormat.A8);
            rTex.Encode(bgrData);
            DefaultTopSquares = new TextureViewModel(rTex, null);

            RenderToolFactory.RegisterTool<PenTool, Pen>
                (key => new Pen(new SolidColorBrush(key.Color)
                {
                    Opacity = key.Opacity
                },
                            key.Width));

            RenderToolFactory.RegisterTool<SolidColorBrushTool, Brush>
                (key => new SolidColorBrush(key.Color)
                {
                    Opacity = key.Opacity
                });

            RenderToolFactory.RegisterTool<LinearGradientBrushTool, Brush>
                (key => new LinearGradientBrush(key.ColorA, key.ColorB, key.Angle)
                {
                    Opacity = key.Opacity
                });

            RenderToolFactory.RegisterTool<ImageBrushTool, Brush>
                (key => new ImageBrush(key.Image)
                {
                    TileMode = key.Mode,
                    ViewportUnits = key.ViewportUnits,
                    Viewport = key.Viewport,
                    Opacity = key.Opacity
                });

            Type ownerType = typeof(TopWallpaperRenderer);
            IsEnabledProperty
                .OverrideMetadata(ownerType, new FrameworkPropertyMetadata(false, OnIsEnabledChanged));

            ClipToBoundsProperty.OverrideMetadata(ownerType,
                new FrameworkPropertyMetadata(true, null, (o, value) => true));
            WidthProperty.OverrideMetadata(ownerType,
                new FrameworkPropertyMetadata(412.0, null, (o, value) => 412.0));
            HeightProperty.OverrideMetadata(ownerType,
                new FrameworkPropertyMetadata(240.0, null, (o, value) => 240.0));

            EffectProperty.OverrideMetadata(ownerType,
                new FrameworkPropertyMetadata(default(WarpEffect),
                    null,
                    (o, value) => ((TopWallpaperRenderer) o).GetWarpEffectInstance()));
        }
        public TexturesViewModel(Textures model, string tag) : base(model, tag)
        {
            Top          = new TextureViewModel(model.Top, tag);
            TopAlt       = new TextureViewModel(model.TopExt, tag);
            Bottom       = new TextureViewModel(model.Bottom, tag);
            FolderClosed = new TextureViewModel(model.FolderClosed, tag);
            FolderOpen   = new TextureViewModel(model.FolderOpen, tag);
            FileLarge    = new TextureViewModel(model.FileLarge, tag);
            FileSmall    = new TextureViewModel(model.FileSmall, tag);

            Top.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(Top), null, null);
                }
            };
            TopAlt.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(TopAlt), null, null);
                }
            };
            Bottom.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(Bottom), null, null);
                }
            };
            FolderClosed.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(FolderClosed), null, null);
                }
            };
            FolderOpen.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(FolderOpen), null, null);
                }
            };
            FileLarge.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(FileLarge), null, null);
                }
            };
            FileSmall.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(FileSmall), null, null);
                }
            };
        }
        public ThemeInfoViewModel(SMDH model, string tag) : base(model, tag)
        {
            SmallIcon = new TextureViewModel(model.SmallIcon, Tag);
            LargeIcon = new TextureViewModel(model.LargeIcon, Tag);

            SmallIcon.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(SmallIcon), null, null);
            };
            LargeIcon.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(LargeIcon), null, null);
            };
        }
        public TexturesViewModel(Textures model, string tag) : base(model, tag)
        {
            Top = new TextureViewModel(model.Top, tag);
            TopAlt = new TextureViewModel(model.TopExt, tag);
            Bottom = new TextureViewModel(model.Bottom, tag);
            FolderClosed = new TextureViewModel(model.FolderClosed, tag);
            FolderOpen = new TextureViewModel(model.FolderOpen, tag);
            FileLarge = new TextureViewModel(model.FileLarge, tag);
            FileSmall = new TextureViewModel(model.FileSmall, tag);

            Top.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(Top), null, null);
            };
            TopAlt.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(TopAlt), null, null);
            };
            Bottom.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(Bottom), null, null);
            };
            FolderClosed.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(FolderClosed), null, null);
            };
            FolderOpen.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(FolderOpen), null, null);
            };
            FileLarge.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(FileLarge), null, null);
            };
            FileSmall.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                    RaiseViewModelChanged(nameof(FileSmall), null, null);
            };
        }
Beispiel #5
0
        public ThemeInfoViewModel(SMDH model, string tag) : base(model, tag)
        {
            SmallIcon = new TextureViewModel(model.SmallIcon, Tag);
            LargeIcon = new TextureViewModel(model.LargeIcon, Tag);

            SmallIcon.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(SmallIcon), null, null);
                }
            };
            LargeIcon.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TextureViewModel.Bitmap))
                {
                    RaiseViewModelChanged(nameof(LargeIcon), null, null);
                }
            };
        }
        private void Validate_Texture_Bottom(TexturesViewModel model,
                                             TextureViewModel oldValue,
                                             TextureViewModel newValue)
        {
            // NOTE: Avoid Setting other values Directly, Textures are Special Cases
            switch (model.Bottom.Width)
            {
            case 0:
                Flags.BottomDrawType
                    = FilterEnum(Flags.BottomDrawType,
                                 BottomDrawType.None,
                                 BottomDrawType.None,
                                 BottomDrawType.SolidColor);
                break;

            case 512:
                Flags.BottomFrameType
                    = FilterEnum(Flags.BottomFrameType, BottomFrameType.Single, BottomFrameType.Single);
                Flags.BottomDrawType
                    = FilterEnum(Flags.BottomDrawType,
                                 BottomDrawType.Texture,
                                 BottomDrawType.Texture);
                break;

            case 1024:
                Flags.BottomFrameType
                    = FilterEnum(Flags.BottomFrameType,
                                 BottomFrameType.FastScroll,
                                 BottomFrameType.SlowScroll,
                                 BottomFrameType.FastScroll,
                                 BottomFrameType.PageScroll,
                                 BottomFrameType.BounceScroll);
                Flags.BottomDrawType
                    = FilterEnum(Flags.BottomDrawType,
                                 BottomDrawType.Texture,
                                 BottomDrawType.Texture);
                break;
            }
        }