Raygui lib callbacks to single table.
This commit is contained in:
@@ -55,13 +55,13 @@ local function addSpriteButtons()
|
||||
local buttonSize = Vec2:new( 216, 32 )
|
||||
local bounds = Rect:new( winSize.x / 2 - buttonSize.x / 2, 200, 216, 32 )
|
||||
local gap = buttonSize.y + 2
|
||||
addButton( bounds, "Start New Game", function() print( "New Game!" ) end )
|
||||
addButton( bounds, "Start New Game", { pressed = function() print( "New Game!" ) end } )
|
||||
bounds.y = bounds.y + gap
|
||||
addButton( bounds, "Load Game", function() print( "Load Game!" ) end )
|
||||
addButton( bounds, "Load Game", { pressed = function() print( "Load Game!" ) end } )
|
||||
bounds.y = bounds.y + gap
|
||||
addButton( bounds, "Options", function() print( "Options!" ) end )
|
||||
addButton( bounds, "Options", { pressed = function() print( "Options!" ) end } )
|
||||
bounds.y = bounds.y + gap
|
||||
addButton( bounds, "Quit", function() RL.CloseWindow() end )
|
||||
addButton( bounds, "Quit", { pressed = function() RL.CloseWindow() end } )
|
||||
end
|
||||
|
||||
local function getTextValue( text )
|
||||
@@ -74,10 +74,10 @@ local function addPropertyList()
|
||||
PropertyList = Gui:PropertyList(
|
||||
Rect:new( 20, 20, 256, 328 ),
|
||||
"Property List",
|
||||
nil, -- Callback.
|
||||
function( self ) Gui:set2Top( self ) end, -- Grab callback.
|
||||
nil, -- Drag callback.
|
||||
{
|
||||
{ -- Callbacks.
|
||||
grab = function( self ) Gui:set2Top( self ) end,
|
||||
},
|
||||
{ -- Styles.
|
||||
properties = {
|
||||
-- { RL.SCROLLBAR, RL.ARROWS_VISIBLE, RL.ARROWS_VISIBLE },
|
||||
{ RL.LISTVIEW, RL.BORDER_COLOR_FOCUSED, RL.GuiGetStyle( RL.LISTVIEW, RL.BORDER_COLOR_NORMAL ) },
|
||||
@@ -106,11 +106,13 @@ local function addPropertyList()
|
||||
cat.dest.x,
|
||||
32,
|
||||
false,
|
||||
function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.dest.x = self.value
|
||||
end,
|
||||
{ -- Callbacks.
|
||||
edit = function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.dest.x = self.value
|
||||
end
|
||||
},
|
||||
nil,
|
||||
"Position X"
|
||||
), transformGroup, true )
|
||||
@@ -119,11 +121,13 @@ local function addPropertyList()
|
||||
cat.dest.y,
|
||||
32,
|
||||
false,
|
||||
function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.dest.y = self.value
|
||||
end,
|
||||
{ -- Callbacks.
|
||||
edit = function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.dest.y = self.value
|
||||
end
|
||||
},
|
||||
nil,
|
||||
"Position Y"
|
||||
), transformGroup )
|
||||
@@ -137,11 +141,13 @@ local function addPropertyList()
|
||||
cat.dest.x,
|
||||
32,
|
||||
false,
|
||||
function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.origin.x = self.value
|
||||
end,
|
||||
{ -- Callbacks.
|
||||
edit = function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.origin.x = self.value
|
||||
end
|
||||
},
|
||||
nil,
|
||||
"Origin X"
|
||||
), transformGroup, true )
|
||||
@@ -150,11 +156,13 @@ local function addPropertyList()
|
||||
cat.dest.y,
|
||||
32,
|
||||
false,
|
||||
function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.origin.y = self.value
|
||||
end,
|
||||
{ -- Callbacks.
|
||||
edit = function( self )
|
||||
self.value = getTextValue( self.text )
|
||||
self.text = tostring( self.value )
|
||||
cat.origin.y = self.value
|
||||
end
|
||||
},
|
||||
nil,
|
||||
"Origin Y"
|
||||
), transformGroup )
|
||||
@@ -166,11 +174,13 @@ local function addPropertyList()
|
||||
0,
|
||||
0,
|
||||
360,
|
||||
function( self )
|
||||
self.value = Util.round( self.value )
|
||||
cat.rotation = self.value
|
||||
self.textRight = self.value
|
||||
end,
|
||||
{ -- Callbacks.
|
||||
edit = function( self )
|
||||
self.value = Util.round( self.value )
|
||||
cat.rotation = self.value
|
||||
self.textRight = self.value
|
||||
end
|
||||
},
|
||||
nil,
|
||||
"Rotation angle"
|
||||
), transformGroup )
|
||||
@@ -179,7 +189,9 @@ local function addPropertyList()
|
||||
Rect:new( 0, 0, 20, 20 ),
|
||||
"Flipped",
|
||||
cat.flipped,
|
||||
function( self ) cat.flipped = self.checked end,
|
||||
{ -- Callbacks.
|
||||
pressed = function( self ) cat.flipped = self.checked end
|
||||
},
|
||||
nil,
|
||||
"Flips the image"
|
||||
), transformGroup )
|
||||
@@ -192,7 +204,9 @@ local function addPropertyList()
|
||||
Rect:new( 0, 0, 20, 20 ),
|
||||
"Visible",
|
||||
cat.visible,
|
||||
function( self ) cat.visible = self.checked end,
|
||||
{ -- Callbacks.
|
||||
pressed = function( self ) cat.visible = self.checked end
|
||||
},
|
||||
{
|
||||
properties = {
|
||||
{ RL.CHECKBOX, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_RIGHT },
|
||||
@@ -206,7 +220,9 @@ local function addPropertyList()
|
||||
Rect:new( 0, 0, 128, 128 ),
|
||||
"Color Picker",
|
||||
Color:new(),
|
||||
function( self ) cat.tint = self.color end
|
||||
{ -- Callbacks.
|
||||
edit = function( self ) cat.tint = self.color end
|
||||
}
|
||||
), tintGroup )
|
||||
|
||||
PropertyList:addControl( PropertyList.gui:Line(
|
||||
@@ -219,7 +235,9 @@ local function addPropertyList()
|
||||
"Dog\nGiraffe\nLion\nHorse",
|
||||
0,
|
||||
false,
|
||||
function( self ) print( self:getItem( self.active ) ) end
|
||||
{ -- Callbacks.
|
||||
select = function( self ) print( self:getItem( self.active ) ) end
|
||||
}
|
||||
) )
|
||||
|
||||
local test = PropertyList:addGroup( "Test", false )
|
||||
@@ -229,7 +247,9 @@ local function addPropertyList()
|
||||
Rect:new( 128, 0, 20, 20 ),
|
||||
i.."_Visible",
|
||||
false,
|
||||
function( self ) print( "Checked" ) end,
|
||||
{ -- Callbacks.
|
||||
pressed = function( self ) print( "Checked" ) end
|
||||
},
|
||||
{
|
||||
properties = {
|
||||
-- { RL.CHECKBOX, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_LEFT },
|
||||
@@ -250,10 +270,11 @@ local function addTreeView()
|
||||
TreeView = Gui:TreeView(
|
||||
Rect:new( 600, 20, 256, 328 ),
|
||||
"Tree View",
|
||||
function( controls ) selected( controls ) end, -- Callback.
|
||||
function( self ) Gui:set2Top( self ) end, -- Grab callback.
|
||||
nil, -- Drag callback.
|
||||
{
|
||||
{ -- Callbacks.
|
||||
select = function( controls ) selected( controls ) end,
|
||||
grab = function( self ) Gui:set2Top( self ) end,
|
||||
},
|
||||
{ -- Styles.
|
||||
properties = {
|
||||
-- { RL.SCROLLBAR, RL.ARROWS_VISIBLE, RL.ARROWS_VISIBLE },
|
||||
{ RL.LISTVIEW, RL.BORDER_COLOR_FOCUSED, RL.GuiGetStyle( RL.LISTVIEW, RL.BORDER_COLOR_NORMAL ) },
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
local PropertyList = {}
|
||||
PropertyList.__index = PropertyList
|
||||
|
||||
function PropertyList:new( bounds, text, callback, grabCallback, dragCallback, styles, tooltip )
|
||||
function PropertyList:new( bounds, text, callbacks, styles, tooltip )
|
||||
local object = setmetatable( {}, self )
|
||||
object._gui = nil
|
||||
|
||||
@@ -12,9 +12,7 @@ function PropertyList:new( bounds, text, callback, grabCallback, dragCallback, s
|
||||
object.text = text
|
||||
object.scroll = Vec2:new()
|
||||
object.view = Rect:new()
|
||||
object.callback = callback
|
||||
object.grabCallback = grabCallback
|
||||
object.dragCallback = dragCallback
|
||||
object.callbacks = callbacks -- scroll, grab, drag.
|
||||
object.styles = styles
|
||||
object.tooltip = tooltip
|
||||
|
||||
@@ -140,8 +138,10 @@ function PropertyList:addGroup( name, active, group )
|
||||
self:getDefaultBounds(),
|
||||
setGroupText( name, active ),
|
||||
active,
|
||||
function( this ) this.text = setGroupText( name, this.active ) self:updateContent() end,
|
||||
{
|
||||
{ -- Callbacks.
|
||||
pressed = function( this ) this.text = setGroupText( name, this.active ) self:updateContent() end,
|
||||
},
|
||||
{ -- Styles.
|
||||
properties = {
|
||||
{ RL.TOGGLE, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_LEFT }
|
||||
}
|
||||
@@ -194,8 +194,8 @@ function PropertyList:draw()
|
||||
self:updateMouseOffset()
|
||||
self.gui.view:set( -self.scroll.x, -self.scroll.y, self.view.width, self.view.height )
|
||||
|
||||
if self.callback ~= nil then
|
||||
self.callback( self )
|
||||
if self.callbacks.scroll ~= nil then
|
||||
self.callbacks.scroll( self )
|
||||
end
|
||||
end
|
||||
|
||||
@@ -250,8 +250,8 @@ function PropertyList:setSize( size )
|
||||
end
|
||||
|
||||
function PropertyList:register( gui )
|
||||
function gui:PropertyList( bounds, text, callback, grabCallback, dragCallback, styles, tooltip )
|
||||
return self:addControl( PropertyList:new( bounds, text, callback, grabCallback, dragCallback, styles, tooltip ) )
|
||||
function gui:PropertyList( bounds, text, callbacks, styles, tooltip )
|
||||
return self:addControl( PropertyList:new( bounds, text, callbacks, styles, tooltip ) )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
local SpriteButton = {}
|
||||
SpriteButton.__index = SpriteButton
|
||||
|
||||
function SpriteButton:new( bounds, text, texture, nPatchNormal, nPatchPressed, callback, styles, tooltip )
|
||||
function SpriteButton:new( bounds, text, texture, nPatchNormal, nPatchPressed, callbacks, styles, tooltip )
|
||||
local object = setmetatable( {}, self )
|
||||
object._gui = nil
|
||||
|
||||
@@ -10,7 +10,7 @@ function SpriteButton:new( bounds, text, texture, nPatchNormal, nPatchPressed, c
|
||||
object.buttonTexture = texture
|
||||
object.nPatchNormal = nPatchNormal
|
||||
object.nPatchPressed = nPatchPressed
|
||||
object.callback = callback
|
||||
object.callbacks = callbacks -- pressed.
|
||||
object.styles = styles
|
||||
object.tooltip = tooltip
|
||||
|
||||
@@ -33,8 +33,8 @@ function SpriteButton:draw()
|
||||
|
||||
local result = RL.GuiLabelButton( self.bounds, self.text )
|
||||
|
||||
if result == 1 and self.callback ~= nil and self._gui:clickedInBounds( self.bounds ) then
|
||||
self.callback( self )
|
||||
if result == 1 and self.callbacks.pressed ~= nil and self._gui:clickedInBounds( self.bounds ) then
|
||||
self.callbacks.pressed( self )
|
||||
end
|
||||
end
|
||||
|
||||
@@ -44,8 +44,8 @@ function SpriteButton:setPosition( pos )
|
||||
end
|
||||
|
||||
function SpriteButton:register( gui )
|
||||
function gui:SpriteButton( bounds, text, texture, nPatchNormal, nPatchPressed, callback, styles, tooltip )
|
||||
return self:addControl( SpriteButton:new( bounds, text, texture, nPatchNormal, nPatchPressed, callback, styles, tooltip ) )
|
||||
function gui:SpriteButton( bounds, text, texture, nPatchNormal, nPatchPressed, callbacks, styles, tooltip )
|
||||
return self:addControl( SpriteButton:new( bounds, text, texture, nPatchNormal, nPatchPressed, callbacks, styles, tooltip ) )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ function TreeItem:new( bounds, text, callbacks, styles, tooltip )
|
||||
|
||||
object.bounds = bounds:clone()
|
||||
object.text = text
|
||||
object.callbacks = callbacks -- toggle, open.
|
||||
object.callbacks = callbacks -- select, open.
|
||||
|
||||
object.controls = {}
|
||||
|
||||
@@ -68,8 +68,8 @@ function TreeItem:draw()
|
||||
local oldActive = self.active
|
||||
_, self.active = RL.GuiToggle( toggleRect, self.text, self.active )
|
||||
|
||||
if self.callbacks.toggle and oldActive ~= self.active then
|
||||
self.callbacks.toggle( self )
|
||||
if self.callbacks.select and oldActive ~= self.active then
|
||||
self.callbacks.select( self )
|
||||
end
|
||||
|
||||
if hasContainer then
|
||||
|
||||
@@ -10,7 +10,7 @@ TreeView.MOVE_ITEM_IN = 1
|
||||
TreeView.MOVE_ITEM_UP = 2
|
||||
TreeView.MOVE_ITEM_DOWN = 3
|
||||
|
||||
function TreeView:new( bounds, text, callback, grabCallback, dragCallback, styles, tooltip )
|
||||
function TreeView:new( bounds, text, callbacks, styles, tooltip )
|
||||
local object = setmetatable( {}, self )
|
||||
object._gui = nil
|
||||
|
||||
@@ -22,9 +22,7 @@ function TreeView:new( bounds, text, callback, grabCallback, dragCallback, style
|
||||
object.text = text
|
||||
object.scroll = Vec2:new()
|
||||
object.view = Rect:new()
|
||||
object.callback = callback
|
||||
object.grabCallback = grabCallback
|
||||
object.dragCallback = dragCallback
|
||||
object.callbacks = callbacks -- select, grab, drag.
|
||||
object.styles = styles
|
||||
object.tooltip = tooltip
|
||||
|
||||
@@ -132,7 +130,7 @@ function TreeView:addItem( name, group )
|
||||
name,
|
||||
{ -- Callbacks.
|
||||
open = function( this ) self:updateContent() end,
|
||||
toggle = function( this ) self:itemSelect( this ) end,
|
||||
select = function( this ) self:itemSelect( this ) end,
|
||||
},
|
||||
{ -- Styles.
|
||||
properties = {
|
||||
@@ -262,8 +260,8 @@ function TreeView:itemSelect( item )
|
||||
self._lastActiveItem = item -- Old clicked.
|
||||
end
|
||||
|
||||
if self.callback ~= nil then
|
||||
-- self.callback( self.selectedItems )
|
||||
if self.callbacks.select ~= nil then
|
||||
self.callbacks.select( self.selectedItems )
|
||||
end
|
||||
end
|
||||
|
||||
@@ -399,8 +397,8 @@ function TreeView:setSize( size )
|
||||
end
|
||||
|
||||
function TreeView:register( gui )
|
||||
function gui:TreeView( bounds, text, callback, grabCallback, dragCallback, styles, tooltip )
|
||||
return self:addControl( TreeView:new( bounds, text, callback, grabCallback, dragCallback, styles, tooltip ) )
|
||||
function gui:TreeView( bounds, text, callbacks, styles, tooltip )
|
||||
return self:addControl( TreeView:new( bounds, text, callbacks, styles, tooltip ) )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user