https://kotlinlang.org logo
a

ajithprasaad

11/03/2017, 7:41 AM
@edvin It works after I removed the +50 and changing params in prefsize Is this a right way?
Copy code
class DemoTab : View("Demo Tab") {
    override val root = hbox()

    init {
        with(root) {
            vbox{
                hgrow = Priority.ALWAYS
                val buttonRoot = button("Show Demo Popup")
                with(buttonRoot){
                    action {
                        find(DemoPopup::class, mapOf(DemoPopup::parentContainer to buttonRoot.parent))
                                .openModal(stageStyle = StageStyle.TRANSPARENT)
                    }
                }

                style {
                    backgroundColor += Color.BLUE
                }
            }

            vbox {
                minWidth = 200.0
                style {
                    backgroundColor += Color.RED
                    alignment = Pos.CENTER_RIGHT
                }
            }
        }
    }
}


class DemoPopup : Fragment("Demo Popup") {

val parentContainer: Parent by param()

    override fun onDock() {
        modalStage!!.x = parentContainer.localToScreen(parentContainer.boundsInParent).minX
        modalStage!!.y = parentContainer.localToScreen(parentContainer.boundsInParent).minY
    }

    override val root = vbox {
        setPrefSize(parentContainer.layoutBounds.width, parentContainer.layoutBounds.height)

        style {
            backgroundColor += Color.YELLOW
        }
    }
}