Inheritance: ViewModelBase
 public ThemeViewModel(Theme model) : base(model, Guid.NewGuid().ToString())
 {
     Flags = new FlagsViewModel(model.Flags, Tag);
     Colors = new ColorsViewModel(model.Colors, Tag);
     Textures = new TexturesViewModel(model.Textures, Tag);
     
     SetupRules();
 }
        public ThemeViewModel(Theme model, SMDH info = null) : base(model, Guid.NewGuid().ToString())
        {
            Flags    = new FlagsViewModel(model.Flags, Tag);
            Colors   = new ColorsViewModel(model.Colors, Tag);
            Textures = new TexturesViewModel(model.Textures, Tag);

            Info = new ThemeInfoViewModel(info ?? new SMDH(), Tag);

            SetupRules();
        }
        public ThemeViewModel(Theme model, SMDH info = null) : base(model, Guid.NewGuid().ToString())
        {
            Flags = new FlagsViewModel(model.Flags, Tag);
            Colors = new ColorsViewModel(model.Colors, Tag);
            Textures = new TexturesViewModel(model.Textures, Tag);

            Info = new ThemeInfoViewModel(info ?? new SMDH(), Tag);

            SetupRules();
        }
        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;
            }
        }