local gui = require('gui')
local widgets = require('gui.widgets')

TransparentScreen = defclass(TransparentScreen, gui.ZScreen)
TransparentScreen.ATTRS {
    focus_path='hide-interface',
    pass_movement_keys=true,
    pass_mouse_clicks=false,
    defocusable=false,
}

function TransparentScreen:init()
    self:addviews{
        widgets.Panel{
            frame_background=gui.TRANSPARENT_PEN,
            visible=function() return dfhack.screen.inGraphicsMode() end,
        },
        widgets.Panel{
            frame={h=5, w=50},
            frame_background=gui.CLEAR_PEN,
            frame_style=gui.FRAME_PANEL,
            visible=function() return not dfhack.screen.inGraphicsMode() end,
            subviews={
                widgets.Label{
                    auto_width=true,
                    text='Interface cannot be hidden in ASCII mode.',
                }
            },
        },
    }
end

function TransparentScreen:onDismiss()
    view = nil
end

view = view and view:raise() or TransparentScreen{}:show()