Cells/cells/ui/src/net/okennedy/cells/widgets/FormulaEditor.scala

57 lines
1.1 KiB
Scala

package net.okennedy.cells.widgets
import org.scalajs.dom
import com.raquo.laminar.api.L._
import com.raquo.laminar.nodes.ReactiveHtmlElement
class FormulaEditor(x: Int, y: Int)
extends Widget
{
val formula = Var[String](initial = "Hihihihi")
val inputArea =
input(
className("inputArea"),
`type`("text"),
controlled(
value <-- formula,
onInput.mapToValue --> formula.writer
)
)
def cancel(): Unit =
{
println("Cancelled")
}
def accept(): Unit =
{
println(s"Accepted with ${formula.now()}")
}
val root =
div(
className("formulaEditor"),
styleAttr(s"left: ${x}px; top: ${y}px"),
div(
className("pointer"),
Icon("caret-up")
),
div(
className("editorBody"),
inputArea,
div( className("cancel button"), Icon("times"),
onClick --> { evt => cancel() }
),
div( className("accept button"), Icon("check"),
onClick --> { evt => accept() }
)
)
)
}
object FormulaEditor
{
def apply(x: Int, y: Int) =
Widgets.register(new FormulaEditor(x, y))
}