Exemple #1
0
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();
}
Exemple #2
0
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());
}