| 98 | } |
| 99 | |
| 100 | void OptionsView::createGeneralTab() { |
| 101 | std::shared_ptr<ImGuiLayout> model = std::make_shared<ImGuiLayout>(); |
| 102 | std::shared_ptr<LayoutSection> section = model->addSection(Msg::OPTIONSVIEW_TITLE_GENERAL); |
| 103 | |
| 104 | saveLocationControl = section->addTextInputRow(Msg::OPTIONSVIEW_SAVE_FOLDER_LABEL, Msg::OPTIONSVIEW_SAVE_FOLDER_HELP, GlobalSettings::getDataFolder()); |
| 105 | saveLocationControl->setBrowseDirButton(); |
| 106 | // :TODO: track when we loose focus and save |
| 107 | |
| 108 | std::vector<ComboboxItem> resolutions; |
| 109 | for (auto& res : GlobalSettings::getAvailableResolutions()) { |
| 110 | resolutions.push_back(ComboboxItem(res)); |
| 111 | } |
| 112 | resolutionControl = section->addComboboxRow(Msg::OPTIONSVIEW_DEFAULT_RESOLUTION_LABEL, Msg::OPTIONSVIEW_DEFAULT_RESOLUTION_HELP, resolutions); |
| 113 | resolutionControl->setWidth((int)GlobalSettings::scaleFloatUIAndFont(150)); |
| 114 | resolutionControl->setSelectionByLabel(GlobalSettings::getDefaultResolution()); |
| 115 | resolutionControl->onChange = [this]() { |
| 116 | GlobalSettings::defaultResolution = GlobalSettings::availableResolutions[this->resolutionControl->getSelection()]; |
| 117 | GlobalSettings::saveConfig(); |
| 118 | }; |
| 119 | |
| 120 | std::vector<ComboboxItem> vsync; |
| 121 | vsync.push_back(ComboboxItem(B("Disabled"), VSYNC_DISABLED)); |
| 122 | vsync.push_back(ComboboxItem(B("Enabled"), VSYNC_ENABLED)); |
| 123 | vsync.push_back(ComboboxItem(B("Adaptive"), VSYNC_ADAPTIVE)); |
| 124 | vsyncControl = section->addComboboxRow(Msg::OPTIONS_VIEW_VSYNC_LABEL, Msg::OPTIONS_VIEW_VSYNC_HELP, vsync, GlobalSettings::defaultVsync); |
| 125 | vsyncControl->setWidth((int)GlobalSettings::scaleFloatUIAndFont(150)); |
| 126 | vsyncControl->onChange = [this]() { |
| 127 | GlobalSettings::defaultVsync = this->vsyncControl->getSelectionIntValue(); |
| 128 | GlobalSettings::saveConfig(); |
| 129 | }; |
| 130 | |
| 131 | std::vector<ComboboxItem> scales; |
| 132 | scales.push_back(ComboboxItem(B("1/2x"), 50)); |
| 133 | scales.push_back(ComboboxItem(B("1x"), 100)); |
| 134 | scales.push_back(ComboboxItem(B("2x"), 200)); |
| 135 | scales.push_back(ComboboxItem(B("3x"), 300)); |
| 136 | scaleControl = section->addComboboxRow(Msg::OPTIONSVIEW_DEFAULT_SCALE_LABEL, Msg::OPTIONSVIEW_DEFAULT_SCALE_HELP, scales, GlobalSettings::getDefaultScale()/100); |
| 137 | scaleControl->setWidth((int)GlobalSettings::scaleFloatUIAndFont(150)); |
| 138 | scaleControl->onChange = [this]() { |
| 139 | GlobalSettings::defaultScale = this->scaleControl->getSelectionIntValue(); |
| 140 | GlobalSettings::saveConfig(); |
| 141 | }; |
| 142 | |
| 143 | #if defined(BOXEDWINE_OPENGL_OSMESA) |
| 144 | std::vector<ComboboxItem> glOptions; |
| 145 | glOptions.push_back(ComboboxItem(B("Native"), OPENGL_TYPE_NATIVE)); |
| 146 | glOptions.push_back(ComboboxItem(B("Software - Mesa LLVM Pipe"), OPENGL_TYPE_LLVM_PIPE)); |
| 147 | openGlControl = section->addComboboxRow(Msg::OPTIONSVIEW_DEFAULT_OPENGL_LABEL, Msg::OPTIONSVIEW_DEFAULT_OPENGL_HELP, glOptions, GlobalSettings::defaultOpenGL); |
| 148 | openGlControl->setWidth((int)GlobalSettings::scaleFloatUIAndFont(250)); |
| 149 | openGlControl->setSelectionIntValue(GlobalSettings::defaultOpenGL); |
| 150 | openGlControl->onChange = [this]() { |
| 151 | GlobalSettings::defaultOpenGL = this->openGlControl->getSelectionIntValue(); |
| 152 | GlobalSettings::saveConfig(); |
| 153 | }; |
| 154 | #endif |
| 155 | #if defined(BOXEDWINE_OPENGL_SDL) |
| 156 | if (KSystem::isWindows()) { |
| 157 | std::vector<ComboboxItem> glOptions; |
nothing calls this directly
no test coverage detected