@@ -3,6 +3,10 @@ package com.renpytool.ui
33import androidx.compose.foundation.layout.*
44import androidx.compose.material3.*
55import androidx.compose.runtime.Composable
6+ import androidx.compose.runtime.getValue
7+ import androidx.compose.runtime.mutableStateOf
8+ import androidx.compose.runtime.remember
9+ import androidx.compose.runtime.setValue
610import androidx.compose.ui.Alignment
711import androidx.compose.ui.Modifier
812import androidx.compose.ui.graphics.Color
@@ -87,20 +91,19 @@ fun MainScreenContent(
8791 onCreateClick : () -> Unit ,
8892 onDecompileClick : () -> Unit ,
8993 onEditClick : () -> Unit ,
90- onMenuClick : () -> Unit ,
94+ themeMode : com.renpytool.MainViewModel .ThemeMode ,
95+ onThemeModeChange : (com.renpytool.MainViewModel .ThemeMode ) -> Unit ,
9196 modifier : Modifier = Modifier
9297) {
9398 Scaffold (
9499 topBar = {
95100 TopAppBar (
96101 title = { Text (" Rentool" ) },
97102 actions = {
98- IconButton (onClick = onMenuClick) {
99- Icon (
100- painter = painterResource(id = android.R .drawable.ic_menu_more),
101- contentDescription = " Menu"
102- )
103- }
103+ ThemeMenuButton (
104+ themeMode = themeMode,
105+ onThemeModeChange = onThemeModeChange
106+ )
104107 },
105108 colors = TopAppBarDefaults .topAppBarColors(
106109 containerColor = MaterialTheme .colorScheme.surfaceContainer,
@@ -156,3 +159,74 @@ fun MainScreenContent(
156159 }
157160 }
158161}
162+
163+ /* *
164+ * Theme menu button with dropdown
165+ */
166+ @Composable
167+ fun ThemeMenuButton (
168+ themeMode : com.renpytool.MainViewModel .ThemeMode ,
169+ onThemeModeChange : (com.renpytool.MainViewModel .ThemeMode ) -> Unit
170+ ) {
171+ var menuExpanded by remember { mutableStateOf(false ) }
172+
173+ Box {
174+ IconButton (onClick = { menuExpanded = true }) {
175+ Icon (
176+ painter = painterResource(id = android.R .drawable.ic_menu_more),
177+ contentDescription = " Menu"
178+ )
179+ }
180+
181+ DropdownMenu (
182+ expanded = menuExpanded,
183+ onDismissRequest = { menuExpanded = false }
184+ ) {
185+ DropdownMenuItem (
186+ text = { Text (" System Default" ) },
187+ onClick = {
188+ onThemeModeChange(com.renpytool.MainViewModel .ThemeMode .SYSTEM )
189+ menuExpanded = false
190+ },
191+ trailingIcon = {
192+ if (themeMode == com.renpytool.MainViewModel .ThemeMode .SYSTEM ) {
193+ Icon (
194+ painter = painterResource(id = android.R .drawable.checkbox_on_background),
195+ contentDescription = null
196+ )
197+ }
198+ }
199+ )
200+ DropdownMenuItem (
201+ text = { Text (" Light Mode" ) },
202+ onClick = {
203+ onThemeModeChange(com.renpytool.MainViewModel .ThemeMode .LIGHT )
204+ menuExpanded = false
205+ },
206+ trailingIcon = {
207+ if (themeMode == com.renpytool.MainViewModel .ThemeMode .LIGHT ) {
208+ Icon (
209+ painter = painterResource(id = android.R .drawable.checkbox_on_background),
210+ contentDescription = null
211+ )
212+ }
213+ }
214+ )
215+ DropdownMenuItem (
216+ text = { Text (" Dark Mode" ) },
217+ onClick = {
218+ onThemeModeChange(com.renpytool.MainViewModel .ThemeMode .DARK )
219+ menuExpanded = false
220+ },
221+ trailingIcon = {
222+ if (themeMode == com.renpytool.MainViewModel .ThemeMode .DARK ) {
223+ Icon (
224+ painter = painterResource(id = android.R .drawable.checkbox_on_background),
225+ contentDescription = null
226+ )
227+ }
228+ }
229+ )
230+ }
231+ }
232+ }
0 commit comments