mirror of
https://github.com/linux-man/LoveFrames.git
synced 2024-11-18 16:04:22 +00:00
Version 0.9.5.8 - Alpha (see changelog.txt)
This commit is contained in:
parent
ed8a78a10c
commit
0723726757
@ -1,3 +1,22 @@
|
||||
================================================
|
||||
Version 0.9.5.8 - Alpha (May 5 - 2013)
|
||||
================================================
|
||||
[ADDED] a new textinput method: SetValue(value) (alias of SetText(text))
|
||||
[ADDED] a new textinput method: GetValue() (alias of GetText())
|
||||
[ADDED] a new object: grid
|
||||
[ADDED] a new frame method: SetIcon(icon)
|
||||
[ADDED] a new frame method: GetIcon()
|
||||
[ADDED] a new callback for the slider object: OnRelease(object)
|
||||
[ADDED] a new text method: SetDefaultColor(r, g, b, a)
|
||||
[ADDED] a new text method: GetDefaultColor()
|
||||
|
||||
[FIXED] OnOpened and OnClosed callbacks for tabbuttons not being asigned properly
|
||||
[FIXED] the image object not checking its hover state
|
||||
[FIXED] tabbutton rendering issues with the default skins
|
||||
[FIXED] some padding issues with multiline textinputs
|
||||
|
||||
[CHANGED] loveframes.config["DIRECTORY"] no longer needs to be set when installing Love Frames
|
||||
|
||||
================================================
|
||||
Version 0.9.5.7 - Alpha (April 9 - 2013)
|
||||
================================================
|
||||
|
46
debug.lua
46
debug.lua
@ -263,6 +263,7 @@ function loveframes.debug.ExamplesMenu()
|
||||
local frame1 = loveframes.Create("frame")
|
||||
frame1:SetName("Frame")
|
||||
frame1:CenterWithinArea(unpack(centerarea))
|
||||
frame1:SetIcon("resources/images/application.png")
|
||||
|
||||
local text1 = loveframes.Create("text", frame1)
|
||||
text1:SetText("This is an example frame.")
|
||||
@ -294,6 +295,51 @@ function loveframes.debug.ExamplesMenu()
|
||||
end
|
||||
exampleslist:AddItem(frameexample)
|
||||
|
||||
------------------------------------
|
||||
-- grid example
|
||||
------------------------------------
|
||||
|
||||
local gridexample = loveframes.Create("button")
|
||||
gridexample:SetText("Grid")
|
||||
gridexample.OnClick = function(object1, x, y)
|
||||
|
||||
local frame = loveframes.Create("frame")
|
||||
frame:SetName("Grid")
|
||||
frame:CenterWithinArea(unpack(centerarea))
|
||||
|
||||
--local panel = loveframes.Create("panel")
|
||||
--panel:SetSize(500, 300)
|
||||
--panel:CenterWithinArea(unpack(centerarea))
|
||||
|
||||
local grid = loveframes.Create("grid", frame)
|
||||
grid:SetPos(5, 30)
|
||||
grid:SetRows(5)
|
||||
grid:SetColumns(5)
|
||||
grid:SetCellWidth(25)
|
||||
grid:SetCellHeight(25)
|
||||
grid:SetCellPadding(5)
|
||||
grid:SetItemAutoSize(true)
|
||||
|
||||
local id = 1
|
||||
|
||||
for i=1, 5 do
|
||||
for n=1, 5 do
|
||||
local button = loveframes.Create("button")
|
||||
button:SetSize(15, 15)
|
||||
button:SetText(id)
|
||||
grid:AddItem(button, i, n)
|
||||
id = id + 1
|
||||
end
|
||||
end
|
||||
|
||||
grid.OnSizeChanged = function(object)
|
||||
frame:SetSize(object:GetWidth() + 10, object:GetHeight() + 35)
|
||||
frame:CenterWithinArea(unpack(centerarea))
|
||||
end
|
||||
|
||||
end
|
||||
exampleslist:AddItem(gridexample)
|
||||
|
||||
------------------------------------
|
||||
-- image example
|
||||
------------------------------------
|
||||
|
9
init.lua
9
init.lua
@ -3,18 +3,21 @@
|
||||
-- Copyright (c) 2013 Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
--
|
||||
local path = ...
|
||||
|
||||
-- central library table
|
||||
loveframes = {}
|
||||
|
||||
-- library info
|
||||
loveframes.info = {}
|
||||
loveframes.info.author = "Kenny Shields"
|
||||
loveframes.info.version = "0.9.5.7"
|
||||
loveframes.info.version = "0.9.5.8"
|
||||
loveframes.info.stage = "Alpha"
|
||||
|
||||
-- library configurations
|
||||
loveframes.config = {}
|
||||
loveframes.config["DIRECTORY"] = ""
|
||||
loveframes.config["DIRECTORY"] = nil
|
||||
loveframes.config["DEFAULTSKIN"] = "Blue"
|
||||
loveframes.config["ACTIVESKIN"] = "Blue"
|
||||
loveframes.config["INDEXSKINIMAGES"] = true
|
||||
@ -37,7 +40,7 @@ loveframes.objects = {}
|
||||
function loveframes.load()
|
||||
|
||||
-- install directory of the library
|
||||
local dir = loveframes.config["DIRECTORY"]
|
||||
local dir = loveframes.config["DIRECTORY"] or path
|
||||
|
||||
-- require the internal base libraries
|
||||
require(dir .. ".third-party.middleclass")
|
||||
|
@ -28,6 +28,7 @@ function newobject:initialize()
|
||||
self.showclose = true
|
||||
self.internals = {}
|
||||
self.children = {}
|
||||
self.icon = nil
|
||||
self.OnClose = nil
|
||||
|
||||
-- create the close button for the frame
|
||||
@ -535,4 +536,34 @@ function newobject:GetParentLocked()
|
||||
|
||||
return self.parentlocked
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetIcon(icon)
|
||||
- desc: sets the object's icon
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetIcon(icon)
|
||||
|
||||
if type(icon) == "string" then
|
||||
self.icon = love.graphics.newImage(icon)
|
||||
else
|
||||
self.icon = icon
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetIcon()
|
||||
- desc: gets the object's icon
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetIcon()
|
||||
|
||||
local icon = self.icon
|
||||
|
||||
if icon then
|
||||
return icon
|
||||
end
|
||||
|
||||
return false
|
||||
|
||||
end
|
386
objects/grid.lua
Normal file
386
objects/grid.lua
Normal file
@ -0,0 +1,386 @@
|
||||
--[[------------------------------------------------
|
||||
-- Love Frames - A GUI library for LOVE --
|
||||
-- Copyright (c) 2013 Kenny Shields --
|
||||
--]]------------------------------------------------
|
||||
|
||||
-- button class
|
||||
local newobject = loveframes.NewObject("grid", "loveframes_object_grid", true)
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: initialize()
|
||||
- desc: initializes the object
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:initialize()
|
||||
|
||||
self.type = "grid"
|
||||
self.width = 100
|
||||
self.height = 100
|
||||
self.prevwidth = 100
|
||||
self.prevheight = 100
|
||||
self.rows = 0
|
||||
self.columns = 0
|
||||
self.cellwidth = 25
|
||||
self.cellheight = 25
|
||||
self.cellpadding = 5
|
||||
self.itemautosize = false
|
||||
self.children = {}
|
||||
self.OnSizeChanged = nil
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: update(deltatime)
|
||||
- desc: updates the object
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:update(dt)
|
||||
|
||||
local state = loveframes.state
|
||||
local selfstate = self.state
|
||||
|
||||
if state ~= selfstate then
|
||||
return
|
||||
end
|
||||
|
||||
local visible = self.visible
|
||||
local alwaysupdate = self.alwaysupdate
|
||||
|
||||
if not visible then
|
||||
if not alwaysupdate then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
self:CheckHover()
|
||||
|
||||
local parent = self.parent
|
||||
local children = self.children
|
||||
|
||||
-- move to parent if there is a parent
|
||||
if parent ~= base then
|
||||
self.x = self.parent.x + self.staticx
|
||||
self.y = self.parent.y + self.staticy
|
||||
end
|
||||
|
||||
local cw = self.cellwidth + (self.cellpadding * 2)
|
||||
local ch = self.cellheight + (self.cellpadding * 2)
|
||||
local prevwidth = self.prevwidth
|
||||
local prevheight = self.prevheight
|
||||
|
||||
self.width = (self.columns * self.cellwidth) + (self.columns * (self.cellpadding * 2))
|
||||
self.height = (self.rows * self.cellheight) + (self.rows * (self.cellpadding * 2))
|
||||
|
||||
if self.width ~= prevwidth or self.height ~= prevheight then
|
||||
local onsizechanged = self.OnSizeChanged
|
||||
self.prevwidth = self.width
|
||||
self.prevheight = self.height
|
||||
if onsizechanged then
|
||||
onsizechanged(self)
|
||||
end
|
||||
end
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
local x = 0 + ((cw * v.gridcolumn) - cw ) + (cw/2 - v.width/2)
|
||||
local y = 0 + ((ch * v.gridrow) - ch) + (ch/2 - v.height/2)
|
||||
v.staticx = x
|
||||
v.staticy = y
|
||||
v:update(dt)
|
||||
end
|
||||
|
||||
if update then
|
||||
update(self, dt)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: draw()
|
||||
- desc: draws the object
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:draw()
|
||||
|
||||
local state = loveframes.state
|
||||
local selfstate = self.state
|
||||
|
||||
if state ~= selfstate then
|
||||
return
|
||||
end
|
||||
|
||||
local visible = self.visible
|
||||
|
||||
if not visible then
|
||||
return
|
||||
end
|
||||
|
||||
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.DrawGrid or skins[defaultskin].DrawGrid
|
||||
local draw = self.Draw
|
||||
local drawcount = loveframes.drawcount
|
||||
local children = self.children
|
||||
|
||||
-- set the object's draw order
|
||||
self:SetDrawOrder()
|
||||
|
||||
if draw then
|
||||
draw(self)
|
||||
else
|
||||
drawfunc(self)
|
||||
end
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: mousepressed(x, y, button)
|
||||
- desc: called when the player presses a mouse button
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:mousepressed(x, y, button)
|
||||
|
||||
local state = loveframes.state
|
||||
local selfstate = self.state
|
||||
|
||||
if state ~= selfstate then
|
||||
return
|
||||
end
|
||||
|
||||
local visible = self.visible
|
||||
|
||||
if not visible then
|
||||
return
|
||||
end
|
||||
|
||||
local children = self.children
|
||||
local hover = self.hover
|
||||
|
||||
if hover and button == "l" then
|
||||
local baseparent = self:GetBaseParent()
|
||||
if baseparent and baseparent.type == "frame" then
|
||||
baseparent:MakeTop()
|
||||
end
|
||||
end
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
v:mousepressed(x, y, button)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: mousereleased(x, y, button)
|
||||
- desc: called when the player releases a mouse button
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:mousereleased(x, y, button)
|
||||
|
||||
local state = loveframes.state
|
||||
local selfstate = self.state
|
||||
|
||||
if state ~= selfstate then
|
||||
return
|
||||
end
|
||||
|
||||
local visible = self.visible
|
||||
local children = self.children
|
||||
|
||||
if not visible then
|
||||
return
|
||||
end
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
v:mousereleased(x, y, button)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: AddItem(object, row, column)
|
||||
- desc: adds and item to the object
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:AddItem(object, row, column)
|
||||
|
||||
local itemautosize = self.itemautosize
|
||||
local children = self.children
|
||||
|
||||
object:Remove()
|
||||
|
||||
table.insert(children, object)
|
||||
object.parent = self
|
||||
object.gridrow = row
|
||||
object.gridcolumn = column
|
||||
|
||||
if itemautosize then
|
||||
local cw = self.cellwidth + (self.cellpadding * 2)
|
||||
local ch = self.cellheight + (self.cellpadding * 2)
|
||||
object.width = cw - (self.cellpadding * 2)
|
||||
object.height = ch - (self.cellpadding * 2)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetItem(row, column)
|
||||
- desc: gets an item from the object at the specified
|
||||
row and column
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetItem(row, column)
|
||||
|
||||
local children = self.children
|
||||
|
||||
for k, v in ipairs(children) do
|
||||
if v.gridrow == row and v.gridcolumn == column then
|
||||
return v
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetItemAutoSize(bool)
|
||||
- desc: sets whether or not the object should auto-size
|
||||
its items
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetItemAutoSize(bool)
|
||||
|
||||
self.itemautosize = bool
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetItemAutoSize()
|
||||
- desc: gets whether or not the object should auto-size
|
||||
its items
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetItemAutoSize()
|
||||
|
||||
return self.itemautosize
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetRows(rows)
|
||||
- desc: sets the number of rows the object should have
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetRows(rows)
|
||||
|
||||
self.rows = rows
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetRows(rows)
|
||||
- desc: gets the number of rows the object has
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetRows()
|
||||
|
||||
return self.rows
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetColumns(columns)
|
||||
- desc: sets the number of columns the object should
|
||||
have
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetColumns(columns)
|
||||
|
||||
self.columns = columns
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetColumns()
|
||||
- desc: gets the number of columns the object has
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetColumns()
|
||||
|
||||
return self.columns
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetCellWidth(width)
|
||||
- desc: sets the width of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetCellWidth(width)
|
||||
|
||||
self.cellwidth = width
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetCellWidth()
|
||||
- desc: gets the width of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetCellWidth()
|
||||
|
||||
return self.cellwidth
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetCellHeight(height)
|
||||
- desc: sets the height of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetCellHeight(height)
|
||||
|
||||
self.cellheight = height
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetCellHeight()
|
||||
- desc: gets the height of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetCellHeight()
|
||||
|
||||
return self.cellheight
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetCellSize(width, height)
|
||||
- desc: sets the size of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetCellSize(width, height)
|
||||
|
||||
self.cellwidth = width
|
||||
self.cellheight = height
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetCellSize()
|
||||
- desc: gets the size of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetCellSize()
|
||||
|
||||
return self.cellwidth, self.cellheight
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetCellPadding(padding)
|
||||
- desc: sets the padding of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetCellPadding(padding)
|
||||
|
||||
self.cellpadding = padding
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetCellPadding
|
||||
- desc: gets the padding of the object's cells
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetCellPadding()
|
||||
|
||||
return self.cellpadding
|
||||
|
||||
end
|
@ -54,6 +54,8 @@ function newobject:update(dt)
|
||||
local base = loveframes.base
|
||||
local update = self.Update
|
||||
|
||||
self:CheckHover()
|
||||
|
||||
-- move to parent if there is a parent
|
||||
if parent ~= base then
|
||||
self.x = self.parent.x + self.staticx
|
||||
|
@ -60,7 +60,6 @@ function newobject:update(dt)
|
||||
local parent = self.parent
|
||||
local slidetype = parent.slidetype
|
||||
local dragging = self.dragging
|
||||
local parent = self.parent
|
||||
local base = loveframes.base
|
||||
local update = self.Update
|
||||
|
||||
@ -218,6 +217,17 @@ function newobject:mousereleased(x, y, button)
|
||||
return
|
||||
end
|
||||
|
||||
local down = self.down
|
||||
local dragging = self.dragging
|
||||
|
||||
if down and dragging then
|
||||
local parent = self.parent
|
||||
local onrelease = parent.OnRelease
|
||||
if onrelease then
|
||||
onrelease(parent)
|
||||
end
|
||||
end
|
||||
|
||||
self.down = false
|
||||
self.dragging = false
|
||||
|
||||
|
@ -69,7 +69,6 @@ function newobject:update(dt)
|
||||
local parent = self.parent
|
||||
local base = loveframes.base
|
||||
local update = self.Update
|
||||
local internals = self.internals
|
||||
|
||||
self:CheckHover()
|
||||
self:SetClickBounds(parent.x, parent.y, parent.width, parent.height)
|
||||
@ -153,11 +152,10 @@ function newobject:mousereleased(x, y, button)
|
||||
local hover = self.hover
|
||||
local parent = self.parent
|
||||
local tabnumber = self.tabnumber
|
||||
local internals = self.internals
|
||||
|
||||
if hover and button == "l" then
|
||||
if button == "l" then
|
||||
local tab = self.parent.tab
|
||||
local tab = parent.tab
|
||||
local internals = parent.internals
|
||||
local onopened = self.OnOpened
|
||||
local prevtab = internals[tab]
|
||||
|
@ -28,6 +28,7 @@ function newobject:initialize()
|
||||
self.internal = false
|
||||
self.internals = {}
|
||||
self.OnValueChanged = nil
|
||||
self.OnRelease = nil
|
||||
|
||||
-- create the slider button
|
||||
local sliderbutton = loveframes.objects["sliderbutton"]:new(self)
|
||||
|
@ -298,7 +298,7 @@ function newobject:AddTab(name, object, tip, image, onopened, onclosed)
|
||||
object.staticy = 0
|
||||
|
||||
table.insert(self.children, object)
|
||||
internals[tabnumber] = loveframes.objects["tabbutton"]:new(self, name, tabnumber, tip, image, showclose, onopened, onclosed)
|
||||
internals[tabnumber] = loveframes.objects["tabbutton"]:new(self, name, tabnumber, tip, image, onopened, onclosed)
|
||||
self.tabnumber = tabnumber + 1
|
||||
self:AddScrollButtons()
|
||||
|
||||
|
@ -27,6 +27,7 @@ function newobject:initialize()
|
||||
self.shadowyoffset = 1
|
||||
self.formattedtext = {}
|
||||
self.original = {}
|
||||
self.defaultcolor = {0, 0, 0, 255}
|
||||
self.shadowcolor = {0, 0, 0, 255}
|
||||
self.ignorenewlines = false
|
||||
self.shadow = false
|
||||
@ -152,6 +153,7 @@ function newobject:SetText(t)
|
||||
local dtype = type(t)
|
||||
local maxw = self.maxw
|
||||
local font = self.font
|
||||
local defaultcolor = self.defaultcolor
|
||||
local inserts = {}
|
||||
local tdata, prevcolor
|
||||
|
||||
@ -174,7 +176,7 @@ function newobject:SetText(t)
|
||||
for k, v in ipairs(tdata) do
|
||||
local dtype = type(v)
|
||||
if k == 1 and dtype ~= "table" then
|
||||
prevcolor = {0, 0, 0, 255}
|
||||
prevcolor = defaultcolor
|
||||
end
|
||||
if dtype == "table" then
|
||||
prevcolor = v
|
||||
@ -379,8 +381,10 @@ end
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetMaxWidth(width)
|
||||
|
||||
local original = self.original
|
||||
|
||||
self.maxw = width
|
||||
self:SetText(self.original)
|
||||
self:SetText(original)
|
||||
|
||||
end
|
||||
|
||||
@ -542,4 +546,24 @@ function newobject:GetShadowColor()
|
||||
|
||||
return self.shadowcolor
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetDefaultColor(r, g, b, a)
|
||||
- desc: sets the object's default text color
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetDefaultColor(r, g, b, a)
|
||||
|
||||
self.defaultcolor = {r, g, b, a}
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetDefaultColor()
|
||||
- desc: gets the object's default text color
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetDefaultColor()
|
||||
|
||||
return self.defaultcolor
|
||||
|
||||
end
|
@ -153,7 +153,7 @@ function newobject:update(dt)
|
||||
self.itemwidth = twidth
|
||||
end
|
||||
if panel then
|
||||
self.itemwidth = self.itemwidth + panel.width
|
||||
self.itemwidth = self.itemwidth + panel.width + self.textoffsetx + 5
|
||||
end
|
||||
-- item height calculation
|
||||
if hbar then
|
||||
@ -549,7 +549,6 @@ function newobject:RunKey(key, unicode)
|
||||
self.offsetx = self.offsetx + width
|
||||
elseif indicatornum == #text and self.offsetx ~= ((font:getWidth(text)) - swidth + 10) and font:getWidth(text) + self.textoffsetx > self.width then
|
||||
self.offsetx = ((font:getWidth(text)) - swidth + 10)
|
||||
--print(((0 - font:getWidth(text)) + swidth))
|
||||
end
|
||||
else
|
||||
if indicatornum == #text then
|
||||
@ -616,7 +615,6 @@ function newobject:RunKey(key, unicode)
|
||||
local cwidth = font:getWidth(text:sub(#text))
|
||||
if self.offsetx > 0 then
|
||||
self.offsetx = self.offsetx - cwidth
|
||||
print(self.offsetx, cwidth)
|
||||
elseif self.offsetx < 0 then
|
||||
self.offsetx = 0
|
||||
end
|
||||
@ -1611,4 +1609,24 @@ function newobject:GetRepeatRate()
|
||||
|
||||
return self.repeatrate
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: SetValue(value)
|
||||
- desc: sets the object's value (alias of SetText)
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:SetValue(value)
|
||||
|
||||
self:SetText(value)
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: GetValue()
|
||||
- desc: gets the object's value (alias of GetText)
|
||||
--]]---------------------------------------------------------
|
||||
function newobject:GetValue()
|
||||
|
||||
return self:GetText()
|
||||
|
||||
end
|
@ -125,6 +125,7 @@ skin.controls.modalbackground_body_color = {255, 255, 255, 100}
|
||||
|
||||
-- linenumberspanel
|
||||
skin.controls.linenumberspanel_text_color = {100, 100, 100, 255}
|
||||
skin.controls.linenumberspanel_body_color = {200, 200, 200, 255}
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: OutlinedRectangle(object)
|
||||
@ -171,6 +172,7 @@ function skin.DrawFrame(object)
|
||||
local height = object:GetHeight()
|
||||
local hover = object:GetHover()
|
||||
local name = object:GetName()
|
||||
local icon = object:GetIcon()
|
||||
local bodycolor = skin.controls.frame_body_color
|
||||
local topcolor = skin.controls.frame_top_color
|
||||
local namecolor = skin.controls.frame_name_color
|
||||
@ -195,8 +197,19 @@ function skin.DrawFrame(object)
|
||||
|
||||
-- frame name section
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(namecolor)
|
||||
love.graphics.print(name, x + 5, y + 5)
|
||||
|
||||
if icon then
|
||||
local iconwidth = icon:getWidth()
|
||||
local iconheight = icon:getHeight()
|
||||
icon:setFilter("nearest", "nearest")
|
||||
love.graphics.setColor(255, 255, 255, 255)
|
||||
love.graphics.draw(icon, x + 5, y + 5)
|
||||
love.graphics.setColor(namecolor)
|
||||
love.graphics.print(name, x + iconwidth + 10, y + 5)
|
||||
else
|
||||
love.graphics.setColor(namecolor)
|
||||
love.graphics.print(name, x + 5, y + 5)
|
||||
end
|
||||
|
||||
-- frame border
|
||||
love.graphics.setColor(bordercolor)
|
||||
@ -654,13 +667,11 @@ function skin.DrawTabButton(object)
|
||||
parent:SetTabHeight(imageheight + 5)
|
||||
object.height = imageheight + 5
|
||||
else
|
||||
parent:SetTabHeight(theight + 5)
|
||||
object.height = theight + 5
|
||||
object.height = parent.tabheight
|
||||
end
|
||||
else
|
||||
object.width = 10 + twidth
|
||||
parent:SetTabHeight(theight + 5)
|
||||
object.height = theight + 5
|
||||
object.height = parent.tabheight
|
||||
end
|
||||
|
||||
local width = object:GetWidth()
|
||||
@ -1445,12 +1456,13 @@ function skin.DrawLineNumbersPanel(object)
|
||||
local font = parent:GetFont()
|
||||
local theight = font:getHeight("a")
|
||||
local textcolor = skin.controls.linenumberspanel_text_color
|
||||
local bodycolor = skin.controls.linenumberspanel_body_color
|
||||
local mody = y
|
||||
|
||||
object:SetWidth(10 + font:getWidth(#lines))
|
||||
love.graphics.setFont(font)
|
||||
|
||||
love.graphics.setColor(200, 200, 200, 255)
|
||||
love.graphics.setColor(bodycolor)
|
||||
love.graphics.rectangle("fill", x, y, width, height)
|
||||
|
||||
love.graphics.setColor(bordercolor)
|
||||
@ -1458,7 +1470,7 @@ function skin.DrawLineNumbersPanel(object)
|
||||
|
||||
for i=1, #lines do
|
||||
love.graphics.setColor(textcolor)
|
||||
love.graphics.print(i, object.x + 5, mody - offsety)
|
||||
love.graphics.print(i, x + 5, mody - offsety)
|
||||
mody = mody + theight
|
||||
end
|
||||
|
||||
@ -1472,5 +1484,43 @@ function skin.DrawNumberBox(object)
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: skin.DrawGrid(object)
|
||||
- desc: draws the grid object
|
||||
--]]---------------------------------------------------------
|
||||
function skin.DrawGrid(object)
|
||||
|
||||
local x = object:GetX()
|
||||
local y = object:GetY()
|
||||
local width = object:GetWidth()
|
||||
local height = object:GetHeight()
|
||||
|
||||
love.graphics.setColor(bordercolor)
|
||||
skin.OutlinedRectangle(x, y, width, height)
|
||||
|
||||
local cx = x
|
||||
local cy = y
|
||||
local cw = object.cellwidth + (object.cellpadding * 2)
|
||||
local ch = object.cellheight + (object.cellpadding * 2)
|
||||
|
||||
for i=1, object.rows do
|
||||
for n=1, object.columns do
|
||||
local ovt = false
|
||||
local ovl = false
|
||||
if i > 1 then
|
||||
ovt = true
|
||||
end
|
||||
if n > 1 then
|
||||
ovl = true
|
||||
end
|
||||
skin.OutlinedRectangle(cx, cy, cw, ch, ovt, false, ovl, false)
|
||||
cx = cx + cw
|
||||
end
|
||||
cx = x
|
||||
cy = cy + ch
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- register the skin
|
||||
loveframes.skins.Register(skin)
|
@ -125,6 +125,7 @@ skin.controls.modalbackground_body_color = {255, 255, 255, 100}
|
||||
|
||||
-- linenumberspanel
|
||||
skin.controls.linenumberspanel_text_color = {100, 100, 100, 255}
|
||||
skin.controls.linenumberspanel_body_color = {200, 200, 200, 255}
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: OutlinedRectangle(object)
|
||||
@ -171,6 +172,7 @@ function skin.DrawFrame(object)
|
||||
local height = object:GetHeight()
|
||||
local hover = object:GetHover()
|
||||
local name = object:GetName()
|
||||
local icon = object:GetIcon()
|
||||
local bodycolor = skin.controls.frame_body_color
|
||||
local topcolor = skin.controls.frame_top_color
|
||||
local namecolor = skin.controls.frame_name_color
|
||||
@ -195,8 +197,19 @@ function skin.DrawFrame(object)
|
||||
|
||||
-- frame name section
|
||||
love.graphics.setFont(font)
|
||||
love.graphics.setColor(namecolor)
|
||||
love.graphics.print(name, x + 5, y + 5)
|
||||
|
||||
if icon then
|
||||
local iconwidth = icon:getWidth()
|
||||
local iconheight = icon:getHeight()
|
||||
icon:setFilter("nearest", "nearest")
|
||||
love.graphics.setColor(255, 255, 255, 255)
|
||||
love.graphics.draw(icon, x + 5, y + 5)
|
||||
love.graphics.setColor(namecolor)
|
||||
love.graphics.print(name, x + iconwidth + 10, y + 5)
|
||||
else
|
||||
love.graphics.setColor(namecolor)
|
||||
love.graphics.print(name, x + 5, y + 5)
|
||||
end
|
||||
|
||||
-- frame border
|
||||
love.graphics.setColor(bordercolor)
|
||||
@ -654,13 +667,11 @@ function skin.DrawTabButton(object)
|
||||
parent:SetTabHeight(imageheight + 5)
|
||||
object.height = imageheight + 5
|
||||
else
|
||||
parent:SetTabHeight(theight + 5)
|
||||
object.height = theight + 5
|
||||
object.height = parent.tabheight
|
||||
end
|
||||
else
|
||||
object.width = 10 + twidth
|
||||
parent:SetTabHeight(theight + 5)
|
||||
object.height = theight + 5
|
||||
object.height = parent.tabheight
|
||||
end
|
||||
|
||||
local width = object:GetWidth()
|
||||
@ -1445,12 +1456,13 @@ function skin.DrawLineNumbersPanel(object)
|
||||
local font = parent:GetFont()
|
||||
local theight = font:getHeight("a")
|
||||
local textcolor = skin.controls.linenumberspanel_text_color
|
||||
local bodycolor = skin.controls.linenumberspanel_body_color
|
||||
local mody = y
|
||||
|
||||
object:SetWidth(10 + font:getWidth(#lines))
|
||||
love.graphics.setFont(font)
|
||||
|
||||
love.graphics.setColor(200, 200, 200, 255)
|
||||
love.graphics.setColor(bodycolor)
|
||||
love.graphics.rectangle("fill", x, y, width, height)
|
||||
|
||||
love.graphics.setColor(bordercolor)
|
||||
@ -1458,7 +1470,7 @@ function skin.DrawLineNumbersPanel(object)
|
||||
|
||||
for i=1, #lines do
|
||||
love.graphics.setColor(textcolor)
|
||||
love.graphics.print(i, object.x + 5, mody - offsety)
|
||||
love.graphics.print(i, x + 5, mody - offsety)
|
||||
mody = mody + theight
|
||||
end
|
||||
|
||||
@ -1472,5 +1484,43 @@ function skin.DrawNumberBox(object)
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
- func: skin.DrawGrid(object)
|
||||
- desc: draws the grid object
|
||||
--]]---------------------------------------------------------
|
||||
function skin.DrawGrid(object)
|
||||
|
||||
local x = object:GetX()
|
||||
local y = object:GetY()
|
||||
local width = object:GetWidth()
|
||||
local height = object:GetHeight()
|
||||
|
||||
love.graphics.setColor(bordercolor)
|
||||
skin.OutlinedRectangle(x, y, width, height)
|
||||
|
||||
local cx = x
|
||||
local cy = y
|
||||
local cw = object.cellwidth + (object.cellpadding * 2)
|
||||
local ch = object.cellheight + (object.cellpadding * 2)
|
||||
|
||||
for i=1, object.rows do
|
||||
for n=1, object.columns do
|
||||
local ovt = false
|
||||
local ovl = false
|
||||
if i > 1 then
|
||||
ovt = true
|
||||
end
|
||||
if n > 1 then
|
||||
ovl = true
|
||||
end
|
||||
skin.OutlinedRectangle(cx, cy, cw, ch, ovt, false, ovl, false)
|
||||
cx = cx + cw
|
||||
end
|
||||
cx = x
|
||||
cy = cy + ch
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- register the skin
|
||||
loveframes.skins.Register(skin)
|
Loading…
Reference in New Issue
Block a user