Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix sim diagnostics #492

Merged
merged 1 commit into from
Sep 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions src/jsMain/kotlin/baaahs/app/ui/AllStyles.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package baaahs.app.ui

import baaahs.app.ui.document.FileUploadStyles
import baaahs.app.ui.editor.ShaderEditorStyles
import baaahs.app.ui.editor.ShaderHelpStyles
import baaahs.app.ui.editor.ThemedEditableStyles
import baaahs.app.ui.editor.layout.LayoutEditorStyles
import baaahs.app.ui.gadgets.color.ColorWheelStyles
import baaahs.app.ui.gadgets.slider.ThemedStyles
import baaahs.app.ui.layout.LayoutStyles
import baaahs.app.ui.model.ModelEditorStyles
import baaahs.mapper.ControllerEditorStyles
import baaahs.mapper.MapperStyles
import baaahs.ui.components.UiComponentStyles
import baaahs.ui.diagnostics.DiagnosticsStyles
import mui.material.styles.Theme
import styled.injectGlobal

class AllStyles(val theme: Theme) {
val appUi by lazy { ThemeStyles(theme) }
val editor by lazy { baaahs.ui.editor.Styles(theme) }
val controls by lazy { baaahs.app.ui.controls.ThemeStyles(theme) }
val gadgetsSlider by lazy { ThemedStyles(theme) }
val editableManager by lazy { ThemedEditableStyles(theme) }
val layout by lazy { LayoutStyles(theme) }
val layoutEditor by lazy { LayoutEditorStyles(theme) }
val controllerEditor by lazy { ControllerEditorStyles(theme) }
val modelEditor by lazy { ModelEditorStyles(theme) }
val mapper by lazy { MapperStyles(theme) }
val shaderEditor by lazy { ShaderEditorStyles(theme) }
val shaderHelp by lazy { ShaderHelpStyles(theme) }
val uiComponents by lazy { UiComponentStyles(theme) }
val fileUploadStyles by lazy { FileUploadStyles(theme) }
val diagnosticsStyles by lazy { DiagnosticsStyles(theme) }

fun injectGlobals() {
injectGlobal(Styles.global)
injectGlobal(appUi.global)
injectGlobal(baaahs.app.ui.controls.Styles.global)
injectGlobal(ColorWheelStyles.global)
injectGlobal(layout.global)
}
}
41 changes: 0 additions & 41 deletions src/jsMain/kotlin/baaahs/app/ui/Styles.kt
Original file line number Diff line number Diff line change
@@ -1,55 +1,14 @@
package baaahs.app.ui

import baaahs.app.ui.document.FileUploadStyles
import baaahs.app.ui.editor.ShaderEditorStyles
import baaahs.app.ui.editor.ShaderHelpStyles
import baaahs.app.ui.editor.ThemedEditableStyles
import baaahs.app.ui.editor.layout.LayoutEditorStyles
import baaahs.app.ui.gadgets.color.ColorWheelStyles
import baaahs.app.ui.gadgets.slider.ThemedStyles
import baaahs.app.ui.layout.LayoutStyles
import baaahs.app.ui.model.ModelEditorStyles
import baaahs.mapper.ControllerEditorStyles
import baaahs.mapper.MapperStyles
import baaahs.ui.*
import baaahs.ui.components.UiComponentStyles
import baaahs.ui.diagnostics.DiagnosticsStyles
import kotlinx.css.*
import kotlinx.css.properties.*
import kotlinx.js.Object
import mui.material.styles.Theme
import mui.system.Breakpoint
import styled.StyleSheet
import styled.injectGlobal
import baaahs.app.ui.controls.Styles as ControlsStyles

class AllStyles(val theme: Theme) {
val themeStyles = ThemeStyles(theme)
val appUi by lazy { themeStyles }
val editor by lazy { baaahs.ui.editor.Styles(theme) }
val controls by lazy { baaahs.app.ui.controls.ThemeStyles(theme) }
val gadgetsSlider by lazy { ThemedStyles(theme) }
val editableManager by lazy { ThemedEditableStyles(theme) }
val layout by lazy { LayoutStyles(theme) }
val layoutEditor by lazy { LayoutEditorStyles(theme) }
val controllerEditor by lazy { ControllerEditorStyles(theme) }
val modelEditor by lazy { ModelEditorStyles(theme) }
val mapper by lazy { MapperStyles(theme) }
val shaderEditor by lazy { ShaderEditorStyles(theme) }
val shaderHelp by lazy { ShaderHelpStyles(theme) }
val uiComponents by lazy { UiComponentStyles(theme) }
val fileUploadStyles by lazy { FileUploadStyles(theme) }
val diagnosticsStyles by lazy { DiagnosticsStyles(theme) }

fun injectGlobals() {
injectGlobal(Styles.global)
injectGlobal(appUi.global)
injectGlobal(ControlsStyles.global)
injectGlobal(ColorWheelStyles.global)
injectGlobal(layout.global)
}
}

fun linearRepeating(
color1: Color,
color2: Color,
Expand Down
4 changes: 2 additions & 2 deletions src/jsMain/kotlin/baaahs/sim/ui/SimulatorAppView.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package baaahs.sim.ui

import baaahs.SheepSimulator
import baaahs.app.ui.Themes
import baaahs.document
import baaahs.sim.HostedWebApp
import baaahs.ui.components.UiComponentStyles
Expand All @@ -12,7 +13,6 @@ import external.mosaic.MosaicWindow
import external.mosaic.MosaicWindowProps
import external.mosaic.mosaic
import kotlinx.js.jso
import mui.material.styles.createTheme
import mui.system.Breakpoint
import react.*
import react.dom.div
Expand All @@ -33,7 +33,7 @@ external interface SimulatorContext {
}

val SimulatorAppView = xComponent<SimulatorAppProps>("SimulatorApp") { props ->
val theme = createTheme(jso {})
val theme = Themes.Light
val simulatorStyles = ThemedSimulatorStyles(theme)
injectGlobal(simulatorStyles.global)
val uiComponentStyles = UiComponentStyles(theme)
Expand Down
2 changes: 1 addition & 1 deletion src/jsMain/kotlin/baaahs/sim/ui/SimulatorStyles.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import baaahs.ui.important
import kotlinx.css.*
import kotlinx.css.properties.border
import kotlinx.css.properties.boxShadow
import mui.material.styles.Theme
import mui.system.Breakpoint
import mui.system.Theme
import styled.StyleSheet

class ThemedSimulatorStyles(val theme: Theme) : StyleSheet("sim-ui-themed", isStatic = true) {
Expand Down
27 changes: 21 additions & 6 deletions src/jsMain/kotlin/baaahs/sim/ui/StatusPanel.kt
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
package baaahs.sim.ui

import baaahs.SheepSimulator
import baaahs.app.ui.AllStyles
import baaahs.app.ui.AppContext
import baaahs.app.ui.appContext
import baaahs.ui.asTextNode
import baaahs.ui.diagnostics.patchDiagnostics
import baaahs.ui.unaryPlus
import baaahs.ui.withTChangeEvent
import baaahs.ui.xComponent
import kotlinx.js.jso
import mui.material.FormControlLabel
import mui.material.Switch
import react.Props
import react.RBuilder
import react.RHandler
import react.buildElement
import react.*
import react.dom.div

val StatusPanelView = xComponent<StatusPanelProps>("StatusPanel") { props ->
var isConsoleOpen by state { false }
var isGlslPaletteOpen by state { false }
val simulator = props.simulator
val simulatorContext = useContext(simulatorContext)
val stubAppContext = memo(simulatorContext) {
val allStyles = AllStyles(simulatorContext.styles.theme)
jso<AppContext> {
this.allStyles = allStyles
}
}

val handleIsConsoleOpenChange by eventHandler { isConsoleOpen = !isConsoleOpen }
val handleIsGlslPaletteOpenChange by eventHandler { isGlslPaletteOpen = !isGlslPaletteOpen }
Expand Down Expand Up @@ -46,8 +54,15 @@ val StatusPanelView = xComponent<StatusPanelProps>("StatusPanel") { props ->
}

if (isConsoleOpen) console { attrs.simulator = simulator }
if (isGlslPaletteOpen) patchDiagnostics {
attrs.renderPlanMonitor = simulator.pinky.fixtureManager.renderPlanMonitor
if (isGlslPaletteOpen) {
appContext.Provider {
attrs.value = stubAppContext

patchDiagnostics {
attrs.renderPlanMonitor = simulator.pinky.fixtureManager.renderPlanMonitor
attrs.onClose = handleIsGlslPaletteOpenChange as () -> Unit
}
}
}
}
}
Expand Down