James D. Callahan III [06-19-10 - 10:46]
diff --git a/Frame.lua b/Frame.lua
index 68a424e..b3b8309 100644
--- a/Frame.lua
+++ b/Frame.lua
@@ -1900,57 +1900,73 @@ MainPanel.xclose_button:SetScript("OnClick",
-------------------------------------------------------------------------------
-- Create MainPanel.filter_toggle, and set its scripts.
-------------------------------------------------------------------------------
-MainPanel.filter_toggle = GenericCreateButton(nil, MainPanel, 25, 65, "GameFontNormalSmall", "GameFontHighlightSmall", L["FILTER_OPEN"], "CENTER", L["FILTER_OPEN_DESC"], 1)
-MainPanel.filter_toggle:SetPoint("TOPRIGHT", WidgetContainer, "TOPRIGHT", -2, -2)
-
-MainPanel.filter_toggle:SetScript("OnClick",
- function(self, button, down)
- if MainPanel.is_expanded then
- -- Change the text and tooltip for the filter button
- self:SetText(L["FILTER_OPEN"])
- SetTooltipScripts(self, L["FILTER_OPEN_DESC"])
-
- -- Hide the category buttons
- for category in pairs(MainPanel.filter_menu) do
- if category ~= 0 and category ~= "texture" then
- MainPanel["menu_toggle_" .. category]:Hide()
- end
- end
- MainPanel.filter_reset:Hide()
- MainPanel.filter_menu:Hide()
- else
- -- Change the text and tooltip for the filter button
- self:SetText(L["FILTER_CLOSE"])
- SetTooltipScripts(self, L["FILTER_CLOSE_DESC"])
-
- local found_active = false
-
- -- Show the category buttons. If one has been selected, show its information in the panel.
- for category in pairs(MainPanel.filter_menu) do
- local toggle = "menu_toggle_" .. category
-
- if category ~= 0 and category ~= "texture" then
- MainPanel[toggle]:Show()
-
- if MainPanel[toggle]:GetChecked() then
- found_active = true
- MainPanel.filter_menu[category]:Show()
- MainPanel.filter_menu:Show()
- end
- end
- end
+do
+ local VALID_CATEGORY = {
+ ["general"] = true,
+ ["obtain"] = true,
+ ["binding"] = true,
+ ["item"] = true,
+ ["quality"] = true,
+ ["player"] = true,
+ ["rep"] = true,
+ ["misc"] = true,
+ }
- -- If nothing was checked, default to the general filters.
- if not found_active then
- MainPanel.menu_toggle_general:SetChecked(true)
- MainPanel.filter_menu.general:Show()
- MainPanel.filter_menu:Show()
- end
- MainPanel.filter_reset:Show()
- end
- MainPanel:ToggleState()
- end)
+ local function Toggle_OnClick(self, button, down)
+ if MainPanel.is_expanded then
+ -- Change the text and tooltip for the filter button
+ self:SetText(L["FILTER_OPEN"])
+ SetTooltipScripts(self, L["FILTER_OPEN_DESC"])
+ -- Hide the category buttons
+ for category in pairs(MainPanel.filter_menu) do
+ if category ~= 0 and category ~= "texture" then
+ MainPanel["menu_toggle_" .. category]:Hide()
+ end
+ end
+ MainPanel.filter_reset:Hide()
+ MainPanel.filter_menu:Hide()
+ else
+ -- Change the text and tooltip for the filter button
+ self:SetText(L["FILTER_CLOSE"])
+ SetTooltipScripts(self, L["FILTER_CLOSE_DESC"])
+
+ local found_active = false
+
+ -- Show the category buttons. If one has been selected, show its information in the panel.
+ for category in pairs(MainPanel.filter_menu) do
+ local toggle = "menu_toggle_" .. category
+
+ if VALID_CATEGORY[category] then
+ MainPanel[toggle]:Show()
+
+ if MainPanel[toggle]:GetChecked() then
+ found_active = true
+ MainPanel.filter_menu[category]:Show()
+ MainPanel.filter_menu:Show()
+ end
+ end
+ end
+
+ -- If nothing was checked, default to the general filters.
+ if not found_active then
+ MainPanel.menu_toggle_general:SetChecked(true)
+ MainPanel.filter_menu.general:Show()
+ MainPanel.filter_menu:Show()
+ end
+ MainPanel.filter_reset:Show()
+ end
+ MainPanel:ToggleState()
+ end
+
+ local filter_toggle = GenericCreateButton(nil, MainPanel, 25, 65, "GameFontNormalSmall", "GameFontHighlightSmall", L["FILTER_OPEN"], "CENTER", L["FILTER_OPEN_DESC"], 1)
+ filter_toggle:SetPoint("TOPRIGHT", WidgetContainer, "TOPRIGHT", -2, -2)
+
+ filter_toggle:SetScript("OnClick", Toggle_OnClick)
+
+
+ MainPanel.filter_toggle = filter_toggle
+end -- do-block
-------------------------------------------------------------------------------
-- Create MainPanel.filter_reset and set its scripts.
-------------------------------------------------------------------------------
@@ -2008,158 +2024,11 @@ do
end -- do
-------------------------------------------------------------------------------
--- Create the seven buttons for opening/closing the filter menus
--------------------------------------------------------------------------------
-local CreateFilterMenuButton
-do
- local CATEGORY_TOOLTIP = {
- ["general"] = L["FILTERING_GENERAL_DESC"],
- ["obtain"] = L["FILTERING_OBTAIN_DESC"],
- ["binding"] = L["FILTERING_BINDING_DESC"],
- ["item"] = L["FILTERING_ITEM_DESC"],
- ["quality"] = L["FILTERING_QUALITY_DESC"],
- ["player"] = L["FILTERING_PLAYERTYPE_DESC"],
- ["rep"] = L["FILTERING_REP_DESC"],
- ["misc"] = L["FILTERING_MISC_DESC"]
- }
-
- -- This manages the filter menu panel, as well as checking or unchecking the
- -- buttons that got us here in the first place
- local function ToggleFilterMenu(panel)
- local ChangeFilters = false
-
- MainPanel.filter_menu.rep.Classic:Hide()
- MainPanel.filter_menu.rep.BC:Hide()
- MainPanel.filter_menu.rep.LK:Hide()
-
- MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
-
- local toggle = "menu_toggle_" .. panel
-
- if not MainPanel[toggle]:GetChecked() then
- -- Display the selected filter_menu category frame
- MainPanel[toggle]:SetChecked(true)
- MainPanel.filter_menu[panel]:Show()
-
- -- Hide all of the other filter_menu category frames, and un-check them as well.
- for category in pairs(MainPanel.filter_menu) do
- if category ~= panel and category ~= 0 and category ~= "texture" then
- local tog = "menu_toggle_" .. category
-
- MainPanel[tog]:SetChecked(false)
- MainPanel.filter_menu[category]:Hide()
- end
- end
- ChangeFilters = true
- else
- MainPanel[toggle]:SetChecked(false)
- ChangeFilters = false
- end
-
- if ChangeFilters then
- -- Change the filters to the current panel
- MainPanel.filter_menu:Show()
- else
- MainPanel.filter_menu:Hide()
- end
- end
-
- function CreateFilterMenuButton(button_texture, category)
- local button_size = 22
- local cButton = CreateFrame("CheckButton", nil, MainPanel)
-
- cButton:SetWidth(button_size)
- cButton:SetHeight(button_size)
- cButton:SetScript("OnClick",
- function(self, button, down)
- -- The button must be unchecked for ToggleFilterMenu() to work correctly.
- cButton:SetChecked(false)
- ToggleFilterMenu(category)
- end)
-
- local bgTex = cButton:CreateTexture(nil, "BACKGROUND")
- bgTex:SetTexture("Interface/SpellBook/UI-Spellbook-SpellBackground")
- bgTex:SetHeight(button_size + 6)
- bgTex:SetWidth(button_size + 4)
- bgTex:SetTexCoord(0, (43/64), 0, (43/64))
- bgTex:SetPoint("CENTER", cButton, "CENTER", 0, 0)
-
- local iconTex = cButton:CreateTexture(nil, "BORDER")
- iconTex:SetTexture("Interface/Icons/" .. button_texture)
- iconTex:SetAllPoints(cButton)
-
- local pushedTexture = cButton:CreateTexture(nil, "ARTWORK")
- pushedTexture:SetTexture("Interface/Buttons/UI-Quickslot-Depress")
- pushedTexture:SetAllPoints(cButton)
- cButton:SetPushedTexture(pushedTexture)
-
- local highlightTexture = cButton:CreateTexture()
- highlightTexture:SetTexture("Interface/Buttons/ButtonHilight-Square")
- highlightTexture:SetAllPoints(cButton)
- highlightTexture:SetBlendMode("ADD")
- cButton:SetHighlightTexture(highlightTexture)
-
- local checkedTexture = cButton:CreateTexture()
- checkedTexture:SetTexture("Interface/Buttons/CheckButtonHilight")
- checkedTexture:SetAllPoints(cButton)
- checkedTexture:SetBlendMode("ADD")
- cButton:SetCheckedTexture(checkedTexture)
-
- -- And throw up a tooltip
- SetTooltipScripts(cButton, CATEGORY_TOOLTIP[category])
- cButton:Hide()
-
- return cButton
- end
-end -- do
-
-MainPanel.menu_toggle_general = CreateFilterMenuButton("INV_Misc_Note_06", "general")
-MainPanel.menu_toggle_general:SetPoint("LEFT", WidgetContainer, "RIGHT", 5, 0)
-
-MainPanel.menu_toggle_obtain = CreateFilterMenuButton("INV_Misc_Bag_07", "obtain")
-MainPanel.menu_toggle_obtain:SetPoint("LEFT", MainPanel.menu_toggle_general, "RIGHT", 15, 0)
-
-MainPanel.menu_toggle_binding = CreateFilterMenuButton("INV_Belt_20", "binding")
-MainPanel.menu_toggle_binding:SetPoint("LEFT", MainPanel.menu_toggle_obtain, "RIGHT", 15, 0)
-
-MainPanel.menu_toggle_item = CreateFilterMenuButton("INV_Misc_EngGizmos_19", "item")
-MainPanel.menu_toggle_item:SetPoint("LEFT", MainPanel.menu_toggle_binding, "RIGHT", 15, 0)
-
-MainPanel.menu_toggle_quality = CreateFilterMenuButton("INV_Enchant_VoidCrystal", "quality")
-MainPanel.menu_toggle_quality:SetPoint("LEFT", MainPanel.menu_toggle_item, "RIGHT", 15, 0)
-
-MainPanel.menu_toggle_player = CreateFilterMenuButton("INV_Misc_GroupLooking", "player")
-MainPanel.menu_toggle_player:SetPoint("LEFT", MainPanel.menu_toggle_quality, "RIGHT", 15, 0)
-
-MainPanel.menu_toggle_rep = CreateFilterMenuButton("Achievement_Reputation_01", "rep")
-MainPanel.menu_toggle_rep:SetPoint("LEFT", MainPanel.menu_toggle_player, "RIGHT", 15, 0)
-
-MainPanel.menu_toggle_misc = CreateFilterMenuButton("Trade_Engineering", "misc")
-MainPanel.menu_toggle_misc:SetPoint("LEFT", MainPanel.menu_toggle_rep, "RIGHT", 15, 0)
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu = CreateFrame("Frame", "ARL_FilterMenu", MainPanel)
-MainPanel.filter_menu:SetWidth(300)
-MainPanel.filter_menu:SetHeight(FILTERMENU_HEIGHT)
-MainPanel.filter_menu:SetFrameStrata("MEDIUM")
-MainPanel.filter_menu:SetPoint("TOPRIGHT", MainPanel, "TOPRIGHT", -135, -60)
-MainPanel.filter_menu:EnableMouse(true)
-MainPanel.filter_menu:EnableKeyboard(true)
-MainPanel.filter_menu:SetMovable(false)
-MainPanel.filter_menu:SetHitRectInsets(5, 5, 5, 5)
-MainPanel.filter_menu:Hide()
-
-MainPanel.filter_menu:SetScript("OnShow", UpdateFilterMarks)
-
--------------------------------------------------------------------------------
-- Function to create and initialize a check-button with the given values. Used in all of
-- the sub-menus of MainPanel.filter_menu
-------------------------------------------------------------------------------
local CreateCheckButton
+local GenerateCheckBoxes
do
local function CheckButton_OnClick(self, button, down)
local script_val = self.script_val
@@ -2190,539 +2059,16 @@ do
return check
end
-end -- do
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.general, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.general = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.general:SetWidth(FILTERMENU_SMALL)
-MainPanel.filter_menu.general:SetHeight(280)
-MainPanel.filter_menu.general:EnableMouse(true)
-MainPanel.filter_menu.general:EnableKeyboard(true)
-MainPanel.filter_menu.general:SetMovable(false)
-MainPanel.filter_menu.general:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.general:Hide()
-
--------------------------------------------------------------------------------
--- Create the CheckButtons for MainPanel.filter_menu.general
--------------------------------------------------------------------------------
-MainPanel.filter_menu.general.specialty = CreateCheckButton(MainPanel.filter_menu.general, L["SPECIALTY_DESC"], "specialty", 1, 1)
-MainPanel.filter_menu.general.specialty.text:SetText(L["Specialties"])
-
-MainPanel.filter_menu.general.skill = CreateCheckButton(MainPanel.filter_menu.general, L["SKILL_DESC"], "skill", 1, 2)
-MainPanel.filter_menu.general.skill.text:SetText(_G.SKILL)
-
-MainPanel.filter_menu.general.faction = CreateCheckButton(MainPanel.filter_menu.general, L["FACTION_DESC"], "faction", 2, 1)
-MainPanel.filter_menu.general.faction.text:SetText(_G.FACTION)
-
-MainPanel.filter_menu.general.known = CreateCheckButton(MainPanel.filter_menu.general, L["KNOWN_DESC"], "known", 2, 2)
-MainPanel.filter_menu.general.known.text:SetText(L["Show Known"])
-
-MainPanel.filter_menu.general.unknown = CreateCheckButton(MainPanel.filter_menu.general, L["UNKNOWN_DESC"], "unknown", 3, 1)
-MainPanel.filter_menu.general.unknown.text:SetText(_G.UNKNOWN)
-
-MainPanel.filter_menu.general.retired = CreateCheckButton(MainPanel.filter_menu.general, L["RETIRED_DESC"], "retired", 3, 2)
-MainPanel.filter_menu.general.retired.text:SetText(L["Retired"])
-
--------------------------------------------------------------------------------
--- Create the Class toggle and CheckButtons for MainPanel.filter_menu.general
--------------------------------------------------------------------------------
-MainPanel.filter_menu.general.class_toggle = GenericCreateButton(nil, MainPanel.filter_menu.general, 20, 105, "GameFontHighlight", "GameFontHighlightSmall",
- L["Classes"] .. ":", "LEFT", L["CLASS_TEXT_DESC"], 0)
-MainPanel.filter_menu.general.class_toggle:SetPoint("TOPLEFT", MainPanel.filter_menu.general.unknown, "BOTTOMLEFT", -4, -10)
-MainPanel.filter_menu.general.class_toggle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight")
-MainPanel.filter_menu.general.class_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
-MainPanel.filter_menu.general.class_toggle:SetScript("OnClick",
- function(self, button)
- local classes = addon.db.profile.filters.classes
- local general = MainPanel.filter_menu.general
- local toggle = (button == "LeftButton") and true or false
-
- for class in pairs(classes) do
- classes[class] = toggle
- general[class]:SetChecked(toggle)
- end
-
- if toggle == false then
- local class = strlower(Player["Class"])
- classes[class] = true
- general[class]:SetChecked(true)
- end
- MainPanel:UpdateTitle()
- ListFrame:Update(nil, false)
- end)
-
-MainPanel.filter_menu.general.deathknight = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "deathknight", 6, 1)
-MainPanel.filter_menu.general.deathknight.text:SetText(LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"])
-
-MainPanel.filter_menu.general.druid = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "druid", 6, 2)
-MainPanel.filter_menu.general.druid.text:SetText(LOCALIZED_CLASS_NAMES_MALE["DRUID"])
-
-MainPanel.filter_menu.general.hunter = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "hunter", 7, 1)
-MainPanel.filter_menu.general.hunter.text:SetText(LOCALIZED_CLASS_NAMES_MALE["HUNTER"])
-
-MainPanel.filter_menu.general.mage = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "mage", 7, 2)
-MainPanel.filter_menu.general.mage.text:SetText(LOCALIZED_CLASS_NAMES_MALE["MAGE"])
-
-MainPanel.filter_menu.general.paladin = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "paladin", 8, 1)
-MainPanel.filter_menu.general.paladin.text:SetText(LOCALIZED_CLASS_NAMES_MALE["PALADIN"])
-
-MainPanel.filter_menu.general.priest = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "priest", 8, 2)
-MainPanel.filter_menu.general.priest.text:SetText(LOCALIZED_CLASS_NAMES_MALE["PRIEST"])
-
-MainPanel.filter_menu.general.rogue = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "rogue", 9, 1)
-MainPanel.filter_menu.general.rogue.text:SetText(LOCALIZED_CLASS_NAMES_MALE["ROGUE"])
-
-MainPanel.filter_menu.general.shaman = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "shaman", 9, 2)
-MainPanel.filter_menu.general.shaman.text:SetText(LOCALIZED_CLASS_NAMES_MALE["SHAMAN"])
-
-MainPanel.filter_menu.general.warlock = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "warlock", 10, 1)
-MainPanel.filter_menu.general.warlock.text:SetText(LOCALIZED_CLASS_NAMES_MALE["WARLOCK"])
-
-MainPanel.filter_menu.general.warrior = CreateCheckButton(MainPanel.filter_menu.general, L["CLASS_DESC"], "warrior", 10, 2)
-MainPanel.filter_menu.general.warrior.text:SetText(LOCALIZED_CLASS_NAMES_MALE["WARRIOR"])
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.obtain, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.obtain = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.obtain:SetWidth(FILTERMENU_SMALL)
-MainPanel.filter_menu.obtain:SetHeight(280)
-MainPanel.filter_menu.obtain:EnableMouse(true)
-MainPanel.filter_menu.obtain:EnableKeyboard(true)
-MainPanel.filter_menu.obtain:SetMovable(false)
-MainPanel.filter_menu.obtain:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.obtain:Hide()
-
--------------------------------------------------------------------------------
--- Create the CheckButtons for MainPanel.filter_menu.obtain
--------------------------------------------------------------------------------
-MainPanel.filter_menu.obtain.instance = CreateCheckButton(MainPanel.filter_menu.obtain, L["INSTANCE_DESC"], "instance", 1, 1)
-MainPanel.filter_menu.obtain.instance.text:SetText(_G.INSTANCE)
-
-MainPanel.filter_menu.obtain.raid = CreateCheckButton(MainPanel.filter_menu.obtain, L["RAID_DESC"], "raid", 1, 2)
-MainPanel.filter_menu.obtain.raid.text:SetText(_G.RAID)
-
-MainPanel.filter_menu.obtain.quest = CreateCheckButton(MainPanel.filter_menu.obtain, L["QUEST_DESC"], "quest", 2, 1)
-MainPanel.filter_menu.obtain.quest.text:SetText(L["Quest"])
-
-MainPanel.filter_menu.obtain.seasonal = CreateCheckButton(MainPanel.filter_menu.obtain, L["SEASONAL_DESC"], "seasonal", 2, 2)
-MainPanel.filter_menu.obtain.seasonal.text:SetText(private.acquire_names[A.SEASONAL])
-
-MainPanel.filter_menu.obtain.trainer = CreateCheckButton(MainPanel.filter_menu.obtain, L["TRAINER_DESC"], "trainer", 3, 1)
-MainPanel.filter_menu.obtain.trainer.text:SetText(L["Trainer"])
-
-MainPanel.filter_menu.obtain.vendor = CreateCheckButton(MainPanel.filter_menu.obtain, L["VENDOR_DESC"], "vendor", 3, 2)
-MainPanel.filter_menu.obtain.vendor.text:SetText(L["Vendor"])
-
-MainPanel.filter_menu.obtain.pvp = CreateCheckButton(MainPanel.filter_menu.obtain, L["PVP_DESC"], "pvp", 4, 1)
-MainPanel.filter_menu.obtain.pvp.text:SetText(_G.PVP)
-
-MainPanel.filter_menu.obtain.discovery = CreateCheckButton(MainPanel.filter_menu.obtain, L["DISCOVERY_DESC"], "discovery", 4, 2)
-MainPanel.filter_menu.obtain.discovery.text:SetText(L["Discovery"])
-
-MainPanel.filter_menu.obtain.worlddrop = CreateCheckButton(MainPanel.filter_menu.obtain, L["WORLD_DROP_DESC"], "worlddrop", 5, 1)
-MainPanel.filter_menu.obtain.worlddrop.text:SetText(L["World Drop"])
-
-MainPanel.filter_menu.obtain.mobdrop = CreateCheckButton(MainPanel.filter_menu.obtain, L["MOB_DROP_DESC"], "mobdrop", 5, 2)
-MainPanel.filter_menu.obtain.mobdrop.text:SetText(L["Mob Drop"])
-
-MainPanel.filter_menu.obtain.originalwow = CreateCheckButton(MainPanel.filter_menu.obtain, L["ORIGINAL_WOW_DESC"], "originalwow", 7, 1)
-MainPanel.filter_menu.obtain.originalwow.text:SetText(_G.EXPANSION_NAME0)
-
-MainPanel.filter_menu.obtain.bc = CreateCheckButton(MainPanel.filter_menu.obtain, L["BC_WOW_DESC"], "bc", 8, 1)
-MainPanel.filter_menu.obtain.bc.text:SetText(_G.EXPANSION_NAME1)
-
-MainPanel.filter_menu.obtain.wrath = CreateCheckButton(MainPanel.filter_menu.obtain, L["LK_WOW_DESC"], "wrath", 9, 1)
-MainPanel.filter_menu.obtain.wrath.text:SetText(_G.EXPANSION_NAME2)
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.binding, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.binding = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.binding:SetWidth(FILTERMENU_LARGE)
-MainPanel.filter_menu.binding:SetHeight(280)
-MainPanel.filter_menu.binding:EnableMouse(true)
-MainPanel.filter_menu.binding:EnableKeyboard(true)
-MainPanel.filter_menu.binding:SetMovable(false)
-MainPanel.filter_menu.binding:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.binding:Hide()
-
--------------------------------------------------------------------------------
--- Create the CheckButtons for MainPanel.filter_menu.binding
--------------------------------------------------------------------------------
-MainPanel.filter_menu.binding.itemboe = CreateCheckButton(MainPanel.filter_menu.binding, L["BOE_DESC"], "itemboe", 1, 1)
-MainPanel.filter_menu.binding.itemboe.text:SetText(L["BOEFilter"])
-
-MainPanel.filter_menu.binding.itembop = CreateCheckButton(MainPanel.filter_menu.binding, L["BOP_DESC"], "itembop", 2, 1)
-MainPanel.filter_menu.binding.itembop.text:SetText(L["BOPFilter"])
-
-MainPanel.filter_menu.binding.recipeboe = CreateCheckButton(MainPanel.filter_menu.binding, L["RECIPE_BOE_DESC"], "recipeboe", 3, 1)
-MainPanel.filter_menu.binding.recipeboe.text:SetText(L["RecipeBOEFilter"])
-
-MainPanel.filter_menu.binding.recipebop = CreateCheckButton(MainPanel.filter_menu.binding, L["RECIPE_BOP_DESC"], "recipebop", 4, 1)
-MainPanel.filter_menu.binding.recipebop.text:SetText(L["RecipeBOPFilter"])
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.item, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.item = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.item:SetWidth(FILTERMENU_LARGE)
-MainPanel.filter_menu.item:SetHeight(280)
-MainPanel.filter_menu.item:EnableMouse(true)
-MainPanel.filter_menu.item:EnableKeyboard(true)
-MainPanel.filter_menu.item:SetMovable(false)
-MainPanel.filter_menu.item:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.item:Hide()
-
--------------------------------------------------------------------------------
--- Create the Armor toggle and CheckButtons for MainPanel.filter_menu.item
--------------------------------------------------------------------------------
-MainPanel.filter_menu.item.armor_toggle = GenericCreateButton(nil, MainPanel.filter_menu.item, 20, 105, "GameFontHighlight", "GameFontHighlightSmall", _G.ARMOR .. ":",
- "LEFT", L["ARMOR_TEXT_DESC"], 0)
-MainPanel.filter_menu.item.armor_toggle:SetPoint("TOPLEFT", MainPanel.filter_menu.item, "TOPLEFT", -2, -4)
-MainPanel.filter_menu.item.armor_toggle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight")
-MainPanel.filter_menu.item.armor_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
-MainPanel.filter_menu.item.armor_toggle:SetScript("OnClick",
- function(self, button)
- local armors = addon.db.profile.filters.item.armor
- local items = MainPanel.filter_menu.item
- local toggle = (button == "LeftButton") and true or false
-
- for armor in pairs(armors) do
- armors[armor] = toggle
- items[armor]:SetChecked(toggle)
- end
- MainPanel:UpdateTitle()
- ListFrame:Update(nil, false)
- end)
-
-MainPanel.filter_menu.item.cloth = CreateCheckButton(MainPanel.filter_menu.item, L["CLOTH_DESC"], "cloth", 2, 1)
-MainPanel.filter_menu.item.cloth.text:SetText(L["Cloth"])
-
-MainPanel.filter_menu.item.leather = CreateCheckButton(MainPanel.filter_menu.item, L["LEATHER_DESC"], "leather", 2, 2)
-MainPanel.filter_menu.item.leather.text:SetText(L["Leather"])
-
-MainPanel.filter_menu.item.mail = CreateCheckButton(MainPanel.filter_menu.item, L["MAIL_DESC"], "mail", 3, 1)
-MainPanel.filter_menu.item.mail.text:SetText(L["Mail"])
-
-MainPanel.filter_menu.item.plate = CreateCheckButton(MainPanel.filter_menu.item, L["PLATE_DESC"], "plate", 3, 2)
-MainPanel.filter_menu.item.plate.text:SetText(L["Plate"])
-
-MainPanel.filter_menu.item.cloak = CreateCheckButton(MainPanel.filter_menu.item, L["CLOAK_DESC"], "cloak", 4, 1)
-MainPanel.filter_menu.item.cloak.text:SetText(L["Cloak"])
-
-MainPanel.filter_menu.item.necklace = CreateCheckButton(MainPanel.filter_menu.item, L["NECKLACE_DESC"], "necklace", 4, 2)
-MainPanel.filter_menu.item.necklace.text:SetText(L["Necklace"])
-
-MainPanel.filter_menu.item.ring = CreateCheckButton(MainPanel.filter_menu.item, L["RING_DESC"], "ring", 5, 1)
-MainPanel.filter_menu.item.ring.text:SetText(L["Ring"])
-
-MainPanel.filter_menu.item.trinket = CreateCheckButton(MainPanel.filter_menu.item, L["TRINKET_DESC"], "trinket", 5, 2)
-MainPanel.filter_menu.item.trinket.text:SetText(L["Trinket"])
-
-MainPanel.filter_menu.item.shield = CreateCheckButton(MainPanel.filter_menu.item, L["SHIELD_DESC"], "shield", 6, 1)
-MainPanel.filter_menu.item.shield.text:SetText(L["Shield"])
-
--------------------------------------------------------------------------------
--- Create the Weapon toggle and CheckButtons for MainPanel.filter_menu.item
--------------------------------------------------------------------------------
-MainPanel.filter_menu.item.weapon_toggle = GenericCreateButton(nil, MainPanel.filter_menu.item, 20, 105, "GameFontHighlight", "GameFontHighlightSmall", L["Weapon"] .. ":",
- "LEFT", L["WEAPON_TEXT_DESC"], 0)
-MainPanel.filter_menu.item.weapon_toggle:SetPoint("TOPLEFT", MainPanel.filter_menu.item, "TOPLEFT", -2, -122)
-
-MainPanel.filter_menu.item.weapon_toggle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight")
-MainPanel.filter_menu.item.weapon_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
-MainPanel.filter_menu.item.weapon_toggle:SetScript("OnClick",
- function(self, button)
- local weapons = addon.db.profile.filters.item.weapon
- local items = MainPanel.filter_menu.item
- local toggle = (button == "LeftButton") and true or false
-
- for weapon in pairs(weapons) do
- weapons[weapon] = toggle
-
- if FilterValueMap[weapon].svroot then
- items[weapon]:SetChecked(toggle)
- end
- end
- MainPanel:UpdateTitle()
- ListFrame:Update(nil, false)
- end)
-
-MainPanel.filter_menu.item.onehand = CreateCheckButton(MainPanel.filter_menu.item, L["ONEHAND_DESC"], "onehand", 9, 1)
-MainPanel.filter_menu.item.onehand.text:SetText(L["One Hand"])
-
-MainPanel.filter_menu.item.twohand = CreateCheckButton(MainPanel.filter_menu.item, L["TWOHAND_DESC"], "twohand", 9, 2)
-MainPanel.filter_menu.item.twohand.text:SetText(L["Two Hand"])
-
-MainPanel.filter_menu.item.dagger = CreateCheckButton(MainPanel.filter_menu.item, L["DAGGER_DESC"], "dagger", 10, 1)
-MainPanel.filter_menu.item.dagger.text:SetText(L["Dagger"])
-
-MainPanel.filter_menu.item.axe = CreateCheckButton(MainPanel.filter_menu.item, L["AXE_DESC"], "axe", 10, 2)
-MainPanel.filter_menu.item.axe.text:SetText(L["Axe"])
-
-MainPanel.filter_menu.item.mace = CreateCheckButton(MainPanel.filter_menu.item, L["MACE_DESC"], "mace", 11, 1)
-MainPanel.filter_menu.item.mace.text:SetText(L["Mace"])
-
-MainPanel.filter_menu.item.sword = CreateCheckButton(MainPanel.filter_menu.item, L["SWORD_DESC"], "sword", 11, 2)
-MainPanel.filter_menu.item.sword.text:SetText(L["Sword"])
-
-MainPanel.filter_menu.item.polearm = CreateCheckButton(MainPanel.filter_menu.item, L["POLEARM_DESC"], "polearm", 12, 1)
-MainPanel.filter_menu.item.polearm.text:SetText(L["Polearm"])
-
-MainPanel.filter_menu.item.fist = CreateCheckButton(MainPanel.filter_menu.item, L["FIST_DESC"], "fist", 12, 2)
-MainPanel.filter_menu.item.fist.text:SetText(L["Fist"])
-
-MainPanel.filter_menu.item.staff = CreateCheckButton(MainPanel.filter_menu.item, L["STAFF_DESC"], "staff", 13, 1)
-MainPanel.filter_menu.item.staff.text:SetText(SetTextColor(BASIC_COLORS["grey"], L["Staff"]))
-MainPanel.filter_menu.item.staff:Disable()
-
-MainPanel.filter_menu.item.wand = CreateCheckButton(MainPanel.filter_menu.item, L["WAND_DESC"], "wand", 13, 2)
-MainPanel.filter_menu.item.wand.text:SetText(L["Wand"])
-
-MainPanel.filter_menu.item.thrown = CreateCheckButton(MainPanel.filter_menu.item, L["THROWN_DESC"], "thrown", 14, 1)
-MainPanel.filter_menu.item.thrown.text:SetText(L["Thrown"])
-
-MainPanel.filter_menu.item.bow = CreateCheckButton(MainPanel.filter_menu.item, L["BOW_DESC"], "bow", 14, 2)
-MainPanel.filter_menu.item.bow.text:SetText(SetTextColor(BASIC_COLORS["grey"], L["Bow"]))
-MainPanel.filter_menu.item.bow:Disable()
-
-MainPanel.filter_menu.item.crossbow = CreateCheckButton(MainPanel.filter_menu.item, L["CROSSBOW_DESC"], "crossbow", 15, 1)
-MainPanel.filter_menu.item.crossbow.text:SetText(SetTextColor(BASIC_COLORS["grey"], L["Crossbow"]))
-MainPanel.filter_menu.item.crossbow:Disable()
-
-MainPanel.filter_menu.item.ammo = CreateCheckButton(MainPanel.filter_menu.item, L["AMMO_DESC"], "ammo", 15, 2)
-MainPanel.filter_menu.item.ammo.text:SetText(L["Ammo"])
-
-MainPanel.filter_menu.item.gun = CreateCheckButton(MainPanel.filter_menu.item, L["GUN_DESC"], "gun", 16, 1)
-MainPanel.filter_menu.item.gun.text:SetText(L["Gun"])
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.quality, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.quality = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.quality:SetWidth(FILTERMENU_SMALL)
-MainPanel.filter_menu.quality:SetHeight(280)
-MainPanel.filter_menu.quality:EnableMouse(true)
-MainPanel.filter_menu.quality:EnableKeyboard(true)
-MainPanel.filter_menu.quality:SetMovable(false)
-MainPanel.filter_menu.quality:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.quality:Hide()
-
--------------------------------------------------------------------------------
--- Create the CheckButtons for MainPanel.filter_menu.quality
--------------------------------------------------------------------------------
-MainPanel.filter_menu.quality.common = CreateCheckButton(MainPanel.filter_menu.quality, string.format(L["QUALITY_GENERAL_DESC"], _G.ITEM_QUALITY1_DESC), "common", 1, 1)
-MainPanel.filter_menu.quality.common.text:SetText(_G.ITEM_QUALITY1_DESC)
-MainPanel.filter_menu.quality.uncommon = CreateCheckButton(MainPanel.filter_menu.quality, string.format(L["QUALITY_GENERAL_DESC"], _G.ITEM_QUALITY2_DESC), "uncommon", 2, 1)
-MainPanel.filter_menu.quality.uncommon.text:SetText(_G.ITEM_QUALITY2_DESC)
-
-MainPanel.filter_menu.quality.rare = CreateCheckButton(MainPanel.filter_menu.quality, string.format(L["QUALITY_GENERAL_DESC"], _G.ITEM_QUALITY3_DESC), "rare", 3, 1)
-MainPanel.filter_menu.quality.rare.text:SetText(_G.ITEM_QUALITY3_DESC)
-
-MainPanel.filter_menu.quality.epic = CreateCheckButton(MainPanel.filter_menu.quality, string.format(L["QUALITY_GENERAL_DESC"], _G.ITEM_QUALITY4_DESC), "epic", 4, 1)
-MainPanel.filter_menu.quality.epic.text:SetText(_G.ITEM_QUALITY4_DESC)
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.player, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.player = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.player:SetWidth(FILTERMENU_SMALL)
-MainPanel.filter_menu.player:SetHeight(280)
-MainPanel.filter_menu.player:EnableMouse(true)
-MainPanel.filter_menu.player:EnableKeyboard(true)
-MainPanel.filter_menu.player:SetMovable(false)
-MainPanel.filter_menu.player:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.player:Hide()
-
--------------------------------------------------------------------------------
--- Create the CheckButtons for MainPanel.filter_menu.player
--------------------------------------------------------------------------------
-MainPanel.filter_menu.player.tank = CreateCheckButton(MainPanel.filter_menu.player, L["TANKS_DESC"], "tank", 1, 1)
-MainPanel.filter_menu.player.tank.text:SetText(_G.TANK)
-
-MainPanel.filter_menu.player.melee = CreateCheckButton(MainPanel.filter_menu.player, L["MELEE_DPS_DESC"], "melee", 2, 1)
-MainPanel.filter_menu.player.melee.text:SetText(_G.MELEE)
-
-MainPanel.filter_menu.player.healer = CreateCheckButton(MainPanel.filter_menu.player, L["HEALERS_DESC"], "healer", 3, 1)
-MainPanel.filter_menu.player.healer.text:SetText(_G.HEALER)
-
-MainPanel.filter_menu.player.caster = CreateCheckButton(MainPanel.filter_menu.player, L["CASTER_DPS_DESC"], "caster", 4, 1)
-MainPanel.filter_menu.player.caster.text:SetText(_G.DAMAGER)
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.rep, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.rep = CreateFrame("Frame", nil, MainPanel.filter_menu)
-MainPanel.filter_menu.rep:SetWidth(FILTERMENU_SMALL)
-MainPanel.filter_menu.rep:SetHeight(280)
-MainPanel.filter_menu.rep:EnableMouse(true)
-MainPanel.filter_menu.rep:EnableKeyboard(true)
-MainPanel.filter_menu.rep:SetMovable(false)
-MainPanel.filter_menu.rep:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-MainPanel.filter_menu.rep:Hide()
-
--------------------------------------------------------------------------------
--- Create the expansion toggles for MainPanel.filter_menu.rep
--------------------------------------------------------------------------------
-do
- -------------------------------------------------------------------------------
- -- Generic function to create expansion buttons in MainPanel.filter_menu.rep
- -------------------------------------------------------------------------------
- local function CreateExpansionButton(texture, tooltip_text)
- local cButton = CreateFrame("CheckButton", nil, MainPanel.filter_menu.rep)
- cButton:SetWidth(100)
- cButton:SetHeight(46)
- cButton:SetChecked(false)
-
- local iconTex = cButton:CreateTexture(nil, "BORDER")
-
- if texture == "wotlk_logo" then
- iconTex:SetTexture("Interface\\Addons\\AckisRecipeList\\img\\" .. texture)
- else
- iconTex:SetTexture("Interface/Glues/Common/" .. texture)
- end
- iconTex:SetWidth(100)
- iconTex:SetHeight(46)
- iconTex:SetAllPoints(cButton)
-
- local pushedTexture = cButton:CreateTexture(nil, "ARTWORK")
- pushedTexture:SetTexture("Interface/Buttons/UI-Quickslot-Depress")
- pushedTexture:SetAllPoints(cButton)
- cButton:SetPushedTexture(pushedTexture)
-
- local highlightTexture = cButton:CreateTexture()
- highlightTexture:SetTexture("Interface/Buttons/ButtonHilight-Square")
- highlightTexture:SetAllPoints(cButton)
- highlightTexture:SetBlendMode("ADD")
- cButton:SetHighlightTexture(highlightTexture)
-
- local checkedTexture = cButton:CreateTexture()
- checkedTexture:SetTexture("Interface/Buttons/CheckButtonHilight")
- checkedTexture:SetAllPoints(cButton)
- checkedTexture:SetBlendMode("ADD")
- cButton:SetCheckedTexture(checkedTexture)
-
- -- And throw up a tooltip
- SetTooltipScripts(cButton, tooltip_text)
-
- return cButton
- end
-
- -------------------------------------------------------------------------------
- -- Rep Filtering panel switcher
- -------------------------------------------------------------------------------
- local function RepFilterSwitch(whichrep)
- -- 1 MainPanel.filter_menu.rep.toggle_originalwow Classic Rep
- -- 2 MainPanel.filter_menu.rep.toggle_bc Burning Crusade
- -- 3 MainPanel.filter_menu.rep.toggle_wrath Wrath of the Lich King
- local HidePanel = false
-
- if whichrep == 1 then
- if MainPanel.filter_menu.rep.toggle_originalwow:GetChecked() then
- MainPanel.filter_menu.rep.Classic:Show()
- MainPanel.filter_menu.rep.BC:Hide()
- MainPanel.filter_menu.rep.LK:Hide()
- MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
- else
- HidePanel = true
- end
- elseif whichrep == 2 then
- if MainPanel.filter_menu.rep.toggle_bc:GetChecked() then
- MainPanel.filter_menu.rep.Classic:Hide()
- MainPanel.filter_menu.rep.BC:Show()
- MainPanel.filter_menu.rep.LK:Hide()
- MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
- else
- HidePanel = true
- end
- else -- whichrep == 3 (WotLK)
- if MainPanel.filter_menu.rep.toggle_wrath:GetChecked() then
- MainPanel.filter_menu.rep.Classic:Hide()
- MainPanel.filter_menu.rep.BC:Hide()
- MainPanel.filter_menu.rep.LK:Show()
- MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
- else
- HidePanel = true
- end
- end
-
- if HidePanel then
- MainPanel.filter_menu.rep.Classic:Hide()
- MainPanel.filter_menu.rep.BC:Hide()
- MainPanel.filter_menu.rep.LK:Hide()
-
- MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
- MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
+ function GenerateCheckBoxes(parent, source)
+ for section, data in pairs(source) do
+ parent[section] = CreateCheckButton(parent, data.tt, section, data.row, data.col)
+ parent[section].text:SetText(data.text)
end
end
- MainPanel.filter_menu.rep.toggle_originalwow = CreateExpansionButton("Glues-WoW-Logo", L["FILTERING_OLDWORLD_DESC"])
- MainPanel.filter_menu.rep.toggle_originalwow:SetPoint("TOPLEFT", MainPanel.filter_menu.rep, "TOPLEFT", 0, -10)
- MainPanel.filter_menu.rep.toggle_originalwow:SetScript("OnClick",
- function()
- RepFilterSwitch(1)
- end)
-
- MainPanel.filter_menu.rep.toggle_bc = CreateExpansionButton("GLUES-WOW-BCLOGO", L["FILTERING_BC_DESC"])
- MainPanel.filter_menu.rep.toggle_bc:SetPoint("TOPLEFT", MainPanel.filter_menu.rep, "TOPLEFT", 0, -60)
- MainPanel.filter_menu.rep.toggle_bc:SetScript("OnClick",
- function()
- RepFilterSwitch(2)
- end)
-
- MainPanel.filter_menu.rep.toggle_wrath = CreateExpansionButton("Glues-WOW-WotlkLogo", L["FILTERING_WOTLK_DESC"])
- MainPanel.filter_menu.rep.toggle_wrath:SetPoint("TOPLEFT", MainPanel.filter_menu.rep, "TOPLEFT", 0, -110)
- MainPanel.filter_menu.rep.toggle_wrath:SetScript("OnClick",
- function()
- RepFilterSwitch(3)
- end)
end -- do
-------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.rep.Classic, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.rep.Classic = CreateFrame("Frame", nil, MainPanel.filter_menu.rep)
-MainPanel.filter_menu.rep.Classic:SetWidth(150)
-MainPanel.filter_menu.rep.Classic:SetHeight(280)
-MainPanel.filter_menu.rep.Classic:EnableMouse(true)
-MainPanel.filter_menu.rep.Classic:EnableKeyboard(true)
-MainPanel.filter_menu.rep.Classic:SetMovable(false)
-MainPanel.filter_menu.rep.Classic:SetPoint("TOPRIGHT", MainPanel.filter_menu, "TOPRIGHT", -30, -16)
-MainPanel.filter_menu.rep.Classic:Hide()
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.rep.BC, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.rep.BC = CreateFrame("Frame", nil, MainPanel.filter_menu.rep)
-MainPanel.filter_menu.rep.BC:SetWidth(150)
-MainPanel.filter_menu.rep.BC:SetHeight(280)
-MainPanel.filter_menu.rep.BC:EnableMouse(true)
-MainPanel.filter_menu.rep.BC:EnableKeyboard(true)
-MainPanel.filter_menu.rep.BC:SetMovable(false)
-MainPanel.filter_menu.rep.BC:SetPoint("TOPRIGHT", MainPanel.filter_menu, "TOPRIGHT", -30, -16)
-MainPanel.filter_menu.rep.BC:Hide()
-
--------------------------------------------------------------------------------
--- Create MainPanel.filter_menu.rep.LK, and set its scripts.
--------------------------------------------------------------------------------
-MainPanel.filter_menu.rep.LK = CreateFrame("Frame", nil, MainPanel.filter_menu.rep)
-MainPanel.filter_menu.rep.LK:SetWidth(150)
-MainPanel.filter_menu.rep.LK:SetHeight(280)
-MainPanel.filter_menu.rep.LK:EnableMouse(true)
-MainPanel.filter_menu.rep.LK:EnableKeyboard(true)
-MainPanel.filter_menu.rep.LK:SetMovable(false)
-MainPanel.filter_menu.rep.LK:SetPoint("TOPRIGHT", MainPanel.filter_menu, "TOPRIGHT", -30, -16)
-MainPanel.filter_menu.rep.LK:Hide()
-
-
--------------------------------------------------------------------------------
-- Create the ListFrame and set its scripts.
-------------------------------------------------------------------------------
ListFrame = CreateFrame("Frame", "ARL_MainPanelScrollFrame", MainPanel)
@@ -3933,6 +3279,592 @@ local function InitializeFrame()
local Explorer_Hand_FactionText = isAlliance and BFAC["Explorers' League"] or BFAC["The Hand of Vengeance"]
-------------------------------------------------------------------------------
+ -- Create the seven buttons for opening/closing the filter menus
+ -------------------------------------------------------------------------------
+ do
+ local CATEGORY_TOOLTIP = {
+ ["general"] = L["FILTERING_GENERAL_DESC"],
+ ["obtain"] = L["FILTERING_OBTAIN_DESC"],
+ ["binding"] = L["FILTERING_BINDING_DESC"],
+ ["item"] = L["FILTERING_ITEM_DESC"],
+ ["quality"] = L["FILTERING_QUALITY_DESC"],
+ ["player"] = L["FILTERING_PLAYERTYPE_DESC"],
+ ["rep"] = L["FILTERING_REP_DESC"],
+ ["misc"] = L["FILTERING_MISC_DESC"]
+ }
+
+ -- This manages the filter menu panel, as well as checking or unchecking the
+ -- buttons that got us here in the first place
+ local function ToggleFilterMenu(panel)
+ local ChangeFilters = false
+
+ MainPanel.filter_menu.rep.Classic:Hide()
+ MainPanel.filter_menu.rep.BC:Hide()
+ MainPanel.filter_menu.rep.LK:Hide()
+
+ MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
+
+ local toggle = "menu_toggle_" .. panel
+
+ if not MainPanel[toggle]:GetChecked() then
+ -- Display the selected filter_menu category frame
+ MainPanel[toggle]:SetChecked(true)
+ MainPanel.filter_menu[panel]:Show()
+
+ -- Hide all of the other filter_menu category frames, and un-check them as well.
+ for category in pairs(MainPanel.filter_menu) do
+ if category ~= panel and CATEGORY_TOOLTIP[category] then
+ local tog = "menu_toggle_" .. category
+
+ MainPanel[tog]:SetChecked(false)
+ MainPanel.filter_menu[category]:Hide()
+ end
+ end
+ ChangeFilters = true
+ else
+ MainPanel[toggle]:SetChecked(false)
+ ChangeFilters = false
+ end
+
+ if ChangeFilters then
+ -- Change the filters to the current panel
+ MainPanel.filter_menu:Show()
+ else
+ MainPanel.filter_menu:Hide()
+ end
+ end
+
+ local function CreateFilterMenuButton(button_texture, category)
+ local button_size = 22
+ local cButton = CreateFrame("CheckButton", nil, MainPanel)
+
+ cButton:SetWidth(button_size)
+ cButton:SetHeight(button_size)
+ cButton:SetScript("OnClick",
+ function(self, button, down)
+ -- The button must be unchecked for ToggleFilterMenu() to work correctly.
+ cButton:SetChecked(false)
+ ToggleFilterMenu(category)
+ end)
+
+ local bgTex = cButton:CreateTexture(nil, "BACKGROUND")
+ bgTex:SetTexture("Interface/SpellBook/UI-Spellbook-SpellBackground")
+ bgTex:SetHeight(button_size + 6)
+ bgTex:SetWidth(button_size + 4)
+ bgTex:SetTexCoord(0, (43/64), 0, (43/64))
+ bgTex:SetPoint("CENTER", cButton, "CENTER", 0, 0)
+
+ local iconTex = cButton:CreateTexture(nil, "BORDER")
+ iconTex:SetTexture("Interface/Icons/" .. button_texture)
+ iconTex:SetAllPoints(cButton)
+
+ local pushedTexture = cButton:CreateTexture(nil, "ARTWORK")
+ pushedTexture:SetTexture("Interface/Buttons/UI-Quickslot-Depress")
+ pushedTexture:SetAllPoints(cButton)
+ cButton:SetPushedTexture(pushedTexture)
+
+ local highlightTexture = cButton:CreateTexture()
+ highlightTexture:SetTexture("Interface/Buttons/ButtonHilight-Square")
+ highlightTexture:SetAllPoints(cButton)
+ highlightTexture:SetBlendMode("ADD")
+ cButton:SetHighlightTexture(highlightTexture)
+
+ local checkedTexture = cButton:CreateTexture()
+ checkedTexture:SetTexture("Interface/Buttons/CheckButtonHilight")
+ checkedTexture:SetAllPoints(cButton)
+ checkedTexture:SetBlendMode("ADD")
+ cButton:SetCheckedTexture(checkedTexture)
+
+ -- And throw up a tooltip
+ SetTooltipScripts(cButton, CATEGORY_TOOLTIP[category])
+ cButton:Hide()
+
+ return cButton
+ end
+
+ local general = CreateFilterMenuButton("INV_Misc_Note_06", "general")
+ general:SetPoint("LEFT", WidgetContainer, "RIGHT", 5, 0)
+
+ local obtain = CreateFilterMenuButton("INV_Misc_Bag_07", "obtain")
+ obtain:SetPoint("LEFT", general, "RIGHT", 15, 0)
+
+ local binding = CreateFilterMenuButton("INV_Belt_20", "binding")
+ binding:SetPoint("LEFT", obtain, "RIGHT", 15, 0)
+
+ local item = CreateFilterMenuButton("INV_Misc_EngGizmos_19", "item")
+ item:SetPoint("LEFT", binding, "RIGHT", 15, 0)
+
+ local quality = CreateFilterMenuButton("INV_Enchant_VoidCrystal", "quality")
+ quality:SetPoint("LEFT", item, "RIGHT", 15, 0)
+
+ local player = CreateFilterMenuButton("INV_Misc_GroupLooking", "player")
+ player:SetPoint("LEFT", quality, "RIGHT", 15, 0)
+
+ local rep = CreateFilterMenuButton("Achievement_Reputation_01", "rep")
+ rep:SetPoint("LEFT", player, "RIGHT", 15, 0)
+
+ local misc = CreateFilterMenuButton("Trade_Engineering", "misc")
+ misc:SetPoint("LEFT", rep, "RIGHT", 15, 0)
+
+ -- Assign the buttons as members.
+ MainPanel.menu_toggle_general = general
+ MainPanel.menu_toggle_obtain = obtain
+ MainPanel.menu_toggle_binding = binding
+ MainPanel.menu_toggle_item = item
+ MainPanel.menu_toggle_quality = quality
+ MainPanel.menu_toggle_player = player
+ MainPanel.menu_toggle_rep = rep
+ MainPanel.menu_toggle_misc = misc
+ end -- do
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local filter_menu = CreateFrame("Frame", nil, MainPanel)
+ filter_menu:SetWidth(300)
+ filter_menu:SetHeight(FILTERMENU_HEIGHT)
+ filter_menu:SetFrameStrata("MEDIUM")
+ filter_menu:SetPoint("TOPRIGHT", MainPanel, "TOPRIGHT", -135, -60)
+ filter_menu:EnableMouse(true)
+ filter_menu:EnableKeyboard(true)
+ filter_menu:SetMovable(false)
+ filter_menu:SetHitRectInsets(5, 5, 5, 5)
+ filter_menu:Hide()
+
+ filter_menu:SetScript("OnShow", UpdateFilterMarks)
+
+ function filter_menu:CreateSubMenu(name)
+ local submenu = CreateFrame("Frame", nil, self)
+
+ submenu:SetWidth(FILTERMENU_LARGE)
+ submenu:SetHeight(FILTERMENU_HEIGHT)
+ submenu:EnableMouse(true)
+ submenu:EnableKeyboard(true)
+ submenu:SetMovable(false)
+ submenu:SetPoint("TOPLEFT", self, "TOPLEFT", 17, -16)
+ submenu:Hide()
+
+ self[name] = submenu
+ return submenu
+ end
+
+ MainPanel.filter_menu = filter_menu
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.general, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local general_frame = MainPanel.filter_menu:CreateSubMenu("general")
+
+ -------------------------------------------------------------------------------
+ -- Create the general CheckButtons.
+ -------------------------------------------------------------------------------
+ local general_buttons = {
+ ["specialty"] = { tt = L["SPECIALTY_DESC"], text = L["Specialties"], row = 1, col = 1 },
+ ["skill"] = { tt = L["SKILL_DESC"], text = _G.SKILL, row = 1, col = 2 },
+ ["faction"] = { tt = L["FACTION_DESC"], text = _G.FACTION, row = 2, col = 1 },
+ ["known"] = { tt = L["KNOWN_DESC"], text = L["Show Known"], row = 2, col = 2 },
+ ["unknown"] = { tt = L["UNKNOWN_DESC"], text = _G.UNKNOWN, row = 3, col = 1 },
+ ["retired"] = { tt = L["RETIRED_DESC"], text = L["Retired"], row = 3, col = 2 },
+ }
+ GenerateCheckBoxes(general_frame, general_buttons)
+ general_buttons = nil
+
+ -------------------------------------------------------------------------------
+ -- Create the Class toggle and CheckButtons.
+ -------------------------------------------------------------------------------
+ local class_toggle = GenericCreateButton(nil, general_frame, 20, 105, "GameFontHighlight", "GameFontHighlightSmall", L["Classes"] .. ":", "LEFT", L["CLASS_TEXT_DESC"], 0)
+ class_toggle:SetPoint("TOPLEFT", MainPanel.filter_menu.general.unknown, "BOTTOMLEFT", -4, -10)
+ class_toggle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight")
+ class_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
+ class_toggle:SetScript("OnClick",
+ function(self, button)
+ local classes = addon.db.profile.filters.classes
+ local toggle = (button == "LeftButton") and true or false
+
+ for class in pairs(classes) do
+ classes[class] = toggle
+ general_frame[class]:SetChecked(toggle)
+ end
+
+ if toggle == false then
+ local class = strlower(Player["Class"])
+ classes[class] = true
+ general_frame[class]:SetChecked(true)
+ end
+ MainPanel:UpdateTitle()
+ ListFrame:Update(nil, false)
+ end)
+
+ general_frame.class_toggle = class_toggle
+
+ local class_buttons = {
+ ["deathknight"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], row = 6, col = 1 },
+ ["druid"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["DRUID"], row = 6, col = 2 },
+ ["hunter"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["HUNTER"], row = 7, col = 1 },
+ ["mage"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["MAGE"], row = 7, col = 2 },
+ ["paladin"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["PALADIN"], row = 8, col = 1 },
+ ["priest"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["PRIEST"], row = 8, col = 2 },
+ ["rogue"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["ROGUE"], row = 9, col = 1 },
+ ["shaman"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], row = 9, col = 2 },
+ ["warlock"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], row = 10, col = 1 },
+ ["warrior"] = { tt = L["CLASS_DESC"], text = LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], row = 10, col = 2 },
+ }
+ GenerateCheckBoxes(general_frame, class_buttons)
+ class_buttons = nil
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.obtain, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local obtain_frame = MainPanel.filter_menu:CreateSubMenu("obtain")
+
+ -------------------------------------------------------------------------------
+ -- Create the CheckButtons
+ -------------------------------------------------------------------------------
+ local obtain_buttons = {
+ ["instance"] = { tt = L["INSTANCE_DESC"], text = _G.INSTANCE, row = 1, col = 1 },
+ ["raid"] = { tt = L["RAID_DESC"], text = _G.RAID, row = 1, col = 2 },
+ ["quest"] = { tt = L["QUEST_DESC"], text = L["Quest"], row = 2, col = 1 },
+ ["seasonal"] = { tt = L["SEASONAL_DESC"], text = private.acquire_names[A.SEASONAL], row = 2, col = 2 },
+ ["trainer"] = { tt = L["TRAINER_DESC"], text = L["Trainer"], row = 3, col = 1 },
+ ["vendor"] = { tt = L["VENDOR_DESC"], text = L["Vendor"], row = 3, col = 2 },
+ ["pvp"] = { tt = L["PVP_DESC"], text = _G.PVP, row = 4, col = 1 },
+ ["discovery"] = { tt = L["DISCOVERY_DESC"], text = L["Discovery"], row = 4, col = 2 },
+ ["worlddrop"] = { tt = L["WORLD_DROP_DESC"], text = L["World Drop"], row = 5, col = 1 },
+ ["mobdrop"] = { tt = L["MOB_DROP_DESC"], text = L["Mob Drop"], row = 5, col = 2 },
+ ["originalwow"] = { tt = L["ORIGINAL_WOW_DESC"], text = _G.EXPANSION_NAME0, row = 7, col = 1 },
+ ["bc"] = { tt = L["BC_WOW_DESC"], text = _G.EXPANSION_NAME1, row = 8, col = 1 },
+ ["wrath"] = { tt = L["LK_WOW_DESC"], text = _G.EXPANSION_NAME2, row = 9, col = 1 },
+ }
+ GenerateCheckBoxes(obtain_frame, obtain_buttons)
+ obtain_buttons = nil
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.binding, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local binding_frame = MainPanel.filter_menu:CreateSubMenu("binding")
+
+ -------------------------------------------------------------------------------
+ -- Create the CheckButtons
+ -------------------------------------------------------------------------------
+ local binding_buttons = {
+ ["itemboe"] = { tt = L["BOE_DESC"], text = L["BOEFilter"], row = 1, col = 1 },
+ ["itembop"] = { tt = L["BOP_DESC"], text = L["BOPFilter"], row = 2, col = 1 },
+ ["recipeboe"] = { tt = L["RECIPE_BOE_DESC"], text = L["RecipeBOEFilter"], row = 3, col = 1 },
+ ["recipebop"] = { tt = L["RECIPE_BOP_DESC"], text = L["RecipeBOPFilter"], row = 4, col = 1 },
+ }
+ GenerateCheckBoxes(binding_frame, binding_buttons)
+ binding_buttons = nil
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.item, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local item_frame = MainPanel.filter_menu:CreateSubMenu("item")
+
+ -------------------------------------------------------------------------------
+ -- Create the Armor toggle and CheckButtons
+ -------------------------------------------------------------------------------
+ local armor_toggle = GenericCreateButton(nil, item_frame, 20, 105, "GameFontHighlight", "GameFontHighlightSmall", _G.ARMOR .. ":", "LEFT", L["ARMOR_TEXT_DESC"], 0)
+ armor_toggle:SetPoint("TOPLEFT", item_frame, "TOPLEFT", -2, -4)
+ armor_toggle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight")
+ armor_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
+ armor_toggle:SetScript("OnClick",
+ function(self, button)
+ local armors = addon.db.profile.filters.item.armor
+ local toggle = (button == "LeftButton") and true or false
+
+ for armor in pairs(armors) do
+ armors[armor] = toggle
+ item_frame[armor]:SetChecked(toggle)
+ end
+ MainPanel:UpdateTitle()
+ ListFrame:Update(nil, false)
+ end)
+
+ item_frame.armor_toggle = armor_toggle
+
+ local armor_buttons = {
+ ["cloth"] = { tt = L["CLOTH_DESC"], text = L["Cloth"], row = 2, col = 1 },
+ ["leather"] = { tt = L["LEATHER_DESC"], text = L["Leather"], row = 2, col = 2 },
+ ["mail"] = { tt = L["MAIL_DESC"], text = L["Mail"], row = 3, col = 1 },
+ ["plate"] = { tt = L["PLATE_DESC"], text = L["Plate"], row = 3, col = 2 },
+ ["cloak"] = { tt = L["CLOAK_DESC"], text = L["Cloak"], row = 4, col = 1 },
+ ["necklace"] = { tt = L["NECKLACE_DESC"], text = L["Necklace"], row = 4, col = 2 },
+ ["ring"] = { tt = L["RING_DESC"], text = L["Ring"], row = 5, col = 1 },
+ ["trinket"] = { tt = L["TRINKET_DESC"], text = L["Trinket"], row = 5, col = 2 },
+ ["shield"] = { tt = L["SHIELD_DESC"], text = L["Shield"], row = 6, col = 1 },
+ }
+ GenerateCheckBoxes(item_frame, armor_buttons)
+ armor_buttons = nil
+
+ -------------------------------------------------------------------------------
+ -- Create the Weapon toggle and CheckButtons
+ -------------------------------------------------------------------------------
+ local weapon_toggle = GenericCreateButton(nil, item_frame, 20, 105, "GameFontHighlight", "GameFontHighlightSmall", L["Weapon"] .. ":", "LEFT", L["WEAPON_TEXT_DESC"], 0)
+ weapon_toggle:SetPoint("TOPLEFT", item_frame, "TOPLEFT", -2, -122)
+
+ weapon_toggle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight")
+ weapon_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
+ weapon_toggle:SetScript("OnClick",
+ function(self, button)
+ local weapons = addon.db.profile.filters.item.weapon
+ local toggle = (button == "LeftButton") and true or false
+
+ for weapon in pairs(weapons) do
+ weapons[weapon] = toggle
+
+ if FilterValueMap[weapon].svroot then
+ item_frame[weapon]:SetChecked(toggle)
+ end
+ end
+ MainPanel:UpdateTitle()
+ ListFrame:Update(nil, false)
+ end)
+
+ item_frame.weapon_toggle = weapon_toggle
+
+ local weapon_buttons = {
+ ["onehand"] = { tt = L["ONEHAND_DESC"], text = L["One Hand"], row = 9, col = 1 },
+ ["twohand"] = { tt = L["TWOHAND_DESC"], text = L["Two Hand"], row = 9, col = 2 },
+ ["dagger"] = { tt = L["DAGGER_DESC"], text = L["Dagger"], row = 10, col = 1 },
+ ["axe"] = { tt = L["AXE_DESC"], text = L["Axe"], row = 10, col = 2 },
+ ["mace"] = { tt = L["MACE_DESC"], text = L["Mace"], row = 11, col = 1 },
+ ["sword"] = { tt = L["SWORD_DESC"], text = L["Sword"], row = 11, col = 2 },
+ ["polearm"] = { tt = L["POLEARM_DESC"], text = L["Polearm"], row = 12, col = 1 },
+ ["fist"] = { tt = L["FIST_DESC"], text = L["Fist"], row = 12, col = 2 },
+ ["staff"] = { tt = L["STAFF_DESC"], text = SetTextColor(BASIC_COLORS["grey"], L["Staff"]), row = 13, col = 1 },
+ ["wand"] = { tt = L["WAND_DESC"], text = L["Wand"], row = 13, col = 2 },
+ ["thrown"] = { tt = L["THROWN_DESC"], text = L["Thrown"], row = 14, col = 1 },
+ ["bow"] = { tt = L["BOW_DESC"], text = SetTextColor(BASIC_COLORS["grey"], L["Bow"]), row = 14, col = 2 },
+ ["crossbow"] = { tt = L["CROSSBOW_DESC"], text = SetTextColor(BASIC_COLORS["grey"], L["Crossbow"]), row = 15, col = 1 },
+ ["ammo"] = { tt = L["AMMO_DESC"], text = L["Ammo"], row = 15, col = 2 },
+ ["gun"] = { tt = L["GUN_DESC"], text = L["Gun"], row = 16, col = 1 },
+ }
+ GenerateCheckBoxes(item_frame, weapon_buttons)
+ weapon_buttons = nil
+
+ -- Some of these are disabled for now, since they currently have no recipes.
+ item_frame.staff:Disable()
+ item_frame.bow:Disable()
+ item_frame.crossbow:Disable()
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.quality, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local quality_frame = MainPanel.filter_menu:CreateSubMenu("quality")
+
+ -------------------------------------------------------------------------------
+ -- Create the CheckButtons
+ -------------------------------------------------------------------------------
+ local function QualityDesc(text)
+ return string.format(L["QUALITY_GENERAL_DESC"], text)
+ end
+
+ local quality_buttons = {
+ ["common"] = { tt = QualityDesc(_G.ITEM_QUALITY1_DESC), text = _G.ITEM_QUALITY1_DESC, row = 1, col = 1 },
+ ["uncommon"] = { tt = QualityDesc(_G.ITEM_QUALITY2_DESC), text = _G.ITEM_QUALITY2_DESC, row = 2, col = 1 },
+ ["rare"] = { tt = QualityDesc(_G.ITEM_QUALITY3_DESC), text = _G.ITEM_QUALITY3_DESC, row = 3, col = 1 },
+ ["epic"] = { tt = QualityDesc(_G.ITEM_QUALITY4_DESC), text = _G.ITEM_QUALITY4_DESC, row = 4, col = 1 },
+ }
+ GenerateCheckBoxes(quality_frame, quality_buttons)
+ quality_buttons = nil
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.player, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local player_frame = MainPanel.filter_menu:CreateSubMenu("player")
+
+ -------------------------------------------------------------------------------
+ -- Create the CheckButtons
+ -------------------------------------------------------------------------------
+ local role_buttons = {
+ ["tank"] = { tt = L["TANKS_DESC"], text = _G.TANK, row = 1, col = 1 },
+ ["melee"] = { tt = L["MELEE_DPS_DESC"], text = _G.MELEE, row = 2, col = 1 },
+ ["healer"] = { tt = L["HEALERS_DESC"], text = _G.HEALER, row = 3, col = 1 },
+ ["caster"] = { tt = L["CASTER_DPS_DESC"], text = _G.DAMAGER, row = 4, col = 1 },
+ }
+ GenerateCheckBoxes(player_frame, role_buttons)
+ role_buttons = nil
+ end -- do-block
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.rep, and set its scripts.
+ -------------------------------------------------------------------------------
+ do
+ local rep_frame = MainPanel.filter_menu:CreateSubMenu("rep")
+ end
+
+ -------------------------------------------------------------------------------
+ -- Create the expansion toggles for MainPanel.filter_menu.rep
+ -------------------------------------------------------------------------------
+ do
+ -------------------------------------------------------------------------------
+ -- Generic function to create expansion buttons in MainPanel.filter_menu.rep
+ -------------------------------------------------------------------------------
+ local function CreateExpansionButton(texture, tooltip_text)
+ local cButton = CreateFrame("CheckButton", nil, MainPanel.filter_menu.rep)
+ cButton:SetWidth(100)
+ cButton:SetHeight(46)
+ cButton:SetChecked(false)
+
+ local iconTex = cButton:CreateTexture(nil, "BORDER")
+
+ if texture == "wotlk_logo" then
+ iconTex:SetTexture("Interface\\Addons\\AckisRecipeList\\img\\" .. texture)
+ else
+ iconTex:SetTexture("Interface/Glues/Common/" .. texture)
+ end
+ iconTex:SetWidth(100)
+ iconTex:SetHeight(46)
+ iconTex:SetAllPoints(cButton)
+
+ local pushedTexture = cButton:CreateTexture(nil, "ARTWORK")
+ pushedTexture:SetTexture("Interface/Buttons/UI-Quickslot-Depress")
+ pushedTexture:SetAllPoints(cButton)
+ cButton:SetPushedTexture(pushedTexture)
+
+ local highlightTexture = cButton:CreateTexture()
+ highlightTexture:SetTexture("Interface/Buttons/ButtonHilight-Square")
+ highlightTexture:SetAllPoints(cButton)
+ highlightTexture:SetBlendMode("ADD")
+ cButton:SetHighlightTexture(highlightTexture)
+
+ local checkedTexture = cButton:CreateTexture()
+ checkedTexture:SetTexture("Interface/Buttons/CheckButtonHilight")
+ checkedTexture:SetAllPoints(cButton)
+ checkedTexture:SetBlendMode("ADD")
+ cButton:SetCheckedTexture(checkedTexture)
+
+ -- And throw up a tooltip
+ SetTooltipScripts(cButton, tooltip_text)
+
+ return cButton
+ end
+
+ -------------------------------------------------------------------------------
+ -- Rep Filtering panel switcher
+ -------------------------------------------------------------------------------
+ local function RepFilterSwitch(whichrep)
+ -- 1 MainPanel.filter_menu.rep.toggle_originalwow Classic Rep
+ -- 2 MainPanel.filter_menu.rep.toggle_bc Burning Crusade
+ -- 3 MainPanel.filter_menu.rep.toggle_wrath Wrath of the Lich King
+ local HidePanel = false
+
+ if whichrep == 1 then
+ if MainPanel.filter_menu.rep.toggle_originalwow:GetChecked() then
+ MainPanel.filter_menu.rep.Classic:Show()
+ MainPanel.filter_menu.rep.BC:Hide()
+ MainPanel.filter_menu.rep.LK:Hide()
+ MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
+ else
+ HidePanel = true
+ end
+ elseif whichrep == 2 then
+ if MainPanel.filter_menu.rep.toggle_bc:GetChecked() then
+ MainPanel.filter_menu.rep.Classic:Hide()
+ MainPanel.filter_menu.rep.BC:Show()
+ MainPanel.filter_menu.rep.LK:Hide()
+ MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
+ else
+ HidePanel = true
+ end
+ else -- whichrep == 3 (WotLK)
+ if MainPanel.filter_menu.rep.toggle_wrath:GetChecked() then
+ MainPanel.filter_menu.rep.Classic:Hide()
+ MainPanel.filter_menu.rep.BC:Hide()
+ MainPanel.filter_menu.rep.LK:Show()
+ MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
+ else
+ HidePanel = true
+ end
+ end
+
+ if HidePanel then
+ MainPanel.filter_menu.rep.Classic:Hide()
+ MainPanel.filter_menu.rep.BC:Hide()
+ MainPanel.filter_menu.rep.LK:Hide()
+
+ MainPanel.filter_menu.rep.toggle_originalwow:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_bc:SetChecked(false)
+ MainPanel.filter_menu.rep.toggle_wrath:SetChecked(false)
+ end
+ end
+ MainPanel.filter_menu.rep.toggle_originalwow = CreateExpansionButton("Glues-WoW-Logo", L["FILTERING_OLDWORLD_DESC"])
+ MainPanel.filter_menu.rep.toggle_originalwow:SetPoint("TOPLEFT", MainPanel.filter_menu.rep, "TOPLEFT", 0, -10)
+ MainPanel.filter_menu.rep.toggle_originalwow:SetScript("OnClick",
+ function()
+ RepFilterSwitch(1)
+ end)
+
+ MainPanel.filter_menu.rep.toggle_bc = CreateExpansionButton("GLUES-WOW-BCLOGO", L["FILTERING_BC_DESC"])
+ MainPanel.filter_menu.rep.toggle_bc:SetPoint("TOPLEFT", MainPanel.filter_menu.rep, "TOPLEFT", 0, -60)
+ MainPanel.filter_menu.rep.toggle_bc:SetScript("OnClick",
+ function()
+ RepFilterSwitch(2)
+ end)
+
+ MainPanel.filter_menu.rep.toggle_wrath = CreateExpansionButton("Glues-WOW-WotlkLogo", L["FILTERING_WOTLK_DESC"])
+ MainPanel.filter_menu.rep.toggle_wrath:SetPoint("TOPLEFT", MainPanel.filter_menu.rep, "TOPLEFT", 0, -110)
+ MainPanel.filter_menu.rep.toggle_wrath:SetScript("OnClick",
+ function()
+ RepFilterSwitch(3)
+ end)
+ end -- do
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.rep.Classic, and set its scripts.
+ -------------------------------------------------------------------------------
+ MainPanel.filter_menu.rep.Classic = CreateFrame("Frame", nil, MainPanel.filter_menu.rep)
+ MainPanel.filter_menu.rep.Classic:SetWidth(150)
+ MainPanel.filter_menu.rep.Classic:SetHeight(280)
+ MainPanel.filter_menu.rep.Classic:EnableMouse(true)
+ MainPanel.filter_menu.rep.Classic:EnableKeyboard(true)
+ MainPanel.filter_menu.rep.Classic:SetMovable(false)
+ MainPanel.filter_menu.rep.Classic:SetPoint("TOPRIGHT", MainPanel.filter_menu, "TOPRIGHT", -30, -16)
+ MainPanel.filter_menu.rep.Classic:Hide()
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.rep.BC, and set its scripts.
+ -------------------------------------------------------------------------------
+ MainPanel.filter_menu.rep.BC = CreateFrame("Frame", nil, MainPanel.filter_menu.rep)
+ MainPanel.filter_menu.rep.BC:SetWidth(150)
+ MainPanel.filter_menu.rep.BC:SetHeight(280)
+ MainPanel.filter_menu.rep.BC:EnableMouse(true)
+ MainPanel.filter_menu.rep.BC:EnableKeyboard(true)
+ MainPanel.filter_menu.rep.BC:SetMovable(false)
+ MainPanel.filter_menu.rep.BC:SetPoint("TOPRIGHT", MainPanel.filter_menu, "TOPRIGHT", -30, -16)
+ MainPanel.filter_menu.rep.BC:Hide()
+
+ -------------------------------------------------------------------------------
+ -- Create MainPanel.filter_menu.rep.LK, and set its scripts.
+ -------------------------------------------------------------------------------
+ MainPanel.filter_menu.rep.LK = CreateFrame("Frame", nil, MainPanel.filter_menu.rep)
+ MainPanel.filter_menu.rep.LK:SetWidth(150)
+ MainPanel.filter_menu.rep.LK:SetHeight(280)
+ MainPanel.filter_menu.rep.LK:EnableMouse(true)
+ MainPanel.filter_menu.rep.LK:EnableKeyboard(true)
+ MainPanel.filter_menu.rep.LK:SetMovable(false)
+ MainPanel.filter_menu.rep.LK:SetPoint("TOPRIGHT", MainPanel.filter_menu, "TOPRIGHT", -30, -16)
+ MainPanel.filter_menu.rep.LK:Hide()
+
+ -------------------------------------------------------------------------------
-- Classic Reputations
-------------------------------------------------------------------------------
local ARL_Rep_ClassicButton = GenericCreateButton("ARL_Rep_ClassicButton", MainPanel.filter_menu.rep.Classic, 15, 120, "GameFontHighlight", "GameFontHighlightSmall",