From cd7642da09523a9f55fe5c14de132dbf12dc141c Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 25 Apr 2018 04:17:29 +0300 Subject: [PATCH] bags: initial draft of movable bags --- api/config.lua | 4 ++++ env/translations_deDE.lua | 2 ++ env/translations_enUS.lua | 2 ++ env/translations_esES.lua | 2 ++ env/translations_frFR.lua | 2 ++ env/translations_koKR.lua | 2 ++ env/translations_ruRU.lua | 2 ++ env/translations_zhCN.lua | 2 ++ env/translations_zhTW.lua | 2 ++ modules/bags.lua | 44 ++++++++++++++++++++++++++++++++++----- modules/gui.lua | 4 ++++ modules/tooltip.lua | 2 +- 12 files changed, 64 insertions(+), 6 deletions(-) diff --git a/api/config.lua b/api/config.lua index a153700b..b8fa0fa1 100644 --- a/api/config.lua +++ b/api/config.lua @@ -81,6 +81,10 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("appearance", "infight", "screen", "0") pfUI:UpdateConfig("appearance", "bags", "borderlimit", "1") pfUI:UpdateConfig("appearance", "bags", "borderonlygear", "0") + pfUI:UpdateConfig("appearance", "bags", "movable", "0") + pfUI:UpdateConfig("appearance", "bags", "icon_size", "22") + pfUI:UpdateConfig("appearance", "bags", "bagrowlength", "11") + pfUI:UpdateConfig("appearance", "bags", "bankrowlength", "11") pfUI:UpdateConfig("appearance", "minimap", "mouseoverzone", "0") pfUI:UpdateConfig("appearance", "minimap", "coordsloc", "bottomleft") pfUI:UpdateConfig("appearance", "minimap", "tracking_size", "16") diff --git a/env/translations_deDE.lua b/env/translations_deDE.lua index cedf3f6c..b617dda0 100644 --- a/env/translations_deDE.lua +++ b/env/translations_deDE.lua @@ -256,6 +256,8 @@ pfUI_translation["deDE"] = { ["Invert Health Bar"] = nil, ["is not allowed in profile name"] = nil, ["Item Durability"] = nil, + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = nil, ["KLH Threat Meter (Skin)"] = nil, ["Language"] = nil, diff --git a/env/translations_enUS.lua b/env/translations_enUS.lua index 4b29184c..aa183b11 100644 --- a/env/translations_enUS.lua +++ b/env/translations_enUS.lua @@ -256,6 +256,8 @@ pfUI_translation["enUS"] = { ["Invert Health Bar"] = nil, ["is not allowed in profile name"] = nil, ["Item Durability"] = nil, + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = nil, ["KLH Threat Meter (Skin)"] = nil, ["Language"] = nil, diff --git a/env/translations_esES.lua b/env/translations_esES.lua index 99c92585..6a7d4f6c 100644 --- a/env/translations_esES.lua +++ b/env/translations_esES.lua @@ -256,6 +256,8 @@ pfUI_translation["esES"] = { ["Invert Health Bar"] = "Invertir la Barra de Salud", ["is not allowed in profile name"] = "no se permite en el nombe de perfil", ["Item Durability"] = "Durabilidad del Objeto", + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = "KLH Threat Meter (Dársena)", ["KLH Threat Meter (Skin)"] = "KLH Threat Meter (Piel)", ["Language"] = "Idioma", diff --git a/env/translations_frFR.lua b/env/translations_frFR.lua index 0f8efb15..5932ec0b 100644 --- a/env/translations_frFR.lua +++ b/env/translations_frFR.lua @@ -256,6 +256,8 @@ pfUI_translation["frFR"] = { ["Invert Health Bar"] = "Inverser les barres de vie", ["is not allowed in profile name"] = "n'est pas autorisé comme nom de profil", ["Item Durability"] = "Durabilité des objets", + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = "KLH Threat Meter (Accroche)", ["KLH Threat Meter (Skin)"] = "KLH Threat Meter (Apparence)", ["Language"] = "Langage", diff --git a/env/translations_koKR.lua b/env/translations_koKR.lua index b06c7ff9..74cee78e 100644 --- a/env/translations_koKR.lua +++ b/env/translations_koKR.lua @@ -256,6 +256,8 @@ pfUI_translation["koKR"] = { ["Invert Health Bar"] = "체력바 반전", ["is not allowed in profile name"] = "프로필 이름에 허용되지 않습니다.", ["Item Durability"] = "아이템 내구도", + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = "KLH 어그로 미터기 (독)", ["KLH Threat Meter (Skin)"] = "KLH 어그로 미터기 (스킨)", ["Language"] = "언어 선택", diff --git a/env/translations_ruRU.lua b/env/translations_ruRU.lua index 07419432..c12c01b2 100644 --- a/env/translations_ruRU.lua +++ b/env/translations_ruRU.lua @@ -256,6 +256,8 @@ pfUI_translation["ruRU"] = { ["Invert Health Bar"] = "Инвертировать панель здоровья", ["is not allowed in profile name"] = "не разрешено в имени профиля", ["Item Durability"] = "Прочность предметов", + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = "KLH Threat Meter (панель)", ["KLH Threat Meter (Skin)"] = "KLH Threat Meter (оболочка)", ["Language"] = "Язык", diff --git a/env/translations_zhCN.lua b/env/translations_zhCN.lua index 26669c12..4e53611e 100644 --- a/env/translations_zhCN.lua +++ b/env/translations_zhCN.lua @@ -256,6 +256,8 @@ pfUI_translation["zhCN"] = { ["Invert Health Bar"] = "血量反色显示", ["is not allowed in profile name"] = "在配置文件名中不允许", ["Item Durability"] = "装备耐久", + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = "KLH Threat Meter (停靠)", ["KLH Threat Meter (Skin)"] = "KLH Threat Meter (皮肤)", ["Language"] = "语言", diff --git a/env/translations_zhTW.lua b/env/translations_zhTW.lua index 374627f0..ca5c16cd 100644 --- a/env/translations_zhTW.lua +++ b/env/translations_zhTW.lua @@ -256,6 +256,8 @@ pfUI_translation["zhTW"] = { ["Invert Health Bar"] = "血量反色顯示", ["is not allowed in profile name"] = "在設定檔名中不允許", ["Item Durability"] = "裝備耐久", + ["Items in a row (bag)"] = nil, + ["Items in a row (bank)"] = nil, ["KLH Threat Meter (Dock)"] = "KLH Threat Meter (停靠)", ["KLH Threat Meter (Skin)"] = "KLH Threat Meter (皮膚)", ["Language"] = "語言", diff --git a/modules/bags.lua b/modules/bags.lua index f791d0cd..fab51712 100644 --- a/modules/bags.lua +++ b/modules/bags.lua @@ -169,10 +169,25 @@ pfUI:RegisterModule("bags", function () local y = 0 local frame = {} local iterate = {} + -- default length with fixed windows + local rowlength = 11 if object == "bank" then if not pfUI.bag.left then pfUI.bag.left = CreateFrame("Frame", "pfBank", UIParent) end - if pfUI.chat then + if C.appearance.bags.movable == "1" then + rowlength = C.appearance.bags.bankrowlength + pfUI.bag.left:SetWidth((C.appearance.bags.icon_size + default_border*3) * rowlength - default_border) + -- avoiding stretching. 0.5 because math rounding + local horizontalmargin = GetScreenWidth()/2 - pfUI.bag.left:GetWidth()/2 - 4.5 - default_border + local verticalmargin = GetScreenHeight()/2 - pfUI.bag.left:GetHeight()/2 - 4.5 - default_border + pfUI.bag.left:SetPoint("CENTER", UIParent, -horizontalmargin, -verticalmargin) + + pfUI.bag.left:SetMovable(1) + pfUI.bag.left:SetUserPlaced(1) + pfUI.bag.left:RegisterForDrag("LeftButton") + pfUI.bag.left:SetScript("OnDragStart", function() this:StartMoving() end) + pfUI.bag.left:SetScript("OnDragStop", function() this:StopMovingOrSizing() end) + elseif pfUI.chat then pfUI.bag.left:SetPoint("BOTTOMLEFT", pfUI.chat.left, "BOTTOMLEFT", 0, 0) pfUI.bag.left:SetPoint("BOTTOMRIGHT", pfUI.chat.left, "BOTTOMRIGHT", 0, 0) pfUI.bag.left:SetWidth(C.chat.left.width * pfUI.chat.left:GetScale()) @@ -180,12 +195,26 @@ pfUI:RegisterModule("bags", function () pfUI.bag.left:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", 5, 5) pfUI.bag.left:SetWidth(C.chat.left.width) end + pfUI.bag.left:EnableMouse(1) iterate = pfUI.BANK frame = pfUI.bag.left else if not pfUI.bag.right then pfUI.bag.right = CreateFrame("Frame", "pfBag", UIParent) end - if pfUI.chat then + if C.appearance.bags.movable == "1" then + rowlength = C.appearance.bags.bagrowlength + pfUI.bag.right:SetWidth((C.appearance.bags.icon_size + default_border*3) * rowlength - default_border) + -- avoiding stretching. 0.5 because math rounding + local horizontalmargin = GetScreenWidth()/2 - pfUI.bag.right:GetWidth()/2 - 4.5 - default_border + local verticalmargin = GetScreenHeight()/2 - pfUI.bag.right:GetHeight()/2 - 4.5 - default_border + pfUI.bag.right:SetPoint("CENTER", UIParent, horizontalmargin, -verticalmargin) + + pfUI.bag.right:SetMovable(1) + pfUI.bag.right:SetUserPlaced(1) + pfUI.bag.right:RegisterForDrag("LeftButton") + pfUI.bag.right:SetScript("OnDragStart", function() this:StartMoving() end) + pfUI.bag.right:SetScript("OnDragStop", function() this:StopMovingOrSizing() end) + elseif pfUI.chat then pfUI.bag.right:SetPoint("BOTTOMLEFT", pfUI.chat.right, "BOTTOMLEFT", 0, 0) pfUI.bag.right:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, 0) pfUI.bag.right:SetWidth(C.chat.right.width * pfUI.chat.right:GetScale()) @@ -193,18 +222,22 @@ pfUI:RegisterModule("bags", function () pfUI.bag.right:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", -5, 5) pfUI.bag.right:SetWidth(C.chat.right.width) end + pfUI.bag.right:EnableMouse(1) iterate = pfUI.BACKPACK frame = pfUI.bag.right end pfUI.bag:CreateAdditions(frame) - frame:SetFrameStrata("HIGH") CreateBackdrop(frame, default_border) - pfUI.bag.button_size = (frame:GetWidth() - 2*default_border - 9*default_border*3)/ 10 local topspace = pfUI.bag.right.close:GetHeight() + default_border * 2 + if C.appearance.bags.movable == "1" then + pfUI.bag.button_size = C.appearance.bags.icon_size + else + pfUI.bag.button_size = (frame:GetWidth() - 2*default_border - (rowlength-1)*default_border*3)/ rowlength + end for id, bag in pairs(iterate) do if not pfUI.bags[bag] then @@ -222,10 +255,11 @@ pfUI:RegisterModule("bags", function () pfUI.bags[bag].slots[slot].frame:SetPoint("TOPLEFT", default_border + x*(pfUI.bag.button_size+default_border*3), -default_border*2 - y*(pfUI.bag.button_size+default_border*3) - topspace) + pfUI.bags[bag].slots[slot].frame:SetHeight(pfUI.bag.button_size) pfUI.bags[bag].slots[slot].frame:SetWidth(pfUI.bag.button_size) - if x >= 9 then + if x >= rowlength - 1 then y = y + 1 x = 0 else diff --git a/modules/gui.lua b/modules/gui.lua index c56fcaac..47cb438f 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -918,6 +918,10 @@ pfUI:RegisterModule("gui", function () if not this.setup then CreateConfig(nil, this, T["Disable Item Quality Color For \"Common\" Items"], C.appearance.bags, "borderlimit", "checkbox") CreateConfig(nil, this, T["Enable Item Quality Color For Equipment Only"], C.appearance.bags, "borderonlygear", "checkbox") + CreateConfig(nil, this, T["Enable Movable Bags"], C.appearance.bags, "movable", "checkbox") + CreateConfig(nil, this, T["Icon Size"], C.appearance.bags, "icon_size") + CreateConfig(nil, this, T["Bagslots Per Row"], C.appearance.bags, "bagrowlength") + CreateConfig(nil, this, T["Bankslots Per Row"], C.appearance.bags, "bankrowlength") CreateConfig(nil, this, T["Auto Sell Grey Items"], C.global, "autosell", "checkbox") CreateConfig(nil, this, T["Auto Repair Items"], C.global, "autorepair", "checkbox") this.setup = true diff --git a/modules/tooltip.lua b/modules/tooltip.lua index 8c17a6e5..0a28ed67 100644 --- a/modules/tooltip.lua +++ b/modules/tooltip.lua @@ -87,7 +87,7 @@ pfUI:RegisterModule("tooltip", function () anchor = pfUI.chat.right end - if pfUI.bag and pfUI.bag.right and pfUI.bag.right:IsShown() then + if pfUI.bag and pfUI.bag.right and pfUI.bag.right:IsShown() and C.appearance.bags.movable == "0" then anchor = pfUI.bag.right end