Raygui wrapper library disable and styles for each element.
This commit is contained in:
@@ -18,6 +18,7 @@ KEY CHANGES:
|
||||
- ADDED: Platform web.
|
||||
- ADDED: Raygui textures with SetShapesTexture.
|
||||
- CHANGE: Raygui wrapper library is now object based. Possible to have multiple separated gui systems.
|
||||
- ADDED: Raygui wrapper library disabled and styles for each element.
|
||||
|
||||
DETAILED CHANGES:
|
||||
- REMOVED: DrawLineBezierQuad, DrawLineBezierCubic.
|
||||
|
||||
4
devnotes
4
devnotes
@@ -1,8 +1,10 @@
|
||||
Current {
|
||||
* Gui library to object based.
|
||||
}
|
||||
|
||||
Backlog {
|
||||
* Raygui lib
|
||||
* Check if could remove flickering from changing draw order by making queue for order changing and only
|
||||
change them after everything is drawn.
|
||||
* Platform desktop SDL.
|
||||
* Text input not working on gui. Could this be Raylib issue?
|
||||
* Haptic functions.
|
||||
|
||||
@@ -27,7 +27,7 @@ function Calculator:new( pos )
|
||||
|
||||
object.handle:add( Gui.texture:new( {
|
||||
bounds = object.handle.bounds:clone(),
|
||||
texture = bgrTexture,
|
||||
texture = BgrTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.LIGHTGRAY ),
|
||||
@@ -35,7 +35,7 @@ function Calculator:new( pos )
|
||||
|
||||
object.handle:add( Gui.texture:new( {
|
||||
bounds = object.handle.bounds:clone(),
|
||||
texture = borderTexture,
|
||||
texture = BorderTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.LIGHTGRAY ),
|
||||
@@ -57,7 +57,7 @@ function Calculator:new( pos )
|
||||
|
||||
object.closeButton:add( Gui.texture:new( {
|
||||
bounds = object.closeButton.bounds:clone(),
|
||||
texture = cancelTexture,
|
||||
texture = CancelTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
} ) )
|
||||
@@ -70,7 +70,7 @@ function Calculator:new( pos )
|
||||
|
||||
object.panel:add( Gui.texture:new( {
|
||||
bounds = object.panel.bounds:clone(),
|
||||
texture = bgrTexture,
|
||||
texture = BgrTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.GRAY ),
|
||||
@@ -78,7 +78,7 @@ function Calculator:new( pos )
|
||||
|
||||
object.panel:add( Gui.texture:new( {
|
||||
bounds = object.panel.bounds:clone(),
|
||||
texture = borderTexture,
|
||||
texture = BorderTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.LIGHTGRAY ),
|
||||
|
||||
@@ -27,7 +27,7 @@ function FileExplorer:new( pos )
|
||||
|
||||
object.handle:add( Gui.texture:new( {
|
||||
bounds = object.handle.bounds:clone(),
|
||||
texture = bgrTexture,
|
||||
texture = BgrTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.LIGHTGRAY ),
|
||||
@@ -35,7 +35,7 @@ function FileExplorer:new( pos )
|
||||
|
||||
object.handle:add( Gui.texture:new( {
|
||||
bounds = object.handle.bounds:clone(),
|
||||
texture = borderTexture,
|
||||
texture = BorderTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.LIGHTGRAY ),
|
||||
@@ -57,7 +57,7 @@ function FileExplorer:new( pos )
|
||||
|
||||
object.closeButton:add( Gui.texture:new( {
|
||||
bounds = object.closeButton.bounds:clone(),
|
||||
texture = cancelTexture,
|
||||
texture = CancelTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
} ) )
|
||||
@@ -70,7 +70,7 @@ function FileExplorer:new( pos )
|
||||
|
||||
object.panel:add( Gui.texture:new( {
|
||||
bounds = object.panel.bounds:clone(),
|
||||
texture = bgrTexture,
|
||||
texture = BgrTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.GRAY ),
|
||||
@@ -78,7 +78,7 @@ function FileExplorer:new( pos )
|
||||
|
||||
object.panel:add( Gui.texture:new( {
|
||||
bounds = object.panel.bounds:clone(),
|
||||
texture = borderTexture,
|
||||
texture = BorderTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
VAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.LIGHTGRAY ),
|
||||
@@ -110,7 +110,7 @@ function FileExplorer:new( pos )
|
||||
|
||||
object.backButton:add( Gui.texture:new( {
|
||||
bounds = Rect:new( 0, 0, object.HANDLE_HIGHT, object.HANDLE_HIGHT ),
|
||||
texture = backTexture,
|
||||
texture = BackTexture,
|
||||
HAling = Gui.ALING.CENTER,
|
||||
color = Color:new( RL.BLACK )
|
||||
} ) )
|
||||
@@ -153,8 +153,8 @@ function FileExplorer:new( pos )
|
||||
object.path = RL.GetBasePath()
|
||||
|
||||
-- Take last '/' away.
|
||||
if util.utf8Sub( object.path, utf8.len( object.path ), utf8.len( object.path ) ) == "/" then
|
||||
object.path = util.utf8Sub( object.path, 1, utf8.len( object.path ) - 1 )
|
||||
if Util.utf8Sub( object.path, utf8.len( object.path ), utf8.len( object.path ) ) == "/" then
|
||||
object.path = Util.utf8Sub( object.path, 1, utf8.len( object.path ) - 1 )
|
||||
end
|
||||
object.file = ""
|
||||
|
||||
@@ -228,11 +228,11 @@ function FileExplorer:updateFiles()
|
||||
table.sort( folders, function( a, b ) return a < b end )
|
||||
|
||||
for _, folder in ipairs( folders ) do
|
||||
self:addFileToList( folder, folderTexture, { 150, 120, 80 }, function() self:changeDir( folder ) end )
|
||||
self:addFileToList( folder, FolderTexture, { 150, 120, 80 }, function() self:changeDir( folder ) end )
|
||||
end
|
||||
|
||||
for _, file in ipairs( files ) do
|
||||
self:addFileToList( file, filesTexture, RL.WHITE, function() self:fileSelect( file ) end )
|
||||
self:addFileToList( file, FilesTexture, RL.WHITE, function() self:fileSelect( file ) end )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package.path = package.path..";"..RL.GetBasePath().."?.lua"
|
||||
package.path = package.path..";"..RL.GetBasePath().."../resources/lib/?.lua"
|
||||
|
||||
util = require( "utillib" )
|
||||
Util = require( "utillib" )
|
||||
Vec2 = require( "vector2" )
|
||||
Rect = require( "rectangle" )
|
||||
Color = require( "color" )
|
||||
@@ -13,29 +13,29 @@ FileExplorer = require( "file_explorer" )
|
||||
-- Textures.
|
||||
|
||||
-- Note that textures are global.
|
||||
cancelTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/cancel.png" )
|
||||
backTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/previous-button.png" )
|
||||
folderTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/open-folder.png" )
|
||||
filesTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/files.png" )
|
||||
borderTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/ui_border.png" )
|
||||
bgrTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/ui_bgr.png" )
|
||||
CancelTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/cancel.png" )
|
||||
BackTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/previous-button.png" )
|
||||
FolderTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/open-folder.png" )
|
||||
FilesTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/files.png" )
|
||||
BorderTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/ui_border.png" )
|
||||
BgrTexture = RL.LoadTexture( RL.GetBasePath().."../resources/images/ui_bgr.png" )
|
||||
|
||||
RL.GenTextureMipmaps( cancelTexture )
|
||||
RL.GenTextureMipmaps( backTexture )
|
||||
RL.GenTextureMipmaps( folderTexture )
|
||||
RL.GenTextureMipmaps( filesTexture )
|
||||
RL.GenTextureMipmaps( borderTexture )
|
||||
RL.GenTextureMipmaps( bgrTexture )
|
||||
RL.GenTextureMipmaps( CancelTexture )
|
||||
RL.GenTextureMipmaps( BackTexture )
|
||||
RL.GenTextureMipmaps( FolderTexture )
|
||||
RL.GenTextureMipmaps( FilesTexture )
|
||||
RL.GenTextureMipmaps( BorderTexture )
|
||||
RL.GenTextureMipmaps( BgrTexture )
|
||||
|
||||
RL.SetTextureFilter( cancelTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( backTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( folderTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( filesTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( borderTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( bgrTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( CancelTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( BackTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( FolderTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( FilesTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( BorderTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
RL.SetTextureFilter( BgrTexture, RL.TEXTURE_FILTER_TRILINEAR )
|
||||
|
||||
RL.SetTextureWrap( borderTexture, RL.TEXTURE_WRAP_REPEAT )
|
||||
RL.SetTextureWrap( bgrTexture, RL.TEXTURE_WRAP_REPEAT )
|
||||
RL.SetTextureWrap( BorderTexture, RL.TEXTURE_WRAP_REPEAT )
|
||||
RL.SetTextureWrap( BgrTexture, RL.TEXTURE_WRAP_REPEAT )
|
||||
|
||||
-- End of calculator definition.
|
||||
|
||||
@@ -43,7 +43,7 @@ local calculator = nil
|
||||
local fileExplorer = nil
|
||||
local showButton = nil
|
||||
|
||||
function initGui()
|
||||
local function initGui()
|
||||
showButton = Gui.element:new( {
|
||||
bounds = Rect:new( 0, 0, 96, 32 ),
|
||||
drawBounds = true,
|
||||
@@ -65,7 +65,7 @@ function RL.init()
|
||||
local monitor = 0
|
||||
local mPos = RL.GetMonitorPosition( monitor )
|
||||
local mSize = RL.GetMonitorSize( monitor )
|
||||
winSize = RL.GetScreenSize()
|
||||
local winSize = RL.GetScreenSize()
|
||||
|
||||
RL.SetWindowTitle( "ReiLuaGui examples" )
|
||||
RL.SetWindowState( RL.FLAG_WINDOW_RESIZABLE )
|
||||
@@ -84,4 +84,4 @@ function RL.draw()
|
||||
RL.ClearBackground( RL.RAYWHITE )
|
||||
|
||||
Gui.draw()
|
||||
end
|
||||
end
|
||||
@@ -47,10 +47,13 @@ function RL.init()
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_SIZE, 20 )
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_SPACING, 4 )
|
||||
RL.GuiSetStyle( RL.SPINNER, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_RIGHT )
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_LEFT )
|
||||
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.RED ) )
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_FOCUSED, RL.ColorToInt( RL.ORANGE ) )
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_PRESSED, RL.ColorToInt( RL.GREEN ) )
|
||||
-- RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.RED ) )
|
||||
-- RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_FOCUSED, RL.ColorToInt( RL.ORANGE ) )
|
||||
-- RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_PRESSED, RL.ColorToInt( RL.GREEN ) )
|
||||
|
||||
RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_LINE_SPACING, 20 )
|
||||
|
||||
local label = Gui:Label(
|
||||
Rect:new( 16, 16, 64, 32 ),
|
||||
@@ -65,17 +68,26 @@ function RL.init()
|
||||
local button = Gui:Button(
|
||||
Rect:new( 245, 188, 64, 32 ),
|
||||
"Dog",
|
||||
function() toggleGroup:setText( "Dog;Cat\nEagle" ) end,
|
||||
texture,
|
||||
textureRect
|
||||
function() toggleGroup:setText( "Dog;Cat\nEagle" ) end
|
||||
)
|
||||
button.styles = {
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.RED ) },
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_FOCUSED, RL.ColorToInt( RL.ORANGE ) },
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_PRESSED, RL.ColorToInt( RL.GREEN ) },
|
||||
}
|
||||
button.texture = texture
|
||||
button.textureRect = textureRect
|
||||
local checkbox = Gui:CheckBox(
|
||||
Rect:new( 64, 128, 20, 20 ),
|
||||
"Dog",
|
||||
Rect:new( 116, 128, 20, 20 ),
|
||||
"Visible",
|
||||
toggleGroup.visible,
|
||||
function( self ) toggleGroup.visible = self.checked end
|
||||
)
|
||||
local toggle = Gui:Toggle(
|
||||
Rect:new( 32, 160, 100, 32 ),
|
||||
"Toggle",
|
||||
false,
|
||||
nil,
|
||||
texture,
|
||||
textureRect
|
||||
nil
|
||||
)
|
||||
local combobox = Gui:ComboBox(
|
||||
Rect:new( 64, 256, 128, 32 ),
|
||||
@@ -128,10 +140,10 @@ function RL.init()
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
function( self ) print( "Changed value "..self.value ) end,
|
||||
texture,
|
||||
textureRect
|
||||
function( self ) print( "Changed value "..self.value ) end
|
||||
)
|
||||
slider.texture = texture
|
||||
slider.textureRect = textureRect
|
||||
local sliderbar = Gui:SliderBar(
|
||||
Rect:new( 50, 550, 256, 32 ),
|
||||
"min",
|
||||
@@ -171,10 +183,13 @@ function RL.init()
|
||||
function( self ) self.visible = false end,
|
||||
-- Grab callback.
|
||||
function( self ) Gui:set2Top( self ) end,
|
||||
nil,
|
||||
texture,
|
||||
textureRect
|
||||
nil
|
||||
)
|
||||
windowbox.styles = {
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.RED ) },
|
||||
}
|
||||
windowbox.texture = texture
|
||||
windowbox.textureRect = textureRect
|
||||
local groupbox = Gui:GroupBox(
|
||||
Rect:new( 400, 700, 256, 256 ),
|
||||
"GroupBox"
|
||||
@@ -189,15 +204,17 @@ function RL.init()
|
||||
-- Grab callback.
|
||||
function( self ) Gui:set2Top( self ) end
|
||||
)
|
||||
panel.styles = {
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.MAGENTA ) },
|
||||
{ RL.DEFAULT, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_CENTER },
|
||||
{ RL.DEFAULT, RL.BACKGROUND_COLOR, RL.ColorToInt( RL.DARKBLUE ) },
|
||||
}
|
||||
tabBar = Gui:GuiTabBar(
|
||||
Rect:new( 700, 520, 700, 32 ),
|
||||
"Cat;Dog;Horse;Cow",
|
||||
0,
|
||||
-- function( self ) Gui:set2Top( self ) end
|
||||
nil,
|
||||
closeTab,
|
||||
texture,
|
||||
textureRect
|
||||
closeTab
|
||||
)
|
||||
local scrollpanel = Gui:ScrollPanel(
|
||||
Rect:new( 800, 64, 256, 256 ),
|
||||
@@ -222,23 +239,26 @@ function RL.init()
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
function( self ) print( self:getItem( self.active ) ) end,
|
||||
texture,
|
||||
textureRect
|
||||
function( self ) print( self:getItem( self.active ) ) end
|
||||
)
|
||||
listviewex.styles = {
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.RED ) },
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_FOCUSED, RL.ColorToInt( RL.ORANGE ) },
|
||||
{ RL.DEFAULT, RL.TEXT_COLOR_PRESSED, RL.ColorToInt( RL.GREEN ) },
|
||||
}
|
||||
listviewex.texture = texture
|
||||
listviewex.textureRect = textureRect
|
||||
local messagebox = Gui:MessageBox(
|
||||
Rect:new( 1100, 150, 300, 128 ),
|
||||
"Title",
|
||||
"Message",
|
||||
"Cancel;Ok",
|
||||
"Should we disable\nwindow box?",
|
||||
"No;Yes",
|
||||
function( self )
|
||||
if 0 < self.buttonIndex then
|
||||
print( "You pressed "..self:getItem( self.buttonIndex ) )
|
||||
|
||||
if self.buttonIndex == 1 then
|
||||
Gui:set2Back( windowbox )
|
||||
windowbox.disabled = false
|
||||
elseif self.buttonIndex == 2 then
|
||||
Gui:set2Top( windowbox )
|
||||
windowbox.disabled = true
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
@@ -875,4 +875,4 @@ Gui.shape = Shape
|
||||
Gui.element = Element
|
||||
Gui.container = Container
|
||||
|
||||
return Gui
|
||||
return Gui
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user