Inital commit
This commit is contained in:
parent
cdeefe45ac
commit
56eebe387c
42
build.gradle.kts
Normal file
42
build.gradle.kts
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
plugins {
|
||||||
|
kotlin("jvm") version "2.0.0"
|
||||||
|
id("org.openjfx.javafxplugin") version "0.0.13"
|
||||||
|
application
|
||||||
|
distribution
|
||||||
|
}
|
||||||
|
|
||||||
|
application {
|
||||||
|
mainClass.set("xyz.maxwellj.glide.MainKt")
|
||||||
|
layout.buildDirectory.dir("distributions/")
|
||||||
|
}
|
||||||
|
|
||||||
|
group = "xyz.maxwellj.glide"
|
||||||
|
version = "0.0.1"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<Jar> {
|
||||||
|
manifest {
|
||||||
|
attributes["Main-Class"] = "xyz.maxwellj.glide.MainKt"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testImplementation(kotlin("test"))
|
||||||
|
implementation(kotlin("stdlib-jdk8"))
|
||||||
|
testImplementation(kotlin("test"))
|
||||||
|
}
|
||||||
|
|
||||||
|
javafx {
|
||||||
|
version = "17.0.2"
|
||||||
|
modules = listOf("javafx.controls", "javafx.fxml")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.test {
|
||||||
|
useJUnitPlatform()
|
||||||
|
}
|
||||||
|
kotlin {
|
||||||
|
jvmToolchain(17)
|
||||||
|
}
|
5
settings.gradle.kts
Normal file
5
settings.gradle.kts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
plugins {
|
||||||
|
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
|
||||||
|
}
|
||||||
|
rootProject.name = "glide"
|
||||||
|
|
65
src/main/kotlin/Main.kt
Normal file
65
src/main/kotlin/Main.kt
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
package xyz.maxwellj.glide
|
||||||
|
|
||||||
|
import javafx.application.Application
|
||||||
|
import javafx.geometry.Insets
|
||||||
|
import javafx.scene.Scene
|
||||||
|
import javafx.scene.control.Label
|
||||||
|
import javafx.scene.control.TextArea
|
||||||
|
import javafx.scene.layout.BorderPane
|
||||||
|
import javafx.scene.layout.HBox
|
||||||
|
import javafx.scene.layout.VBox
|
||||||
|
import javafx.stage.Stage
|
||||||
|
import javafx.scene.Cursor
|
||||||
|
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
class MainApp: Application() {
|
||||||
|
override fun start(primaryStage: Stage) {
|
||||||
|
|
||||||
|
val root = BorderPane()
|
||||||
|
|
||||||
|
val centerPanel = TextArea(File("/home/max/dingus").readText().toString()).apply {
|
||||||
|
isWrapText = true
|
||||||
|
}
|
||||||
|
val topPanel = HBox().apply {
|
||||||
|
padding = Insets(10.0)
|
||||||
|
style = "-fx-background-color: #e6e6e6;"
|
||||||
|
children.add(saveButton("Save", centerPanel.text))
|
||||||
|
}
|
||||||
|
val leftPanel = VBox().apply {
|
||||||
|
padding = Insets(10.0)
|
||||||
|
prefWidth = 200.0
|
||||||
|
style = "-fx-background-color: #d9d9d9"
|
||||||
|
}
|
||||||
|
root.top = topPanel
|
||||||
|
root.left = leftPanel
|
||||||
|
root.center = centerPanel
|
||||||
|
val scene = Scene(root, 800.0, 600.0)
|
||||||
|
primaryStage.title = "glide"
|
||||||
|
primaryStage.scene = scene
|
||||||
|
primaryStage.show()
|
||||||
|
}
|
||||||
|
private fun saveButton(text: String, textAreaContent: String): Label {
|
||||||
|
return Label(text).apply {
|
||||||
|
cursor = Cursor.HAND
|
||||||
|
setOnMouseClicked {
|
||||||
|
println(textAreaContent)
|
||||||
|
println("Save button pressed! Saving...")
|
||||||
|
val file = File("/home/max/dingus")
|
||||||
|
file.writeText(textAreaContent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private fun fileButton(text: String): Label {
|
||||||
|
return Label(text).apply {
|
||||||
|
cursor = Cursor.HAND
|
||||||
|
setOnMouseClicked {
|
||||||
|
println("Clickable label $text clicked")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
Application.launch(MainApp::class.java)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user