mirror of
https://github.com/amwatson/CitraVR.git
synced 2024-09-20 03:11:40 +02:00
remove prev/next UI buttons and make radio buttons functional
This commit is contained in:
parent
003590f5ff
commit
47746e74e7
5 changed files with 96 additions and 151 deletions
|
@ -14,9 +14,9 @@ import org.citra.citra_emu.utils.Log
|
|||
|
||||
class VrRibbonLayer(activity: VrActivity) : VrUILayer(activity, R.layout.vr_ribbon) {
|
||||
|
||||
enum class MenuType(val resId: Int) {
|
||||
MAIN(R.id.main_panel),
|
||||
POSITION(R.id.position_panel)
|
||||
enum class MenuType(val resId: Int, buttonId: Int) {
|
||||
MAIN(R.id.main_panel, R.id.button_menu_main),
|
||||
POSITION(R.id.position_panel, R.id.button_menu_positional)
|
||||
}
|
||||
|
||||
private var menuTypeCurrent: MenuType = MenuType.MAIN
|
||||
|
@ -50,12 +50,18 @@ class VrRibbonLayer(activity: VrActivity) : VrUILayer(activity, R.layout.vr_ribb
|
|||
// This button is checked, change the background accordingly
|
||||
btn.background = activity?.getDrawable(
|
||||
R.drawable.vr_ribbon_button_pressed)
|
||||
when (btn.id) {
|
||||
R.id.button_menu_main -> switchMenus(MenuType.MAIN)
|
||||
R.id.button_menu_positional -> switchMenus(MenuType.POSITION)
|
||||
}
|
||||
} else {
|
||||
// This button is not checked, revert to the default background
|
||||
btn.background = activity?.getDrawable(R.drawable.vr_ribbon_button_default)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Set the first button as checked
|
||||
radioGroup?.check(R.id.button_menu_main)
|
||||
}
|
||||
|
||||
private fun initializePositionalPanel() {
|
||||
|
@ -113,25 +119,5 @@ class VrRibbonLayer(activity: VrActivity) : VrUILayer(activity, R.layout.vr_ribb
|
|||
false
|
||||
}
|
||||
|
||||
val btnNext = window?.findViewById<Button>(R.id.buttonNextMenu)
|
||||
val btnPrev = window?.findViewById<Button>(R.id.buttonPrevMenu)
|
||||
btnNext?.setOnClickListener { _ ->
|
||||
val nextIdx = (menuTypeCurrent.ordinal + 1) % MenuType.values().size
|
||||
switchMenus(MenuType.values()[nextIdx])
|
||||
if ((nextIdx + 1) >= MenuType.values().size)
|
||||
btnNext.visibility = View.INVISIBLE
|
||||
btnPrev?.visibility = View.VISIBLE
|
||||
false
|
||||
}
|
||||
|
||||
btnPrev?.setOnClickListener { _ ->
|
||||
val prevIdx =
|
||||
(menuTypeCurrent.ordinal - 1 + MenuType.values().size) % MenuType.values().size
|
||||
switchMenus(MenuType.values()[prevIdx])
|
||||
if ((prevIdx - 1) <= 0)
|
||||
btnPrev.visibility = View.INVISIBLE
|
||||
btnNext?.visibility = View.VISIBLE
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -429,8 +429,8 @@ void GameSurfaceLayer::SetTopPanelFromController(const XrVector3f& controllerPos
|
|||
CalculatePanelPosition(viewerPosition, controllerPosition, sphereRadius);
|
||||
if (windowPosition.z >= -0.5f) { return; }
|
||||
if (XrMath::Vector3f::LengthSq(
|
||||
XrVector3f {windowPosition.x, windowPosition.y, mTopPanel.mInitialPose.position.z}
|
||||
- mLowerPanel.mPanelFromWorld.position) <
|
||||
XrVector3f{windowPosition.x, windowPosition.y, mTopPanel.mInitialPose.position.z} -
|
||||
mLowerPanel.mPanelFromWorld.position) <
|
||||
XrMath::Vector3f::LengthSq(mTopPanel.mInitialPose.position -
|
||||
mLowerPanel.mInitialPose.position)) {
|
||||
return;
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
<RadioButton
|
||||
android:id="@+id/menu_main"
|
||||
android:id="@+id/button_menu_main"
|
||||
style="@style/VrRibbonButtonStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -55,7 +55,7 @@
|
|||
android:clipToOutline="true"
|
||||
android:text="Main" />
|
||||
<RadioButton
|
||||
android:id="@+id/menu_positional"
|
||||
android:id="@+id/button_menu_positional"
|
||||
style="@style/VrRibbonButtonStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -64,7 +64,7 @@
|
|||
android:text="Position" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/menu_stats"
|
||||
android:id="@+id/button_menu_stats"
|
||||
style="@style/VrRibbonButtonStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -91,47 +91,6 @@
|
|||
android:visibility="gone" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="18dp"
|
||||
android:layout_marginEnd="150dp"
|
||||
android:layout_marginBottom="18dp"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/panelHolder">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="500dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonPrevMenu"
|
||||
style="@style/VrRibbonButtonStyle"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:minHeight="0dp"
|
||||
android:padding="0dp"
|
||||
android:paddingVertical="20dp"
|
||||
android:text="<" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonNextMenu"
|
||||
style="@style/VrRibbonButtonStyle"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:minHeight="0dp"
|
||||
android:padding="0dp"
|
||||
android:paddingVertical="20dp"
|
||||
android:text=">" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
Loading…
Reference in a new issue