internal LightSettingViewModel(LightSettingSync model, IMessageSender sender) : base(sender) { _model = model; _lightColor = Color.FromRgb((byte)model.LightR.Value, (byte)model.LightG.Value, (byte)model.LightB.Value); model.LightR.PropertyChanged += (_, __) => UpdateLightColor(); model.LightG.PropertyChanged += (_, __) => UpdateLightColor(); model.LightB.PropertyChanged += (_, __) => UpdateLightColor(); _bloomColor = Color.FromRgb((byte)model.BloomR.Value, (byte)model.BloomG.Value, (byte)model.BloomB.Value); model.BloomR.PropertyChanged += (_, __) => UpdateBloomColor(); model.BloomG.PropertyChanged += (_, __) => UpdateBloomColor(); model.BloomB.PropertyChanged += (_, __) => UpdateBloomColor(); ResetLightSettingCommand = new ActionCommand( () => SettingResetUtils.ResetSingleCategoryAsync(model.ResetLightSetting) ); ResetShadowSettingCommand = new ActionCommand( () => SettingResetUtils.ResetSingleCategoryAsync(_model.ResetShadowSetting) ); ResetBloomSettingCommand = new ActionCommand( () => SettingResetUtils.ResetSingleCategoryAsync(_model.ResetBloomSetting) ); ResetWindSettingCommand = new ActionCommand( () => SettingResetUtils.ResetSingleCategoryAsync(_model.ResetWindSetting) ); ResetImageQualitySettingCommand = new ActionCommand(ResetImageQuality); //最初の時点で不整合しなければ後は何でもOK UpdateLightColor(); UpdateBloomColor(); }
public RootSettingSync(IMessageSender sender, IMessageReceiver receiver) { AvailableLanguageNames = new ReadOnlyObservableCollection <string>(_availableLanguageNames); _sender = sender; Window = new WindowSettingSync(sender); Motion = new MotionSettingSync(sender); Layout = new LayoutSettingSync(sender); Gamepad = new GamepadSettingSync(sender); Light = new LightSettingSync(sender); WordToMotion = new WordToMotionSettingSync(sender, receiver); ExternalTracker = new ExternalTrackerSettingSync(sender); Automation = new AutomationSettingSync(sender); //NOTE; LanguageSelectorとの二重管理っぽくて若干アレだがこのままで行く //初期値Defaultを入れることで、起動直後にPCのカルチャベースで言語を指定しなきゃダメかどうか判別する LanguageName = new RProperty <string>("Default", s => { LanguageSelector.Instance.LanguageName = s; }); }