local config = CreateFrame("Frame"); local config2 = CreateFrame("Frame"); local moduleconfig = CreateFrame("frame"); local ns = select( 2, ... ) local L = ns.L; FlightMapEnhancedCFrame = config; function config:SetDefaultConfig() FlightMapEnhanced_Config.vconf = {["ShowMiniMapButton"]=1,["LockFlightMap"]=1}; config.ShowMiniMapButton:SetChecked(1); config.LockFlightMap:SetChecked(1); config.DetachAddon:SetChecked(0); config.LockAddonFrame:SetChecked(0); end function config:SetCurrentConfig() config.ShowMiniMapButton:SetChecked(FlightMapEnhanced_Config.vconf.ShowMiniMapButton); config.LockFlightMap:SetChecked(FlightMapEnhanced_Config.vconf.LockFlightMap); config.DetachAddon:SetChecked(FlightMapEnhanced_Config.vconf.DetachAddon); config.LockAddonFrame:SetChecked(FlightMapEnhanced_Config.vconf.LockAddonFrame); config.ConfirmFlyAuto:SetChecked(FlightMapEnhanced_Config.vconf.ConfirmFlyAuto); config.ConfirmFlyManual:SetChecked(FlightMapEnhanced_Config.vconf.ConfirmFlyManual); end function config:ChangeState() FlightMapEnhanced_Config.vconf[self.id] = self:GetChecked(); config:ChangeHandler(self.id,self:GetChecked()); if(self.id=="DetachAddon") then config:ChangeHandler(config.LockAddonFrame.id,config.LockAddonFrame:GetChecked()); end end function config:ChangeHandler(w,n) if(w=="ShowMiniMapButton") then if(n) then FlightMapEnhancedMinimapButton:Show(); else FlightMapEnhancedMinimapButton:Hide() end elseif(w=="LockFlightMap") then if(n) then TaxiFrame:RegisterForDrag(); FlightMapEnhancedResize:Hide(); else TaxiFrame:RegisterForDrag("LeftButton"); FlightMapEnhancedResize:Show(); end elseif(w=="DetachAddon") then if(n) then config.LockAddonFrame:Show(); FlightMapEnhancedTaxiChoice:ClearAllPoints(); else config.LockAddonFrame:Hide(); FlightMapEnhancedTaxiChoice:RegisterForDrag(); FlightMapEnhancedTaxiChoiceResizeButton:Hide(); end elseif(w=="LockAddonFrame") then if(n or not FlightMapEnhanced_Config.vconf["DetachAddon"]) then FlightMapEnhancedTaxiChoice:RegisterForDrag(); FlightMapEnhancedTaxiChoiceResizeButton:Hide(); else FlightMapEnhancedTaxiChoice:RegisterForDrag("LeftButton"); FlightMapEnhancedTaxiChoiceResizeButton:Show(); end end end function config:Init() config2.name = "Flight Map Enhanced"; config2:SetScript("OnShow",function () InterfaceOptionsFrame_OpenToCategory(config); end); InterfaceOptions_AddCategory(config2); config.name = L.CONFIG_BASIC; config.parent="Flight Map Enhanced"; local ShowMiniMapButton = CreateFrame( "CheckButton", "FlightMapEnhancedShowMiniMapButton", config, "InterfaceOptionsCheckButtonTemplate" ); config.ShowMiniMapButton = ShowMiniMapButton; ShowMiniMapButton.id = "ShowMiniMapButton"; ShowMiniMapButton:SetPoint( "TOPLEFT", 16, -16 ); ShowMiniMapButton:SetScript("onClick",config.ChangeState); _G[ ShowMiniMapButton:GetName().."Text" ]:SetText( L.SHOW_MINIMAP_BUTTON ); local LockFlightMap = CreateFrame( "CheckButton", "FlightMapEnhancedLockFlightMap", config, "InterfaceOptionsCheckButtonTemplate" ); config.LockFlightMap = LockFlightMap; LockFlightMap.id = "LockFlightMap"; LockFlightMap:SetPoint( "TOPLEFT", ShowMiniMapButton, "BOTTOMLEFT", 0, -16); LockFlightMap:SetScript("onClick",config.ChangeState); _G[ LockFlightMap:GetName().."Text" ]:SetText( L.FLIGHT_FRAME_LOCK ); local DetachAddon = CreateFrame( "CheckButton", "FlightMapEnhancedDetachAddon", config, "InterfaceOptionsCheckButtonTemplate" ); config.DetachAddon = DetachAddon; DetachAddon.id = "DetachAddon"; DetachAddon:SetPoint( "TOPLEFT", LockFlightMap, "BOTTOMLEFT", 0, -16); DetachAddon:SetScript("onClick",config.ChangeState); _G[ DetachAddon:GetName().."Text" ]:SetText( L.DETACH_ADDON_FRAME ); local LockAddonFrame = CreateFrame( "CheckButton", "FlightMapEnhancedLockAddonFrame", config, "InterfaceOptionsCheckButtonTemplate" ); config.LockAddonFrame = LockAddonFrame; LockAddonFrame.id = "LockAddonFrame"; LockAddonFrame:SetPoint( "TOPLEFT", DetachAddon, "BOTTOMLEFT", 0, -16); LockAddonFrame:SetScript("onClick",config.ChangeState); _G[ LockAddonFrame:GetName().."Text" ]:SetText( L.LOCK_ADDON_FRAME ); local ConfirmFlyAuto = CreateFrame( "CheckButton", "FlightMapEnhancedConfirmFlyAuto", config, "InterfaceOptionsCheckButtonTemplate" ); config.ConfirmFlyAuto = ConfirmFlyAuto; ConfirmFlyAuto.id = "ConfirmFlyAuto"; ConfirmFlyAuto:SetPoint( "TOPLEFT", LockAddonFrame, "BOTTOMLEFT", 0, -16); ConfirmFlyAuto:SetScript("onClick",config.ChangeState); _G[ ConfirmFlyAuto:GetName().."Text" ]:SetText( L.CONFIG_CONFIRM_FLIGHT_AUTO ); local ConfirmFlyManual = CreateFrame( "CheckButton", "FlightMapEnhancedConfirmFlyManual", config, "InterfaceOptionsCheckButtonTemplate" ); config.ConfirmFlyManual = ConfirmFlyManual; ConfirmFlyManual.id = "ConfirmFlyManual"; ConfirmFlyManual:SetPoint( "TOPLEFT", ConfirmFlyAuto, "BOTTOMLEFT", 0, -16); ConfirmFlyManual:SetScript("onClick",config.ChangeState); _G[ ConfirmFlyManual:GetName().."Text" ]:SetText( L.CONFIG_CONFIRM_FLIGHT_MANUAL ); InterfaceOptions_AddCategory(config); moduleconfig.name = L.CONFIG_MODULES; moduleconfig.parent = "Flight Map Enhanced"; moduleconfig:SetHeight(10); local ModuleWarn = moduleconfig:CreateFontString( nil, "OVERLAY", "GameFontHighlight" ); moduleconfig.ModuleWarn = ModuleWarn; ModuleWarn:SetPoint("TOPLEFT", moduleconfig,"TOPLEFT", 16, -16) ModuleWarn:SetWidth(InterfaceOptionsFramePanelContainer:GetRight() - InterfaceOptionsFramePanelContainer:GetLeft() - 30); ModuleWarn:SetHeight(0); ModuleWarn:SetJustifyH("LEFT"); ModuleWarn:SetText("|c00dfb802"..L.CONFIG_MODULES_HELP_CAPTION.."|r|n"..L.CONFIG_MODULES_HELP_TEXT); local modulewmc = CreateFrame( "CheckButton", "FlightMapEnhanced_Module_wmc", moduleconfig, "InterfaceOptionsCheckButtonTemplate" ); moduleconfig.modulewmc = modulewmc; modulewmc.id = "wmc"; modulewmc:SetPoint( "TOPLEFT", ModuleWarn, "BOTTOMLEFT", 0, -16); modulewmc:SetScript("onClick",moduleconfig.ChangeState); _G[ modulewmc:GetName().."Text" ]:SetText( "|c00dfb802World Map Click" ); local Modulewmcexplain = moduleconfig:CreateFontString( nil, "OVERLAY", "GameFontHighlight" ); moduleconfig.Modulewmcexplain = Modulewmcexplain; Modulewmcexplain:SetPoint("TOPLEFT", modulewmc,"TOPLEFT", 0, -16) Modulewmcexplain:SetWidth(InterfaceOptionsFramePanelContainer:GetRight() - InterfaceOptionsFramePanelContainer:GetLeft() - 30); modulewmc:SetHeight(Modulewmcexplain:GetHeight() + 15); Modulewmcexplain:SetJustifyH("LEFT"); Modulewmcexplain:SetText( L.CONFIG_MODULES_WMC_EXPLAIN.."|n"..L.CONFIG_MODULES_WMC_EXPLAIN2); local modulemfm = CreateFrame( "CheckButton", "FlightMapEnhanced_Module_mfm", moduleconfig, "InterfaceOptionsCheckButtonTemplate" ); moduleconfig.modulemfm = modulemfm; modulemfm.id = "mfm"; modulemfm:SetPoint( "TOPLEFT", Modulewmcexplain, "BOTTOMLEFT", 0, -16); modulemfm:SetScript("onClick",moduleconfig.ChangeState); _G[ modulemfm:GetName().."Text" ]:SetText( "|c00dfb802Missing Flight Masters" ); local Modulemfmexplain = moduleconfig:CreateFontString( nil, "OVERLAY", "GameFontHighlight" ); moduleconfig.Modulemfmexplain = Modulemfmexplain; Modulemfmexplain:SetPoint("TOPLEFT", modulemfm,"TOPLEFT", 0, -16) Modulemfmexplain:SetWidth(InterfaceOptionsFramePanelContainer:GetRight() - InterfaceOptionsFramePanelContainer:GetLeft() - 30); modulemfm:SetHeight(Modulemfmexplain:GetHeight() + 15); Modulemfmexplain:SetJustifyH("LEFT"); Modulemfmexplain:SetText( L.CONFIG_MOUDLES_MFM_EXPLAIN); local moduleft = CreateFrame( "CheckButton", "FlightMapEnhanced_Module_ft", moduleconfig, "InterfaceOptionsCheckButtonTemplate" ); moduleconfig.moduleft = moduleft; moduleft.id = "ft"; moduleft:SetPoint( "TOPLEFT", Modulemfmexplain, "BOTTOMLEFT", 0, -16); moduleft:SetScript("onClick",moduleconfig.ChangeState); _G[ moduleft:GetName().."Text" ]:SetText( "|c00dfb802Flight Times" ); -- local Modulemfmexplain = moduleconfig:CreateFontString( nil, "OVERLAY", "GameFontHighlight" ); --moduleconfig.Modulemfmexplain = Modulemfmexplain; --Modulemfmexplain:SetPoint("TOPLEFT", modulemfm,"TOPLEFT", 0, -16) --Modulemfmexplain:SetWidth(InterfaceOptionsFramePanelContainer:GetRight() - InterfaceOptionsFramePanelContainer:GetLeft() - 30); --modulemfm:SetHeight(Modulemfmexplain:GetHeight() + 15); --Modulemfmexplain:SetJustifyH("LEFT"); --Modulemfmexplain:SetText( L.CONFIG_MOUDLES_MFM_EXPLAIN); InterfaceOptions_AddCategory(moduleconfig); if not (FlightMapEnhanced_Config.vconf) then config:SetDefaultConfig(); else config:SetCurrentConfig(); end ns.vconf = FlightMapEnhanced_Config.vconf; config:ChangeHandler(config.ShowMiniMapButton.id,config.ShowMiniMapButton:GetChecked()) config:ChangeHandler(config.LockFlightMap.id,config.LockFlightMap:GetChecked()) config:ChangeHandler(config.DetachAddon.id,config.DetachAddon:GetChecked()) config:ChangeHandler(config.LockAddonFrame.id,config.LockAddonFrame:GetChecked()) if not(FlightMapEnhanced_Config.vconf.modules) then FlightMapEnhanced_Config.vconf.modules = {}; moduleconfig:SetDefaultConfig(); else moduleconfig:SetCurrentConfig(); end end function moduleconfig:SetDefaultConfig() for _, val in pairs(ns.modules) do FlightMapEnhanced_Config.vconf.modules[val] = 1; _G["FlightMapEnhanced_Module_"..val]:SetChecked(1); end end function moduleconfig:SetCurrentConfig() for key, val in pairs(FlightMapEnhanced_Config.vconf.modules) do _G["FlightMapEnhanced_Module_"..key]:SetChecked(val); end end function moduleconfig:ChangeState() FlightMapEnhanced_Config.vconf.modules[self.id] = self:GetChecked(); end