131 lines
3.9 KiB
Lua
131 lines
3.9 KiB
Lua
package.path = package.path..";"..RL_GetBasePath().."../resources/lib/?.lua"
|
|
|
|
util = require( "utillib" )
|
|
Vec2 = require( "vector2" )
|
|
Rect = require( "rectangle" )
|
|
Gui = require( "gui" )
|
|
|
|
local textColor = BLACK
|
|
local textPos = { 192, 200 }
|
|
local imageFont = -1
|
|
|
|
local container = {}
|
|
|
|
function initGui()
|
|
-- local label = Gui.label:new( { text = "Dog", bounds = { 32, 32, 96, 96 }, drawBounds = true, Haling = Gui.ALING.CENTER, Valing = Gui.ALING.TOP } )
|
|
local panel = Gui.panel:new( { bounds = Rect:new( 60, 32, 128, 128 ) } )
|
|
container = Gui.container:new( {
|
|
bounds = Rect:new( 256, 120, 128, 128 ),
|
|
drawBounds = true,
|
|
-- Haling = Gui.ALING.LEFT,
|
|
-- Haling = Gui.ALING.CENTER,
|
|
-- Valing = Gui.ALING.CENTER,
|
|
-- type = Gui.CONTAINER.HORIZONTAL,
|
|
-- scrollPos = Vec2:new( 0, 0 ),
|
|
scrollable = true,
|
|
} )
|
|
|
|
-- local container = Gui.container:new( { bounds = Rect:new( 256, 120, 128, 128 ), drawBounds = true, type = Gui.CONTAINER.HORIZONTAL } )
|
|
|
|
-- local itemBounds = { 0, 0, container.bounds.width - container.spacing * 2, 36 }
|
|
local itemBounds = Rect:new( 0, 0, 64, 36 )
|
|
|
|
container:add( Gui.label:new( {
|
|
text = "Dog",
|
|
bounds = itemBounds:clone(),
|
|
onClicked = function() panel:setPosition( Vec2:new( 500, 80 ) ) end,
|
|
onMouseOver = function( self ) self.color = RED end,
|
|
notMouseOver = function( self ) self.color = BLACK end,
|
|
drawBounds = true,
|
|
} ) )
|
|
|
|
container:add( Gui.label:new( {
|
|
text = "Cat",
|
|
-- bounds = itemBounds:clone(),
|
|
bounds = Rect:new( 0, 0, 78, 24 ),
|
|
onClicked = function() panel:setPosition( Vec2:new( 290, 120 ) ) end,
|
|
onMouseOver = function( self ) self.color = RED end,
|
|
notMouseOver = function( self ) self.color = BLACK end,
|
|
drawBounds = true,
|
|
} ) )
|
|
|
|
for i = 1, 5 do
|
|
container:add( Gui.label:new( {
|
|
text = "Giraffe",
|
|
bounds = Rect:new( 0, 0, 100, 30 ),
|
|
onClicked = function() panel:setPosition( Vec2:new( 340, 380 ) ) end,
|
|
onMouseOver = function( self ) self.color = RED end,
|
|
notMouseOver = function( self ) self.color = BLACK end,
|
|
drawBounds = true,
|
|
} ) )
|
|
end
|
|
|
|
local container2 = Gui.container:new( {
|
|
bounds = Rect:new( 400, 120, 154, 30 ),
|
|
drawBounds = true,
|
|
-- Haling = Gui.ALING.LEFT,
|
|
-- Haling = Gui.ALING.CENTER,
|
|
-- Valing = Gui.ALING.CENTER,
|
|
type = Gui.CONTAINER.HORIZONTAL,
|
|
} )
|
|
|
|
container2:add( Gui.label:new( {
|
|
text = "Dog",
|
|
bounds = itemBounds:clone(),
|
|
-- onClicked = function() panel:setPosition( Vec2:new( 500, 80 ) ) end,
|
|
onMouseOver = function( self ) self.color = RED end,
|
|
notMouseOver = function( self ) self.color = BLACK end,
|
|
drawBounds = true,
|
|
} ) )
|
|
|
|
container2:add( Gui.label:new( {
|
|
text = "Cat",
|
|
-- bounds = itemBounds:clone(),
|
|
bounds = Rect:new( 0, 0, 78, 24 ),
|
|
-- onClicked = function() panel:setPosition( Vec2:new( 290, 120 ) ) end,
|
|
onMouseOver = function( self ) self.color = RED end,
|
|
notMouseOver = function( self ) self.color = BLACK end,
|
|
drawBounds = true,
|
|
} ) )
|
|
|
|
container:add( container2 )
|
|
|
|
panel:set2Top()
|
|
end
|
|
|
|
function init()
|
|
local monitor = 0
|
|
local mPos = RL_GetMonitorPosition( monitor )
|
|
local mSize = RL_GetMonitorSize( monitor )
|
|
winSize = RL_GetWindowSize()
|
|
-- local winSize = { 1920, 1080 }
|
|
|
|
RL_SetWindowTitle( "ReiLua Gui" )
|
|
RL_SetWindowState( FLAG_WINDOW_RESIZABLE )
|
|
RL_SetWindowState( FLAG_VSYNC_HINT )
|
|
RL_SetWindowSize( winSize )
|
|
RL_SetWindowPosition( { mPos[1] + mSize[1] / 2 - winSize[1] / 2, mPos[2] + mSize[2] / 2 - winSize[2] / 2 } )
|
|
|
|
initGui()
|
|
end
|
|
|
|
function process( delta )
|
|
if RL_IsKeyDown( KEY_RIGHT ) then
|
|
container:scroll( Vec2:new( container._scrollRect.x + 50 * delta, 0 ) )
|
|
elseif RL_IsKeyDown( KEY_LEFT ) then
|
|
container:scroll( Vec2:new( container._scrollRect.x - 50 * delta, 0 ) )
|
|
elseif RL_IsKeyDown( KEY_UP ) then
|
|
container:scroll( Vec2:new( 0, container._scrollRect.y - 50 * delta ) )
|
|
elseif RL_IsKeyDown( KEY_DOWN ) then
|
|
container:scroll( Vec2:new( 0, container._scrollRect.y + 50 * delta ) )
|
|
end
|
|
|
|
Gui.process( RL_GetMousePosition() )
|
|
end
|
|
|
|
function draw()
|
|
RL_ClearBackground( RAYWHITE )
|
|
|
|
Gui.draw()
|
|
end
|