mirror of
https://github.com/linux-man/LoveFrames.git
synced 2024-12-11 07:24:24 +00:00
Version 0.9.3 - Alpha (see changelog.txt)
This commit is contained in:
parent
92869bcd22
commit
138e335f82
@ -1,3 +1,48 @@
|
||||
================================================
|
||||
Version 0.9.3 - Alpha (Spetember 1 - 2012)
|
||||
================================================
|
||||
|
||||
[ADDED] a new base method: GetParents()
|
||||
[ADDED] a new base method: IsTopInternal()
|
||||
[ADDED] a new base method: IsInternal()
|
||||
[ADDED] a new base method: GetType()
|
||||
[ADDED] a new checkbox method: GetFont()
|
||||
[ADDED] a new checkbox method: GetBoxSize()
|
||||
[ADDED] a new checkbox method: GetBoxWidth()
|
||||
[ADDED] a new checkbox method: GetBoxHeight()
|
||||
[ADDED] a new image method: GetImage()
|
||||
[ADDED] a new image method: GetColor()
|
||||
[ADDED] a new progressbar method: GetCompleted()
|
||||
[ADDED] a new tabs method: GetTabNumber()
|
||||
[ADDED] a new text method: GetLines()
|
||||
[ADDED] a new text input method: SetLimit(limit)
|
||||
[ADDED] a new text input method: SetUsable(usable)
|
||||
[ADDED] a new text input method: SetUnusable(unusable)
|
||||
[ADDED] a new text input method: Clear()
|
||||
[ADDED] a new text input method: GetText()
|
||||
[ADDED] support for line breaks in the text object (please refer to the wiki on how to format your text with line breaks)
|
||||
[ADDED] more information to the debug overlay
|
||||
|
||||
[FIXED] tooltips and multichoice lists not functioning properly when a frame was modaled
|
||||
[FIXED] the text object not moving it's base parent to the top when clicked if it's base parent was a frame
|
||||
[FIXED] the list object not scrolling via the mouse wheel due to certain collision detection issues
|
||||
[FIXED] tooltips flickering when in a hover state
|
||||
[FIXED] slider calculation errors
|
||||
[FIXED] skin.DrawRepeatingImage creating a new image every frame
|
||||
[FIXED] checkbox text not scrolling properly when in a list
|
||||
[FIXED] the collapsible category's object not scrolling properly when in a list
|
||||
[FIXED] skins not assuming the drawing functions of the default skins if drawing functions in the active skin were missing
|
||||
[FIXED] some objects not being removed
|
||||
[FIXED] sliders not scrolling properly when in a list
|
||||
|
||||
[CHANGED] various code for a small cleanup
|
||||
[CHANGED] tooltips from being children of the base object to internals of the base object
|
||||
[CHANGED] tooltips from never being removed to being removed when their assigned object is removed
|
||||
[CHANGED] tooltips are now not able to be assigned to the base object (this would cause an error due to the way the tooltip currently functions)
|
||||
[CHANGED] the text object now positions it's text when SetText is called instead of positioning it's text every frame
|
||||
[CHANGED] slider:SetMax(max), slider:SetMin(min) and slider:SetMinMax(min, max) now adjust the slider's value if the slider's value is out of the range specified
|
||||
[CHANGED] loveframes.Create(data, parent) now activates an error screen if the object specified is invalid
|
||||
|
||||
================================================
|
||||
Version 0.9.2.5 - Alpha (June 1 - 2012)
|
||||
================================================
|
||||
|
73
debug.lua
73
debug.lua
@ -1,23 +1,22 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- debug library
|
||||
loveframes.debug = {}
|
||||
|
||||
local font = love.graphics.newFont(10)
|
||||
local loremipsum =
|
||||
[[
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Proin dui enim, porta eget facilisis quis, laoreet sit amet urna.
|
||||
Maecenas lobortis venenatis euismod.
|
||||
Sed at diam sit amet odio feugiat pretium nec quis libero.
|
||||
Quisque auctor semper imperdiet.
|
||||
Maecenas risus eros, varius pharetra volutpat in, fermentum scelerisque lacus.
|
||||
Proin lectus erat, luctus non facilisis vel, hendrerit vitae nisl.
|
||||
Aliquam vulputate scelerisque odio id faucibus.
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin dui enim, porta eget facilisis quis, laoreet sit amet urna. Maecenas lobortis venenatis euismod. Sed at diam sit amet odio feugiat pretium nec quis libero. Quisque auctor semper imperdiet. Maecenas risus eros, varius pharetra volutpat in, fermentum scelerisque lacus. Proin lectus erat, luctus non facilisis vel, hendrerit vitae nisl. Aliquam vulputate scelerisque odio id faucibus.
|
||||
]]
|
||||
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: draw()
|
||||
- desc: draws debug information
|
||||
--]]---------------------------------------------------------
|
||||
function loveframes.debug.draw()
|
||||
|
||||
-- get the current debug setting
|
||||
@ -29,10 +28,16 @@ function loveframes.debug.draw()
|
||||
end
|
||||
|
||||
local cols = loveframes.util.GetCollisions()
|
||||
local numcols = #cols
|
||||
local topcol = cols[numcols] or {type = none, children = {}, x = 0, y = 0, width = 0, height = 0}
|
||||
local bchildren = #loveframes.base.children
|
||||
local topcol = cols[#cols] or {type = none, children = {}, x = 0, y = 0, width = 0, height = 0}
|
||||
local objects = loveframes.util.GetAllObjects()
|
||||
local author = loveframes.info.author
|
||||
local version = loveframes.info.version
|
||||
local stage = loveframes.info.stage
|
||||
local basedir = loveframes.config["DIRECTORY"]
|
||||
local loveversion = love._version
|
||||
local fps = love.timer.getFPS()
|
||||
local deltatime = love.timer.getDelta()
|
||||
|
||||
|
||||
-- font for debug text
|
||||
love.graphics.setFont(font)
|
||||
@ -46,10 +51,10 @@ function loveframes.debug.draw()
|
||||
love.graphics.print("Library Information", 15, 15)
|
||||
|
||||
love.graphics.setColor(255, 255, 255, 255)
|
||||
love.graphics.print("Author: " ..loveframes.info.author, 15, 30)
|
||||
love.graphics.print("Version: " ..loveframes.info.version, 15, 40)
|
||||
love.graphics.print("Stage: " ..loveframes.info.stage, 15, 50)
|
||||
love.graphics.print("Base Directory: " ..loveframes.config["DIRECTORY"], 15, 60)
|
||||
love.graphics.print("Author: " ..author, 15, 30)
|
||||
love.graphics.print("Version: " ..version, 15, 40)
|
||||
love.graphics.print("Stage: " ..stage, 15, 50)
|
||||
love.graphics.print("Base Directory: " ..basedir, 15, 60)
|
||||
|
||||
-- object information box
|
||||
love.graphics.setColor(0, 0, 0, 50)
|
||||
@ -59,7 +64,7 @@ function loveframes.debug.draw()
|
||||
|
||||
love.graphics.setColor(255, 255, 255, 255)
|
||||
|
||||
if numcols > 0 then
|
||||
if #cols > 0 then
|
||||
love.graphics.print("Type: " ..topcol.type, 15, 100)
|
||||
else
|
||||
love.graphics.print("Type: none", 10, 100)
|
||||
@ -71,10 +76,16 @@ function loveframes.debug.draw()
|
||||
love.graphics.print("# of children: 0", 15, 110)
|
||||
end
|
||||
|
||||
love.graphics.print("X: " ..topcol.x, 15, 120)
|
||||
love.graphics.print("Y: " ..topcol.y, 15, 130)
|
||||
love.graphics.print("Width: " ..topcol.width, 15, 140)
|
||||
love.graphics.print("Height: " ..topcol.height, 15, 150)
|
||||
if topcol.internals then
|
||||
love.graphics.print("# of internals: " .. #topcol.internals, 15, 120)
|
||||
else
|
||||
love.graphics.print("# of internals: 0", 15, 120)
|
||||
end
|
||||
|
||||
love.graphics.print("X: " ..topcol.x, 15, 130)
|
||||
love.graphics.print("Y: " ..topcol.y, 15, 140)
|
||||
love.graphics.print("Width: " ..topcol.width, 15, 150)
|
||||
love.graphics.print("Height: " ..topcol.height, 15, 160)
|
||||
|
||||
-- Miscellaneous box
|
||||
love.graphics.setColor(0, 0, 0, 50)
|
||||
@ -84,9 +95,9 @@ function loveframes.debug.draw()
|
||||
|
||||
love.graphics.setColor(255, 255, 255, 255)
|
||||
|
||||
love.graphics.print("LOVE Version: " ..love._version, 15, 210)
|
||||
love.graphics.print("FPS: " ..love.timer.getFPS(), 15, 220)
|
||||
love.graphics.print("Delta Time: " ..love.timer.getDelta(), 15, 230)
|
||||
love.graphics.print("LOVE Version: " ..loveversion, 15, 210)
|
||||
love.graphics.print("FPS: " ..fps, 15, 220)
|
||||
love.graphics.print("Delta Time: " ..deltatime, 15, 230)
|
||||
love.graphics.print("Total Objects: " ..#objects, 15, 240)
|
||||
|
||||
-- outline the object that the mouse is hovering over
|
||||
@ -96,6 +107,11 @@ function loveframes.debug.draw()
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: ExamplesMenu()
|
||||
- desc: generates a list of examples of LÖVE Frames
|
||||
objects
|
||||
--]]---------------------------------------------------------
|
||||
function loveframes.debug.ExamplesMenu()
|
||||
|
||||
------------------------------------
|
||||
@ -159,7 +175,6 @@ function loveframes.debug.ExamplesMenu()
|
||||
local checkbox1 = loveframes.Create("checkbox", frame1)
|
||||
checkbox1:SetText("Checkbox 1")
|
||||
checkbox1:SetPos(5, 30)
|
||||
--checkbox1:SetFont(love.graphics.newFont(50))
|
||||
checkbox1.OnChanged = function(object2)
|
||||
end
|
||||
|
||||
@ -260,6 +275,7 @@ function loveframes.debug.ExamplesMenu()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
exampleslist:AddItem(frameexample)
|
||||
|
||||
@ -598,12 +614,19 @@ function loveframes.debug.ExamplesMenu()
|
||||
local textinput1 = loveframes.Create("textinput", frame1)
|
||||
textinput1:SetPos(5, 30)
|
||||
textinput1:SetWidth(490)
|
||||
textinput1.OnEnter = function(object)
|
||||
object:Clear()
|
||||
end
|
||||
|
||||
end
|
||||
exampleslist:AddItem(textinputexample)
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SkinSelector()
|
||||
- desc: opens a skin selector menu
|
||||
--]]---------------------------------------------------------
|
||||
function loveframes.debug.SkinSelector()
|
||||
|
||||
local skins = loveframes.skins.available
|
||||
|
26
init.lua
26
init.lua
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- central library table
|
||||
@ -9,7 +9,7 @@ loveframes = {}
|
||||
-- library info
|
||||
loveframes.info = {}
|
||||
loveframes.info.author = "Nikolai Resokav"
|
||||
loveframes.info.version = "0.9.2.5"
|
||||
loveframes.info.version = "0.9.3"
|
||||
loveframes.info.stage = "Alpha"
|
||||
|
||||
-- library configurations
|
||||
@ -23,6 +23,8 @@ loveframes.config["DEBUG"] = true
|
||||
loveframes.drawcount = 0
|
||||
loveframes.hoverobject = false
|
||||
loveframes.modalobject = false
|
||||
loveframes.basicfont = love.graphics.newFont(12)
|
||||
loveframes.basicfontsmall = love.graphics.newFont(10)
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: load()
|
||||
@ -156,15 +158,23 @@ function loveframes.Create(data, parent)
|
||||
|
||||
if type(data) == "string" then
|
||||
|
||||
-- create the new object
|
||||
-- make sure the object specified is valid
|
||||
if not _G[data] then
|
||||
error("Error creating object: Invalid object '" ..data.. "'.")
|
||||
end
|
||||
|
||||
-- create the object
|
||||
local object = _G[data]:new()
|
||||
|
||||
if object.internal == true then
|
||||
if object.type == "tooltip" then
|
||||
object = tooltip:new()
|
||||
else
|
||||
return
|
||||
-- if the object is a tooltip, return it and go no further
|
||||
if data == "tooltip" then
|
||||
return object
|
||||
end
|
||||
|
||||
-- remove the object if it is an internal
|
||||
if object.internal == true then
|
||||
object:Remove()
|
||||
return
|
||||
end
|
||||
|
||||
-- parent the new object by default to the base gui object
|
||||
|
103
objects/base.lua
103
objects/base.lua
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- base object
|
||||
@ -21,6 +21,7 @@ function base:initialize()
|
||||
self.height = h
|
||||
self.internal = true
|
||||
self.children = {}
|
||||
self.internals = {}
|
||||
|
||||
end
|
||||
|
||||
@ -36,6 +37,10 @@ function base:update(dt)
|
||||
v:update(dt)
|
||||
end
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
v:update(dt)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -53,6 +58,10 @@ function base:draw()
|
||||
v:draw()
|
||||
end
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -508,6 +517,8 @@ function base:Remove()
|
||||
|
||||
end
|
||||
|
||||
self.removed = true
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -683,7 +694,7 @@ function base:CheckHover()
|
||||
|
||||
local baseparent = self:GetBaseParent()
|
||||
|
||||
if baseparent ~= modalobject then
|
||||
if baseparent ~= modalobject and self.type ~= "multichoice-row" then
|
||||
|
||||
self.hover = false
|
||||
|
||||
@ -767,13 +778,16 @@ function base:IsTopList()
|
||||
|
||||
local function IsChild(object)
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
if v == object then
|
||||
local parents = object:GetParents()
|
||||
|
||||
for k, v in ipairs(parents) do
|
||||
if v == self then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
|
||||
end
|
||||
|
||||
for k, v in ipairs(cols) do
|
||||
@ -823,9 +837,23 @@ end
|
||||
function base:MoveToTop()
|
||||
|
||||
local pchildren = self.parent.children
|
||||
local pinternals = self.parent.internals
|
||||
|
||||
local internal = false
|
||||
|
||||
for k, v in ipairs(pinternals) do
|
||||
if v == self then
|
||||
internal = true
|
||||
end
|
||||
end
|
||||
|
||||
self:Remove()
|
||||
|
||||
if internal == true then
|
||||
table.insert(pinternals, self)
|
||||
else
|
||||
table.insert(pchildren, self)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@ -926,3 +954,70 @@ function base:IsActive()
|
||||
return valid
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetParents()
|
||||
- desc: returns a table of the object's parents and it's
|
||||
sub-parents
|
||||
--]]---------------------------------------------------------
|
||||
function base:GetParents()
|
||||
|
||||
local function GetParents(object, t)
|
||||
|
||||
local t = t or {}
|
||||
local type = object.type
|
||||
local parent = object.parent
|
||||
|
||||
if type ~= "base" then
|
||||
table.insert(t, parent)
|
||||
GetParents(parent, t)
|
||||
end
|
||||
|
||||
return t
|
||||
|
||||
end
|
||||
|
||||
local parents = GetParents(self)
|
||||
|
||||
return parents
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: IsTopInternal()
|
||||
- desc: returns true if the object is the top most
|
||||
internal in it's parent's internals table or
|
||||
false if not
|
||||
--]]---------------------------------------------------------
|
||||
function base:IsTopInternal()
|
||||
|
||||
local internals = self.parent.internals
|
||||
|
||||
if internals[#internals] ~= self then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: IsInternal()
|
||||
- desc: returns true if the object is internal or
|
||||
false if not
|
||||
--]]---------------------------------------------------------
|
||||
function base:IsInternal()
|
||||
|
||||
return self.internal
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetType()
|
||||
- desc: gets the type of the object
|
||||
--]]---------------------------------------------------------
|
||||
function base:GetType()
|
||||
|
||||
return self.type
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- button clas
|
||||
@ -82,11 +82,12 @@ function button:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawButton or skins[defaultskin].DrawButton
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -94,7 +95,7 @@ function button:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawButton(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,9 +1,9 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- button clas
|
||||
-- checkbox class
|
||||
checkbox = class("checkbox", base)
|
||||
checkbox:include(loveframes.templates.default)
|
||||
|
||||
@ -18,7 +18,7 @@ function checkbox:initialize()
|
||||
self.height = 0
|
||||
self.boxwidth = 20
|
||||
self.boxheight = 20
|
||||
self.font = love.graphics.newFont(12)
|
||||
self.font = loveframes.basicfont
|
||||
self.checked = false
|
||||
self.lastvalue = false
|
||||
self.internal = false
|
||||
@ -58,7 +58,7 @@ function checkbox:update(dt)
|
||||
end
|
||||
|
||||
-- move to parent if there is a parent
|
||||
if self.parent ~= loveframes.base then
|
||||
if self.parent ~= loveframes.base and self.parent.type ~= "list" then
|
||||
self.x = self.parent.x + self.staticx
|
||||
self.y = self.parent.y + self.staticy
|
||||
end
|
||||
@ -106,11 +106,12 @@ function checkbox:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawCheckBox or skins[defaultskin].DrawCheckBox
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -118,7 +119,7 @@ function checkbox:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawCheckBox(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
@ -311,3 +312,43 @@ function checkbox:SetFont(font)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: checkbox:GetFont()
|
||||
- desc: gets the font of the object's text
|
||||
--]]---------------------------------------------------------
|
||||
function checkbox:GetFont()
|
||||
|
||||
return self.font
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: checkbox:GetBoxHeight()
|
||||
- desc: gets the object's box size
|
||||
--]]---------------------------------------------------------
|
||||
function checkbox:GetBoxSize()
|
||||
|
||||
return self.boxwidth, self.boxheight
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: checkbox:GetBoxWidth()
|
||||
- desc: gets the object's box width
|
||||
--]]---------------------------------------------------------
|
||||
function checkbox:GetBoxWidth()
|
||||
|
||||
return self.boxwidth
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: checkbox:GetBoxHeight()
|
||||
- desc: gets the object's box height
|
||||
--]]---------------------------------------------------------
|
||||
function checkbox:GetBoxHeight()
|
||||
|
||||
return self.boxheight
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- button clas
|
||||
@ -49,16 +49,14 @@ function collapsiblecategory:update(dt)
|
||||
self:CheckHover()
|
||||
|
||||
-- move to parent if there is a parent
|
||||
if self.parent ~= loveframes.base then
|
||||
if self.parent ~= loveframes.base and self.parent.type ~= "list" then
|
||||
self.x = self.parent.x + self.staticx
|
||||
self.y = self.parent.y + self.staticy
|
||||
end
|
||||
|
||||
if open == true then
|
||||
curobject:update(dt)
|
||||
curobject:SetWidth(self.width - self.padding*2)
|
||||
curobject.y = (curobject.parent.y + curobject.staticy)
|
||||
curobject.x = (curobject.parent.x + curobject.staticx)
|
||||
curobject:update(dt)
|
||||
end
|
||||
|
||||
if self.Update then
|
||||
@ -82,12 +80,12 @@ function collapsiblecategory:draw()
|
||||
local open = self.open
|
||||
local children = self.children
|
||||
local curobject = children[1]
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawCollapsibleCategory or skins[defaultskin].DrawCollapsibleCategory
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -95,7 +93,7 @@ function collapsiblecategory:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawCollapsibleCategory(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
if open == true then
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- columnlist object
|
||||
@ -85,17 +85,20 @@ function columnlist:draw()
|
||||
|
||||
local children = self.children
|
||||
local internals = self.internals
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawColumnList or skins[defaultskin].DrawColumnList
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawColumnList(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(internals) do
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- frame class
|
||||
@ -75,7 +75,7 @@ function frame:update(dt)
|
||||
local children = self.children
|
||||
local internals = self.internals
|
||||
|
||||
close:SetPos(self.width - 22, 4)
|
||||
close:SetPos(self.width - 20, 4)
|
||||
self:CheckHover()
|
||||
|
||||
-- dragging check
|
||||
@ -107,17 +107,25 @@ function frame:update(dt)
|
||||
|
||||
if modal == true then
|
||||
|
||||
local numtooltips = 0
|
||||
local tip = false
|
||||
local key = 0
|
||||
|
||||
for k, v in ipairs(basechildren) do
|
||||
if v.type == "tooltip" then
|
||||
numtooltips = numtooltips + 1
|
||||
if v.type == "tooltip" and v.show == true then
|
||||
tip = v
|
||||
key = k
|
||||
end
|
||||
end
|
||||
|
||||
if draworder ~= numbasechildren - numtooltips then
|
||||
self.modalbackground:MoveToTop()
|
||||
self:MoveToTop()
|
||||
if tip ~= false then
|
||||
self:Remove()
|
||||
self.modalbackground:Remove()
|
||||
table.insert(basechildren, key - 2, self.modalbackground)
|
||||
table.insert(basechildren, key - 1, self)
|
||||
end
|
||||
|
||||
if self.modalbackground.draworder > self.draworder then
|
||||
self:MakeTop()
|
||||
end
|
||||
|
||||
end
|
||||
@ -150,12 +158,12 @@ function frame:draw()
|
||||
|
||||
local children = self.children
|
||||
local internals = self.internals
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawFrame or skins[defaultskin].DrawFrame
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -163,7 +171,7 @@ function frame:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawFrame(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(internals) do
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- progress bar class
|
||||
@ -61,11 +61,12 @@ function image:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawImage or skins[defaultskin].DrawImage
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -73,7 +74,7 @@ function image:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawImage(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
@ -95,6 +96,16 @@ function image:SetImage(image)
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetImage()
|
||||
- desc: gets the object's image
|
||||
--]]---------------------------------------------------------
|
||||
function image:GetImage()
|
||||
|
||||
return self.image
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetColor(table)
|
||||
- desc: sets the object's color
|
||||
@ -104,3 +115,13 @@ function image:SetColor(data)
|
||||
self.imagecolor = data
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetColor()
|
||||
- desc: gets the object's color
|
||||
--]]---------------------------------------------------------
|
||||
function image:GetColor()
|
||||
|
||||
return self.imagecolor
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- imagebutton clas
|
||||
@ -83,19 +83,20 @@ function imagebutton:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawImageButton or skins[defaultskin].DrawImageButton
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawImageButton(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- closebutton clas
|
||||
@ -80,19 +80,20 @@ function closebutton:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawCloseButton or skins[defaultskin].DrawCloseButton
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawCloseButton(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- columnlistarea object
|
||||
@ -88,28 +88,24 @@ function columnlistarea:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, self.height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawColumnListArea or skins[defaultskin].DrawColumnListArea
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawColumnListArea(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, self.height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
|
||||
love.graphics.setStencil(stencil)
|
||||
|
||||
for k, v in ipairs(self.children) do
|
||||
@ -121,6 +117,10 @@ function columnlistarea:draw()
|
||||
|
||||
love.graphics.setStencil()
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
if self.Draw == nil then
|
||||
skin.DrawOverColumnListArea(self)
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- columnlistrow object
|
||||
@ -16,7 +16,7 @@ function columnlistrow:initialize(parent, data)
|
||||
self.type = "columnlistrow"
|
||||
self.parent = parent
|
||||
self.colorindex = self.parent.rowcolorindex
|
||||
self.font = love.graphics.newFont(10)
|
||||
self.font = loveframes.basicfontsmall
|
||||
self.textcolor = {0, 0, 0, 255}
|
||||
self.width = 80
|
||||
self.height = 25
|
||||
@ -68,25 +68,25 @@ function columnlistrow:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local cwidth, cheight = self:GetParent():GetParent():GetColumnSize()
|
||||
local x = self.textx
|
||||
local textcolor = self.textcolor
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawColumnListRow or skins[defaultskin].DrawColumnListRow
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawColumnListRow(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
local cwidth, cheight = self:GetParent():GetParent():GetColumnSize()
|
||||
local x = self.textx
|
||||
local textcolor = self.textcolor
|
||||
|
||||
for k, v in ipairs(self.columndata) do
|
||||
love.graphics.setFont(self.font)
|
||||
love.graphics.setColor(unpack(textcolor))
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- columnlistheader object
|
||||
@ -99,19 +99,20 @@ function columnlistheader:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawColumnListHeader or skins[defaultskin].DrawColumnListHeader
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawColumnListHeader(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- modalbackground class
|
||||
@ -68,11 +68,12 @@ function modalbackground:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawModalBackground or skins[defaultskin].DrawModalBackground
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -80,7 +81,7 @@ function modalbackground:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawModalBackground(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- multichoicelist class
|
||||
@ -111,23 +111,29 @@ function multichoicelist:draw()
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, self.height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawMultiChoiceList or skins[defaultskin].DrawMultiChoiceList
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawMultiChoiceList(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
love.graphics.setScissor(self.x, self.y, self.width, self.height)
|
||||
love.graphics.setStencil(stencil)
|
||||
|
||||
for k, v in ipairs(self.children) do
|
||||
local col = loveframes.util.BoundingBox(self.x, v.x, self.y, v.y, self.width, v.width, self.height, v.height)
|
||||
@ -136,9 +142,11 @@ function multichoicelist:draw()
|
||||
end
|
||||
end
|
||||
|
||||
love.graphics.setScissor()
|
||||
love.graphics.setStencil()
|
||||
|
||||
if self.Draw == nil and skin.DrawOverMultiChoiceList then
|
||||
skin.DrawOverMultiChoiceList(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- multichoicerow class
|
||||
@ -77,19 +77,20 @@ function multichoicerow:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawMultiChoiceRow or skins[defaultskin].DrawMultiChoiceRow
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawMultiChoiceRow(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- scrollbar class
|
||||
@ -125,12 +125,12 @@ function scrollarea:draw()
|
||||
end
|
||||
|
||||
local internals = self.internals
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawScrollArea or skins[defaultskin].DrawScrollArea
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -138,7 +138,7 @@ function scrollarea:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawScrollArea(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(internals) do
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- scrollbar class
|
||||
@ -199,11 +199,12 @@ function scrollbar:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawScrollBar or skins[defaultskin].DrawScrollBar
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -211,7 +212,7 @@ function scrollbar:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawScrollBar(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- scrollbar class
|
||||
@ -130,11 +130,12 @@ function scrollbody:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawScrollBody or skins[defaultskin].DrawScrollBody
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -142,7 +143,7 @@ function scrollbody:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawScrollBody(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(self.internals) do
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- scrollbutton clas
|
||||
@ -71,19 +71,20 @@ function scrollbutton:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawScrollButton or skins[defaultskin].DrawScrollButton
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawScrollButton(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- closebutton clas
|
||||
@ -51,7 +51,7 @@ function sliderbutton:update(dt)
|
||||
local intervals = self.intervals
|
||||
local progress = 0
|
||||
local nvalue = 0
|
||||
local pvalue = 0
|
||||
local pvalue = self.parent.value
|
||||
local hover = self.hover
|
||||
local down = self.down
|
||||
local hoverobject = loveframes.hoverobject
|
||||
@ -77,56 +77,69 @@ function sliderbutton:update(dt)
|
||||
self.y = self.parent.y + self.staticy
|
||||
end
|
||||
|
||||
-- start calculations if the button is being dragged
|
||||
if dragging == true then
|
||||
|
||||
-- calculations for horizontal sliders
|
||||
if slidetype == "horizontal" then
|
||||
|
||||
if dragging == true then
|
||||
self.staticx = self.startx + (x - self.clickx)
|
||||
end
|
||||
|
||||
if (self.staticx + self.width) > self.parent.width then
|
||||
self.staticx = self.parent.width - self.width
|
||||
end
|
||||
|
||||
if self.staticx < 0 then
|
||||
self.staticx = 0
|
||||
end
|
||||
|
||||
progress = loveframes.util.Round(self.staticx/(self.parent.width - self.width), 5)
|
||||
progress = self.staticx/(self.parent.width - self.width)
|
||||
nvalue = self.parent.min + (self.parent.max - self.parent.min) * progress
|
||||
pvalue = self.parent.value
|
||||
nvalue = loveframes.util.Round(nvalue, self.parent.decimals)
|
||||
|
||||
-- calculations for vertical sliders
|
||||
elseif slidetype == "vertical" then
|
||||
|
||||
if dragging == true then
|
||||
self.staticy = self.starty + (y - self.clicky)
|
||||
end
|
||||
|
||||
if (self.staticy + self.height) > self.parent.height then
|
||||
self.staticy = self.parent.height - self.height
|
||||
end
|
||||
|
||||
if self.staticy < 0 then
|
||||
self.staticy = 0
|
||||
end
|
||||
|
||||
local space = self.parent.height - self.height
|
||||
local remaining = (self.parent.height - self.height) - self.staticy
|
||||
local percent = loveframes.util.Round(remaining/space, 5)
|
||||
local percent = remaining/space
|
||||
|
||||
nvalue = self.parent.min + (self.parent.max - self.parent.min) * percent
|
||||
pvalue = self.parent.value
|
||||
nvalue = loveframes.util.Round(nvalue, self.parent.decimals)
|
||||
|
||||
end
|
||||
|
||||
if nvalue ~= pvalue then
|
||||
self.parent.value = loveframes.util.Round(nvalue, self.parent.decimals)
|
||||
--
|
||||
if nvalue > self.parent.max then
|
||||
nvalue = self.parent.max
|
||||
end
|
||||
|
||||
if nvalue < self.parent.min then
|
||||
nvalue = self.parent.min
|
||||
end
|
||||
|
||||
self.parent.value = nvalue
|
||||
|
||||
if nvalue ~= pvalue and nvalue >= self.parent.min and nvalue <= self.parent.max then
|
||||
if self.parent.OnValueChanged then
|
||||
self.parent.OnValueChanged(self.parent, self.parent.value)
|
||||
end
|
||||
end
|
||||
|
||||
if dragging == true then
|
||||
loveframes.hoverobject = self
|
||||
|
||||
end
|
||||
|
||||
if slidetype == "horizontal" then
|
||||
if (self.staticx + self.width) > self.parent.width then
|
||||
self.staticx = self.parent.width - self.width
|
||||
end
|
||||
if self.staticx < 0 then
|
||||
self.staticx = 0
|
||||
end
|
||||
end
|
||||
|
||||
if slidetype == "vertical" then
|
||||
if (self.staticy + self.height) > self.parent.height then
|
||||
self.staticy = self.parent.height - self.height
|
||||
end
|
||||
if self.staticy < 0 then
|
||||
self.staticy = 0
|
||||
end
|
||||
end
|
||||
|
||||
if self.Update then
|
||||
@ -147,19 +160,20 @@ function sliderbutton:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawSliderButton or skins[defaultskin].DrawSliderButton
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawSliderButton(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- tabbutton clas
|
||||
@ -77,25 +77,25 @@ function tabbutton:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local font = love.graphics.getFont()
|
||||
local width = font:getWidth(self.text)
|
||||
local image = self.image
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawTabButton or skins[defaultskin].DrawTabButton
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawTabButton(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
local font = love.graphics.getFont()
|
||||
local width = font:getWidth(self.text)
|
||||
local image = self.image
|
||||
|
||||
if image then
|
||||
local imagewidth = image:getWidth()
|
||||
self.width = imagewidth + 15 + width
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- tooltip clas
|
||||
@ -21,8 +21,8 @@ function tooltip:initialize(object, text, width)
|
||||
self.width = width or 0
|
||||
self.height = 0
|
||||
self.padding = 5
|
||||
self.xoffset = 0
|
||||
self.yoffset = 0
|
||||
self.xoffset = 10
|
||||
self.yoffset = -10
|
||||
self.internal = true
|
||||
self.show = false
|
||||
self.followcursor = true
|
||||
@ -35,7 +35,7 @@ function tooltip:initialize(object, text, width)
|
||||
self.text:SetWidth(width or 0)
|
||||
self.text:SetPos(0, 0)
|
||||
|
||||
table.insert(loveframes.base.children, self)
|
||||
table.insert(loveframes.base.internals, self)
|
||||
|
||||
end
|
||||
|
||||
@ -64,6 +64,11 @@ function tooltip:update(dt)
|
||||
|
||||
if object then
|
||||
|
||||
if object == loveframes.base then
|
||||
self:Remove()
|
||||
return
|
||||
end
|
||||
|
||||
local hover = object.hover
|
||||
local odraworder = object.draworder
|
||||
|
||||
@ -73,9 +78,9 @@ function tooltip:update(dt)
|
||||
local show = self.show
|
||||
|
||||
if show == true then
|
||||
local top = self:IsTopInternal()
|
||||
if self.followcursor == true then
|
||||
local x, y = love.mouse.getPosition()
|
||||
local top = self:IsTopChild()
|
||||
self.x = x + self.xoffset
|
||||
self.y = y - self.height + self.yoffset
|
||||
else
|
||||
@ -91,9 +96,14 @@ function tooltip:update(dt)
|
||||
|
||||
end
|
||||
|
||||
if odraworder > draworder then
|
||||
local baseparent = object:GetBaseParent()
|
||||
|
||||
if baseparent then
|
||||
if baseparent.removed and baseparent.removed == true then
|
||||
self:Remove()
|
||||
end
|
||||
elseif object.removed then
|
||||
self:Remove()
|
||||
table.insert(loveframes.base.children, self)
|
||||
end
|
||||
|
||||
end
|
||||
@ -118,24 +128,24 @@ function tooltip:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
local show = self.show
|
||||
local text = self.text
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawToolTip or skins[defaultskin].DrawToolTip
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if show == true then
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawToolTip(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
text:draw()
|
||||
@ -172,6 +182,7 @@ end
|
||||
function tooltip:SetText(text)
|
||||
|
||||
self.text:SetText(text)
|
||||
self.text2 = text
|
||||
|
||||
end
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- list class
|
||||
@ -98,27 +98,26 @@ function list:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
local internals = self.internals
|
||||
local children = self.children
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, self.height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawList or skins[defaultskin].DrawList
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawList(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, self.height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
|
||||
love.graphics.setStencil(stencil)
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- progress bar class
|
||||
@ -68,11 +68,12 @@ function multichoice:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawMultiChoice or skins[defaultskin].DrawMultiChoice
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -80,7 +81,7 @@ function multichoice:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawMultiChoice(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- panel class
|
||||
@ -69,12 +69,12 @@ function panel:draw()
|
||||
end
|
||||
|
||||
local children = self.children
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawPanel or skins[defaultskin].DrawPanel
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -82,7 +82,7 @@ function panel:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawPanel(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
-- loop through the object's children and draw them
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- progress bar class
|
||||
@ -133,11 +133,12 @@ function progressbar:draw()
|
||||
return
|
||||
end
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawProgressBar or skins[defaultskin].DrawProgressBar
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
@ -145,7 +146,7 @@ function progressbar:draw()
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawProgressBar(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
end
|
||||
@ -283,3 +284,13 @@ function progressbar:GetLerpRate()
|
||||
return self.lerprate
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetCompleted()
|
||||
- desc: gets the value of object.completed
|
||||
--]]---------------------------------------------------------
|
||||
function progressbar:GetLerpRate()
|
||||
|
||||
return self.completed
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- text clas
|
||||
@ -55,7 +55,7 @@ function slider:update(dt)
|
||||
self:CheckHover()
|
||||
|
||||
-- move to parent if there is a parent
|
||||
if self.parent ~= loveframes.base then
|
||||
if self.parent ~= loveframes.base and self.parent.type ~= "list" then
|
||||
self.x = self.parent.x + self.staticx
|
||||
self.y = self.parent.y + self.staticy
|
||||
end
|
||||
@ -92,20 +92,20 @@ function slider:draw()
|
||||
end
|
||||
|
||||
local internals = self.internals
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawSlider or skins[defaultskin].DrawSlider
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawSlider(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
-- draw internals
|
||||
@ -230,6 +230,10 @@ function slider:SetMax(max)
|
||||
|
||||
self.max = max
|
||||
|
||||
if self.value > self.max then
|
||||
self.value = self.max
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -250,6 +254,10 @@ function slider:SetMin(min)
|
||||
|
||||
self.min = min
|
||||
|
||||
if self.value < self.min then
|
||||
self.value = self.min
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -271,6 +279,14 @@ function slider:SetMinMax(min, max)
|
||||
self.min = min
|
||||
self.max = max
|
||||
|
||||
if self.value > self.max then
|
||||
self.value = self.max
|
||||
end
|
||||
|
||||
if self.value < self.min then
|
||||
self.value = self.min
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- tabs class
|
||||
@ -25,7 +25,7 @@ function tabs:initialize()
|
||||
self.tabheight = 25
|
||||
self.autosize = true
|
||||
self.internal = false
|
||||
self.tooltipfont = love.graphics.newFont(10)
|
||||
self.tooltipfont = loveframes.basicfontsmall
|
||||
self.tabs = {}
|
||||
self.internals = {}
|
||||
self.children = {}
|
||||
@ -106,26 +106,26 @@ function tabs:draw()
|
||||
end
|
||||
|
||||
local internals = self.internals
|
||||
local tabheight = self:GetHeightOfButtons()
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, tabheight) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
local internals = self.internals
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawTabPanel or skins[defaultskin].DrawTabPanel
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawTabPanel(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
local tabheight = self:GetHeightOfButtons()
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, tabheight) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
|
||||
love.graphics.setStencil(stencil)
|
||||
|
||||
for k, v in ipairs(internals) do
|
||||
@ -457,3 +457,13 @@ function tabs:SetToolTipFont(font)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetTabNumber()
|
||||
- desc: gets the object's tab number
|
||||
--]]---------------------------------------------------------
|
||||
function tabs:GetTabNumber()
|
||||
|
||||
return self.tabnumber
|
||||
|
||||
end
|
127
objects/text.lua
127
objects/text.lua
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
--[[------------------------------------------------
|
||||
@ -19,7 +19,7 @@ function text:initialize()
|
||||
|
||||
self.type = "text"
|
||||
self.text = ""
|
||||
self.font = love.graphics.newFont(12)
|
||||
self.font = loveframes.basicfont
|
||||
self.width = 5
|
||||
self.height = 5
|
||||
self.maxw = 0
|
||||
@ -66,25 +66,52 @@ function text:draw()
|
||||
return
|
||||
end
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawText or skins[defaultskin].DrawText
|
||||
|
||||
loveframes.drawcount = loveframes.drawcount + 1
|
||||
self.draworder = loveframes.drawcount
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawText(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
self:DrawText()
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: mousepressed(x, y, button)
|
||||
- desc: called when the player presses a mouse button
|
||||
--]]---------------------------------------------------------
|
||||
function text:mousepressed(x, y, button)
|
||||
|
||||
local visible = self.visible
|
||||
|
||||
if visible == false then
|
||||
return
|
||||
end
|
||||
|
||||
local hover = self.hover
|
||||
|
||||
if hover == true and button == "l" then
|
||||
|
||||
local baseparent = self:GetBaseParent()
|
||||
|
||||
if baseparent and baseparent.type == "frame" then
|
||||
baseparent:MakeTop()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetText(text)
|
||||
- desc: sets the object's text
|
||||
@ -129,7 +156,7 @@ function text:SetText(t)
|
||||
elseif dtype == "string" then
|
||||
|
||||
v = v:gsub(string.char(9), " ")
|
||||
v = v:gsub("\n", "")
|
||||
v = v:gsub(string.char(92) .. string.char(110), string.char(10))
|
||||
|
||||
local parts = loveframes.util.SplitSring(v, " ")
|
||||
|
||||
@ -189,24 +216,6 @@ function text:SetText(t)
|
||||
table.insert(self.text, v.key, {color = v.color, text = v.text})
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetText()
|
||||
- desc: gets the object's text
|
||||
--]]---------------------------------------------------------
|
||||
function text:GetText()
|
||||
|
||||
return self.text
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: Format()
|
||||
- desc: formats the text
|
||||
--]]---------------------------------------------------------
|
||||
function text:DrawText()
|
||||
|
||||
local textdata = self.text
|
||||
local maxw = self.maxw
|
||||
local font = self.font
|
||||
@ -234,7 +243,13 @@ function text:DrawText()
|
||||
|
||||
if k ~= 1 then
|
||||
|
||||
if (twidth + width) > maxw then
|
||||
if string.byte(text) == 10 then
|
||||
twidth = 0
|
||||
drawx = 0
|
||||
width = 0
|
||||
drawy = drawy + height
|
||||
text = ""
|
||||
elseif (twidth + width) > maxw then
|
||||
twidth = 0 + width
|
||||
drawx = 0
|
||||
drawy = drawy + height
|
||||
@ -249,9 +264,8 @@ function text:DrawText()
|
||||
|
||||
prevtextwidth = width
|
||||
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(unpack(color))
|
||||
love.graphics.print(text, x + drawx, y + drawy)
|
||||
v.x = drawx
|
||||
v.y = drawy
|
||||
|
||||
else
|
||||
|
||||
@ -261,9 +275,8 @@ function text:DrawText()
|
||||
|
||||
prevtextwidth = width
|
||||
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(unpack(color))
|
||||
love.graphics.print(text, x + drawx, y)
|
||||
v.x = drawx
|
||||
v.y = drawy
|
||||
|
||||
end
|
||||
|
||||
@ -281,6 +294,40 @@ function text:DrawText()
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetText()
|
||||
- desc: gets the object's text
|
||||
--]]---------------------------------------------------------
|
||||
function text:GetText()
|
||||
|
||||
return self.text
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: Format()
|
||||
- desc: formats the text
|
||||
--]]---------------------------------------------------------
|
||||
function text:DrawText()
|
||||
|
||||
local textdata = self.text
|
||||
local font = self.font
|
||||
local x = self.x
|
||||
local y = self.y
|
||||
|
||||
for k, v in ipairs(textdata) do
|
||||
|
||||
local text = v.text
|
||||
local color = v.color
|
||||
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(unpack(color))
|
||||
love.graphics.printf(text, x + v.x, y + v.y, 0, "left")
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetMaxWidth(width)
|
||||
- desc: sets the object's maximum width
|
||||
@ -358,3 +405,13 @@ function text:GetFont()
|
||||
return self.font
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetLines()
|
||||
- desc: gets the number of lines the object's text uses
|
||||
--]]---------------------------------------------------------
|
||||
function text:GetLines()
|
||||
|
||||
return self.lines
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- textinput clas
|
||||
@ -17,7 +17,7 @@ function textinput:initialize()
|
||||
self.type = "textinput"
|
||||
self.text = ""
|
||||
self.keydown = "none"
|
||||
self.font = love.graphics.newFont(12)
|
||||
self.font = loveframes.basicfont
|
||||
self.textcolor = {0, 0, 0, 255}
|
||||
self.width = 200
|
||||
self.height = 25
|
||||
@ -32,6 +32,9 @@ function textinput:initialize()
|
||||
self.textxoffset = 0
|
||||
self.textyoffset = 0
|
||||
self.unicode = 0
|
||||
self.limit = 0
|
||||
self.usable = {}
|
||||
self.unusable = {}
|
||||
self.showblink = true
|
||||
self.focus = false
|
||||
self.internal = false
|
||||
@ -67,6 +70,7 @@ function textinput:update(dt)
|
||||
self.y = self.parent.y + self.staticy
|
||||
end
|
||||
|
||||
-- keydown check
|
||||
if keydown ~= "none" then
|
||||
if time > self.delay then
|
||||
self:RunKey(keydown, unicode)
|
||||
@ -103,26 +107,27 @@ function textinput:draw()
|
||||
local text = self.text
|
||||
local textx = self.textx
|
||||
local texty = self.texty
|
||||
|
||||
-- skin variables
|
||||
local index = loveframes.config["ACTIVESKIN"]
|
||||
local skins = loveframes.skins.available
|
||||
local skinindex = loveframes.config["ACTIVESKIN"]
|
||||
local defaultskin = loveframes.config["DEFAULTSKIN"]
|
||||
local selfskin = self.skin
|
||||
local skin = loveframes.skins.available[selfskin] or loveframes.skins.available[index] or loveframes.skins.available[defaultskin]
|
||||
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", self.x, self.y, self.width, self.height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
love.graphics.setStencil(stencil)
|
||||
local selfskin = self.skin
|
||||
local skin = skins[selfskin] or skins[skinindex]
|
||||
local drawfunc = skin.DrawTextInput or skins[defaultskin].DrawTextInput
|
||||
|
||||
love.graphics.setStencil(stencilfunc)
|
||||
|
||||
if self.Draw ~= nil then
|
||||
self.Draw(self)
|
||||
else
|
||||
skin.DrawTextInput(self)
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
-- draw the object's text
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(unpack(textcolor))
|
||||
love.graphics.print(text, textx, self.texty)
|
||||
love.graphics.setColor(self.textcolor)
|
||||
love.graphics.print(self.text, textx, texty)
|
||||
|
||||
love.graphics.setStencil()
|
||||
|
||||
@ -153,6 +158,7 @@ function textinput:mousepressed(x, y, button)
|
||||
if hover == true then
|
||||
|
||||
local baseparent = self:GetBaseParent()
|
||||
local time = love.timer.getTime()
|
||||
|
||||
if baseparent and baseparent.type == "frame" then
|
||||
baseparent:MakeTop()
|
||||
@ -253,6 +259,10 @@ function textinput:RunKey(key, unicode)
|
||||
self.unicode = unicode
|
||||
|
||||
if key == "left" then
|
||||
if self.alltextselected == true then
|
||||
self.alltextselected = false
|
||||
self.blinknum = 0
|
||||
else
|
||||
self:MoveBlinker(-1)
|
||||
if blinkx <= self.x and blinknum ~= 0 then
|
||||
local width = self.font:getWidth(self.text:sub(blinknum, blinknum + 1))
|
||||
@ -260,7 +270,12 @@ function textinput:RunKey(key, unicode)
|
||||
elseif blinknum == 0 and self.xoffset ~= 0 then
|
||||
self.xoffset = 0
|
||||
end
|
||||
end
|
||||
elseif key == "right" then
|
||||
if self.alltextselected == true then
|
||||
self.alltextselected = false
|
||||
self.blinknum = #self.text
|
||||
else
|
||||
self:MoveBlinker(1)
|
||||
if blinkx >= self.x + swidth and blinknum ~= #self.text then
|
||||
local width = self.font:getWidth(self.text:sub(blinknum, blinknum))
|
||||
@ -269,6 +284,7 @@ function textinput:RunKey(key, unicode)
|
||||
self.xoffset = ((0 - font:getWidth(self.text)) + swidth)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- key input checking system
|
||||
if key == "backspace" then
|
||||
@ -276,13 +292,52 @@ function textinput:RunKey(key, unicode)
|
||||
self.text = self:RemoveFromeText(blinknum)
|
||||
self:MoveBlinker(-1)
|
||||
end
|
||||
local cwidth = font:getWidth(self.text:sub(#self.text))
|
||||
if self.xoffset ~= 0 then
|
||||
self.xoffset = self.xoffset + cwidth
|
||||
end
|
||||
elseif key == "return" then
|
||||
if self.OnEnter ~= nil then
|
||||
self.OnEnter(self, self.text)
|
||||
end
|
||||
else
|
||||
if unicode > 31 and unicode < 127 then
|
||||
|
||||
if self.alltextselected == true then
|
||||
self.alltextselected = false
|
||||
self:Clear()
|
||||
end
|
||||
|
||||
if #self.text == self.limit and self.limit ~= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
ckey = string.char(unicode)
|
||||
|
||||
if #self.usable > 0 then
|
||||
local found = false
|
||||
for k, v in ipairs(self.usable) do
|
||||
if v == ckey then
|
||||
found = true
|
||||
end
|
||||
end
|
||||
if found == false then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if #self.unusable > 0 then
|
||||
local found = false
|
||||
for k, v in ipairs(self.unusable) do
|
||||
if v == ckey then
|
||||
found = true
|
||||
end
|
||||
end
|
||||
if found == true then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if blinknum ~= 0 and blinknum ~= #self.text then
|
||||
self.text = self:AddIntoText(unicode, blinknum)
|
||||
self:MoveBlinker(1)
|
||||
@ -298,20 +353,14 @@ function textinput:RunKey(key, unicode)
|
||||
self.OnTextEntered(self, ckey)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
if key == "backspace" then
|
||||
local cwidth = font:getWidth(self.text:sub(#self.text))
|
||||
if self.xoffset ~= 0 then
|
||||
self.xoffset = self.xoffset + cwidth
|
||||
end
|
||||
else
|
||||
local cwidth = font:getWidth(ckey)
|
||||
|
||||
-- swidth - 1 is for the "-" character
|
||||
if (twidth + textxoffset) >= (swidth - 1) then
|
||||
self.xoffset = self.xoffset - cwidth
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@ -322,7 +371,7 @@ end
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:MoveBlinker(num, exact)
|
||||
|
||||
if exact == nil or false then
|
||||
if not exact or exact == false then
|
||||
self.blinknum = self.blinknum + num
|
||||
else
|
||||
self.blinknum = num
|
||||
@ -508,9 +557,8 @@ function textinput:SetFocus(focus)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetFocus
|
||||
- func: GetFocus()
|
||||
- desc: gets the object's focus
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:GetFocus()
|
||||
@ -520,7 +568,7 @@ function textinput:GetFocus()
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetBlinkerVisibility
|
||||
- func: GetBlinkerVisibility()
|
||||
- desc: gets the object's blinker visibility
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:GetBlinkerVisibility()
|
||||
@ -528,3 +576,58 @@ function textinput:GetBlinkerVisibility()
|
||||
return self.showblink
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetLimit(limit)
|
||||
- desc: sets the object's text limit
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:SetLimit(limit)
|
||||
|
||||
self.limit = limit
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetUsable(usable)
|
||||
- desc: sets what characters can be used for the
|
||||
object's text
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:SetUsable(usable)
|
||||
|
||||
self.usable = usable
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetUnusable(unusable)
|
||||
- desc: sets what characters can not be used for the
|
||||
object's text
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:SetUnusable(unusable)
|
||||
|
||||
self.unusable = unusable
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: Clear()
|
||||
- desc: clears the object's text
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:Clear()
|
||||
|
||||
self.text = ""
|
||||
self.xoffset = 0
|
||||
self.textxoffset = 0
|
||||
self.blinknum = 0
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetText()
|
||||
- desc: gets the object's text
|
||||
--]]---------------------------------------------------------
|
||||
function textinput:GetText()
|
||||
|
||||
return self.text
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
loveframes.skins = {}
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- skin table
|
||||
@ -119,6 +119,7 @@ skin.controls.tooltip_text_font = smallfont
|
||||
skin.controls.textinput_border_color = bordercolor
|
||||
skin.controls.textinput_body_color = {240, 240, 240, 255}
|
||||
skin.controls.textinput_blinker_color = {0, 0, 0, 255}
|
||||
skin.controls.textinput_highlight_color = {51, 204, 255, 255}
|
||||
|
||||
-- slider
|
||||
skin.controls.slider_bar_color = bordercolor
|
||||
@ -200,11 +201,11 @@ end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: DrawRepeatingImage(image, x, y, width, height)
|
||||
- desc: draw a repeating image a box
|
||||
- desc: draw a repeating image
|
||||
--]]---------------------------------------------------------
|
||||
function skin.DrawRepeatingImage(image, x, y, width, height)
|
||||
|
||||
local image = love.graphics.newImage(image)
|
||||
local image = image
|
||||
local iwidth = image:getWidth()
|
||||
local iheight = image:getHeight()
|
||||
local cords = {}
|
||||
@ -212,6 +213,7 @@ function skin.DrawRepeatingImage(image, x, y, width, height)
|
||||
local posy = 0
|
||||
local stencilfunc = function() love.graphics.rectangle("fill", x, y, width, height) end
|
||||
local stencil = love.graphics.newStencil(stencilfunc)
|
||||
local images = 0
|
||||
|
||||
while posy < height do
|
||||
|
||||
@ -231,26 +233,25 @@ function skin.DrawRepeatingImage(image, x, y, width, height)
|
||||
for k, v in ipairs(cords) do
|
||||
love.graphics.setColor(255, 255, 255, 255)
|
||||
love.graphics.draw(image, x + v[1], y + v[2])
|
||||
images = images + 1
|
||||
end
|
||||
|
||||
love.graphics.setStencil()
|
||||
|
||||
print(images)
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: skin.DrawGradient(x, y, width, height,
|
||||
direction, color, colormod)
|
||||
- func: skin.DrawGradient(x, y, width, height, color)
|
||||
- desc: draws a gradient
|
||||
--]]---------------------------------------------------------
|
||||
function skin.DrawGradient(x, y, width, height, direction, color, colormod)
|
||||
function skin.DrawGradient(x, y, width, height, color)
|
||||
|
||||
local color = color
|
||||
local colormod = colormod or 0
|
||||
local percent = 0
|
||||
local once = false
|
||||
|
||||
if direction == "up" then
|
||||
|
||||
for i=1, height - 1 do
|
||||
percent = i/height * 255
|
||||
color = {color[1], color[2], color[3], loveframes.util.Round(percent)}
|
||||
@ -258,8 +259,6 @@ function skin.DrawGradient(x, y, width, height, direction, color, colormod)
|
||||
love.graphics.rectangle("fill", x, y + i, width, 1)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -279,7 +278,7 @@ function skin.DrawFrame(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), 25)
|
||||
|
||||
gradientcolor = {skin.controls.frame_top_color[1] - 20, skin.controls.frame_top_color[2] - 20, skin.controls.frame_top_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), 25, "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), 25, gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.frame_border_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY() + 25, object:GetWidth(), 1)
|
||||
@ -316,7 +315,7 @@ function skin.DrawButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_down_color[1] - 20, skin.controls.button_body_down_color[2] - 20, skin.controls.button_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button text
|
||||
love.graphics.setFont(skin.controls.button_text_font)
|
||||
@ -334,7 +333,7 @@ function skin.DrawButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_hover_color[1] - 20, skin.controls.button_body_hover_color[2] - 20, skin.controls.button_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button text
|
||||
love.graphics.setFont(skin.controls.button_text_font)
|
||||
@ -352,7 +351,7 @@ function skin.DrawButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_nohover_color[1] - 20, skin.controls.button_body_nohover_color[2] - 20, skin.controls.button_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button text
|
||||
love.graphics.setFont(skin.controls.button_text_font)
|
||||
@ -497,7 +496,7 @@ function skin.DrawProgressBar(object)
|
||||
love.graphics.setColor(unpack(skin.controls.progressbar_bar_color))
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object.progress, object:GetHeight())
|
||||
gradientcolor = {skin.controls.progressbar_bar_color[1], skin.controls.progressbar_bar_color[2] - 20, skin.controls.progressbar_bar_color[3], 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object.progress, object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object.progress, object:GetHeight(), gradientcolor)
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(unpack(skin.controls.progressbar_text_color))
|
||||
love.graphics.print(object.value .. "/" ..object.max, object:GetX() + object:GetWidth()/2 - twidth/2, object:GetY() + object:GetHeight()/2 - theight/2)
|
||||
@ -538,21 +537,21 @@ function skin.DrawScrollBar(object)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_body_down_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
gradientcolor = {skin.controls.scrollbar_body_down_color[1] - 20, skin.controls.scrollbar_body_down_color[2] - 20, skin.controls.scrollbar_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
elseif object.hover == true then
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_body_hover_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
gradientcolor = {skin.controls.scrollbar_body_hover_color[1] - 20, skin.controls.scrollbar_body_hover_color[2] - 20, skin.controls.scrollbar_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_border_hover_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
else
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_body_nohover_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
gradientcolor = {skin.controls.scrollbar_body_nohover_color[1] - 20, skin.controls.scrollbar_body_nohover_color[2] - 20, skin.controls.scrollbar_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_border_nohover_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
end
|
||||
@ -664,7 +663,7 @@ function skin.DrawTabButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
gradientcolor = {skin.controls.tab_body_hover_color[1] - 20, skin.controls.tab_body_hover_color[2] - 20, skin.controls.tab_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.tabpanel_border_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
@ -691,7 +690,7 @@ function skin.DrawTabButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
gradientcolor = {skin.controls.tab_body_nohover_color[1] - 20, skin.controls.tab_body_nohover_color[2] - 20, skin.controls.tab_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.tabpanel_border_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
@ -833,6 +832,14 @@ function skin.DrawTextInput(object)
|
||||
object:SetTextOffsetX(5)
|
||||
end
|
||||
|
||||
if object.alltextselected == true then
|
||||
love.graphics.setColor(unpack(skin.controls.textinput_highlight_color))
|
||||
love.graphics.rectangle("fill", object.textx, object.texty, object.font:getWidth(object:GetText()), object.font:getHeight("a"))
|
||||
object:SetTextColor({255, 255, 255, 255})
|
||||
else
|
||||
object:SetTextColor({0, 0, 0, 255})
|
||||
end
|
||||
|
||||
if showblink == true and focus == true then
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.textinput_blinker_color))
|
||||
@ -875,7 +882,7 @@ function skin.DrawScrollButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_down_color[1] - 20, skin.controls.button_body_down_color[2] - 20, skin.controls.button_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -888,7 +895,7 @@ function skin.DrawScrollButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_hover_color[1] - 20, skin.controls.button_body_hover_color[2] - 20, skin.controls.button_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -901,7 +908,7 @@ function skin.DrawScrollButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_nohover_color[1] - 20, skin.controls.button_body_nohover_color[2] - 20, skin.controls.button_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -989,7 +996,7 @@ function skin.DrawSliderButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_down_color[1] - 20, skin.controls.button_body_down_color[2] - 20, skin.controls.button_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -1002,7 +1009,7 @@ function skin.DrawSliderButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_hover_color[1] - 20, skin.controls.button_body_hover_color[2] - 20, skin.controls.button_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -1015,7 +1022,7 @@ function skin.DrawSliderButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_nohover_color[1] - 20, skin.controls.button_body_nohover_color[2] - 20, skin.controls.button_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -1044,13 +1051,8 @@ function skin.DrawCheckBox(object)
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object.boxwidth, object.boxheight)
|
||||
|
||||
if checked == true then
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.checkbox_check_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 4, object:GetY() + 4, object.boxwidth - 8, object.boxheight - 8)
|
||||
|
||||
gradientcolor = {skin.controls.checkbox_check_color[1] - 20, skin.controls.checkbox_check_color[2] - 20, skin.controls.checkbox_check_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX() + 4, object:GetY() + 4, object.boxwidth - 8, object.boxheight - 8, "up", gradientcolor)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@ -1068,7 +1070,7 @@ function skin.DrawCollapsibleCategory(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
love.graphics.setColor(unpack(gradientcolor))
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.collapsiblecategory_text_color))
|
||||
love.graphics.print(object.text, object:GetX() + 5, object:GetY() + 5)
|
||||
@ -1109,7 +1111,7 @@ function skin.DrawColumnListHeader(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.columnlistheader_body_down_color[1] - 20, skin.controls.columnlistheader_body_down_color[2] - 20, skin.controls.columnlistheader_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- header name
|
||||
love.graphics.setFont(font)
|
||||
@ -1118,7 +1120,7 @@ function skin.DrawColumnListHeader(object)
|
||||
|
||||
-- header border
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistheader_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), false, false, false, true)
|
||||
|
||||
elseif hover == true then
|
||||
|
||||
@ -1127,7 +1129,7 @@ function skin.DrawColumnListHeader(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.columnlistheader_body_hover_color[1] - 20, skin.controls.columnlistheader_body_hover_color[2] - 20, skin.controls.columnlistheader_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- header name
|
||||
love.graphics.setFont(font)
|
||||
@ -1136,7 +1138,7 @@ function skin.DrawColumnListHeader(object)
|
||||
|
||||
-- header border
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistheader_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), false, false, false, true)
|
||||
|
||||
else
|
||||
|
||||
@ -1145,7 +1147,7 @@ function skin.DrawColumnListHeader(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.columnlistheader_body_nohover_color[1] - 20, skin.controls.columnlistheader_body_nohover_color[2] - 20, skin.controls.columnlistheader_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- header name
|
||||
love.graphics.setFont(font)
|
||||
@ -1154,7 +1156,7 @@ function skin.DrawColumnListHeader(object)
|
||||
|
||||
-- header border
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistheader_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), false, false, false, true)
|
||||
|
||||
end
|
||||
|
||||
@ -1201,15 +1203,15 @@ function skin.DrawColumnListRow(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistrow_border1_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), true, false, true, true)
|
||||
|
||||
else
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistrow_body2_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistrow_border2_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), true, false, true, true)
|
||||
|
||||
end
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- skin table
|
||||
@ -200,11 +200,11 @@ end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: DrawRepeatingImage(image, x, y, width, height)
|
||||
- desc: draw a repeating image a box
|
||||
- desc: draw a repeating image
|
||||
--]]---------------------------------------------------------
|
||||
function skin.DrawRepeatingImage(image, x, y, width, height)
|
||||
|
||||
local image = love.graphics.newImage(image)
|
||||
local image = image
|
||||
local iwidth = image:getWidth()
|
||||
local iheight = image:getHeight()
|
||||
local cords = {}
|
||||
@ -238,19 +238,15 @@ function skin.DrawRepeatingImage(image, x, y, width, height)
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: skin.DrawGradient(x, y, width, height,
|
||||
direction, color, colormod)
|
||||
- func: skin.DrawGradient(x, y, width, height, color)
|
||||
- desc: draws a gradient
|
||||
--]]---------------------------------------------------------
|
||||
function skin.DrawGradient(x, y, width, height, direction, color, colormod)
|
||||
function skin.DrawGradient(x, y, width, height, color)
|
||||
|
||||
local color = color
|
||||
local colormod = colormod or 0
|
||||
local percent = 0
|
||||
local once = false
|
||||
|
||||
if direction == "up" then
|
||||
|
||||
for i=1, height - 1 do
|
||||
percent = i/height * 255
|
||||
color = {color[1], color[2], color[3], loveframes.util.Round(percent)}
|
||||
@ -258,8 +254,6 @@ function skin.DrawGradient(x, y, width, height, direction, color, colormod)
|
||||
love.graphics.rectangle("fill", x, y + i, width, 1)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
@ -279,7 +273,7 @@ function skin.DrawFrame(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), 25)
|
||||
|
||||
gradientcolor = {skin.controls.frame_top_color[1] - 20, skin.controls.frame_top_color[2] - 20, 0, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), 25, "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), 25, gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.frame_border_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY() + 25, object:GetWidth(), 1)
|
||||
@ -316,7 +310,7 @@ function skin.DrawButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_down_color[1] - 20, skin.controls.button_body_down_color[2] - 20, skin.controls.button_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button text
|
||||
love.graphics.setFont(skin.controls.button_text_font)
|
||||
@ -334,7 +328,7 @@ function skin.DrawButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_hover_color[1] - 20, skin.controls.button_body_hover_color[2] - 20, skin.controls.button_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button text
|
||||
love.graphics.setFont(skin.controls.button_text_font)
|
||||
@ -352,7 +346,7 @@ function skin.DrawButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_nohover_color[1] - 20, skin.controls.button_body_nohover_color[2] - 20, skin.controls.button_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button text
|
||||
love.graphics.setFont(skin.controls.button_text_font)
|
||||
@ -498,7 +492,7 @@ function skin.DrawProgressBar(object)
|
||||
love.graphics.setColor(unpack(skin.controls.progressbar_bar_color))
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object.progress, object:GetHeight())
|
||||
gradientcolor = {skin.controls.progressbar_bar_color[1], skin.controls.progressbar_bar_color[2] - 20, skin.controls.progressbar_bar_color[3], 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object.progress, object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object.progress, object:GetHeight(), gradientcolor)
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(unpack(skin.controls.progressbar_text_color))
|
||||
love.graphics.print(object.value .. "/" ..object.max, object:GetX() + object:GetWidth()/2 - twidth/2, object:GetY() + object:GetHeight()/2 - theight/2)
|
||||
@ -539,21 +533,21 @@ function skin.DrawScrollBar(object)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_body_down_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
gradientcolor = {skin.controls.scrollbar_body_down_color[1] - 20, skin.controls.scrollbar_body_down_color[2] - 20, skin.controls.scrollbar_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
elseif object.hover == true then
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_body_hover_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
gradientcolor = {skin.controls.scrollbar_body_hover_color[1] - 20, skin.controls.scrollbar_body_hover_color[2] - 20, skin.controls.scrollbar_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_border_hover_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
else
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_body_nohover_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
gradientcolor = {skin.controls.scrollbar_body_nohover_color[1] - 20, skin.controls.scrollbar_body_nohover_color[2] - 20, skin.controls.scrollbar_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
love.graphics.setColor(unpack(skin.controls.scrollbar_border_nohover_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
end
|
||||
@ -665,7 +659,7 @@ function skin.DrawTabButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
gradientcolor = {skin.controls.tab_body_hover_color[1] - 20, skin.controls.tab_body_hover_color[2] - 20, skin.controls.tab_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.tabpanel_border_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
@ -692,7 +686,7 @@ function skin.DrawTabButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
gradientcolor = {skin.controls.tab_body_nohover_color[1] - 20, skin.controls.tab_body_nohover_color[2] - 20, skin.controls.tab_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.tabpanel_border_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
@ -876,7 +870,7 @@ function skin.DrawScrollButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_down_color[1] - 20, skin.controls.button_body_down_color[2] - 20, skin.controls.button_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -889,7 +883,7 @@ function skin.DrawScrollButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_hover_color[1] - 20, skin.controls.button_body_hover_color[2] - 20, skin.controls.button_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -902,7 +896,7 @@ function skin.DrawScrollButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_nohover_color[1] - 20, skin.controls.button_body_nohover_color[2] - 20, skin.controls.button_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -990,7 +984,7 @@ function skin.DrawSliderButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_down_color[1] - 20, skin.controls.button_body_down_color[2] - 20, skin.controls.button_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -1003,7 +997,7 @@ function skin.DrawSliderButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_hover_color[1] - 20, skin.controls.button_body_hover_color[2] - 20, skin.controls.button_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -1016,7 +1010,7 @@ function skin.DrawSliderButton(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.button_body_nohover_color[1] - 20, skin.controls.button_body_nohover_color[2] - 20, skin.controls.button_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- button border
|
||||
love.graphics.setColor(unpack(skin.controls.button_border_down_color))
|
||||
@ -1050,7 +1044,7 @@ function skin.DrawCheckBox(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 4, object:GetY() + 4, object.boxwidth - 8, object.boxheight - 8)
|
||||
|
||||
gradientcolor = {skin.controls.checkbox_check_color[1] - 20, skin.controls.checkbox_check_color[2] - 20, skin.controls.checkbox_check_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX() + 4, object:GetY() + 4, object.boxwidth - 8, object.boxheight - 8, "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX() + 4, object:GetY() + 4, object.boxwidth - 8, object.boxheight - 8, gradientcolor)
|
||||
|
||||
end
|
||||
|
||||
@ -1069,7 +1063,7 @@ function skin.DrawCollapsibleCategory(object)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
love.graphics.setColor(unpack(gradientcolor))
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.collapsiblecategory_text_color))
|
||||
love.graphics.print(object.text, object:GetX() + 5, object:GetY() + 5)
|
||||
@ -1110,7 +1104,7 @@ function skin.DrawColumnListHeader(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.columnlistheader_body_down_color[1] - 20, skin.controls.columnlistheader_body_down_color[2] - 20, skin.controls.columnlistheader_body_down_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- header name
|
||||
love.graphics.setFont(font)
|
||||
@ -1119,7 +1113,7 @@ function skin.DrawColumnListHeader(object)
|
||||
|
||||
-- header border
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistheader_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), false, false, false, true)
|
||||
|
||||
elseif hover == true then
|
||||
|
||||
@ -1128,7 +1122,7 @@ function skin.DrawColumnListHeader(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.columnlistheader_body_hover_color[1] - 20, skin.controls.columnlistheader_body_hover_color[2] - 20, skin.controls.columnlistheader_body_hover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- header name
|
||||
love.graphics.setFont(font)
|
||||
@ -1137,7 +1131,7 @@ function skin.DrawColumnListHeader(object)
|
||||
|
||||
-- header border
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistheader_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), false, false, false, true)
|
||||
|
||||
else
|
||||
|
||||
@ -1146,7 +1140,7 @@ function skin.DrawColumnListHeader(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
gradientcolor = {skin.controls.columnlistheader_body_nohover_color[1] - 20, skin.controls.columnlistheader_body_nohover_color[2] - 20, skin.controls.columnlistheader_body_nohover_color[3] - 20, 255}
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), "up", gradientcolor)
|
||||
skin.DrawGradient(object:GetX(), object:GetY() - 1, object:GetWidth(), object:GetHeight(), gradientcolor)
|
||||
|
||||
-- header name
|
||||
love.graphics.setFont(font)
|
||||
@ -1155,7 +1149,7 @@ function skin.DrawColumnListHeader(object)
|
||||
|
||||
-- header border
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistheader_border_down_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), false, false, false, true)
|
||||
|
||||
end
|
||||
|
||||
@ -1202,15 +1196,15 @@ function skin.DrawColumnListRow(object)
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistrow_border1_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), true, false, true, true)
|
||||
|
||||
else
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistrow_body2_color))
|
||||
love.graphics.rectangle("fill", object:GetX() + 1, object:GetY() + 1, object:GetWidth() - 2, object:GetHeight() - 2)
|
||||
love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
|
||||
love.graphics.setColor(unpack(skin.controls.columnlistrow_border2_color))
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight())
|
||||
skin.OutlinedRectangle(object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight(), true, false, true, true)
|
||||
|
||||
end
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- templates
|
||||
|
21
util.lua
21
util.lua
@ -1,6 +1,6 @@
|
||||
--[[------------------------------------------------
|
||||
-- LÖVE Frames --
|
||||
-- By Nikolai Resokav --
|
||||
-- By Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- util library
|
||||
@ -76,7 +76,7 @@ function loveframes.util.GetCollisions(object, t)
|
||||
if object.internals then
|
||||
|
||||
for k, v in ipairs(object.internals) do
|
||||
if v.visible == true then
|
||||
if v.visible == true and v.type ~= "tooltip" then
|
||||
loveframes.util.GetCollisions(v, t)
|
||||
end
|
||||
end
|
||||
@ -182,22 +182,20 @@ function loveframes.util.GetDirContents(dir, t)
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: Round(val, decimal)
|
||||
- func: Round(num, idp)
|
||||
- desc: rounds a number based on the decimal limit
|
||||
- note: i take no credit for this function
|
||||
--]]---------------------------------------------------------
|
||||
function loveframes.util.Round(val, decimal)
|
||||
function loveframes.util.Round(num, idp)
|
||||
|
||||
if (decimal) then
|
||||
return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
|
||||
else
|
||||
return math.floor(val+0.5)
|
||||
end
|
||||
local mult = 10^(idp or 0)
|
||||
if num >= 0 then return math.floor(num * mult + 0.5) / mult
|
||||
else return math.ceil(num * mult - 0.5) / mult end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: Split(string, pattern)
|
||||
- func: SplitSring(string, pattern)
|
||||
- desc: splits a string into a table based on a given pattern
|
||||
- note: i take no credit for this function
|
||||
--]]---------------------------------------------------------
|
||||
@ -249,7 +247,7 @@ function loveframes.util.SplitSring(str, pat)
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: Trim(string)
|
||||
- func: TrimString(string)
|
||||
- desc: trims spaces off of the beginning and end of
|
||||
a string
|
||||
- note: i take no credit for this function
|
||||
@ -267,5 +265,6 @@ end
|
||||
function loveframes.util.RemoveAll()
|
||||
|
||||
loveframes.base.children = {}
|
||||
loveframes.base.internals = {}
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user