Browse Source

New `Anchored` constructor for top stage panes

master
Sarah Gerweck 8 years ago
parent
commit
bd1201ca28
  1. 24
      src/main/scala/org/gerweck/scalafx/util/layout/Anchored.scala

24
src/main/scala/org/gerweck/scalafx/util/layout/Anchored.scala

@ -0,0 +1,24 @@
package org.gerweck.scalafx.util.layout
import scalafx.geometry.Insets
import scalafx.scene.control.MenuBar
import scalafx.scene.layout._
/** A wrapper that binds its child pane to all four corners so it will always
* grow as the stage is resized.
*
* This can be useful as the very top element of a [[scalafx.stage.Stage]]
*
* @author Sarah Gerweck <sarah.a180@gmail.com>
*/
object Anchored {
def apply(margins: Insets = Insets.Empty, menus: Option[MenuBar] = None)(body: => Pane) = {
new AnchorPane { ap =>
hgrow = Priority.Always
vgrow = Priority.Always
private[this] lazy val innerPane = body
children = menus.toSeq :+ innerPane
AnchorPane.setAnchors(innerPane, margins.top, margins.right, margins.bottom, margins.left)
}
}
}
Loading…
Cancel
Save