From b834300a583acfe5ab8e58b32ad70e62acf3fc1f Mon Sep 17 00:00:00 2001 From: Kenny Shields Date: Sun, 24 Feb 2013 11:59:03 -0500 Subject: [PATCH] Version 0.9.5.2 - Alpha (see changelog.txt) --- changelog.txt | 14 + init.lua | 2 +- objects/base.lua | 8 +- objects/columnlist.lua | 9 + objects/list.lua | 1 - objects/slider.lua | 28 +- objects/tabs.lua | 4 +- objects/textinput.lua | 8 +- skins/Blue (basic)/images/arrow-down.png | Bin 344 -> 0 bytes skins/Blue (basic)/images/arrow-left.png | Bin 337 -> 0 bytes skins/Blue (basic)/images/arrow-right.png | Bin 336 -> 0 bytes skins/Blue (basic)/images/arrow-up.png | Bin 366 -> 0 bytes skins/Blue (basic)/images/close.png | Bin 252 -> 0 bytes .../Blue (basic)/images/multichoice-arrow.png | Bin 284 -> 0 bytes skins/Blue (basic)/skin.lua | 1471 ----------------- skins/Blue/images/gradients/button-down.png | Bin 0 -> 240 bytes skins/Blue/images/gradients/button-hover.png | Bin 0 -> 240 bytes .../Blue/images/gradients/button-nohover.png | Bin 0 -> 218 bytes .../images/gradients/button-unclickable.png | Bin 0 -> 219 bytes skins/Blue/images/gradients/frame-topbar.png | Bin 0 -> 241 bytes skins/Blue/images/gradients/progressbar.png | Bin 0 -> 199 bytes skins/Blue/skin.lua | 388 ++--- skins/Orange (basic)/images/arrow-down.png | Bin 344 -> 0 bytes skins/Orange (basic)/images/arrow-left.png | Bin 337 -> 0 bytes skins/Orange (basic)/images/arrow-right.png | Bin 336 -> 0 bytes skins/Orange (basic)/images/arrow-up.png | Bin 366 -> 0 bytes skins/Orange (basic)/images/close.png | Bin 252 -> 0 bytes .../images/multichoice-arrow.png | Bin 284 -> 0 bytes skins/Orange (basic)/skin.lua | 1471 ----------------- skins/Orange/images/gradients/button-down.png | Bin 0 -> 240 bytes .../Orange/images/gradients/button-hover.png | Bin 0 -> 240 bytes .../images/gradients/button-nohover.png | Bin 0 -> 218 bytes .../images/gradients/button-unclickable.png | Bin 0 -> 219 bytes .../Orange/images/gradients/frame-topbar.png | Bin 0 -> 214 bytes skins/Orange/images/gradients/progressbar.png | Bin 0 -> 199 bytes skins/Orange/skin.lua | 396 ++--- 36 files changed, 383 insertions(+), 3417 deletions(-) delete mode 100644 skins/Blue (basic)/images/arrow-down.png delete mode 100644 skins/Blue (basic)/images/arrow-left.png delete mode 100644 skins/Blue (basic)/images/arrow-right.png delete mode 100644 skins/Blue (basic)/images/arrow-up.png delete mode 100644 skins/Blue (basic)/images/close.png delete mode 100644 skins/Blue (basic)/images/multichoice-arrow.png delete mode 100644 skins/Blue (basic)/skin.lua create mode 100644 skins/Blue/images/gradients/button-down.png create mode 100644 skins/Blue/images/gradients/button-hover.png create mode 100644 skins/Blue/images/gradients/button-nohover.png create mode 100644 skins/Blue/images/gradients/button-unclickable.png create mode 100644 skins/Blue/images/gradients/frame-topbar.png create mode 100644 skins/Blue/images/gradients/progressbar.png delete mode 100644 skins/Orange (basic)/images/arrow-down.png delete mode 100644 skins/Orange (basic)/images/arrow-left.png delete mode 100644 skins/Orange (basic)/images/arrow-right.png delete mode 100644 skins/Orange (basic)/images/arrow-up.png delete mode 100644 skins/Orange (basic)/images/close.png delete mode 100644 skins/Orange (basic)/images/multichoice-arrow.png delete mode 100644 skins/Orange (basic)/skin.lua create mode 100644 skins/Orange/images/gradients/button-down.png create mode 100644 skins/Orange/images/gradients/button-hover.png create mode 100644 skins/Orange/images/gradients/button-nohover.png create mode 100644 skins/Orange/images/gradients/button-unclickable.png create mode 100644 skins/Orange/images/gradients/frame-topbar.png create mode 100644 skins/Orange/images/gradients/progressbar.png diff --git a/changelog.txt b/changelog.txt index 118f409..9c73d9a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,17 @@ +================================================ +Version 0.9.5.2 - Alpha (February 24 - 2013) +================================================ +[ADDED] a new slider method: SetEnabled(bool) +[ADDED] a new slider method: GetEnabled() + +[FIXED] a resizing/layout issue with the columnlist object +[FIXED] base:GetChildren being declared twice and base:GetInternals never being declared + +[CHANGED] major performance improvements for the default skins Blue and Orange + +[REMOVED] the "Blue (basic)" skin +[REMOVED] the "Orange (basic)" skin + ================================================ Version 0.9.5.1 - Alpha (February 17 - 2013) ================================================ diff --git a/init.lua b/init.lua index 0ff033f..eaf4f55 100644 --- a/init.lua +++ b/init.lua @@ -9,7 +9,7 @@ loveframes = {} -- library info loveframes.info = {} loveframes.info.author = "Kenny Shields" -loveframes.info.version = "0.9.5.1" +loveframes.info.version = "0.9.5.2" loveframes.info.stage = "Alpha" -- library configurations diff --git a/objects/base.lua b/objects/base.lua index 6dd18d8..8560e78 100644 --- a/objects/base.lua +++ b/objects/base.lua @@ -39,12 +39,13 @@ function newobject:update(dt) end local children = self.children + local internals = self.internals for k, v in ipairs(children) do v:update(dt) end - for k, v in ipairs(self.internals) do + for k, v in ipairs(internals) do v:update(dt) end @@ -64,6 +65,7 @@ function newobject:draw() end local children = self.children + local internals = self.internals -- set the object's draw order self:SetDrawOrder() @@ -72,7 +74,7 @@ function newobject:draw() v:draw() end - for k, v in ipairs(self.internals) do + for k, v in ipairs(internals) do v:draw() end @@ -820,7 +822,7 @@ end - func: GetInternals() - desc: returns the object's internals --]]--------------------------------------------------------- -function newobject:GetChildren() +function newobject:GetInternals() local internals = self.internals diff --git a/objects/columnlist.lua b/objects/columnlist.lua index 89c3061..6e22b54 100644 --- a/objects/columnlist.lua +++ b/objects/columnlist.lua @@ -296,9 +296,12 @@ function newobject:SetSize(width, height) self.width = width self.height = height + self:AdjustColumns() list:SetSize(width, height) list:SetPos(0, 0) + list:CalculateSize() + list:RedoLayout() end @@ -312,9 +315,12 @@ function newobject:SetWidth(width) local list = internals[1] self.width = width + self:AdjustColumns() list:SetSize(width) list:SetPos(0, 0) + list:CalculateSize() + list:RedoLayout() end @@ -328,9 +334,12 @@ function newobject:SetHeight(height) local list = internals[1] self.height = height + self:AdjustColumns() list:SetSize(height) list:SetPos(0, 0) + list:CalculateSize() + list:RedoLayout() end diff --git a/objects/list.lua b/objects/list.lua index 0b475ca..a251a5e 100644 --- a/objects/list.lua +++ b/objects/list.lua @@ -96,7 +96,6 @@ function newobject:update(dt) if v.lastheight ~= v.height then self:CalculateSize() self:RedoLayout() - print("!") end end end diff --git a/objects/slider.lua b/objects/slider.lua index 223c694..4fb8c3f 100644 --- a/objects/slider.lua +++ b/objects/slider.lua @@ -24,6 +24,7 @@ function newobject:initialize() self.scrollincrease = 1 self.scrolldecrease = 1 self.scrollable = true + self.enabled = true self.internal = false self.internals = {} self.OnValueChanged = nil @@ -159,6 +160,12 @@ function newobject:mousepressed(x, y, button) if not visible then return end + + local enabled = self.enabled + + if not enabled then + return + end local internals = self.internals local hover = self.hover @@ -202,7 +209,6 @@ function newobject:mousepressed(x, y, button) local newvalue = value - decrease self:SetValue(newvalue) end - for k, v in ipairs(internals) do v:mousepressed(x, y, button) @@ -492,4 +498,24 @@ function newobject:GetScrollDecrease() return self.scrolldecrease +end + +--[[--------------------------------------------------------- + - func: SetEnabled(bool) + - desc: sets whether or not the object is enabled +--]]--------------------------------------------------------- +function newobject:SetEnabled(bool) + + self.enabled = bool + +end + +--[[--------------------------------------------------------- + - func: GetEnabled() + - desc: gets whether or not the object is enabled +--]]--------------------------------------------------------- +function newobject:GetEnabled() + + return self.enabled + end \ No newline at end of file diff --git a/objects/tabs.lua b/objects/tabs.lua index 1c1593d..02d3c3b 100644 --- a/objects/tabs.lua +++ b/objects/tabs.lua @@ -303,9 +303,9 @@ function newobject:AddTab(name, object, tip, image, onopened, onclosed) self:AddScrollButtons() if autosize and not retainsize then - object:SetSize(self.width - padding*2, (self.height - tabheight) - padding*2) + object:SetSize(self.width - padding * 2, (self.height - tabheight) - padding * 2) end - + end --[[--------------------------------------------------------- diff --git a/objects/textinput.lua b/objects/textinput.lua index 1daac8e..b196b4c 100644 --- a/objects/textinput.lua +++ b/objects/textinput.lua @@ -10,9 +10,8 @@ local newobject = loveframes.NewObject("textinput", "loveframes_object_textinput - func: initialize() - desc: initializes the object --]]--------------------------------------------------------- - function newobject:initialize() - + self.type = "textinput" self.keydown = "none" self.tabreplacement = " " @@ -732,9 +731,8 @@ function newobject:RunKey(key, unicode) curline = lines[line] text = curline if not multiline then - local twidth = font:getWidth(text) - local cwidth = font:getWidth(ckey) - + local twidth = font:getWidth(text) + local cwidth = font:getWidth(ckey) -- swidth - 1 is for the "-" character if (twidth + textoffsetx) >= (swidth - 1) then self.offsetx = self.offsetx + cwidth diff --git a/skins/Blue (basic)/images/arrow-down.png b/skins/Blue (basic)/images/arrow-down.png deleted file mode 100644 index 37d805800fd4b840d58fc637925316b0a4c697a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}LPr z7sn6_|D%&{b2S?XxIDkScd-J;zLhW1J02WgYI}%n?ewUcj08h9V|C@UrThC8IKC{A zn`wE2`H@A~wA53d|7^OjVC$9BDqTvUp{mbi-oJ}pc=WOGlFU_!5;hNbtz-{eeDska zsWf(Z<}5wM85b8Eeaz@NX@v%tsqf;-dHjkqZaO!Moo7lg;5;0V8o4U>cC3)~Ok0zT zy*C-y9_oLo-QOrM+w|L+J&bD)qoukrfZiGM9iW4o<-YOgt$Id<&Q mt1o!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}Nya z7sn6_|D}^-xta|GTAsg9a|;w`*|YLUa>s**m-V}; zz53}!hNP$N3}ta%7EXDx8z#PSzH{V_T*0#N f%AVd?eNI2iCUnwgTe~DWM4fwk?E# diff --git a/skins/Blue (basic)/images/arrow-right.png b/skins/Blue (basic)/images/arrow-right.png deleted file mode 100644 index 89b4818627737201d05713540777e2d19c06f43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}Lbv z7sn6_|D}_oxta|GT;E?Z&GJxC_>u0iKc<;O?|^AXhxbO=mmZp)w~ieU;FxK=-ul36 z6;G!5ALl>#`%b6DAy8yOkka|j+<$}>P8&^0?OgZzf(h@IYaW-sShpB2SW$aFd0u+Y z!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}M6> z7sn6_|E-f^yIKqcT3)~Sw^)H=-^v%0(*+JPSFj0w)Yx5dam1j3-RA4AY7wnX3{dwyb*{y-A-*tWUUOkw<7~ri{CC zfq2403&u$neZ9K-zQi-Kt@%CI?B|!aQ|!cc?7e-T?GMv`=O9y_SBJHLzGm=r^>bP0 Hl+XkK=vs{Q diff --git a/skins/Blue (basic)/images/close.png b/skins/Blue (basic)/images/close.png deleted file mode 100644 index 0825add2273d02377027f72a64d1704ddbb573a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP*sJe zi(`m||Jun9`5F{BS}OnB+Z2`Zc75>>+h{qvK%P_MQ~SzQ38A@N+ne9ssP$cw%5x-- zt;)g8{&WH32SLTaH+EIAVi982g(64pH?0rJU`s6ZOq6_3{O!ivaF5j;oj-gcUb$pX rn3kL+&cC?Narfzqbv{eKsW@8KHKm2zN%(#e=mrK)S3j3^P6^lnCf7dUk^^n)TlAORn9F1`-=yF5J3IB6%{4LDoSPMkf7ZGu%Df z0;3<;h(roGttexXs1B{r-*|1(loW~T<&&RAEOPKt$Z2}|-r_k& theight then - parent:SetTabHeight(imageheight + 5) - object.height = imageheight + 5 - else - parent:SetTabHeight(theight + 5) - object.height = theight + 5 - end - else - object.width = 10 + twidth - parent:SetTabHeight(theight + 5) - object.height = theight + 5 - end - - local width = object:GetWidth() - local height = object:GetHeight() - - if tabnumber == ptabnumber then - -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x, y, width, height) - -- button border - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - if image then - image:setFilter("nearest", "nearest") - -- button image - love.graphics.setColor(255, 255, 255, 255) - love.graphics.draw(image, x + 5, y + height/2 - imageheight/2) - -- button text - love.graphics.setFont(font) - love.graphics.setColor(texthovercolor) - love.graphics.print(text, x + imagewidth + 10, y + height/2 - theight/2) - else - -- button text - love.graphics.setFont(font) - love.graphics.setColor(texthovercolor) - love.graphics.print(text, x + 5, y + height/2 - theight/2) - end - else - -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x, y, width, height) - -- button border - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - if image then - image:setFilter("nearest", "nearest") - -- button image - love.graphics.setColor(255, 255, 255, 150) - love.graphics.draw(image, x + 5, y + height/2 - imageheight/2) - -- button text - love.graphics.setFont(font) - love.graphics.setColor(textnohovercolor) - love.graphics.print(text, x + imagewidth + 10, y + height/2 - theight/2) - else - -- button text - love.graphics.setFont(font) - love.graphics.setColor(textnohovercolor) - love.graphics.print(text, x + 5, y + height/2 - theight/2) - end - end - -end - ---[[--------------------------------------------------------- - - func: DrawMultiChoice(object) - - desc: draws the multi choice object ---]]--------------------------------------------------------- -function skin.DrawMultiChoice(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local text = object:GetText() - local choice = object:GetChoice() - local image = skin.images["multichoice-arrow.png"] - local font = skin.controls.multichoice_text_font - local theight = font:getHeight("a") - local bodycolor = skin.controls.multichoice_body_color - local textcolor = skin.controls.multichoice_text_color - local bordercolor = skin.controls.multichoice_border_color - - image:setFilter("nearest", "nearest") - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - - love.graphics.setColor(textcolor) - love.graphics.setFont(font) - - if choice == "" then - love.graphics.print(text, x + 5, y + height/2 - theight/2) - else - love.graphics.print(choice, x + 5, y + height/2 - theight/2) - end - - love.graphics.setColor(255, 255, 255, 255) - love.graphics.draw(image, x + width - 20, y + 5) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawMultiChoiceList(object) - - desc: draws the multi choice list object ---]]--------------------------------------------------------- -function skin.DrawMultiChoiceList(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.multichoicelist_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawOverMultiChoiceList(object) - - desc: draws over the multi choice list object ---]]--------------------------------------------------------- -function skin.DrawOverMultiChoiceList(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bordercolor = skin.controls.multichoicelist_border_color - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y - 1, width, height + 1) - -end - ---[[--------------------------------------------------------- - - func: DrawMultiChoiceRow(object) - - desc: draws the multi choice row object ---]]--------------------------------------------------------- -function skin.DrawMultiChoiceRow(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local text = object:GetText() - local font = skin.controls.multichoicerow_text_font - local bodyhovecolor = skin.controls.multichoicerow_body_hover_color - local texthovercolor = skin.controls.multichoicerow_text_hover_color - local bodynohovercolor = skin.controls.multichoicerow_body_nohover_color - local textnohovercolor = skin.controls.multichoicerow_text_nohover_color - - love.graphics.setFont(font) - - if object.hover then - love.graphics.setColor(bodyhovecolor) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(texthovercolor) - love.graphics.print(text, x + 5, y + 5) - else - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(textnohovercolor) - love.graphics.print(text, x + 5, y + 5) - end - -end - ---[[--------------------------------------------------------- - - func: DrawToolTip(object) - - desc: draws the tool tip object ---]]--------------------------------------------------------- -function skin.DrawToolTip(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.tooltip_body_color - local bordercolor = skin.controls.tooltip_border_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawText(object) - - desc: draws the text object ---]]--------------------------------------------------------- -function skin.DrawText(object) - -end - ---[[--------------------------------------------------------- - - func: DrawTextInput(object) - - desc: draws the text input object ---]]--------------------------------------------------------- -function skin.DrawTextInput(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local font = object:GetFont() - local focus = object:GetFocus() - local showindicator = object:GetIndicatorVisibility() - local alltextselected = object:IsAllTextSelected() - local textx = object:GetTextX() - local texty = object:GetTextY() - local text = object:GetText() - local multiline = object:GetMultiLine() - local lines = object:GetLines() - local offsetx = object:GetOffsetX() - local offsety = object:GetOffsetY() - local indicatorx = object:GetIndicatorX() - local indicatory = object:GetIndicatorY() - local vbar = object:HasVerticalScrollBar() - local hbar = object:HasHorizontalScrollBar() - local linenumbers = object:GetLineNumbersEnabled() - local itemwidth = object:GetItemWidth() - local theight = font:getHeight("a") - local bodycolor = skin.controls.textinput_body_color - local textnormalcolor = skin.controls.textinput_text_normal_color - local textselectedcolor = skin.controls.textinput_text_selected_color - local highlightbarcolor = skin.controls.textinput_highlight_bar_color - local indicatorcolor = skin.controls.textinput_indicator_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - if alltextselected then - local bary = 0 - if multiline then - for i=1, #lines do - local twidth = font:getWidth(lines[i]) - love.graphics.setColor(highlightbarcolor) - love.graphics.rectangle("fill", textx, texty + bary, twidth, theight) - bary = bary + theight - end - else - local twidth = font:getWidth(text) - love.graphics.setColor(highlightbarcolor) - love.graphics.rectangle("fill", textx, texty, twidth, theight) - end - end - - if showindicator and focus then - love.graphics.setColor(indicatorcolor) - love.graphics.rectangle("fill", indicatorx, indicatory, 1, theight) - end - - if not multiline then - object:SetTextOffsetY(height/2 - theight/2) - if offsetx ~= 0 then - object:SetTextOffsetX(0) - else - object:SetTextOffsetX(5) - end - else - if vbar then - if offsety ~= 0 then - if hbar then - object:SetTextOffsetY(5) - else - object:SetTextOffsetY(-5) - end - else - object:SetTextOffsetY(5) - end - else - object:SetTextOffsetY(5) - end - - if hbar then - if offsety ~= 0 then - if linenumbers then - local panel = object:GetLineNumbersPanel() - if vbar then - object:SetTextOffsetX(5) - else - object:SetTextOffsetX(-5) - end - else - if vbar then - object:SetTextOffsetX(5) - else - object:SetTextOffsetX(-5) - end - end - else - object:SetTextOffsetX(5) - end - else - object:SetTextOffsetX(5) - end - - end - - textx = object:GetTextX() - texty = object:GetTextY() - - love.graphics.setFont(font) - - if alltextselected then - love.graphics.setColor(textselectedcolor) - else - love.graphics.setColor(textnormalcolor) - end - - if multiline then - for i=1, #lines do - love.graphics.print(lines[i], textx, texty + theight * i - theight) - end - else - love.graphics.print(lines[1], textx, texty) - end - -end - ---[[--------------------------------------------------------- - - func: DrawOverTextInput(object) - - desc: draws over the text input object ---]]--------------------------------------------------------- -function skin.DrawOverTextInput(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bordercolor = skin.controls.textinput_border_color - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawScrollButton(object) - - desc: draws the scroll button object ---]]--------------------------------------------------------- -function skin.DrawScrollButton(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local hover = object:GetHover() - local scrolltype = object:GetScrollType() - local down = object.down - local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color - local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_hover_color - local bodynohovercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_nohover_color - - if down then - -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height) - elseif hover then - -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderhovercolor) - skin.OutlinedRectangle(x, y, width, height) - else - -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(bordernohovercolor) - skin.OutlinedRectangle(x, y, width, height) - end - - if scrolltype == "up" then - local image = skin.images["arrow-up.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - elseif scrolltype == "down" then - local image = skin.images["arrow-down.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - elseif scrolltype == "left" then - local image = skin.images["arrow-left.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - elseif scrolltype == "right" then - local image = skin.images["arrow-right.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawSlider(object) - - desc: draws the slider object ---]]--------------------------------------------------------- -function skin.DrawSlider(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local slidtype = object:GetSlideType() - local baroutlinecolor = skin.controls.slider_bar_outline_color - local barcolor = skin.controls.slider_bar_color - - if slidtype == "horizontal" then - love.graphics.setColor(baroutlinecolor) - love.graphics.rectangle("fill", x, y + height/2 - 5, width, 10) - love.graphics.setColor(barcolor) - love.graphics.rectangle("fill", x + 5, y + height/2, width - 10, 1) - elseif slidtype == "vertical" then - love.graphics.setColor(baroutlinecolor) - love.graphics.rectangle("fill", x + width/2 - 5, y, 10, height) - love.graphics.setColor(barcolor) - love.graphics.rectangle("fill", x + width/2, y + 5, 1, height - 10) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawSliderButton(object) - - desc: draws the slider button object ---]]--------------------------------------------------------- -function skin.DrawSliderButton(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local hover = object:GetHover() - local down = object.down - local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color - local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_down_color - local bodynohvercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_down_color - - if down then - -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height) - elseif hover then - -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderhovercolor) - skin.OutlinedRectangle(x, y, width, height) - else - -- button body - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(bordernohovercolor) - skin.OutlinedRectangle(x, y, width, height) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawCheckBox(object) - - desc: draws the check box object ---]]--------------------------------------------------------- -function skin.DrawCheckBox(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetBoxWidth() - local height = object:GetBoxHeight() - local checked = object:GetChecked() - local hover = object:GetHover() - local bodycolor = skin.controls.checkbox_body_color - local bordercolor = skin.controls.checkbox_border_color - local checkcolor = skin.controls.checkbox_check_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - - if checked then - love.graphics.setColor(checkcolor) - love.graphics.rectangle("fill", x + 4, y + 4, width - 8, height - 8) - end - - if hover then - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x + 4, y + 4, width - 8, height - 8) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawCollapsibleCategory(object) - - desc: draws the collapsible category object ---]]--------------------------------------------------------- -function skin.DrawCollapsibleCategory(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local text = object:GetText() - local bodycolor = skin.controls.collapsiblecategory_body_color - local textcolor = skin.controls.collapsiblecategory_text_color - local bordercolor = skin.controls.collapsiblecategory_border_color - local font = smallfont - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setFont(font) - love.graphics.setColor(textcolor) - love.graphics.print(text, x + 5, y + 5) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnList(object) - - desc: draws the column list object ---]]--------------------------------------------------------- -function skin.DrawColumnList(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.columnlist_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnListHeader(object) - - desc: draws the column list header object ---]]--------------------------------------------------------- -function skin.DrawColumnListHeader(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local hover = object:GetHover() - local name = object:GetName() - local down = object.down - local font = skin.controls.columnlistheader_text_font - local twidth = font:getWidth(object.name) - local theight = font:getHeight(object.name) - local bodydowncolor = skin.controls.columnlistheader_body_down_color - local textdowncolor = skin.controls.columnlistheader_text_down_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color - local bodyhovercolor = skin.controls.columnlistheader_body_hover_color - local textdowncolor = skin.controls.columnlistheader_text_hover_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color - local nohovercolor = skin.controls.columnlistheader_body_nohover_color - local textnohovercolor = skin.controls.columnlistheader_text_nohover_color - local bordernohovercolor = skin.controls.columnlistheader_border_down_color - - if down then - -- header body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - -- header name - love.graphics.setFont(font) - love.graphics.setColor(textdowncolor) - love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) - -- header border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height, false, false, false, true) - elseif hover then - -- header body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - -- header name - love.graphics.setFont(font) - love.graphics.setColor(textdowncolor) - love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) - -- header border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height, false, false, false, true) - else - -- header body - love.graphics.setColor(nohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - -- header name - love.graphics.setFont(font) - love.graphics.setColor(textnohovercolor) - love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) - -- header border - love.graphics.setColor(bordernohovercolor) - skin.OutlinedRectangle(x, y, width, height, false, false, false, true) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnListArea(object) - - desc: draws the column list area object ---]]--------------------------------------------------------- -function skin.DrawColumnListArea(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.columnlistarea_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawOverColumnListArea(object) - - desc: draws over the column list area object ---]]--------------------------------------------------------- -function skin.DrawOverColumnListArea(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bordercolor = skin.controls.columnlist_border_color - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnListRow(object) - - desc: draws the column list row object ---]]--------------------------------------------------------- -function skin.DrawColumnListRow(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local colorindex = object:GetColorIndex() - local font = object:GetFont() - local columndata = object:GetColumnData() - local textx = object:GetTextX() - local texty = object:GetTextY() - local parent = object:GetParent() - local cwidth, cheight = parent:GetParent():GetColumnSize() - local theight = font:getHeight("a") - local body1color = skin.controls.columnlistrow_body1_color - local border1color = skin.controls.columnlistrow_border1_color - local body2color = skin.controls.columnlistrow_body2_color - local border2color = skin.controls.columnlistrow_border2_color - local textcolor = skin.controls.columnlistrow_text_color - - object:SetTextPos(5, height/2 - theight/2) - - if colorindex == 1 then - love.graphics.setColor(body1color) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - love.graphics.setColor(border1color) - skin.OutlinedRectangle(x, y, width, height, true, false, true, true) - else - love.graphics.setColor(body2color) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(border2color) - skin.OutlinedRectangle(x, y, width, height, true, false, true, true) - end - - for k, v in ipairs(columndata) do - love.graphics.setFont(font) - love.graphics.setColor(textcolor) - love.graphics.print(v, x + textx, y + texty) - x = x + cwidth - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawModalBackground(object) - - desc: draws the modal background object ---]]--------------------------------------------------------- -function skin.DrawModalBackground(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.modalbackground_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawLineNumbersPanel(object) - - desc: draws the line numbers panel object ---]]--------------------------------------------------------- -function skin.DrawLineNumbersPanel(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local offsety = object:GetOffsetY() - local parent = object:GetParent() - local lines = parent:GetLines() - local font = parent:GetFont() - local theight = font:getHeight("a") - local bordercolor = skin.controls.linenumberspanel_border_color - local textcolor = skin.controls.linenumberspanel_text_color - local mody = y - - object:SetWidth(10 + font:getWidth(#lines)) - love.graphics.setFont(font) - - love.graphics.setColor(200, 200, 200, 255) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height, true, true, true, false) - - for i=1, #lines do - love.graphics.setColor(textcolor) - love.graphics.print(i, object.x + 5, mody - offsety) - mody = mody + theight - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawNumberBox(object) - - desc: draws the numberbox object ---]]--------------------------------------------------------- -function skin.DrawNumberBox(object) - -end - --- register the skin -loveframes.skins.Register(skin) \ No newline at end of file diff --git a/skins/Blue/images/gradients/button-down.png b/skins/Blue/images/gradients/button-down.png new file mode 100644 index 0000000000000000000000000000000000000000..a3838c863fb7c7b51f6db62db3c96bb96b3860eb GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?GP*_V=L}<7d|Pe0uNo zKfa$+*Ks*pbxn$5-$xyz#hn&5?uR(oo$9|Vs=Xk%yV^Trdt1QYs3jGm8%w>N%D9|% fJzLZ}_al47Y>!(z_SlpHtzz(W^>bP0l+XkK>;_US literal 0 HcmV?d00001 diff --git a/skins/Blue/images/gradients/button-hover.png b/skins/Blue/images/gradients/button-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..13f51e05bca72ca85f5f77034a46410a3e816c5b GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?B%O_V=L}<7d|Pe0uNo zKfa$+*Ks*pbxn$5-$xyz#hn&5?uR(oo$9|Vs=Xk%yV^Trdt1QYs3jGm8%w>N%D9|% fJzLZ}_anQZxA*^l+lAPHRxx literal 0 HcmV?d00001 diff --git a/skins/Blue/images/gradients/button-nohover.png b/skins/Blue/images/gradients/button-nohover.png new file mode 100644 index 0000000000000000000000000000000000000000..39ff24a9cbb1d8427ecf6b432c1084f6c251bcb7 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?wRU|_*9pt+DU&)3_c?JKs@9)Vd?@O-(XkiI%4Z^O{LoE}0~*TU>FVdQ I&MBb@06yMGfdBvi literal 0 HcmV?d00001 diff --git a/skins/Blue/images/gradients/button-unclickable.png b/skins/Blue/images/gradients/button-unclickable.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8bf7defb2900d7e0487758332d1cc8a58dbf73 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?&U>c zv7h@-A}f&3S>O>_%)r2R7=#&*=dVZs3QCo@MwA5SrEak75w3eAlBtnFg!RI1_pT6)sCeOpo^O{oPKvyK-ddjB&r<02 zBlX;K@rTaYw@lsJS^8^I*vZKe$M_G~+~s_1;qmLCo6e$n7rx0F-j7`xS)q7kfvU)U g#bt52zIVFnwR}7ds)mJL0NTai>FVdQ&MBb@03s_;-~a#s literal 0 HcmV?d00001 diff --git a/skins/Blue/images/gradients/progressbar.png b/skins/Blue/images/gradients/progressbar.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdfb4b670b7ff968bb7b7f42fe4d78bf89fd28f GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW? o3mwdax<4GqWqJ0Hsr(0{P>s$v`89=ifhI6`y85}Sb4q9e0Es?4l>h($ literal 0 HcmV?d00001 diff --git a/skins/Blue/skin.lua b/skins/Blue/skin.lua index d9f9fba..077ad86 100644 --- a/skins/Blue/skin.lua +++ b/skins/Blue/skin.lua @@ -19,104 +19,72 @@ local bordercolor = {143, 143, 143, 255} skin.controls = {} -- frame -skin.controls.frame_border_color = bordercolor skin.controls.frame_body_color = {232, 232, 232, 255} -skin.controls.frame_top_color = {102, 194, 255, 255} skin.controls.frame_name_color = {255, 255, 255, 255} skin.controls.frame_name_font = smallfont -- button -skin.controls.button_border_down_color = bordercolor -skin.controls.button_border_nohover_color = bordercolor -skin.controls.button_border_hover_color = bordercolor -skin.controls.button_body_down_color = {128, 204, 255, 255} -skin.controls.button_body_nohover_color = {255, 255, 255, 255} -skin.controls.button_body_hover_color = {153, 214, 255, 255} skin.controls.button_text_down_color = {255, 255, 255, 255} skin.controls.button_text_nohover_color = {0, 0, 0, 200} skin.controls.button_text_hover_color = {255, 255, 255, 255} -skin.controls.button_body_nonclickable_color = {220, 220, 220, 255} skin.controls.button_text_nonclickable_color = {0, 0, 0, 100} skin.controls.button_text_font = smallfont --- image button +-- imagebutton skin.controls.imagebutton_text_down_color = {255, 255, 255, 255} skin.controls.imagebutton_text_nohover_color = {255, 255, 255, 200} skin.controls.imagebutton_text_hover_color = {255, 255, 255, 255} skin.controls.imagebutton_text_font = imagebuttonfont --- close button +-- closebutton skin.controls.closebutton_body_down_color = {255, 255, 255, 255} skin.controls.closebutton_body_nohover_color = {255, 255, 255, 255} skin.controls.closebutton_body_hover_color = {255, 255, 255, 255} --- progress bar -skin.controls.progressbar_border_color = bordercolor +-- progressbar skin.controls.progressbar_body_color = {255, 255, 255, 255} -skin.controls.progressbar_bar_color = {0, 255, 0, 255} skin.controls.progressbar_text_color = {0, 0, 0, 255} skin.controls.progressbar_text_font = smallfont -- list -skin.controls.list_border_color = bordercolor skin.controls.list_body_color = {232, 232, 232, 255} --- scrollbar -skin.controls.scrollbar_border_down_color = bordercolor -skin.controls.scrollbar_border_hover_color = bordercolor -skin.controls.scrollbar_border_nohover_color = bordercolor -skin.controls.scrollbar_body_down_color = {128, 204, 255, 255} -skin.controls.scrollbar_body_nohover_color = {255, 255, 255, 255} -skin.controls.scrollbar_body_hover_color = {153, 214, 255, 255} - -- scrollarea skin.controls.scrollarea_body_color = {200, 200, 200, 255} -skin.controls.scrollarea_border_color = bordercolor -- scrollbody skin.controls.scrollbody_body_color = {0, 0, 0, 0} -- panel skin.controls.panel_body_color = {232, 232, 232, 255} -skin.controls.panel_border_color = bordercolor --- tab panel +-- tabpanel skin.controls.tabpanel_body_color = {232, 232, 232, 255} -skin.controls.tabpanel_border_color = bordercolor --- tab button -skin.controls.tab_border_nohover_color = bordercolor -skin.controls.tab_border_hover_color = bordercolor -skin.controls.tab_body_nohover_color = {255, 255, 255, 255} -skin.controls.tab_body_hover_color = {153, 214, 255, 255} +-- tabbutton skin.controls.tab_text_nohover_color = {0, 0, 0, 200} skin.controls.tab_text_hover_color = {255, 255, 255, 255} skin.controls.tab_text_font = smallfont -- multichoice skin.controls.multichoice_body_color = {240, 240, 240, 255} -skin.controls.multichoice_border_color = bordercolor skin.controls.multichoice_text_color = {0, 0, 0, 255} skin.controls.multichoice_text_font = smallfont -- multichoicelist skin.controls.multichoicelist_body_color = {240, 240, 240, 200} -skin.controls.multichoicelist_border_color = bordercolor -- multichoicerow skin.controls.multichoicerow_body_nohover_color = {240, 240, 240, 255} skin.controls.multichoicerow_body_hover_color = {51, 204, 255, 255} -skin.controls.multichoicerow_border_color = {50, 50, 50, 255} skin.controls.multichoicerow_text_nohover_color = {0, 0, 0, 150} skin.controls.multichoicerow_text_hover_color = {255, 255, 255, 255} skin.controls.multichoicerow_text_font = smallfont -- tooltip -skin.controls.tooltip_border_color = bordercolor skin.controls.tooltip_body_color = {255, 255, 255, 255} --- text input -skin.controls.textinput_border_color = bordercolor +-- textinput skin.controls.textinput_body_color = {240, 240, 240, 255} skin.controls.textinput_indicator_color = {0, 0, 0, 255} skin.controls.textinput_text_normal_color = {0, 0, 0, 255} @@ -124,11 +92,9 @@ skin.controls.textinput_text_selected_color = {255, 255, 255, 255} skin.controls.textinput_highlight_bar_color = {51, 204, 255, 255} -- slider -skin.controls.slider_bar_color = bordercolor skin.controls.slider_bar_outline_color = {220, 220, 220, 255} -- checkbox -skin.controls.checkbox_border_color = bordercolor skin.controls.checkbox_body_color = {255, 255, 255, 255} skin.controls.checkbox_check_color = {128, 204, 255, 255} skin.controls.checkbox_text_color = {0, 0, 0, 255} @@ -136,33 +102,21 @@ skin.controls.checkbox_text_font = smallfont -- collapsiblecategory skin.controls.collapsiblecategory_text_color = {0, 0, 0, 255} -skin.controls.collapsiblecategory_body_color = {255, 255, 255, 255} -skin.controls.collapsiblecategory_border_color = bordercolor -- columnlist -skin.controls.columnlist_border_color = bordercolor skin.controls.columnlist_body_color = {232, 232, 232, 255} -- columlistarea -skin.controls.columnlistarea_border_color = bordercolor skin.controls.columnlistarea_body_color = {232, 232, 232, 255} -- columnlistheader -skin.controls.columnlistheader_border_down_color = bordercolor -skin.controls.columnlistheader_border_nohover_color = bordercolor -skin.controls.columnlistheader_border_hover_color = bordercolor -skin.controls.columnlistheader_body_down_color = {128, 204, 255, 255} -skin.controls.columnlistheader_body_nohover_color = {255, 255, 255, 255} -skin.controls.columnlistheader_body_hover_color = {153, 214, 255, 255} skin.controls.columnlistheader_text_down_color = {255, 255, 255, 255} skin.controls.columnlistheader_text_nohover_color = {0, 0, 0, 200} skin.controls.columnlistheader_text_hover_color = {255, 255, 255, 255} skin.controls.columnlistheader_text_font = smallfont -- columnlistrow -skin.controls.columnlistrow_border1_color = bordercolor skin.controls.columnlistrow_body1_color = {232, 232, 232, 255} -skin.controls.columnlistrow_border2_color = bordercolor skin.controls.columnlistrow_body2_color = {200, 200, 200, 255} skin.controls.columnlistrow_text_color = {100, 100, 100, 255} @@ -170,7 +124,6 @@ skin.controls.columnlistrow_text_color = {100, 100, 100, 255} skin.controls.modalbackground_body_color = {255, 255, 255, 100} -- linenumberspanel -skin.controls.linenumberspanel_border_color = bordercolor skin.controls.linenumberspanel_text_color = {100, 100, 100, 255} --[[--------------------------------------------------------- @@ -206,24 +159,6 @@ function skin.OutlinedRectangle(x, y, width, height, ovt, ovb, ovl, ovr) end ---[[--------------------------------------------------------- - - func: skin.DrawGradient(x, y, width, height, color) - - desc: draws a gradient ---]]--------------------------------------------------------- -function skin.DrawGradient(x, y, width, height, color) - - local color = color - local percent = 0 - - for i=1, (height - 1) do - percent = i/height * 255 - color[4] = loveframes.util.Round(percent) - love.graphics.setColor(unpack(color)) - love.graphics.rectangle("fill", x, y + i, width, 1) - end - -end - --[[--------------------------------------------------------- - func: DrawFrame(object) - desc: draws the frame object @@ -238,19 +173,23 @@ function skin.DrawFrame(object) local name = object:GetName() local bodycolor = skin.controls.frame_body_color local topcolor = skin.controls.frame_top_color - local bordercolor = skin.controls.frame_border_color local namecolor = skin.controls.frame_name_color local font = skin.controls.frame_name_font - local gradientcolor = {topcolor[1] - 20, topcolor[2] - 20, topcolor[3] - 20, 255} + local image = skin.images["frame-topbar.png"] + local imageheight = image:getHeight() + local scaley = 25/imageheight + -- button body + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + -- frame body love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) -- frame top bar - love.graphics.setColor(topcolor) - love.graphics.rectangle("fill", x, y, width, 25) - skin.DrawGradient(x, y, width, 25, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y + 25, width, 1) @@ -283,73 +222,69 @@ function skin.DrawButton(object) local down = object.down local enabled = object:GetEnabled() local clickable = object:GetClickable() - local bodydowncolor = skin.controls.button_body_down_color local textdowncolor = skin.controls.button_text_down_color - local borderdowncolor = skin.controls.button_border_down_color - local bodyhovercolor = skin.controls.button_body_hover_color local texthovercolor = skin.controls.button_text_hover_color - local borderhovercolor = skin.controls.button_border_down_color - local bodynohvercolor = skin.controls.button_body_nohover_color local textnohovercolor = skin.controls.button_text_nohover_color - local bordernohovercolor = skin.controls.button_border_down_color - local bodynonclickablecolor = skin.controls.button_body_nonclickable_color local textnonclickablecolor = skin.controls.button_text_nonclickable_color - local gradientcolor = {} if not enabled or not clickable then + local image = skin.images["button-unclickable.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodynonclickablecolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynonclickablecolor[1] - 20, bodynonclickablecolor[2] - 20, bodynonclickablecolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(textnonclickablecolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) return end - + if down then + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(textdowncolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(texthovercolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(borderhovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) - else + else + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohvercolor[1] - 20, bodynohvercolor[2] - 20, bodynohvercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(textnohovercolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -496,15 +431,15 @@ function skin.DrawProgressBar(object) local bodycolor = skin.controls.progressbar_body_color local barcolor = skin.controls.progressbar_bar_color local textcolor = skin.controls.progressbar_text_color - local bordercolor = skin.controls.progressbar_border_color - local gradientcolor = {barcolor[1], barcolor[2] - 20, barcolor[3], 255} - + local image = skin.images["progressbar.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + -- progress bar body love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(barcolor) - love.graphics.rectangle("fill", x, y, barwidth, height) - skin.DrawGradient(x, y, barwidth, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, barwidth, scaley) love.graphics.setFont(font) love.graphics.setColor(textcolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) @@ -527,7 +462,6 @@ function skin.DrawScrollArea(object) local height = object:GetHeight() local bartype = object:GetBarType() local bodycolor = skin.controls.scrollarea_body_color - local bordercolor = skin.controls.scrollarea_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) @@ -555,43 +489,42 @@ function skin.DrawScrollBar(object) local hover = object:GetHover() local bartype = object:GetBarType() local bodydowncolor = skin.controls.scrollbar_body_down_color - local borderdowncolor = skin.controls.scrollbar_border_down_color local bodyhovercolor = skin.controls.scrollbar_body_hover_color - local borderhovercolor = skin.controls.scrollbar_border_hover_color local bodynohvercolor = skin.controls.scrollbar_body_nohover_color - local bordernohovercolor = skin.controls.scrollbar_border_nohover_color - local gradientcolor = {} if dragging then - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y, width, height, gradientcolor) - love.graphics.setColor(borderdowncolor) + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y, width, height, gradientcolor) - love.graphics.setColor(borderhovercolor) + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) else - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohvercolor[1] - 20, bodynohvercolor[2] - 20, bodynohvercolor[3] - 20, 255} - skin.DrawGradient(x, y, width, height, gradientcolor) - love.graphics.setColor(bordernohovercolor) + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end if bartype == "vertical" then - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + 3, y + height/2 - 3, width - 6, 1) love.graphics.rectangle("fill", x + 3, y + height/2, width - 6, 1) love.graphics.rectangle("fill", x + 3, y + height/2 + 3, width - 6, 1) else - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + width/2 - 3, y + 3, 1, height - 6) love.graphics.rectangle("fill", x + width/2, y + 3, 1, height - 6) love.graphics.rectangle("fill", x + width/2 + 3, y + 3, 1, height - 6) @@ -627,7 +560,6 @@ function skin.DrawPanel(object) local width = object:GetWidth() local height = object:GetHeight() local bodycolor = skin.controls.panel_body_color - local bordercolor = skin.controls.panel_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) @@ -663,9 +595,8 @@ function skin.DrawOverList(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordrcolor = skin.controls.list_border_color - love.graphics.setColor(bordrcolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -682,7 +613,6 @@ function skin.DrawTabPanel(object) local height = object:GetHeight() local buttonheight = object:GetHeightOfButtons() local bodycolor = skin.controls.tabpanel_body_color - local bordercolor = skin.controls.tabpanel_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y + buttonheight, width, height - buttonheight) @@ -712,12 +642,8 @@ function skin.DrawTabButton(object) local theight = font:getHeight(object.text) local imagewidth = 0 local imageheight = 0 - local bordercolor = skin.controls.tabpanel_border_color - local bodyhovercolor = skin.controls.button_body_hover_color local texthovercolor = skin.controls.button_text_hover_color - local bodynohovercolor = skin.controls.button_body_nohover_color local textnohovercolor = skin.controls.button_text_nohover_color - local gradientcolor = {} if image then image:setFilter("nearest", "nearest") @@ -742,10 +668,11 @@ function skin.DrawTabButton(object) if tabnumber == ptabnumber then -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x, y, width, height) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local gradient = skin.images["button-hover.png"] + local gradientheight = gradient:getHeight() + local scaley = height/gradientheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(gradient, x, y, 0, width, scaley) -- button border love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -765,10 +692,11 @@ function skin.DrawTabButton(object) end else -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x, y, width, height) - gradientcolor = {bodynohovercolor[1] - 20, bodynohovercolor[2] - 20, bodynohovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local gradient = skin.images["button-nohover.png"] + local gradientheight = gradient:getHeight() + local scaley = height/gradientheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(gradient, x, y, 0, width, scaley) -- button border love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -807,7 +735,6 @@ function skin.DrawMultiChoice(object) local theight = font:getHeight("a") local bodycolor = skin.controls.multichoice_body_color local textcolor = skin.controls.multichoice_text_color - local bordercolor = skin.controls.multichoice_border_color image:setFilter("nearest", "nearest") @@ -858,7 +785,6 @@ function skin.DrawOverMultiChoiceList(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordercolor = skin.controls.multichoicelist_border_color love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y - 1, width, height + 1) @@ -909,7 +835,6 @@ function skin.DrawToolTip(object) local width = object:GetWidth() local height = object:GetHeight() local bodycolor = skin.controls.tooltip_body_color - local bordercolor = skin.controls.tooltip_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) @@ -968,6 +893,9 @@ function skin.DrawTextInput(object) if multiline then for i=1, #lines do local twidth = font:getWidth(lines[i]) + if twidth == 0 then + twidth = 5 + end love.graphics.setColor(highlightbarcolor) love.graphics.rectangle("fill", textx, texty + bary, twidth, theight) bary = bary + theight @@ -1062,7 +990,6 @@ function skin.DrawOverTextInput(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordercolor = skin.controls.textinput_border_color love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -1083,40 +1010,39 @@ function skin.DrawScrollButton(object) local scrolltype = object:GetScrollType() local down = object.down local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_hover_color local bodynohovercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_nohover_color - local gradientcolor = {} if down then -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderhovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) else -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohovercolor[1] - 20, bodynohovercolor[2] - 20, bodynohovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -1180,17 +1106,16 @@ function skin.DrawSlider(object) local height = object:GetHeight() local slidtype = object:GetSlideType() local baroutlinecolor = skin.controls.slider_bar_outline_color - local barcolor = skin.controls.slider_bar_color if slidtype == "horizontal" then love.graphics.setColor(baroutlinecolor) love.graphics.rectangle("fill", x, y + height/2 - 5, width, 10) - love.graphics.setColor(barcolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + 5, y + height/2, width - 10, 1) elseif slidtype == "vertical" then love.graphics.setColor(baroutlinecolor) love.graphics.rectangle("fill", x + width/2 - 5, y, 10, height) - love.graphics.setColor(barcolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + width/2, y + 5, 1, height - 10) end @@ -1208,40 +1133,54 @@ function skin.DrawSliderButton(object) local height = object:GetHeight() local hover = object:GetHover() local down = object.down + local parent = object:GetParent() + local enabled = parent:GetEnabled() local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_down_color local bodynohvercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_down_color - local gradientcolor = {} + + if not enabled then + local image = skin.images["button-unclickable.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + -- button body + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + -- button border + love.graphics.setColor(bordercolor) + skin.OutlinedRectangle(x, y, width, height) + return + end if down then -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderhovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) else -- button body - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohvercolor[1] - 20, bodynohvercolor[2] - 20, bodynohvercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -1260,7 +1199,6 @@ function skin.DrawCheckBox(object) local checked = object:GetChecked() local hover = object:GetHover() local bodycolor = skin.controls.checkbox_body_color - local bordercolor = skin.controls.checkbox_border_color local checkcolor = skin.controls.checkbox_check_color love.graphics.setColor(bodycolor) @@ -1292,17 +1230,14 @@ function skin.DrawCollapsibleCategory(object) local width = object:GetWidth() local height = object:GetHeight() local text = object:GetText() - local bodycolor = skin.controls.collapsiblecategory_body_color local textcolor = skin.controls.collapsiblecategory_text_color - local bordercolor = skin.controls.collapsiblecategory_border_color local font = smallfont - local gradientcolor = {bodycolor[1] - 20, bodycolor[2] - 20, bodycolor[3] - 20, 255} + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setColor(gradientcolor) - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) love.graphics.setFont(font) love.graphics.setColor(textcolor) @@ -1348,53 +1283,52 @@ function skin.DrawColumnListHeader(object) local theight = font:getHeight(object.name) local bodydowncolor = skin.controls.columnlistheader_body_down_color local textdowncolor = skin.controls.columnlistheader_text_down_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color local bodyhovercolor = skin.controls.columnlistheader_body_hover_color local textdowncolor = skin.controls.columnlistheader_text_hover_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color local nohovercolor = skin.controls.columnlistheader_body_nohover_color local textnohovercolor = skin.controls.columnlistheader_text_nohover_color - local bordernohovercolor = skin.controls.columnlistheader_border_down_color - local gradientcolor = {} if down then + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- header body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- header name love.graphics.setFont(font) love.graphics.setColor(textdowncolor) love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) -- header border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, false, false, false, true) elseif hover then + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- header body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- header name love.graphics.setFont(font) love.graphics.setColor(textdowncolor) love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) -- header border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, false, false, false, true) else + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- header body - love.graphics.setColor(nohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - gradientcolor = {nohovercolor[1] - 20, nohovercolor[2] - 20, nohovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- header name love.graphics.setFont(font) love.graphics.setColor(textnohovercolor) love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) -- header border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, false, false, false, true) end @@ -1427,7 +1361,6 @@ function skin.DrawOverColumnListArea(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordercolor = skin.controls.columnlist_border_color love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -1453,9 +1386,7 @@ function skin.DrawColumnListRow(object) local cwidth, cheight = parent:GetParent():GetColumnSize() local theight = font:getHeight("a") local body1color = skin.controls.columnlistrow_body1_color - local border1color = skin.controls.columnlistrow_border1_color local body2color = skin.controls.columnlistrow_body2_color - local border2color = skin.controls.columnlistrow_border2_color local textcolor = skin.controls.columnlistrow_text_color object:SetTextPos(5, height/2 - theight/2) @@ -1463,12 +1394,12 @@ function skin.DrawColumnListRow(object) if colorindex == 1 then love.graphics.setColor(body1color) love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - love.graphics.setColor(border1color) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, true, false, true, true) else love.graphics.setColor(body2color) love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(border2color) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, true, false, true, true) end @@ -1513,7 +1444,6 @@ function skin.DrawLineNumbersPanel(object) local lines = parent:GetLines() local font = parent:GetFont() local theight = font:getHeight("a") - local bordercolor = skin.controls.linenumberspanel_border_color local textcolor = skin.controls.linenumberspanel_text_color local mody = y diff --git a/skins/Orange (basic)/images/arrow-down.png b/skins/Orange (basic)/images/arrow-down.png deleted file mode 100644 index 37d805800fd4b840d58fc637925316b0a4c697a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}LPr z7sn6_|D%&{b2S?XxIDkScd-J;zLhW1J02WgYI}%n?ewUcj08h9V|C@UrThC8IKC{A zn`wE2`H@A~wA53d|7^OjVC$9BDqTvUp{mbi-oJ}pc=WOGlFU_!5;hNbtz-{eeDska zsWf(Z<}5wM85b8Eeaz@NX@v%tsqf;-dHjkqZaO!Moo7lg;5;0V8o4U>cC3)~Ok0zT zy*C-y9_oLo-QOrM+w|L+J&bD)qoukrfZiGM9iW4o<-YOgt$Id<&Q mt1o!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}Nya z7sn6_|D}^-xta|GTAsg9a|;w`*|YLUa>s**m-V}; zz53}!hNP$N3}ta%7EXDx8z#PSzH{V_T*0#N f%AVd?eNI2iCUnwgTe~DWM4fwk?E# diff --git a/skins/Orange (basic)/images/arrow-right.png b/skins/Orange (basic)/images/arrow-right.png deleted file mode 100644 index 89b4818627737201d05713540777e2d19c06f43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}Lbv z7sn6_|D}_oxta|GT;E?Z&GJxC_>u0iKc<;O?|^AXhxbO=mmZp)w~ieU;FxK=-ul36 z6;G!5ALl>#`%b6DAy8yOkka|j+<$}>P8&^0?OgZzf(h@IYaW-sShpB2SW$aFd0u+Y z!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}M6> z7sn6_|E-f^yIKqcT3)~Sw^)H=-^v%0(*+JPSFj0w)Yx5dam1j3-RA4AY7wnX3{dwyb*{y-A-*tWUUOkw<7~ri{CC zfq2403&u$neZ9K-zQi-Kt@%CI?B|!aQ|!cc?7e-T?GMv`=O9y_SBJHLzGm=r^>bP0 Hl+XkK=vs{Q diff --git a/skins/Orange (basic)/images/close.png b/skins/Orange (basic)/images/close.png deleted file mode 100644 index 0825add2273d02377027f72a64d1704ddbb573a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP*sJe zi(`m||Jun9`5F{BS}OnB+Z2`Zc75>>+h{qvK%P_MQ~SzQ38A@N+ne9ssP$cw%5x-- zt;)g8{&WH32SLTaH+EIAVi982g(64pH?0rJU`s6ZOq6_3{O!ivaF5j;oj-gcUb$pX rn3kL+&cC?Narfzqbv{eKsW@8KHKm2zN%(#e=mrK)S3j3^P6^lnCf7dUk^^n)TlAORn9F1`-=yF5J3IB6%{4LDoSPMkf7ZGu%Df z0;3<;h(roGttexXs1B{r-*|1(loW~T<&&RAEOPKt$Z2}|-r_k& theight then - parent:SetTabHeight(imageheight + 5) - object.height = imageheight + 5 - else - parent:SetTabHeight(theight + 5) - object.height = theight + 5 - end - else - object.width = 10 + twidth - parent:SetTabHeight(theight + 5) - object.height = theight + 5 - end - - local width = object:GetWidth() - local height = object:GetHeight() - - if tabnumber == ptabnumber then - -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x, y, width, height) - -- button border - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - if image then - image:setFilter("nearest", "nearest") - -- button image - love.graphics.setColor(255, 255, 255, 255) - love.graphics.draw(image, x + 5, y + height/2 - imageheight/2) - -- button text - love.graphics.setFont(font) - love.graphics.setColor(texthovercolor) - love.graphics.print(text, x + imagewidth + 10, y + height/2 - theight/2) - else - -- button text - love.graphics.setFont(font) - love.graphics.setColor(texthovercolor) - love.graphics.print(text, x + 5, y + height/2 - theight/2) - end - else - -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x, y, width, height) - -- button border - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - if image then - image:setFilter("nearest", "nearest") - -- button image - love.graphics.setColor(255, 255, 255, 150) - love.graphics.draw(image, x + 5, y + height/2 - imageheight/2) - -- button text - love.graphics.setFont(font) - love.graphics.setColor(textnohovercolor) - love.graphics.print(text, x + imagewidth + 10, y + height/2 - theight/2) - else - -- button text - love.graphics.setFont(font) - love.graphics.setColor(textnohovercolor) - love.graphics.print(text, x + 5, y + height/2 - theight/2) - end - end - -end - ---[[--------------------------------------------------------- - - func: DrawMultiChoice(object) - - desc: draws the multi choice object ---]]--------------------------------------------------------- -function skin.DrawMultiChoice(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local text = object:GetText() - local choice = object:GetChoice() - local image = skin.images["multichoice-arrow.png"] - local font = skin.controls.multichoice_text_font - local theight = font:getHeight("a") - local bodycolor = skin.controls.multichoice_body_color - local textcolor = skin.controls.multichoice_text_color - local bordercolor = skin.controls.multichoice_border_color - - image:setFilter("nearest", "nearest") - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - - love.graphics.setColor(textcolor) - love.graphics.setFont(font) - - if choice == "" then - love.graphics.print(text, x + 5, y + height/2 - theight/2) - else - love.graphics.print(choice, x + 5, y + height/2 - theight/2) - end - - love.graphics.setColor(255, 255, 255, 255) - love.graphics.draw(image, x + width - 20, y + 5) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawMultiChoiceList(object) - - desc: draws the multi choice list object ---]]--------------------------------------------------------- -function skin.DrawMultiChoiceList(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.multichoicelist_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawOverMultiChoiceList(object) - - desc: draws over the multi choice list object ---]]--------------------------------------------------------- -function skin.DrawOverMultiChoiceList(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bordercolor = skin.controls.multichoicelist_border_color - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y - 1, width, height + 1) - -end - ---[[--------------------------------------------------------- - - func: DrawMultiChoiceRow(object) - - desc: draws the multi choice row object ---]]--------------------------------------------------------- -function skin.DrawMultiChoiceRow(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local text = object:GetText() - local font = skin.controls.multichoicerow_text_font - local bodyhovecolor = skin.controls.multichoicerow_body_hover_color - local texthovercolor = skin.controls.multichoicerow_text_hover_color - local bodynohovercolor = skin.controls.multichoicerow_body_nohover_color - local textnohovercolor = skin.controls.multichoicerow_text_nohover_color - - love.graphics.setFont(font) - - if object.hover then - love.graphics.setColor(bodyhovecolor) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(texthovercolor) - love.graphics.print(text, x + 5, y + 5) - else - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(textnohovercolor) - love.graphics.print(text, x + 5, y + 5) - end - -end - ---[[--------------------------------------------------------- - - func: DrawToolTip(object) - - desc: draws the tool tip object ---]]--------------------------------------------------------- -function skin.DrawToolTip(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.tooltip_body_color - local bordercolor = skin.controls.tooltip_border_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawText(object) - - desc: draws the text object ---]]--------------------------------------------------------- -function skin.DrawText(object) - -end - ---[[--------------------------------------------------------- - - func: DrawTextInput(object) - - desc: draws the text input object ---]]--------------------------------------------------------- -function skin.DrawTextInput(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local font = object:GetFont() - local focus = object:GetFocus() - local showindicator = object:GetIndicatorVisibility() - local alltextselected = object:IsAllTextSelected() - local textx = object:GetTextX() - local texty = object:GetTextY() - local text = object:GetText() - local multiline = object:GetMultiLine() - local lines = object:GetLines() - local offsetx = object:GetOffsetX() - local offsety = object:GetOffsetY() - local indicatorx = object:GetIndicatorX() - local indicatory = object:GetIndicatorY() - local vbar = object:HasVerticalScrollBar() - local hbar = object:HasHorizontalScrollBar() - local linenumbers = object:GetLineNumbersEnabled() - local itemwidth = object:GetItemWidth() - local theight = font:getHeight("a") - local bodycolor = skin.controls.textinput_body_color - local textnormalcolor = skin.controls.textinput_text_normal_color - local textselectedcolor = skin.controls.textinput_text_selected_color - local highlightbarcolor = skin.controls.textinput_highlight_bar_color - local indicatorcolor = skin.controls.textinput_indicator_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - if alltextselected then - local bary = 0 - if multiline then - for i=1, #lines do - local twidth = font:getWidth(lines[i]) - love.graphics.setColor(highlightbarcolor) - love.graphics.rectangle("fill", textx, texty + bary, twidth, theight) - bary = bary + theight - end - else - local twidth = font:getWidth(text) - love.graphics.setColor(highlightbarcolor) - love.graphics.rectangle("fill", textx, texty, twidth, theight) - end - end - - if showindicator and focus then - love.graphics.setColor(indicatorcolor) - love.graphics.rectangle("fill", indicatorx, indicatory, 1, theight) - end - - if not multiline then - object:SetTextOffsetY(height/2 - theight/2) - if offsetx ~= 0 then - object:SetTextOffsetX(0) - else - object:SetTextOffsetX(5) - end - else - if vbar then - if offsety ~= 0 then - if hbar then - object:SetTextOffsetY(5) - else - object:SetTextOffsetY(-5) - end - else - object:SetTextOffsetY(5) - end - else - object:SetTextOffsetY(5) - end - - if hbar then - if offsety ~= 0 then - if linenumbers then - local panel = object:GetLineNumbersPanel() - if vbar then - object:SetTextOffsetX(5) - else - object:SetTextOffsetX(-5) - end - else - if vbar then - object:SetTextOffsetX(5) - else - object:SetTextOffsetX(-5) - end - end - else - object:SetTextOffsetX(5) - end - else - object:SetTextOffsetX(5) - end - - end - - textx = object:GetTextX() - texty = object:GetTextY() - - love.graphics.setFont(font) - - if alltextselected then - love.graphics.setColor(textselectedcolor) - else - love.graphics.setColor(textnormalcolor) - end - - if multiline then - for i=1, #lines do - love.graphics.print(lines[i], textx, texty + theight * i - theight) - end - else - love.graphics.print(lines[1], textx, texty) - end - -end - ---[[--------------------------------------------------------- - - func: DrawOverTextInput(object) - - desc: draws over the text input object ---]]--------------------------------------------------------- -function skin.DrawOverTextInput(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bordercolor = skin.controls.textinput_border_color - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: DrawScrollButton(object) - - desc: draws the scroll button object ---]]--------------------------------------------------------- -function skin.DrawScrollButton(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local hover = object:GetHover() - local scrolltype = object:GetScrollType() - local down = object.down - local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color - local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_hover_color - local bodynohovercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_nohover_color - - if down then - -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height) - elseif hover then - -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderhovercolor) - skin.OutlinedRectangle(x, y, width, height) - else - -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(bordernohovercolor) - skin.OutlinedRectangle(x, y, width, height) - end - - if scrolltype == "up" then - local image = skin.images["arrow-up.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - elseif scrolltype == "down" then - local image = skin.images["arrow-down.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - elseif scrolltype == "left" then - local image = skin.images["arrow-left.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - elseif scrolltype == "right" then - local image = skin.images["arrow-right.png"] - image:setFilter("nearest", "nearest") - if hover then - love.graphics.setColor(255, 255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 150) - end - love.graphics.draw(image, x + width/2 - image:getWidth()/2, y + height/2 - image:getHeight()/2) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawSlider(object) - - desc: draws the slider object ---]]--------------------------------------------------------- -function skin.DrawSlider(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local slidtype = object:GetSlideType() - local baroutlinecolor = skin.controls.slider_bar_outline_color - local barcolor = skin.controls.slider_bar_color - - if slidtype == "horizontal" then - love.graphics.setColor(baroutlinecolor) - love.graphics.rectangle("fill", x, y + height/2 - 5, width, 10) - love.graphics.setColor(barcolor) - love.graphics.rectangle("fill", x + 5, y + height/2, width - 10, 1) - elseif slidtype == "vertical" then - love.graphics.setColor(baroutlinecolor) - love.graphics.rectangle("fill", x + width/2 - 5, y, 10, height) - love.graphics.setColor(barcolor) - love.graphics.rectangle("fill", x + width/2, y + 5, 1, height - 10) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawSliderButton(object) - - desc: draws the slider button object ---]]--------------------------------------------------------- -function skin.DrawSliderButton(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local hover = object:GetHover() - local down = object.down - local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color - local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_down_color - local bodynohvercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_down_color - - if down then - -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height) - elseif hover then - -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(borderhovercolor) - skin.OutlinedRectangle(x, y, width, height) - else - -- button body - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - -- button border - love.graphics.setColor(bordernohovercolor) - skin.OutlinedRectangle(x, y, width, height) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawCheckBox(object) - - desc: draws the check box object ---]]--------------------------------------------------------- -function skin.DrawCheckBox(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetBoxWidth() - local height = object:GetBoxHeight() - local checked = object:GetChecked() - local hover = object:GetHover() - local bodycolor = skin.controls.checkbox_body_color - local bordercolor = skin.controls.checkbox_border_color - local checkcolor = skin.controls.checkbox_check_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - - if checked then - love.graphics.setColor(checkcolor) - love.graphics.rectangle("fill", x + 4, y + 4, width - 8, height - 8) - end - - if hover then - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x + 4, y + 4, width - 8, height - 8) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawCollapsibleCategory(object) - - desc: draws the collapsible category object ---]]--------------------------------------------------------- -function skin.DrawCollapsibleCategory(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local text = object:GetText() - local bodycolor = skin.controls.collapsiblecategory_body_color - local textcolor = skin.controls.collapsiblecategory_text_color - local bordercolor = skin.controls.collapsiblecategory_border_color - local font = smallfont - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setFont(font) - love.graphics.setColor(textcolor) - love.graphics.print(text, x + 5, y + 5) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnList(object) - - desc: draws the column list object ---]]--------------------------------------------------------- -function skin.DrawColumnList(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.columnlist_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnListHeader(object) - - desc: draws the column list header object ---]]--------------------------------------------------------- -function skin.DrawColumnListHeader(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local hover = object:GetHover() - local name = object:GetName() - local down = object.down - local font = skin.controls.columnlistheader_text_font - local twidth = font:getWidth(object.name) - local theight = font:getHeight(object.name) - local bodydowncolor = skin.controls.columnlistheader_body_down_color - local textdowncolor = skin.controls.columnlistheader_text_down_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color - local bodyhovercolor = skin.controls.columnlistheader_body_hover_color - local textdowncolor = skin.controls.columnlistheader_text_hover_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color - local nohovercolor = skin.controls.columnlistheader_body_nohover_color - local textnohovercolor = skin.controls.columnlistheader_text_nohover_color - local bordernohovercolor = skin.controls.columnlistheader_border_down_color - - if down then - -- header body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - -- header name - love.graphics.setFont(font) - love.graphics.setColor(textdowncolor) - love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) - -- header border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height, false, false, false, true) - elseif hover then - -- header body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - -- header name - love.graphics.setFont(font) - love.graphics.setColor(textdowncolor) - love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) - -- header border - love.graphics.setColor(borderdowncolor) - skin.OutlinedRectangle(x, y, width, height, false, false, false, true) - else - -- header body - love.graphics.setColor(nohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - -- header name - love.graphics.setFont(font) - love.graphics.setColor(textnohovercolor) - love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) - -- header border - love.graphics.setColor(bordernohovercolor) - skin.OutlinedRectangle(x, y, width, height, false, false, false, true) - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnListArea(object) - - desc: draws the column list area object ---]]--------------------------------------------------------- -function skin.DrawColumnListArea(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.columnlistarea_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawOverColumnListArea(object) - - desc: draws over the column list area object ---]]--------------------------------------------------------- -function skin.DrawOverColumnListArea(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bordercolor = skin.controls.columnlist_border_color - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawColumnListRow(object) - - desc: draws the column list row object ---]]--------------------------------------------------------- -function skin.DrawColumnListRow(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local colorindex = object:GetColorIndex() - local font = object:GetFont() - local columndata = object:GetColumnData() - local textx = object:GetTextX() - local texty = object:GetTextY() - local parent = object:GetParent() - local cwidth, cheight = parent:GetParent():GetColumnSize() - local theight = font:getHeight("a") - local body1color = skin.controls.columnlistrow_body1_color - local border1color = skin.controls.columnlistrow_border1_color - local body2color = skin.controls.columnlistrow_body2_color - local border2color = skin.controls.columnlistrow_border2_color - local textcolor = skin.controls.columnlistrow_text_color - - object:SetTextPos(5, height/2 - theight/2) - - if colorindex == 1 then - love.graphics.setColor(body1color) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - love.graphics.setColor(border1color) - skin.OutlinedRectangle(x, y, width, height, true, false, true, true) - else - love.graphics.setColor(body2color) - love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(border2color) - skin.OutlinedRectangle(x, y, width, height, true, false, true, true) - end - - for k, v in ipairs(columndata) do - love.graphics.setFont(font) - love.graphics.setColor(textcolor) - love.graphics.print(v, x + textx, y + texty) - x = x + cwidth - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawModalBackground(object) - - desc: draws the modal background object ---]]--------------------------------------------------------- -function skin.DrawModalBackground(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local bodycolor = skin.controls.modalbackground_body_color - - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - -end - ---[[--------------------------------------------------------- - - func: skin.DrawLineNumbersPanel(object) - - desc: draws the line numbers panel object ---]]--------------------------------------------------------- -function skin.DrawLineNumbersPanel(object) - - local x = object:GetX() - local y = object:GetY() - local width = object:GetWidth() - local height = object:GetHeight() - local offsety = object:GetOffsetY() - local parent = object:GetParent() - local lines = parent:GetLines() - local font = parent:GetFont() - local theight = font:getHeight("a") - local bordercolor = skin.controls.linenumberspanel_border_color - local textcolor = skin.controls.linenumberspanel_text_color - local mody = y - - object:SetWidth(10 + font:getWidth(#lines)) - love.graphics.setFont(font) - - love.graphics.setColor(200, 200, 200, 255) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setColor(bordercolor) - skin.OutlinedRectangle(x, y, width, height, true, true, true, false) - - for i=1, #lines do - love.graphics.setColor(textcolor) - love.graphics.print(i, object.x + 5, mody - offsety) - mody = mody + theight - end - -end - ---[[--------------------------------------------------------- - - func: skin.DrawNumberBox(object) - - desc: draws the numberbox object ---]]--------------------------------------------------------- -function skin.DrawNumberBox(object) - -end - --- register the skin -loveframes.skins.Register(skin) \ No newline at end of file diff --git a/skins/Orange/images/gradients/button-down.png b/skins/Orange/images/gradients/button-down.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dd8870371fca3fa72238226faea40635666a4b GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?~4KG*Eio07TgnY_+`}gTe~DWM4f_s3C> literal 0 HcmV?d00001 diff --git a/skins/Orange/images/gradients/button-hover.png b/skins/Orange/images/gradients/button-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..f621691cd53f8dbcfc098d44e27e5e371ad616e7 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?VM%xNb!1@J z*w6hZkrl}2EbxddW?wRU|_*9pt+DU&)3_c?JKs@9)Vd?@O-(XkiI%4Z^O{LoE}0~*TU>FVdQ I&MBb@06yMGfdBvi literal 0 HcmV?d00001 diff --git a/skins/Orange/images/gradients/button-unclickable.png b/skins/Orange/images/gradients/button-unclickable.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8bf7defb2900d7e0487758332d1cc8a58dbf73 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?&U>c zv7h@-A}f&3S>O>_%)r2R7=#&*=dVZs3QCo@MwA5SrEak75pH^HtKb0!9tJ~y`7}ABGjnPlyQx=d|9ql3b$3EIUpkxn zsyCdslOmKOoKpF2JURU0-~+9_hpnWexTS(u^8T#zHnH&x2xW=}8pz=3>gTe~DWM4f DW*tCO literal 0 HcmV?d00001 diff --git a/skins/Orange/images/gradients/progressbar.png b/skins/Orange/images/gradients/progressbar.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdfb4b670b7ff968bb7b7f42fe4d78bf89fd28f GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItD2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW? o3mwdax<4GqWqJ0Hsr(0{P>s$v`89=ifhI6`y85}Sb4q9e0Es?4l>h($ literal 0 HcmV?d00001 diff --git a/skins/Orange/skin.lua b/skins/Orange/skin.lua index 9fca680..66086d5 100644 --- a/skins/Orange/skin.lua +++ b/skins/Orange/skin.lua @@ -19,104 +19,72 @@ local bordercolor = {143, 143, 143, 255} skin.controls = {} -- frame -skin.controls.frame_border_color = bordercolor skin.controls.frame_body_color = {232, 232, 232, 255} -skin.controls.frame_top_color = {255, 153, 0, 255} skin.controls.frame_name_color = {255, 255, 255, 255} skin.controls.frame_name_font = smallfont -- button -skin.controls.button_border_down_color = bordercolor -skin.controls.button_border_nohover_color = bordercolor -skin.controls.button_border_hover_color = bordercolor -skin.controls.button_body_down_color = {255, 173, 51, 255} -skin.controls.button_body_nohover_color = {255, 255, 255, 255} -skin.controls.button_body_hover_color = {255, 184, 77, 255} skin.controls.button_text_down_color = {255, 255, 255, 255} skin.controls.button_text_nohover_color = {0, 0, 0, 200} skin.controls.button_text_hover_color = {255, 255, 255, 255} -skin.controls.button_body_nonclickable_color = {220, 220, 220, 255} skin.controls.button_text_nonclickable_color = {0, 0, 0, 100} skin.controls.button_text_font = smallfont --- image button +-- imagebutton skin.controls.imagebutton_text_down_color = {255, 255, 255, 255} skin.controls.imagebutton_text_nohover_color = {255, 255, 255, 200} skin.controls.imagebutton_text_hover_color = {255, 255, 255, 255} skin.controls.imagebutton_text_font = imagebuttonfont --- close button +-- closebutton skin.controls.closebutton_body_down_color = {255, 255, 255, 255} skin.controls.closebutton_body_nohover_color = {255, 255, 255, 255} skin.controls.closebutton_body_hover_color = {255, 255, 255, 255} --- progress bar -skin.controls.progressbar_border_color = bordercolor +-- progressbar skin.controls.progressbar_body_color = {255, 255, 255, 255} -skin.controls.progressbar_bar_color = {0, 255, 0, 255} skin.controls.progressbar_text_color = {0, 0, 0, 255} skin.controls.progressbar_text_font = smallfont -- list -skin.controls.list_border_color = bordercolor skin.controls.list_body_color = {232, 232, 232, 255} --- scrollbar -skin.controls.scrollbar_border_down_color = bordercolor -skin.controls.scrollbar_border_hover_color = bordercolor -skin.controls.scrollbar_border_nohover_color = bordercolor -skin.controls.scrollbar_body_down_color = {255, 173, 51, 255} -skin.controls.scrollbar_body_nohover_color = {255, 255, 255, 255} -skin.controls.scrollbar_body_hover_color = {255, 184, 77, 255} - -- scrollarea skin.controls.scrollarea_body_color = {200, 200, 200, 255} -skin.controls.scrollarea_border_color = bordercolor -- scrollbody skin.controls.scrollbody_body_color = {0, 0, 0, 0} -- panel skin.controls.panel_body_color = {232, 232, 232, 255} -skin.controls.panel_border_color = bordercolor --- tab panel +-- tabpanel skin.controls.tabpanel_body_color = {232, 232, 232, 255} -skin.controls.tabpanel_border_color = bordercolor --- tab button -skin.controls.tab_border_nohover_color = bordercolor -skin.controls.tab_border_hover_color = bordercolor -skin.controls.tab_body_nohover_color = {255, 255, 255, 255} -skin.controls.tab_body_hover_color = {255, 173, 51, 255} +-- tabbutton skin.controls.tab_text_nohover_color = {0, 0, 0, 200} skin.controls.tab_text_hover_color = {255, 255, 255, 255} skin.controls.tab_text_font = smallfont -- multichoice skin.controls.multichoice_body_color = {240, 240, 240, 255} -skin.controls.multichoice_border_color = bordercolor skin.controls.multichoice_text_color = {0, 0, 0, 255} skin.controls.multichoice_text_font = smallfont -- multichoicelist skin.controls.multichoicelist_body_color = {240, 240, 240, 200} -skin.controls.multichoicelist_border_color = bordercolor -- multichoicerow skin.controls.multichoicerow_body_nohover_color = {240, 240, 240, 255} -skin.controls.multichoicerow_body_hover_color = {255, 117, 26, 255} -skin.controls.multichoicerow_border_color = {50, 50, 50, 255} +skin.controls.multichoicerow_body_hover_color = {255, 153, 0, 255} skin.controls.multichoicerow_text_nohover_color = {0, 0, 0, 150} skin.controls.multichoicerow_text_hover_color = {255, 255, 255, 255} skin.controls.multichoicerow_text_font = smallfont -- tooltip -skin.controls.tooltip_border_color = bordercolor skin.controls.tooltip_body_color = {255, 255, 255, 255} --- text input -skin.controls.textinput_border_color = bordercolor +-- textinput skin.controls.textinput_body_color = {240, 240, 240, 255} skin.controls.textinput_indicator_color = {0, 0, 0, 255} skin.controls.textinput_text_normal_color = {0, 0, 0, 255} @@ -124,45 +92,31 @@ skin.controls.textinput_text_selected_color = {255, 255, 255, 255} skin.controls.textinput_highlight_bar_color = {51, 204, 255, 255} -- slider -skin.controls.slider_bar_color = bordercolor skin.controls.slider_bar_outline_color = {220, 220, 220, 255} -- checkbox -skin.controls.checkbox_border_color = bordercolor skin.controls.checkbox_body_color = {255, 255, 255, 255} -skin.controls.checkbox_check_color = {255, 173, 51, 255} +skin.controls.checkbox_check_color = {255, 153, 0, 255} skin.controls.checkbox_text_color = {0, 0, 0, 255} skin.controls.checkbox_text_font = smallfont -- collapsiblecategory skin.controls.collapsiblecategory_text_color = {0, 0, 0, 255} -skin.controls.collapsiblecategory_body_color = {255, 255, 255, 255} -skin.controls.collapsiblecategory_border_color = bordercolor -- columnlist -skin.controls.columnlist_border_color = bordercolor skin.controls.columnlist_body_color = {232, 232, 232, 255} -- columlistarea -skin.controls.columnlistarea_border_color = bordercolor skin.controls.columnlistarea_body_color = {232, 232, 232, 255} -- columnlistheader -skin.controls.columnlistheader_border_down_color = bordercolor -skin.controls.columnlistheader_border_nohover_color = bordercolor -skin.controls.columnlistheader_border_hover_color = bordercolor -skin.controls.columnlistheader_body_down_color = {255, 173, 51, 255} -skin.controls.columnlistheader_body_nohover_color = {255, 255, 255, 255} -skin.controls.columnlistheader_body_hover_color = {255, 184, 77, 255} skin.controls.columnlistheader_text_down_color = {255, 255, 255, 255} skin.controls.columnlistheader_text_nohover_color = {0, 0, 0, 200} skin.controls.columnlistheader_text_hover_color = {255, 255, 255, 255} skin.controls.columnlistheader_text_font = smallfont -- columnlistrow -skin.controls.columnlistrow_border1_color = bordercolor skin.controls.columnlistrow_body1_color = {232, 232, 232, 255} -skin.controls.columnlistrow_border2_color = bordercolor skin.controls.columnlistrow_body2_color = {200, 200, 200, 255} skin.controls.columnlistrow_text_color = {100, 100, 100, 255} @@ -170,7 +124,6 @@ skin.controls.columnlistrow_text_color = {100, 100, 100, 255} skin.controls.modalbackground_body_color = {255, 255, 255, 100} -- linenumberspanel -skin.controls.linenumberspanel_border_color = bordercolor skin.controls.linenumberspanel_text_color = {100, 100, 100, 255} --[[--------------------------------------------------------- @@ -206,24 +159,6 @@ function skin.OutlinedRectangle(x, y, width, height, ovt, ovb, ovl, ovr) end ---[[--------------------------------------------------------- - - func: skin.DrawGradient(x, y, width, height, color) - - desc: draws a gradient ---]]--------------------------------------------------------- -function skin.DrawGradient(x, y, width, height, color) - - local color = color - local percent = 0 - - for i=1, (height - 1) do - percent = i/height * 255 - color[4] = loveframes.util.Round(percent) - love.graphics.setColor(unpack(color)) - love.graphics.rectangle("fill", x, y + i, width, 1) - end - -end - --[[--------------------------------------------------------- - func: DrawFrame(object) - desc: draws the frame object @@ -238,19 +173,23 @@ function skin.DrawFrame(object) local name = object:GetName() local bodycolor = skin.controls.frame_body_color local topcolor = skin.controls.frame_top_color - local bordercolor = skin.controls.frame_border_color local namecolor = skin.controls.frame_name_color local font = skin.controls.frame_name_font - local gradientcolor = {topcolor[1] - 20, topcolor[2] - 20, topcolor[3], 255} + local image = skin.images["frame-topbar.png"] + local imageheight = image:getHeight() + local scaley = 25/imageheight + -- button body + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + -- frame body love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) -- frame top bar - love.graphics.setColor(topcolor) - love.graphics.rectangle("fill", x, y, width, 25) - skin.DrawGradient(x, y, width, 25, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y + 25, width, 1) @@ -283,73 +222,69 @@ function skin.DrawButton(object) local down = object.down local enabled = object:GetEnabled() local clickable = object:GetClickable() - local bodydowncolor = skin.controls.button_body_down_color local textdowncolor = skin.controls.button_text_down_color - local borderdowncolor = skin.controls.button_border_down_color - local bodyhovercolor = skin.controls.button_body_hover_color local texthovercolor = skin.controls.button_text_hover_color - local borderhovercolor = skin.controls.button_border_down_color - local bodynohvercolor = skin.controls.button_body_nohover_color local textnohovercolor = skin.controls.button_text_nohover_color - local bordernohovercolor = skin.controls.button_border_down_color - local bodynonclickablecolor = skin.controls.button_body_nonclickable_color local textnonclickablecolor = skin.controls.button_text_nonclickable_color - local gradientcolor = {} if not enabled or not clickable then + local image = skin.images["button-unclickable.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodynonclickablecolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynonclickablecolor[1] - 20, bodynonclickablecolor[2] - 20, bodynonclickablecolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(textnonclickablecolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) return end - + if down then + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(textdowncolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(texthovercolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(borderhovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) - else + else + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- button body - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohvercolor[1] - 20, bodynohvercolor[2] - 20, bodynohvercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button text love.graphics.setFont(font) love.graphics.setColor(textnohovercolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -496,15 +431,15 @@ function skin.DrawProgressBar(object) local bodycolor = skin.controls.progressbar_body_color local barcolor = skin.controls.progressbar_bar_color local textcolor = skin.controls.progressbar_text_color - local bordercolor = skin.controls.progressbar_border_color - local gradientcolor = {barcolor[1], barcolor[2] - 20, barcolor[3], 255} - + local image = skin.images["progressbar.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + -- progress bar body love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(barcolor) - love.graphics.rectangle("fill", x, y, barwidth, height) - skin.DrawGradient(x, y, barwidth, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, barwidth, scaley) love.graphics.setFont(font) love.graphics.setColor(textcolor) love.graphics.print(text, x + width/2 - twidth/2, y + height/2 - theight/2) @@ -527,7 +462,6 @@ function skin.DrawScrollArea(object) local height = object:GetHeight() local bartype = object:GetBarType() local bodycolor = skin.controls.scrollarea_body_color - local bordercolor = skin.controls.scrollarea_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) @@ -555,43 +489,42 @@ function skin.DrawScrollBar(object) local hover = object:GetHover() local bartype = object:GetBarType() local bodydowncolor = skin.controls.scrollbar_body_down_color - local borderdowncolor = skin.controls.scrollbar_border_down_color local bodyhovercolor = skin.controls.scrollbar_body_hover_color - local borderhovercolor = skin.controls.scrollbar_border_hover_color local bodynohvercolor = skin.controls.scrollbar_body_nohover_color - local bordernohovercolor = skin.controls.scrollbar_border_nohover_color - local gradientcolor = {} if dragging then - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y, width, height, gradientcolor) - love.graphics.setColor(borderdowncolor) + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y, width, height, gradientcolor) - love.graphics.setColor(borderhovercolor) + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) else - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohvercolor[1] - 20, bodynohvercolor[2] - 20, bodynohvercolor[3] - 20, 255} - skin.DrawGradient(x, y, width, height, gradientcolor) - love.graphics.setColor(bordernohovercolor) + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end if bartype == "vertical" then - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + 3, y + height/2 - 3, width - 6, 1) love.graphics.rectangle("fill", x + 3, y + height/2, width - 6, 1) love.graphics.rectangle("fill", x + 3, y + height/2 + 3, width - 6, 1) else - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + width/2 - 3, y + 3, 1, height - 6) love.graphics.rectangle("fill", x + width/2, y + 3, 1, height - 6) love.graphics.rectangle("fill", x + width/2 + 3, y + 3, 1, height - 6) @@ -627,7 +560,6 @@ function skin.DrawPanel(object) local width = object:GetWidth() local height = object:GetHeight() local bodycolor = skin.controls.panel_body_color - local bordercolor = skin.controls.panel_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) @@ -663,9 +595,8 @@ function skin.DrawOverList(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordrcolor = skin.controls.list_border_color - love.graphics.setColor(bordrcolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -682,7 +613,6 @@ function skin.DrawTabPanel(object) local height = object:GetHeight() local buttonheight = object:GetHeightOfButtons() local bodycolor = skin.controls.tabpanel_body_color - local bordercolor = skin.controls.tabpanel_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y + buttonheight, width, height - buttonheight) @@ -712,12 +642,8 @@ function skin.DrawTabButton(object) local theight = font:getHeight(object.text) local imagewidth = 0 local imageheight = 0 - local bordercolor = skin.controls.tabpanel_border_color - local bodyhovercolor = skin.controls.button_body_hover_color local texthovercolor = skin.controls.button_text_hover_color - local bodynohovercolor = skin.controls.button_body_nohover_color local textnohovercolor = skin.controls.button_text_nohover_color - local gradientcolor = {} if image then image:setFilter("nearest", "nearest") @@ -742,10 +668,11 @@ function skin.DrawTabButton(object) if tabnumber == ptabnumber then -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x, y, width, height) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local gradient = skin.images["button-hover.png"] + local gradientheight = gradient:getHeight() + local scaley = height/gradientheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(gradient, x, y, 0, width, scaley) -- button border love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -765,10 +692,11 @@ function skin.DrawTabButton(object) end else -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x, y, width, height) - gradientcolor = {bodynohovercolor[1] - 20, bodynohovercolor[2] - 20, bodynohovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local gradient = skin.images["button-nohover.png"] + local gradientheight = gradient:getHeight() + local scaley = height/gradientheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(gradient, x, y, 0, width, scaley) -- button border love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -779,12 +707,12 @@ function skin.DrawTabButton(object) -- button text love.graphics.setFont(font) love.graphics.setColor(textnohovercolor) - love.graphics.print(object.text, x + imagewidth + 10, y + height/2 - theight/2) + love.graphics.print(text, x + imagewidth + 10, y + height/2 - theight/2) else -- button text love.graphics.setFont(font) love.graphics.setColor(textnohovercolor) - love.graphics.print(object.text, x + 5, y + height/2 - theight/2) + love.graphics.print(text, x + 5, y + height/2 - theight/2) end end @@ -807,7 +735,6 @@ function skin.DrawMultiChoice(object) local theight = font:getHeight("a") local bodycolor = skin.controls.multichoice_body_color local textcolor = skin.controls.multichoice_text_color - local bordercolor = skin.controls.multichoice_border_color image:setFilter("nearest", "nearest") @@ -858,7 +785,6 @@ function skin.DrawOverMultiChoiceList(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordercolor = skin.controls.multichoicelist_border_color love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y - 1, width, height + 1) @@ -909,7 +835,6 @@ function skin.DrawToolTip(object) local width = object:GetWidth() local height = object:GetHeight() local bodycolor = skin.controls.tooltip_body_color - local bordercolor = skin.controls.tooltip_border_color love.graphics.setColor(bodycolor) love.graphics.rectangle("fill", x, y, width, height) @@ -968,6 +893,9 @@ function skin.DrawTextInput(object) if multiline then for i=1, #lines do local twidth = font:getWidth(lines[i]) + if twidth == 0 then + twidth = 5 + end love.graphics.setColor(highlightbarcolor) love.graphics.rectangle("fill", textx, texty + bary, twidth, theight) bary = bary + theight @@ -1062,7 +990,6 @@ function skin.DrawOverTextInput(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordercolor = skin.controls.textinput_border_color love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -1083,40 +1010,39 @@ function skin.DrawScrollButton(object) local scrolltype = object:GetScrollType() local down = object.down local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_hover_color local bodynohovercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_nohover_color - local gradientcolor = {} if down then -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderhovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) else -- button body - love.graphics.setColor(bodynohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohovercolor[1] - 20, bodynohovercolor[2] - 20, bodynohovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -1180,17 +1106,16 @@ function skin.DrawSlider(object) local height = object:GetHeight() local slidtype = object:GetSlideType() local baroutlinecolor = skin.controls.slider_bar_outline_color - local barcolor = skin.controls.slider_bar_color if slidtype == "horizontal" then love.graphics.setColor(baroutlinecolor) love.graphics.rectangle("fill", x, y + height/2 - 5, width, 10) - love.graphics.setColor(barcolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + 5, y + height/2, width - 10, 1) elseif slidtype == "vertical" then love.graphics.setColor(baroutlinecolor) love.graphics.rectangle("fill", x + width/2 - 5, y, 10, height) - love.graphics.setColor(barcolor) + love.graphics.setColor(bordercolor) love.graphics.rectangle("fill", x + width/2, y + 5, 1, height - 10) end @@ -1208,40 +1133,54 @@ function skin.DrawSliderButton(object) local height = object:GetHeight() local hover = object:GetHover() local down = object.down + local parent = object:GetParent() + local enabled = parent:GetEnabled() local bodydowncolor = skin.controls.button_body_down_color - local borderdowncolor = skin.controls.button_border_down_color local bodyhovercolor = skin.controls.button_body_hover_color - local borderhovercolor = skin.controls.button_border_down_color local bodynohvercolor = skin.controls.button_body_nohover_color - local bordernohovercolor = skin.controls.button_border_down_color - local gradientcolor = {} + + if not enabled then + local image = skin.images["button-unclickable.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + -- button body + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) + -- button border + love.graphics.setColor(bordercolor) + skin.OutlinedRectangle(x, y, width, height) + return + end if down then -- button body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) elseif hover then -- button body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(borderhovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) else -- button body - love.graphics.setColor(bodynohvercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - gradientcolor = {bodynohvercolor[1] - 20, bodynohvercolor[2] - 20, bodynohvercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- button border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) end @@ -1260,7 +1199,6 @@ function skin.DrawCheckBox(object) local checked = object:GetChecked() local hover = object:GetHover() local bodycolor = skin.controls.checkbox_body_color - local bordercolor = skin.controls.checkbox_border_color local checkcolor = skin.controls.checkbox_check_color love.graphics.setColor(bodycolor) @@ -1292,17 +1230,14 @@ function skin.DrawCollapsibleCategory(object) local width = object:GetWidth() local height = object:GetHeight() local text = object:GetText() - local bodycolor = skin.controls.collapsiblecategory_body_color local textcolor = skin.controls.collapsiblecategory_text_color - local bordercolor = skin.controls.collapsiblecategory_border_color local font = smallfont - local gradientcolor = {bodycolor[1] - 20, bodycolor[2] - 20, bodycolor[3] - 20, 255} + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight - love.graphics.setColor(bodycolor) - love.graphics.rectangle("fill", x, y, width, height) - - love.graphics.setColor(gradientcolor) - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) love.graphics.setFont(font) love.graphics.setColor(textcolor) @@ -1348,53 +1283,52 @@ function skin.DrawColumnListHeader(object) local theight = font:getHeight(object.name) local bodydowncolor = skin.controls.columnlistheader_body_down_color local textdowncolor = skin.controls.columnlistheader_text_down_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color local bodyhovercolor = skin.controls.columnlistheader_body_hover_color local textdowncolor = skin.controls.columnlistheader_text_hover_color - local borderdowncolor = skin.controls.columnlistheader_border_down_color local nohovercolor = skin.controls.columnlistheader_body_nohover_color local textnohovercolor = skin.controls.columnlistheader_text_nohover_color - local bordernohovercolor = skin.controls.columnlistheader_border_down_color - local gradientcolor = {} if down then + local image = skin.images["button-down.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- header body - love.graphics.setColor(bodydowncolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - gradientcolor = {bodydowncolor[1] - 20, bodydowncolor[2] - 20, bodydowncolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- header name love.graphics.setFont(font) love.graphics.setColor(textdowncolor) love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) -- header border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, false, false, false, true) elseif hover then + local image = skin.images["button-hover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- header body - love.graphics.setColor(bodyhovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - gradientcolor = {bodyhovercolor[1] - 20, bodyhovercolor[2] - 20, bodyhovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- header name love.graphics.setFont(font) love.graphics.setColor(textdowncolor) love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) -- header border - love.graphics.setColor(borderdowncolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, false, false, false, true) else + local image = skin.images["button-nohover.png"] + local imageheight = image:getHeight() + local scaley = height/imageheight -- header body - love.graphics.setColor(nohovercolor) - love.graphics.rectangle("fill", x + 1, y + 1, width - 1, height - 2) - gradientcolor = {nohovercolor[1] - 20, nohovercolor[2] - 20, nohovercolor[3] - 20, 255} - skin.DrawGradient(x, y - 1, width, height, gradientcolor) + love.graphics.setColor(255, 255, 255, 255) + love.graphics.draw(image, x, y, 0, width, scaley) -- header name love.graphics.setFont(font) love.graphics.setColor(textnohovercolor) love.graphics.print(name, x + width/2 - twidth/2, y + height/2 - theight/2) -- header border - love.graphics.setColor(bordernohovercolor) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, false, false, false, true) end @@ -1427,7 +1361,6 @@ function skin.DrawOverColumnListArea(object) local y = object:GetY() local width = object:GetWidth() local height = object:GetHeight() - local bordercolor = skin.controls.columnlist_border_color love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height) @@ -1453,9 +1386,7 @@ function skin.DrawColumnListRow(object) local cwidth, cheight = parent:GetParent():GetColumnSize() local theight = font:getHeight("a") local body1color = skin.controls.columnlistrow_body1_color - local border1color = skin.controls.columnlistrow_border1_color local body2color = skin.controls.columnlistrow_body2_color - local border2color = skin.controls.columnlistrow_border2_color local textcolor = skin.controls.columnlistrow_text_color object:SetTextPos(5, height/2 - theight/2) @@ -1463,12 +1394,12 @@ function skin.DrawColumnListRow(object) if colorindex == 1 then love.graphics.setColor(body1color) love.graphics.rectangle("fill", x + 1, y + 1, width - 2, height - 2) - love.graphics.setColor(border1color) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, true, false, true, true) else love.graphics.setColor(body2color) love.graphics.rectangle("fill", x, y, width, height) - love.graphics.setColor(border2color) + love.graphics.setColor(bordercolor) skin.OutlinedRectangle(x, y, width, height, true, false, true, true) end @@ -1513,7 +1444,6 @@ function skin.DrawLineNumbersPanel(object) local lines = parent:GetLines() local font = parent:GetFont() local theight = font:getHeight("a") - local bordercolor = skin.controls.linenumberspanel_border_color local textcolor = skin.controls.linenumberspanel_text_color local mody = y