From 08a077b596a3fd9d51a85e79a4094f5b563b951b Mon Sep 17 00:00:00 2001 From: Tercio Jose Date: Sun, 1 May 2022 19:23:20 -0300 Subject: [PATCH] Added Borders to Row's Area and Window Area, renamed the old border to Skin Border --- classes/class_damage.lua | 3 +- classes/include_instance.lua | 15 +++ frames/window_main.lua | 59 +++++++++++ frames/window_options2_sections.lua | 149 ++++++++++++++++++++++------ 4 files changed, 192 insertions(+), 34 deletions(-) diff --git a/classes/class_damage.lua b/classes/class_damage.lua index 519152b8..16fdf93e 100644 --- a/classes/class_damage.lua +++ b/classes/class_damage.lua @@ -2410,7 +2410,6 @@ function Details:AutoAlignInLineFontStrings() local maxStringLength_StringThree = 0 local profileOffsetString3 = self.fontstrings_text3_anchor local profileOffsetString2 = self.fontstrings_text2_anchor - local offsetTotal = 0 Details.CacheInLineMaxDistance = Details.CacheInLineMaxDistance or {} Details.CacheInLineMaxDistance[self:GetId()] = Details.CacheInLineMaxDistance[self:GetId()] or {[2] = profileOffsetString2, [3] = profileOffsetString3} @@ -2489,7 +2488,7 @@ function Details:AutoAlignInLineFontStrings() local totalWidth = text2:GetStringWidth() + text3:GetStringWidth() + text4:GetStringWidth() totalWidth = totalWidth + 50 - DetailsFramework:TruncateText(playerName, self.cached_bar_width - totalWidth) + DetailsFramework:TruncateText(playerName, self.cached_bar_width - totalWidth) --this avoid truncated strings with ... --playerName:SetWidth(self.cached_bar_width - totalWidth) end end diff --git a/classes/include_instance.lua b/classes/include_instance.lua index 0d51a5a6..8ddb9e27 100644 --- a/classes/include_instance.lua +++ b/classes/include_instance.lua @@ -192,6 +192,21 @@ _detalhes.instance_defaults = { fontstrings_text3_anchor = 38, fontstrings_text2_anchor = 73, + --title bar + titlebar_height = 16, + titlebar_texture = "", + titlebar_color = {0, 0, 0, 0}, + + --full border + fullborder_shown = false, + fullborder_color = {0, 0, 0, 1}, + fullborder_size = 0.5, + + --row area border + rowareaborder_shown = false, + rowareaborder_color = {0, 0, 0, 1}, + rowareaborder_size = 0.5, + --row info row_info = { --if true the texture of the bars will have the color of his actor class diff --git a/frames/window_main.lua b/frames/window_main.lua index 0efd44b5..7a487d79 100644 --- a/frames/window_main.lua +++ b/frames/window_main.lua @@ -7228,6 +7228,9 @@ function Details:ChangeSkin(skin_name) --> refresh lock buttons self:RefreshLockedState() + + self:UpdateFullBorder() + self:UpdateRowAreaBorder() --> clear any control sscript running in this instance self.bgframe:SetScript ("OnUpdate", nil) @@ -7655,6 +7658,62 @@ function _detalhes:SetFrameStrata (strata) self:StretchButtonAlwaysOnTop() end +--set and refresh the full border +function Details:UpdateFullBorder(shown, color, size) + if (type(shown) == "boolean") then + self.fullborder_shown = shown + else + shown = self.fullborder_shown + end + + if (size) then + self.fullborder_size = size + else + size = self.fullborder_size + end + + if (color) then + self.fullborder_color = color + else + color = self.fullborder_color + end + + self.baseframe.fullWindowFrame.border:SetShown(shown) + if (shown) then + self.baseframe.fullWindowFrame.border:SetBorderSizes(size, size, size, size) + self.baseframe.fullWindowFrame.border:UpdateSizes() + self.baseframe.fullWindowFrame.border:SetVertexColor(DetailsFramework:ParseColors(color)) + end +end + +--set and refresh the border of the row area +function Details:UpdateRowAreaBorder(shown, color, size) + if (type(shown) == "boolean") then + self.rowareaborder_shown = shown + else + shown = self.rowareaborder_shown + end + + if (size) then + self.rowareaborder_size = size + else + size = self.rowareaborder_size + end + + if (color) then + self.rowareaborder_color = color + else + color = self.rowareaborder_color + end + + self.baseframe.border:SetShown(shown) + if (shown) then + self.baseframe.border:SetBorderSizes(size, size, size, size) + self.baseframe.border:UpdateSizes() + self.baseframe.border:SetVertexColor(DetailsFramework:ParseColors(color)) + end +end + -- ~attributemenu (text with attribute name) function _detalhes:RefreshAttributeTextSize() if (self.attribute_text.enabled and self.total_buttons_shown and self.baseframe and self.menu_attribute_string) then diff --git a/frames/window_options2_sections.lua b/frames/window_options2_sections.lua index 97e1315a..6ec61ce5 100644 --- a/frames/window_options2_sections.lua +++ b/frames/window_options2_sections.lua @@ -2596,8 +2596,9 @@ do local buildSection = function(sectionFrame) local sectionOptions = { + {type = "label", get = function() return Loc["STRING_OPTIONS_GENERAL_ANCHOR"] end, text_template = subSectionTitleTextTemplate}, - {--window color + {--window color (skin color) type = "color", get = function() local r, g, b = unpack (currentInstance.color) @@ -2608,37 +2609,8 @@ do editInstanceSetting(currentInstance, "InstanceColor", r, g, b, a, nil, true) afterUpdate() end, - name = Loc ["STRING_OPTIONS_INSTANCE_COLOR"], - desc = Loc ["STRING_OPTIONS_INSTANCE_COLOR_DESC"], - }, - - {--background color - type = "color", - get = function() - return {currentInstance.bg_r, currentInstance.bg_g, currentInstance.bg_b, currentInstance.bg_alpha} - end, - set = function (self, r, g, b, a) - editInstanceSetting(currentInstance, "SetBackgroundColor", r, g, b) - editInstanceSetting(currentInstance, "SetBackgroundAlpha", a) - afterUpdate() - end, - name = Loc ["STRING_OPTIONS_INSTANCE_ALPHA2"], - desc = Loc ["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"], - }, - - {--window scale - type = "range", - get = function() return tonumber(currentInstance.window_scale) end, - set = function (self, fixedparam, value) - editInstanceSetting(currentInstance, "SetWindowScale", value, true) - afterUpdate() - end, - min = 0.65, - max = 1.5, - step = 0.02, - usedecimals = true, - name = Loc ["STRING_OPTIONS_WINDOW_SCALE"], - desc = Loc ["STRING_OPTIONS_WINDOW_SCALE_DESC"], + name = Loc ["STRING_OPTIONS_WINDOW_SKIN_COLOR"], + desc = Loc ["STRING_OPTIONS_WINDOW_SKIN_COLOR_DESC"], }, {--show borders @@ -2657,6 +2629,35 @@ do desc = Loc ["STRING_OPTIONS_SHOW_SIDEBARS_DESC"], }, + {--background color + type = "color", + get = function() + return {currentInstance.bg_r, currentInstance.bg_g, currentInstance.bg_b, currentInstance.bg_alpha} + end, + set = function (self, r, g, b, a) + editInstanceSetting(currentInstance, "SetBackgroundColor", r, g, b) + editInstanceSetting(currentInstance, "SetBackgroundAlpha", a) + afterUpdate() + end, + name = Loc ["STRING_OPTIONS_WINDOW_ROWAREA_COLOR"], + desc = Loc ["STRING_OPTIONS_WINDOW_ROWAREA_COLOR_DESC"], + }, + + {--window scale + type = "range", + get = function() return tonumber(currentInstance.window_scale) end, + set = function (self, fixedparam, value) + editInstanceSetting(currentInstance, "SetWindowScale", value, true) + afterUpdate() + end, + min = 0.65, + max = 1.5, + step = 0.02, + usedecimals = true, + name = Loc ["STRING_OPTIONS_WINDOW_SCALE"], + desc = Loc ["STRING_OPTIONS_WINDOW_SCALE_DESC"], + }, + {--ignore on mass hide type = "toggle", get = function() return currentInstance.ignore_mass_showhide end, @@ -2785,6 +2786,90 @@ do --icontexture = [[Interface\Buttons\UI-GuildButton-MOTD-Up]], --icontexcoords = {1, 0, 0, 1}, }, + + {type = "breakline"}, + {type = "label", get = function() return "Window Area Border" end, text_template = subSectionTitleTextTemplate}, + + {--show full border ~border + type = "toggle", + get = function() return currentInstance.fullborder_shown end, + set = function (self, fixedparam, value) + editInstanceSetting(currentInstance, "UpdateFullBorder", value) + afterUpdate() + end, + name = "Show Border", + desc = "Show Border", + }, + + {--full border color + type = "color", + get = function() + return {unpack(currentInstance.fullborder_color)} + end, + set = function (self, r, g, b, a) + editInstanceSetting(currentInstance, "UpdateFullBorder", nil, {r, g, b, a}) + afterUpdate() + end, + name = "Border Color", + desc = "Border Color", + }, + + {--border size + type = "range", + get = function() return tonumber(currentInstance.fullborder_size) end, + set = function (self, fixedparam, value) + editInstanceSetting(currentInstance, "UpdateFullBorder", nil, nil, value) + afterUpdate() + end, + min = 0, + max = 5, + step = 0.5, + usedecimals = true, + name = "Border Thickness", + desc = "Border Thickness", + }, + + {type = "blank"}, + {type = "label", get = function() return "Row's Area Border" end, text_template = subSectionTitleTextTemplate}, + + {--show full border ~border + type = "toggle", + get = function() return currentInstance.rowareaborder_shown end, + set = function (self, fixedparam, value) + editInstanceSetting(currentInstance, "UpdateRowAreaBorder", value) + afterUpdate() + end, + name = "Show Border", + desc = "Show Border", + }, + + {--full border color + type = "color", + get = function() + return {unpack(currentInstance.rowareaborder_color)} + end, + set = function (self, r, g, b, a) + editInstanceSetting(currentInstance, "UpdateRowAreaBorder", nil, {r, g, b, a}) + afterUpdate() + end, + name = "Border Color", + desc = "Border Color", + }, + + {--border size + type = "range", + get = function() return tonumber(currentInstance.rowareaborder_size) end, + set = function (self, fixedparam, value) + editInstanceSetting(currentInstance, "UpdateRowAreaBorder", nil, nil, value) + afterUpdate() + end, + min = 0, + max = 5, + step = 0.5, + usedecimals = true, + name = "Border Thickness", + desc = "Border Thickness", + }, } sectionFrame.sectionOptions = sectionOptions