void Display::LoadSettings() { Settings *settings = Settings::Instance(); LanguageTranslator *translator = settings->Translator(); /* Translations */ _allMonitorStr = translator->Translate(_allMonitorStr); _primaryMonitorStr = translator->Translate(_primaryMonitorStr); _customPositionStr = translator->Translate(_customPositionStr); _noAnimStr = translator->Translate(_noAnimStr); /* Visibility Settings */ _onTop->Checked(settings->AlwaysOnTop()); _hideFullscreen->Checked(settings->HideFullscreen()); _hideDirectX->Checked(settings->HideDirectX()); /* Position on Screen*/ for (std::wstring position : settings->OSDPosNames) { _position->AddItem(translator->Translate(position)); } _position->Select((int) settings->OSDPosition()); /* Custom positions/offsets */ _positionX->Text(settings->OSDX()); _positionY->Text(settings->OSDY()); _customDistance->Checked( settings->OSDEdgeOffset() != DefaultSettings::OSDOffset); _edgeSpinner->Text(settings->OSDEdgeOffset()); _edgeSpinner->Range(MIN_EDGE, MAX_EDGE); /* Display Devices */ _displayDevice->AddItem(_primaryMonitorStr); _displayDevice->AddItem(_allMonitorStr); std::list<DISPLAY_DEVICE> devices = DisplayManager::ListAllDevices(); for (DISPLAY_DEVICE dev : devices) { std::wstring devString(dev.DeviceName); _displayDevice->AddItem(devString); } std::wstring monitorName = settings->Monitor(); if (monitorName == L"") { monitorName = _primaryMonitorStr; } else if (monitorName == L"*") { monitorName = _allMonitorStr; } _displayDevice->Select(monitorName); /* Animation Settings */ for (std::wstring anim : AnimationTypes::HideAnimationNames) { _hideAnimation->AddItem(translator->Translate(anim)); } _hideAnimation->Select((int) settings->HideAnim()); _hideDelay->Range(MIN_MS, MAX_MS); _hideDelay->Text(settings->HideDelay()); _hideSpeed->Range(MIN_MS, MAX_MS); _hideSpeed->Text(settings->HideSpeed()); /* Refresh control states */ OnPositionChange(); OnCustomCheckChange(); OnAnimationChange(); }
EjectOSD::EjectOSD() : OSD(L"3RVX-EjectDispatcher"), _mWnd(L"3RVX-EjectOSD", L"3RVX-EjectOSD") { Skin *skin = SkinManager::Instance()->CurrentSkin(); if (skin->HasOSD("eject") == false) { return; } /* TODO: NULL check*/ _mWnd.BackgroundImage(skin->ejectBackground); if (skin->ejectMask != NULL) { _mWnd.EnableGlass(skin->ejectMask); } _mWnd.Update(); Settings *settings = Settings::Instance(); _mWnd.AlwaysOnTop(settings->AlwaysOnTop()); _mWnd.HideAnimation(settings->HideAnim(), settings->HideSpeed()); _mWnd.VisibleDuration(settings->HideDelay()); UpdateWindowPositions(ActiveMonitors()); }
void Display::SaveSettings() { if (_hWnd == NULL) { return; } CLOG(L"Saving: Display"); Settings *settings = Settings::Instance(); settings->AlwaysOnTop(_onTop.Checked()); settings->HideFullscreen(_hideFullscreen.Checked()); Settings::OSDPos pos = (Settings::OSDPos) _position.SelectionIndex(); settings->OSDPosition(pos); if (pos == Settings::OSDPos::Custom) { settings->OSDX(_positionX.TextAsInt()); settings->OSDY(_positionY.TextAsInt()); } if (_customDistance.Checked()) { settings->OSDEdgeOffset(_edgeSpinner.TextAsInt()); } else { /* We have to write the default here, just in case somebody unchecked * the checkbox. */ settings->OSDEdgeOffset(Settings::DefaultOSDOffset); } std::wstring monitor = _displayDevice.Selection(); int monitorIdx = _displayDevice.SelectionIndex(); if (monitorIdx == 0) { monitor = L""; } else if (monitorIdx == 1) { monitor = L"*"; } settings->Monitor(monitor); settings->HideAnim( (AnimationTypes::HideAnimation) _hideAnimation.SelectionIndex()); settings->HideDelay(_hideDelay.TextAsInt()); settings->HideSpeed(_hideSpeed.TextAsInt()); }