class MyScreenBuilder < ScreenBuilder
  def initialize(title)
    super
    controller(DefaultScreenController.new)
    layer(MyLayerBuilder.new("Layer_ID"))
  end
end

class MyLayerBuilder < LayerBuilder
  def initialize(id)
    super
    childLayoutVertical
    panel(MyPanelBuilder.new("Panel_ID"))
  end
end

class MyPanelBuilder < PanelBuilder
  def initialize(id)
    super
    childLayoutCenter
    control(MyButtonBuilder.new("Button_ID", "Hello Nifty"))
  end
end

class MyButtonBuilder < ButtonBuilder
  def initialize(id, label)
    super
    alignCenter
    valignCenter
    height "5%"
    width "15%"
  end
end

nifty.addScreen("Screen_ID", MyScreenBuilder.new("Hello Nifty Screen"))