local L = BAGSYNC_L local currentPlayer = UnitName('player') local currentRealm = GetRealmName() local bgProfiles = CreateFrame("Frame","BagSync_ProfilesFrame", UIParent) bgProfiles:SetFrameStrata("HIGH") bgProfiles:SetToplevel(true) bgProfiles:EnableMouse(true) bgProfiles:SetMovable(true) bgProfiles:SetClampedToScreen(true) bgProfiles:SetWidth(280) bgProfiles:SetHeight(150) bgProfiles:SetBackdrop({ bgFile = "Interface/Tooltips/UI-Tooltip-Background", edgeFile = "Interface/Tooltips/UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 32, insets = { left = 5, right = 5, top = 5, bottom = 5 } }) bgProfiles:SetBackdropColor(0,0,0,1) bgProfiles:SetPoint("CENTER", UIParent, "CENTER", 0, 0) local addonTitle = bgProfiles:CreateFontString(nil, "BACKGROUND", "GameFontNormal") addonTitle:SetPoint("CENTER", bgProfiles, "TOP", 0, -20) addonTitle:SetText("|cFF99CC33BagSync|r |cFFFFFFFF("..L["Profiles"]..")|r") local closeButton = CreateFrame("Button", nil, bgProfiles, "UIPanelCloseButton"); closeButton:SetPoint("TOPRIGHT", bgProfiles, -15, -8); bgProfiles.deleteButton = CreateFrame("Button", nil, bgProfiles, "UIPanelButtonTemplate"); bgProfiles.deleteButton:SetPoint("BOTTOM", bgProfiles, "BOTTOM", -70, 20); bgProfiles.deleteButton:SetHeight(21); bgProfiles.deleteButton:SetWidth(100); bgProfiles.deleteButton:SetText(L["Delete"]); bgProfiles.deleteButton:SetScript("OnClick", function() BagSync_ProfilesFrame.confirmButton:Enable() end) bgProfiles.confirmButton = CreateFrame("Button", nil, bgProfiles, "UIPanelButtonTemplate"); bgProfiles.confirmButton:SetPoint("BOTTOM", bgProfiles, "BOTTOM", 70, 20); bgProfiles.confirmButton:SetHeight(21); bgProfiles.confirmButton:SetWidth(100); bgProfiles.confirmButton:SetText(L["Confirm"]); bgProfiles.confirmButton:Disable() bgProfiles.confirmButton:SetScript("OnClick", function() local name = BagSync_ProfilesFrame.DDText:GetText() if name and BagSyncDB and BagSyncDB[currentRealm] and BagSyncDB[currentRealm][name] then BagSyncDB[currentRealm][name] = nil BagSyncOpt.delName = name BagSync:FixDB_Data() BagSync_ProfilesFrame:Hide() ReloadUI() else print("BagSync: Error user not found to delete!") end BagSync_ProfilesFrame.confirmButton:Disable() end) bgProfiles:SetScript("OnShow", function(self) self:LoadProfiles() end) bgProfiles:SetScript("OnHide", function(self) GameTooltip:Hide() end) bgProfiles:SetScript("OnMouseDown", function(frame, button) if frame:IsMovable() then frame.isMoving = true frame:StartMoving() end end) bgProfiles:SetScript("OnMouseUp", function(frame, button) if( frame.isMoving ) then frame.isMoving = nil frame:StopMovingOrSizing() end end) function bgProfiles:LoadProfiles() if not BagSync or not BagSyncDB then return end if not BagSyncDB[currentRealm] then return end local profile_DD, profile_DD_text, profile_DD_container, profile_DD_label = LibStub("tekKonfig-Dropdown").new(bgProfiles, L["Profiles"], "CENTER", bgProfiles, "CENTER", -25, 0) profile_DD_container:SetHeight(28) profile_DD:SetWidth(180) profile_DD:ClearAllPoints() profile_DD:SetPoint("LEFT", profile_DD_label, "RIGHT", -8, -2) profile_DD_text:SetText(' ') profile_DD.tiptext = L["Select a profile to delete.\nNOTE: This is irreversible!"] bgProfiles.DDText = profile_DD_text local function OnClick(self) profile_DD_text:SetText(self.value) GameTooltip:Hide() end local tmp = {} local tmp2 = {} UIDropDownMenu_Initialize(profile_DD, function() local info = UIDropDownMenu_CreateInfo() info.func = OnClick for k, v in pairs(BagSyncDB[currentRealm]) do --show everyone but current player if k ~= currentPlayer and not tmp2[k] then table.insert(tmp, k) tmp2[k] = k end end table.sort(tmp, function(a,b) return (a < b) end) for i=1, #tmp do info.text = tmp[i] info.value = tmp[i] info.notCheckable = true UIDropDownMenu_AddButton(info) end end) end bgProfiles:Hide()