GameSidePanel < UIMiniWindowContainer
  image-source: /images/ui/panel_side
  image-border: 4
  padding: 4
  width: 198
  layout:
    type: verticalBox
    //spacing: 1

GameBottomPanel < Panel
  image-source: /images/ui/panel_bottom
  image-border: 4

GameMapPanel < UIGameMap
  padding: 4
  image-source: /images/ui/panel_map
  image-border: 4

  $on:
    padding: 0

UIWidget
  id: gameRootPanel
  anchors.fill: parent
  anchors.top: topMenu.bottom

  GameMapPanel
    id: gameMapPanel
    anchors.left: gameLeftPanel.right
    anchors.right: gameRightPanel.left
    anchors.top: parent.top
    anchors.bottom: gameBottomPanel.top
    focusable: false

  GameBottomPanel
    id: gameBottomPanel
    anchors.left: gameLeftPanel.right
    anchors.right: gameRightPanel.left
    anchors.top: bottomSplitter.top
    anchors.bottom: parent.bottom

  GameSidePanel
    id: gameLeftPanel
    anchors.left: parent.left
    anchors.top: parent.top
    anchors.bottom: parent.bottom
    focusable: false
    visible: true
    on: true
    $!on:
      width: 0
      visible: false

  GameSidePanel
    id: gameRightPanel
    anchors.right: parent.right
    anchors.top: parent.top
    anchors.bottom: parent.bottom
    focusable: false
    on: true

  Splitter
    id: bottomSplitter
    anchors.left: gameLeftPanel.right
    anchors.right: gameRightPanel.left
    anchors.bottom: parent.bottom
    relative-margin: bottom
    margin-bottom: 172
    @canUpdateMargin: function(self, newMargin) if modules.client_options.getOption('dontStretchShrink') then return self:getMarginBottom() end return math.max(math.min(newMargin, self:getParent():getHeight() - 300), 100) end
    @onGeometryChange: function(self) self:setMarginBottom(math.min(math.max(self:getParent():getHeight() - 300, 100), self:getMarginBottom())) end

  UIWidget
    id: mouseGrabber
    focusable: false
    visible: false