37 lines
870 B
Kotlin
37 lines
870 B
Kotlin
package io.gitlab.jfronny.inceptum.gtk.control
|
|
|
|
import org.gnome.gtk.Align
|
|
import org.gnome.gtk.ProgressBar
|
|
import org.gnome.gtk.Revealer
|
|
import org.gnome.gtk.RevealerTransitionType
|
|
|
|
class LoadingRevealer: Revealer() {
|
|
private val progressBar: ProgressBar
|
|
|
|
init {
|
|
transitionType = RevealerTransitionType.CROSSFADE
|
|
revealChild = false
|
|
vexpand = false
|
|
hexpand = false
|
|
valign = Align.CENTER
|
|
halign = Align.FILL
|
|
progressBar = ProgressBar().apply {
|
|
hexpand = true
|
|
vexpand = false
|
|
addCssClass("osd")
|
|
}
|
|
child = progressBar
|
|
}
|
|
|
|
fun setRunning(state: Boolean) {
|
|
revealChild = state
|
|
}
|
|
|
|
fun setProgress(progress: Double) {
|
|
progressBar.fraction = progress.coerceIn(0.0, 1.0)
|
|
}
|
|
|
|
fun pulse() {
|
|
progressBar.pulse()
|
|
}
|
|
} |