Jelajahi Sumber

code improvements & theme creation temporal removal

milan jurkulák 2 tahun lalu
induk
melakukan
3df78ac977

+ 2 - 0
build.gradle.kts

@@ -102,6 +102,8 @@ allprojects {
         implementation("com.alphacephei:vosk:0.3.32+")
         // custom components
         implementation("com.composables:core:1.12.0")
+        // lib-app-indicator
+        implementation("org.purejava:libappindicator-gtk3-java-full:1.4.1")
         // sikulix
 //        implementation("com.sikulix:sikulixapi:2.0.5")
         // blur

+ 29 - 27
src/main/kotlin/eu/mjdev/desktop/components/file/FolderView.kt

@@ -4,18 +4,12 @@ import androidx.compose.desktop.ui.tooling.preview.Preview
 import androidx.compose.foundation.*
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.layout.*
-import androidx.compose.foundation.lazy.LazyListState
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.MutableState
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
-import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.unit.dp
-import com.composables.core.*
 import eu.mjdev.desktop.data.DesktopFolderItem
-import eu.mjdev.desktop.extensions.Compose.SuperDarkGray
 import eu.mjdev.desktop.extensions.Modifier.conditional
 import eu.mjdev.desktop.provider.DesktopProvider
 import eu.mjdev.desktop.provider.DesktopProvider.Companion.LocalDesktop
@@ -32,7 +26,7 @@ import java.io.File
 // ShellFolderManager
 // X11GraphicsEnvironment
 @Suppress("FunctionName", "SimplifyBooleanWithConstants")
-@OptIn(ExperimentalLayoutApi::class, ExperimentalFoundationApi::class)
+@OptIn(ExperimentalLayoutApi::class)
 @Composable
 fun FolderView(
     modifier: Modifier = Modifier,
@@ -69,15 +63,21 @@ fun FolderView(
     zIndexState: MutableState<Int> = remember { mutableStateOf(files.size) },
     orientation: Orientation = Orientation.Vertical,
     scrollState: ScrollState = rememberScrollState(),
-    scrollbarsState: ScrollAreaState = rememberScrollAreaState(scrollState)
+//    scrollbarsState: ScrollAreaState = rememberScrollAreaState(scrollState)
 ) = Box(
     modifier = modifier.conditional(
-        condition = orientation == Orientation.Horizontal,
+        condition = orientation == Orientation.Vertical,
         onTrue = {
-            verticalScroll(scrollState)
+            verticalScroll(
+                state = scrollState,
+                enabled = scrollState.canScrollForward
+            )
         },
         onFalse = {
-            horizontalScroll(scrollState)
+            horizontalScroll(
+                state = scrollState,
+                enabled = scrollState.canScrollForward
+            )
         }
     )
 ) {
@@ -93,7 +93,7 @@ fun FolderView(
             )
         }
     }
-    ScrollArea(state = scrollbarsState) {
+//    ScrollArea(state = scrollbarsState) {
         if (orientation == Orientation.Horizontal) {
             FlowRow(
                 modifier = Modifier.fillMaxSize(),
@@ -102,13 +102,13 @@ fun FolderView(
                 verticalArrangement = Arrangement.Top,
                 content = { content() }
             )
-            HorizontalScrollbar(
-                modifier = Modifier.align(Alignment.TopEnd)
-                    .fillMaxHeight()
-                    .width(4.dp)
-            ) {
-                Thumb(Modifier.background(Color.SuperDarkGray))
-            }
+//            HorizontalScrollbar(
+//                modifier = Modifier.align(Alignment.TopEnd)
+//                    .fillMaxHeight()
+//                    .width(4.dp)
+//            ) {
+//                Thumb(Modifier.background(Color.SuperDarkGray))
+//            }
         } else {
             FlowColumn(
                 modifier = Modifier.fillMaxSize(),
@@ -117,14 +117,16 @@ fun FolderView(
                 verticalArrangement = Arrangement.Top,
                 content = { content() }
             )
-            VerticalScrollbar(
-                modifier = Modifier.align(Alignment.TopEnd)
-                    .fillMaxHeight()
-                    .width(4.dp)
-            ) {
-                Thumb(Modifier.background(Color.SuperDarkGray))
-            }
-        }
+//            VerticalScrollbar(
+//                modifier = Modifier.align(Alignment.TopEnd)
+//                    .fillMaxHeight()
+//                    .width(4.dp)
+//            ) {
+//                Thumb(
+//                    modifier = Modifier.background(Color.SuperDarkGray)
+//                )
+//            }
+//        }
     }
 }
 

+ 13 - 4
src/main/kotlin/eu/mjdev/desktop/helpers/internal/Palette.kt

@@ -10,15 +10,18 @@ import eu.mjdev.desktop.extensions.ColorUtils.lighter
 import eu.mjdev.desktop.extensions.ColorUtils.nonAlphaValue
 import eu.mjdev.desktop.extensions.Compose.SuperDarkGray
 import eu.mjdev.desktop.extensions.Image.loadPicture
+import eu.mjdev.desktop.helpers.managers.GnomeManager
 import eu.mjdev.desktop.helpers.managers.GnomeManager.Companion.THEME_MJDEV
-import eu.mjdev.desktop.helpers.managers.GnomeManager.Companion.THEME_YARU
 import eu.mjdev.desktop.provider.DesktopProvider
+import eu.mjdev.desktop.theme.gtk.GtkThemeHelper
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
 
 @Suppress("CanBeParameter", "MemberVisibilityCanBePrivate")
 class Palette(
     val api: DesktopProvider,
+    val gnome: GnomeManager = api.gnome,
+    val gtkTheme: GtkThemeHelper = api.gtkTheme,
     val scope: CoroutineScope = api.scope,
     val initialColor: Color = Color.SuperDarkGray,
     val borderFactor: Float = 0.1f,
@@ -83,13 +86,19 @@ class Palette(
         }
         createFromPalette()
         setGtkTheme(THEME_MJDEV)
+        setSoundTheme(THEME_MJDEV)
     }
 
     fun createFromPalette() =
-        api.gtkTheme.createFromPalette()
+        gtkTheme.createFromPalette()
 
-    fun setGtkTheme(themeName: String = THEME_YARU) =
-        api.gnome.setGTKTheme(themeName)
+    fun setGtkTheme(
+        themeName: String = THEME_MJDEV
+    ) = gnome.setGTKTheme(themeName)
+
+    fun setSoundTheme (
+        themeName: String = THEME_MJDEV
+    ) = gnome.setSoundTheme(themeName)
 
     companion object {
         @Composable

+ 19 - 14
src/main/kotlin/eu/mjdev/desktop/helpers/managers/GnomeManager.kt

@@ -25,23 +25,28 @@ class GnomeManager {
 
     fun setColorScheme(
         schemeName: String
-    ) = Shell.executeAndRead(
-        "gsettings",
-        "set",
-        "org.gnome.desktop.interface",
-        "color-scheme",
-        schemeName
-    )
+    ) {
+        Shell.executeAndRead(
+            "gsettings",
+            "set",
+            "org.gnome.desktop.interface",
+            "color-scheme",
+            schemeName
+        )
+    }
 
+    @Suppress("UNUSED_PARAMETER")
     fun setGTKTheme(
         themeName: String = THEME_YARU
-    ) = Shell.executeAndRead(
-        "gsettings",
-        "set",
-        "org.gnome.desktop.interface",
-        "gtk-theme",
-        themeName
-    )
+    ) {
+//        Shell.executeAndRead(
+//            "gsettings",
+//            "set",
+//            "org.gnome.desktop.interface",
+//            "gtk-theme",
+//            themeName
+//        )
+    }
 
     fun getGTKTheme(): String = Shell.executeAndRead(
         "gsettings",

+ 3 - 1
src/main/kotlin/eu/mjdev/desktop/provider/AIProvider.kt

@@ -10,7 +10,9 @@ import kotlinx.coroutines.async
 import kotlinx.coroutines.launch
 import nl.marc_apps.tts.TextToSpeechFactory
 import nl.marc_apps.tts.experimental.ExperimentalDesktopTarget
-
+/*
+* Gemini key : https://makersuite.google.com/app/apikey
+* */
 @Suppress("MemberVisibilityCanBePrivate", "unused", "UNUSED_PARAMETER")
 class AIProvider(
     val scope: CoroutineScope,