From cfb359660829c87af2d9bf9564e36de84b43f251 Mon Sep 17 00:00:00 2001 From: Elitesparkle Date: Sat, 30 Mar 2024 11:04:18 +0100 Subject: [PATCH 1/2] Update Windows Grouping Add a gap when grouping windows horizontally. --- classes/class_instance.lua | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/classes/class_instance.lua b/classes/class_instance.lua index 6d150aa0..2753a171 100644 --- a/classes/class_instance.lua +++ b/classes/class_instance.lua @@ -32,6 +32,8 @@ local modo_all = Details._detalhes_props["MODO_ALL"] local atributos = Details.atributos local sub_atributos = Details.sub_atributos +local grouped_windows_horizontal_gap = 4 + --STARTUP reativa as instancias e regenera as tabelas das mesmas function Details:RestartInstances() return Details:ReativarInstancias() @@ -1413,7 +1415,7 @@ function Details:BaseFrameSnap() if (instancia_alvo) then if (instancia_alvo.ativa and instancia_alvo.baseframe) then if (lado == 1) then --a esquerda - instancia_alvo.baseframe:SetPoint("TOPRIGHT", my_baseframe, "TOPLEFT") + instancia_alvo.baseframe:SetPoint("TOPRIGHT", my_baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) elseif (lado == 2) then --em baixo local statusbar_y_mod = 0 @@ -1423,7 +1425,7 @@ function Details:BaseFrameSnap() instancia_alvo.baseframe:SetPoint("TOPLEFT", my_baseframe, "BOTTOMLEFT", 0, -34 + statusbar_y_mod) elseif (lado == 3) then --a direita - instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", my_baseframe, "BOTTOMRIGHT") + instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", my_baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) elseif (lado == 4) then --em cima local statusbar_y_mod = 0 @@ -1466,7 +1468,7 @@ function Details:BaseFrameSnap() if (instancia_alvo.ativa and instancia_alvo.baseframe) then if (lado_reverso == 1) then --a esquerda - instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT") + instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) elseif (lado_reverso == 2) then --em baixo @@ -1478,7 +1480,7 @@ function Details:BaseFrameSnap() instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "TOPLEFT", 0, 34 + statusbar_y_mod) -- + (statusbar_y_mod*-1) elseif (lado_reverso == 3) then --a direita - instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT") + instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) elseif (lado_reverso == 4) then --em cima @@ -1505,7 +1507,7 @@ function Details:BaseFrameSnap() if (instancia_alvo.ativa and instancia_alvo.baseframe) then if (lado == 1) then --a esquerda - instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT") + instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) elseif (lado == 2) then --em baixo local statusbar_y_mod = 0 @@ -1515,7 +1517,7 @@ function Details:BaseFrameSnap() instancia_alvo.baseframe:SetPoint("TOPLEFT", instancia.baseframe, "BOTTOMLEFT", 0, -34 + statusbar_y_mod) elseif (lado == 3) then --a direita - instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT") + instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) elseif (lado == 4) then --em cima @@ -1547,9 +1549,9 @@ function Details:agrupar_janelas(lados) if (lado == 3) then --direita --mover frame - instancia.baseframe:SetPoint("TOPRIGHT", esta_instancia.baseframe, "TOPLEFT") - instancia.baseframe:SetPoint("RIGHT", esta_instancia.baseframe, "LEFT") - instancia.baseframe:SetPoint("BOTTOMRIGHT", esta_instancia.baseframe, "BOTTOMLEFT") + instancia.baseframe:SetPoint("TOPRIGHT", esta_instancia.baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) + instancia.baseframe:SetPoint("RIGHT", esta_instancia.baseframe, "LEFT", -grouped_windows_horizontal_gap, 0) + instancia.baseframe:SetPoint("BOTTOMRIGHT", esta_instancia.baseframe, "BOTTOMLEFT", -grouped_windows_horizontal_gap, 0) local _, height = esta_instancia:GetSize() instancia:SetSize(nil, height) @@ -1580,9 +1582,9 @@ function Details:agrupar_janelas(lados) elseif (lado == 1) then --esquerda --mover frame - instancia.baseframe:SetPoint("TOPLEFT", esta_instancia.baseframe, "TOPRIGHT") - instancia.baseframe:SetPoint("LEFT", esta_instancia.baseframe, "RIGHT") - instancia.baseframe:SetPoint("BOTTOMLEFT", esta_instancia.baseframe, "BOTTOMRIGHT") + instancia.baseframe:SetPoint("TOPLEFT", esta_instancia.baseframe, "TOPRIGHT", grouped_windows_horizontal_gap, 0) + instancia.baseframe:SetPoint("LEFT", esta_instancia.baseframe, "RIGHT", grouped_windows_horizontal_gap, 0) + instancia.baseframe:SetPoint("BOTTOMLEFT", esta_instancia.baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) local _, height = esta_instancia:GetSize() instancia:SetSize(nil, height) From 03a1efe4ba4a5097e0332c62dd07968dac3e7d59 Mon Sep 17 00:00:00 2001 From: Elitesparkle Date: Sat, 30 Mar 2024 13:33:19 +0100 Subject: [PATCH 2/2] Add Grouping Options Add options to change the horizontal gap between grouped windows. --- classes/class_instance.lua | 26 ++++++++++++-------------- frames/window_options2_sections.lua | 17 +++++++++++++++++ functions/profiles.lua | 4 +--- locales/Details-enUS.lua | 2 ++ 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/classes/class_instance.lua b/classes/class_instance.lua index 2753a171..99f4523f 100644 --- a/classes/class_instance.lua +++ b/classes/class_instance.lua @@ -32,8 +32,6 @@ local modo_all = Details._detalhes_props["MODO_ALL"] local atributos = Details.atributos local sub_atributos = Details.sub_atributos -local grouped_windows_horizontal_gap = 4 - --STARTUP reativa as instancias e regenera as tabelas das mesmas function Details:RestartInstances() return Details:ReativarInstancias() @@ -1415,7 +1413,7 @@ function Details:BaseFrameSnap() if (instancia_alvo) then if (instancia_alvo.ativa and instancia_alvo.baseframe) then if (lado == 1) then --a esquerda - instancia_alvo.baseframe:SetPoint("TOPRIGHT", my_baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) + instancia_alvo.baseframe:SetPoint("TOPRIGHT", my_baseframe, "TOPLEFT", -Details.grouping_horizontal_gap, 0) elseif (lado == 2) then --em baixo local statusbar_y_mod = 0 @@ -1425,7 +1423,7 @@ function Details:BaseFrameSnap() instancia_alvo.baseframe:SetPoint("TOPLEFT", my_baseframe, "BOTTOMLEFT", 0, -34 + statusbar_y_mod) elseif (lado == 3) then --a direita - instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", my_baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) + instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", my_baseframe, "BOTTOMRIGHT", Details.grouping_horizontal_gap, 0) elseif (lado == 4) then --em cima local statusbar_y_mod = 0 @@ -1468,7 +1466,7 @@ function Details:BaseFrameSnap() if (instancia_alvo.ativa and instancia_alvo.baseframe) then if (lado_reverso == 1) then --a esquerda - instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) + instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT", Details.grouping_horizontal_gap, 0) elseif (lado_reverso == 2) then --em baixo @@ -1480,7 +1478,7 @@ function Details:BaseFrameSnap() instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "TOPLEFT", 0, 34 + statusbar_y_mod) -- + (statusbar_y_mod*-1) elseif (lado_reverso == 3) then --a direita - instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) + instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT", -Details.grouping_horizontal_gap, 0) elseif (lado_reverso == 4) then --em cima @@ -1507,7 +1505,7 @@ function Details:BaseFrameSnap() if (instancia_alvo.ativa and instancia_alvo.baseframe) then if (lado == 1) then --a esquerda - instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) + instancia_alvo.baseframe:SetPoint("TOPRIGHT", instancia.baseframe, "TOPLEFT", -Details.grouping_horizontal_gap, 0) elseif (lado == 2) then --em baixo local statusbar_y_mod = 0 @@ -1517,7 +1515,7 @@ function Details:BaseFrameSnap() instancia_alvo.baseframe:SetPoint("TOPLEFT", instancia.baseframe, "BOTTOMLEFT", 0, -34 + statusbar_y_mod) elseif (lado == 3) then --a direita - instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) + instancia_alvo.baseframe:SetPoint("BOTTOMLEFT", instancia.baseframe, "BOTTOMRIGHT", Details.grouping_horizontal_gap, 0) elseif (lado == 4) then --em cima @@ -1549,9 +1547,9 @@ function Details:agrupar_janelas(lados) if (lado == 3) then --direita --mover frame - instancia.baseframe:SetPoint("TOPRIGHT", esta_instancia.baseframe, "TOPLEFT", -grouped_windows_horizontal_gap, 0) - instancia.baseframe:SetPoint("RIGHT", esta_instancia.baseframe, "LEFT", -grouped_windows_horizontal_gap, 0) - instancia.baseframe:SetPoint("BOTTOMRIGHT", esta_instancia.baseframe, "BOTTOMLEFT", -grouped_windows_horizontal_gap, 0) + instancia.baseframe:SetPoint("TOPRIGHT", esta_instancia.baseframe, "TOPLEFT", -Details.grouping_horizontal_gap, 0) + instancia.baseframe:SetPoint("RIGHT", esta_instancia.baseframe, "LEFT", -Details.grouping_horizontal_gap, 0) + instancia.baseframe:SetPoint("BOTTOMRIGHT", esta_instancia.baseframe, "BOTTOMLEFT", -Details.grouping_horizontal_gap, 0) local _, height = esta_instancia:GetSize() instancia:SetSize(nil, height) @@ -1582,9 +1580,9 @@ function Details:agrupar_janelas(lados) elseif (lado == 1) then --esquerda --mover frame - instancia.baseframe:SetPoint("TOPLEFT", esta_instancia.baseframe, "TOPRIGHT", grouped_windows_horizontal_gap, 0) - instancia.baseframe:SetPoint("LEFT", esta_instancia.baseframe, "RIGHT", grouped_windows_horizontal_gap, 0) - instancia.baseframe:SetPoint("BOTTOMLEFT", esta_instancia.baseframe, "BOTTOMRIGHT", grouped_windows_horizontal_gap, 0) + instancia.baseframe:SetPoint("TOPLEFT", esta_instancia.baseframe, "TOPRIGHT", Details.grouping_horizontal_gap, 0) + instancia.baseframe:SetPoint("LEFT", esta_instancia.baseframe, "RIGHT", Details.grouping_horizontal_gap, 0) + instancia.baseframe:SetPoint("BOTTOMLEFT", esta_instancia.baseframe, "BOTTOMRIGHT", Details.grouping_horizontal_gap, 0) local _, height = esta_instancia:GetSize() instancia:SetSize(nil, height) diff --git a/frames/window_options2_sections.lua b/frames/window_options2_sections.lua index 17a19e17..cb7f795b 100644 --- a/frames/window_options2_sections.lua +++ b/frames/window_options2_sections.lua @@ -2917,6 +2917,23 @@ do }, {type = "blank"}, + {--grouped windows horizontal gap + type = "range", + get = function() return tonumber(Details.grouping_horizontal_gap) end, + set = function(self, fixedparam, value) + Details.grouping_horizontal_gap = value + currentInstance:BaseFrameSnap() + afterUpdate() + end, + min = 0, + max = 20, + usedecimals = true, + step = 0.5, + name = Loc ["STRING_OPTIONS_GROUPING_HORIZONTAL_GAP"], + desc = Loc ["STRING_OPTIONS_GROUPING_HORIZONTAL_GAP_DESC"], + thumbscale = 2.2, + }, + {--disable grouping type = "toggle", get = function() return Details.disable_window_groups end, diff --git a/functions/profiles.lua b/functions/profiles.lua index 7bacf53c..167d39a1 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -881,6 +881,7 @@ local default_profile = { max_window_size = {width = 480, height = 450}, new_window_size = {width = 310, height = 158}, window_clamp = {-8, 0, 21, -14}, + grouping_horizontal_gap = 0, disable_window_groups = false, disable_reset_button = false, disable_lock_ungroup_buttons = false, @@ -2145,6 +2146,3 @@ function Details.ShowImportProfileConfirmation(message, callback) Details.profileConfirmationDialog.button_true.true_function = callback Details.profileConfirmationDialog.textbox:SetFocus(true) end - - - diff --git a/locales/Details-enUS.lua b/locales/Details-enUS.lua index 84019cd1..cc9bcbc1 100644 --- a/locales/Details-enUS.lua +++ b/locales/Details-enUS.lua @@ -679,6 +679,8 @@ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "Disable 'All Displays' Menu" L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "If enabled, right clicking on title bar shows your bookmark instead." L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "Disable Bar Highlight" L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "Hovering over a bar won't make it brighter." +L["STRING_OPTIONS_GROUPING_HORIZONTAL_GAP"] = "Grouping Horizontal Gap" +L["STRING_OPTIONS_GROUPING_HORIZONTAL_GAP_DESC"] = "Change the horizontal gap between grouped windows." L["STRING_OPTIONS_DISABLE_GROUPS"] = "Disable Grouping" L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "Windows won't make groups anymore when placed near each other." L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "Disable Resize Buttons"