bool DemoScene::RenderPreferences()

in agdk/game_controller/common/demo_scene.cpp [264:331]


bool DemoScene::RenderPreferences() {
    if (!mPreferencesActive) {
        if (ImGui::Button("Preferences...")) {
            mPreferencesActive = true;
        }
    }

    if (mPreferencesActive) {
        ImGuiManager *imguiManager = NativeEngine::GetInstance()->GetImGuiManager();
        float fontScale = imguiManager->GetFontScale();
        float uiScale = mControllerPanelScale;

        ImGui::Text("Preferences");

        ImGui::Spacing();
        ImGui::Text("Font scale:  ");
        ImGui::SameLine();
        const float alignLeftX = ImGui::GetCursorPosX();
        if (ImGui::Button(" + ##font")) {
            fontScale += FONT_SCALE_STEP;
            if (fontScale > FONT_SCALE_MAX) {
                fontScale = FONT_SCALE_MAX;
            }
            imguiManager->SetFontScale(fontScale);
        }
        ImGui::SameLine();
        ImGui::Text("%2.1f", fontScale);
        ImGui::SameLine();
        if (ImGui::Button(" - ##font")) {
            fontScale -= FONT_SCALE_STEP;
            if (fontScale < FONT_SCALE_MIN) {
                fontScale = FONT_SCALE_MIN;
            }
            imguiManager->SetFontScale(fontScale);
        }

        ImGui::Spacing();
        ImGui::Text("UI scale:  ");
        ImGui::SameLine();
        ImGui::SetCursorPosX(alignLeftX);
        if (ImGui::Button(" + ##ui")) {
            uiScale += UI_SCALE_STEP;
            if (uiScale > UI_SCALE_MAX) {
                uiScale = UI_SCALE_MAX;
            }
            mControllerPanelScale = uiScale;
        }
        ImGui::SameLine();
        ImGui::Text("%2.1f", uiScale);
        ImGui::SameLine();
        if (ImGui::Button(" - ##ui")) {
            uiScale -= UI_SCALE_STEP;
            if (uiScale < UI_SCALE_MIN) {
                uiScale = UI_SCALE_MIN;
            }
            mControllerPanelScale = uiScale;
        }

        ImGui::Spacing();
        ImGui::Checkbox("Raw deadzone", &mDontTrimDeadzone);

        ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 16.0f);
        if (ImGui::Button("    OK    ")) {
            mPreferencesActive = false;
        }
    }
    return mPreferencesActive;
}