diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-02-13 14:07:55 +0200 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-02-13 14:07:55 +0200 |
| commit | 6f6bd6a028f48a1685370049406986425f889a50 (patch) | |
| tree | 0dcb9ccf43b21b754b80cd8b519003b022e21832 /src/main/kotlin/me/kyren223/harpoonforjb/AppSettingsConfigurable.kt | |
| parent | 923453baa759f7d7e2f6fb4e1d1610fe5b773789 (diff) | |
Added a settings menu
Changed project from java to kotlin
Diffstat (limited to 'src/main/kotlin/me/kyren223/harpoonforjb/AppSettingsConfigurable.kt')
| -rw-r--r-- | src/main/kotlin/me/kyren223/harpoonforjb/AppSettingsConfigurable.kt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/kotlin/me/kyren223/harpoonforjb/AppSettingsConfigurable.kt b/src/main/kotlin/me/kyren223/harpoonforjb/AppSettingsConfigurable.kt new file mode 100644 index 0000000..5d50bb9 --- /dev/null +++ b/src/main/kotlin/me/kyren223/harpoonforjb/AppSettingsConfigurable.kt @@ -0,0 +1,47 @@ +// Copyright 2000-2022 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package me.kyren223.harpoonforjb + +import com.intellij.openapi.options.Configurable +import com.intellij.openapi.util.NlsContexts.ConfigurableName +import javax.swing.JComponent + +class AppSettingsConfigurable : Configurable { + private var settings: SettingsData? = null + override fun getDisplayName(): @ConfigurableName String { + return "HarpoonForJB Settings" + } + + override fun createComponent(): JComponent { + settings = SettingsData() + return settings!!.panel + } + + override fun isModified(): Boolean { + val settings = AppSettingsState.instance + if (settings.harpoonWidth != this.settings!!.getHarpoonWidth()) return true + if (settings.harpoonHeight != this.settings!!.getHarpoonHeight()) return true + if (settings.harpoonFontSize != this.settings!!.getHarpoonFontSize()) return true + return false + } + + override fun apply() { + val settings = AppSettingsState.instance + settings.harpoonWidth = this.settings!!.getHarpoonWidth() + settings.harpoonHeight = this.settings!!.getHarpoonHeight() + settings.harpoonFontSize = this.settings!!.getHarpoonFontSize() + } + + override fun reset() { + val settings = AppSettingsState.instance + if (this.settings == null) { + this.settings = SettingsData() + } + this.settings!!.setHarpoonWidth(settings.harpoonWidth) + this.settings!!.setHarpoonHeight(settings.harpoonHeight) + this.settings!!.setHarpoonFontSize(settings.harpoonFontSize) + } + + override fun disposeUIResources() { + settings = null + } +} |
