WoWInterface SVN QuestGuruTracker

[/] [trunk/] [QuestGuru_Tracker/] [QuestGuru_Tracker.lua] - Rev 6

Compare with Previous | Blame | View Log

QGT_Settings = {};
QGT_PlayerAlive = false;
QGT_VariablesLoaded = false;
QGT_ShowTracker = true;
QGT_PlayerInCombat = false;

BINDING_HEADER_QGT_HEADER = "QuestGuru Tracker";
BINDING_NAME_QGT_TOGGLE_TRACKER_KB = "Toggle QuestGuru Tracker";

local lastColorPick;

do
---------------------
-- Tracker Options --
---------------------
        QGT_OptionsFrameTracker = CreateFrame("FRAME", "QGT_OptionsFrameTracker", QGT_OptionsFrame);
        QGT_OptionsFrameTracker.name = "QG Tracker";
        if (IsAddOnLoaded("QuestGuru")) then QGT_OptionsFrameTracker.parent = "QuestGuru"; end
        QGT_OptionsFrameTracker.default = function () QGT_SetTrackerDefaults(); end;
        InterfaceOptions_AddCategory(QGT_OptionsFrameTracker);
        QGT_OptionsFrameTracker:SetScript("OnShow",
                function ()
                        QGT_UpdateOptionsTrackerObjFade();
                end);

        QGT_OptionsFrameTrackerTitle = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerTitle", "ARTWORK", "GameFontNormalLarge");
        QGT_OptionsFrameTrackerTitle:SetPoint("TOPLEFT", 16, -16);
        QGT_OptionsFrameTrackerTitle:SetJustifyH("LEFT");
        QGT_OptionsFrameTrackerTitle:SetJustifyV("TOP");
        QGT_OptionsFrameTrackerTitle:SetText("QuestGuru Tracker "..QG_OPTIONS);

        QGT_OptionsFrameTrackerSubText = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerSubText", "ARTWORK", "GameFontHighlightSmall");
        QGT_OptionsFrameTrackerSubText:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerTitle", "BOTTOMLEFT", 0, -8);
        QGT_OptionsFrameTrackerSubText:SetPoint("RIGHT", -32, 0);
        QGT_OptionsFrameTrackerSubText:SetJustifyH("LEFT");
        QGT_OptionsFrameTrackerSubText:SetJustifyV("TOP");
        QGT_OptionsFrameTrackerSubText:SetHeight(24);
        QGT_OptionsFrameTrackerSubText:SetText(QG_OPT_TRACKER_DESC);

        QGT_OptionsFrameTrackerBorderToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerBorderToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerBorderToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerSubText, "BOTTOMLEFT", -2, -8);
        QGT_OptionsFrameTrackerBorderToggleText:SetText(QG_OPT_TRACKER_BORDER);
        QGT_OptionsFrameTrackerBorderToggle.tooltipText = QG_OPT_TRACKER_BORDER_DESC;
        QGT_OptionsFrameTrackerBorderToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerBorderToggle:GetChecked()) then
                                QGT_Settings.ShowBorder = true;
                        else
                                QGT_Settings.ShowBorder = false;
                        end
                        QGT_SetQuestWatchBorder(QGT_Settings.ShowBorder);
                        QGT_SetAchievementWatchBorder(QGT_Settings.ShowBorder);
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameQuestItemIconsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameQuestItemIconsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameQuestItemIconsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerBorderToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameQuestItemIconsToggleText:SetText(QG_OPT_TRACKER_ITEMICONS);
        QGT_OptionsFrameQuestItemIconsToggle.tooltipText = QG_OPT_TRACKER_ITEMICONS_DESC;
        QGT_OptionsFrameQuestItemIconsToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameQuestItemIconsToggle:GetChecked()) then
                                QGT_Settings.QuestItemIcons = true;
                        else
                                QGT_Settings.QuestItemIcons = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerClickThroughToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerClickThroughToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerClickThroughToggle:SetPoint("TOPLEFT", QGT_OptionsFrameQuestItemIconsToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerClickThroughToggleText:SetText(QG_OPT_TRACKER_CLICKTHROUGH);
        QGT_OptionsFrameTrackerClickThroughToggle.tooltipText = QG_OPT_TRACKER_CLICKTHROUGH_DESC;
        QGT_OptionsFrameTrackerClickThroughToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerClickThroughToggle:GetChecked()) then
                                QGT_Settings.ClickThrough = true;
                        else
                                QGT_Settings.ClickThrough = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerHeadersToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerHeadersToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerHeadersToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerSubText, "BOTTOMLEFT", 200, -8);
        QGT_OptionsFrameTrackerHeadersToggleText:SetText(QG_OPT_TRACKER_HEADERS);
        QGT_OptionsFrameTrackerHeadersToggle.tooltipText = QG_OPT_TRACKER_HEADERS_DESC;
        QGT_OptionsFrameTrackerHeadersToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerHeadersToggle:GetChecked()) then
                                QGT_Settings.ShowHeaders = true;
                        else
                                QGT_Settings.ShowHeaders = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerShowLevelsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerShowLevelsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerShowLevelsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerHeadersToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerShowLevelsToggleText:SetText(QG_OPT_TRACKER_LEVELS);
        QGT_OptionsFrameTrackerShowLevelsToggle.tooltipText = QG_OPT_TRACKER_LEVELS_DESC;
        QGT_OptionsFrameTrackerShowLevelsToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerShowLevelsToggle:GetChecked()) then
                                QGT_Settings.ShowLevels = true;
                        else
                                QGT_Settings.ShowLevels = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerQuestTooltipsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerQuestTooltipsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerQuestTooltipsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerShowLevelsToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerQuestTooltipsToggleText:SetText(QG_OPT_TRACKER_QUEST_TOOLTIPS);
        QGT_OptionsFrameTrackerQuestTooltipsToggle.tooltipText = QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC;
        QGT_OptionsFrameTrackerQuestTooltipsToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerQuestTooltipsToggle:GetChecked()) then
                                QGT_Settings.ShowQuestTooltips = true;
                        else
                                QGT_Settings.ShowQuestTooltips = false;
                        end
                end);

        QGT_OptionsFrameTrackerPartyTooltipsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerPartyTooltipsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerPartyTooltipsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerQuestTooltipsToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerPartyTooltipsToggleText:SetText(QG_OPT_TRACKER_PARTY_TOOLTIPS);
        QGT_OptionsFrameTrackerPartyTooltipsToggle.tooltipText = QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC;
        QGT_OptionsFrameTrackerPartyTooltipsToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerPartyTooltipsToggle:GetChecked()) then
                                QGT_Settings.ShowPartyTooltips = true;
                        else
                                QGT_Settings.ShowPartyTooltips = false;
                        end
                end);

        QGT_OptionsFrameTrackerQuestPercentToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerQuestPercentToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerQuestPercentToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerPartyTooltipsToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerQuestPercentToggleText:SetText(QG_OPT_TRACKER_PERCENT);
        QGT_OptionsFrameTrackerQuestPercentToggle.tooltipText = QG_OPT_TRACKER_PERCENT_DESC;
        QGT_OptionsFrameTrackerQuestPercentToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerQuestPercentToggle:GetChecked()) then
                                QGT_Settings.ShowQuestPercent = true;
                        else
                                QGT_Settings.ShowQuestPercent = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerExpandUpToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerExpandUpToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerExpandUpToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerQuestPercentToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerExpandUpToggleText:SetText(QG_OPT_TRACKER_ANCHOR_BOTTOM);
        QGT_OptionsFrameTrackerExpandUpToggle.tooltipText = QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC;
        QGT_OptionsFrameTrackerExpandUpToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerExpandUpToggle:GetChecked()) then
                                QGT_Settings.Anchor = "BOTTOM";
                        else
                                QGT_Settings.Anchor = "TOP";
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerHideCombatToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerHideCombatToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerHideCombatToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerExpandUpToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerHideCombatToggleText:SetText(QG_OPT_TRACKER_HIDECOMBAT);
        QGT_OptionsFrameTrackerHideCombatToggle.tooltipText = QG_OPT_TRACKER_HIDECOMBAT_DESC;
        QGT_OptionsFrameTrackerHideCombatToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerHideCombatToggle:GetChecked()) then
                                QGT_Settings.HideDuringCombat = true;
                        else
                                QGT_Settings.HideDuringCombat = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerHideBlizzTrackToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerHideBlizzTrackToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerHideCombatToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerHideBlizzTrackToggleText:SetText(QG_OPT_TRACKER_HIDEBLIZZTRACK);
        QGT_OptionsFrameTrackerHideBlizzTrackToggle.tooltipText = QG_OPT_TRACKER_HIDEBLIZZTRACK_DESC;
        QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerHideBlizzTrackToggle:GetChecked()) then
                                QGT_Settings.HideBlizzardTracker = true;
                        else
                                QGT_Settings.HideBlizzardTracker = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerPinToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerPinToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerPinToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerClickThroughToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerPinToggleText:SetText(QG_OPT_TRACKER_PIN);
        QGT_OptionsFrameTrackerPinToggle.tooltipText = QG_OPT_TRACKER_PIN_DESC;
        QGT_OptionsFrameTrackerPinToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerPinToggle:GetChecked()) then
                                QGT_Settings.Pin = true;
                        else
                                QGT_Settings.Pin = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerAutoUnTrackToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerAutoUnTrackToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerAutoUnTrackToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerPinToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerAutoUnTrackToggleText:SetText(QG_OPT_TRACKER_AUTOUNTRACK);
        QGT_OptionsFrameTrackerAutoUnTrackToggle.tooltipText = QG_OPT_TRACKER_AUTOUNTRACK_DESC;
        QGT_OptionsFrameTrackerAutoUnTrackToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerAutoUnTrackToggle:GetChecked()) then
                                QGT_Settings.AutoUnTrack = true;
                        else
                                QGT_Settings.AutoUnTrack = false;
                        end
                end);

        QGT_OptionsFrameTrackerShowCompletedObjToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerShowCompletedObjToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerShowCompletedObjToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerAutoUnTrackToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerShowCompletedObjToggleText:SetText(QG_OPT_TRACKER_COMPLETE_OBJ);
        QGT_OptionsFrameTrackerShowCompletedObjToggle.tooltipText = QG_OPT_TRACKER_COMPLETE_OBJ_DESC;
        QGT_OptionsFrameTrackerShowCompletedObjToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerShowCompletedObjToggle:GetChecked()) then
                                QGT_Settings.ShowCompletedObj = true;
                        else
                                QGT_Settings.ShowCompletedObj = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerColorizeObjToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerColorizeObjToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate");
        QGT_OptionsFrameTrackerColorizeObjToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerShowCompletedObjToggle, "BOTTOMLEFT", 0, 2);
        QGT_OptionsFrameTrackerColorizeObjToggleText:SetText(QG_OPT_TRACKER_COLOR_OBJ);
        QGT_OptionsFrameTrackerColorizeObjToggle.tooltipText = QG_OPT_TRACKER_COLOR_OBJ_DESC;
        QGT_OptionsFrameTrackerColorizeObjToggle:SetScript("OnClick",
                function ()
                        if (QGT_OptionsFrameTrackerColorizeObjToggle:GetChecked()) then
                                QGT_Settings.ColorizeObj = true;
                        else
                                QGT_Settings.ColorizeObj = false;
                        end
                        WatchFrame_Update();
                end);

        QGT_OptionsFrameTrackerZeroColor = CreateFrame("Button", "QGT_OptionsFrameTrackerZeroColor", QGT_OptionsFrameTracker, "QGT_ColorPickerButtonTemplate");
        QGT_OptionsFrameTrackerZeroColor:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerColorizeObjToggle, "BOTTOMLEFT", 0, -6);
        QGT_OptionsFrameTrackerZeroColorSwatch:SetTexture(1.0, 1.0, 1.0, 1.0);
        QGT_OptionsFrameTrackerZeroColor.tooltipText = QG_OPT_TRACKER_OBJ_COLOR_0;
        QGT_OptionsFrameTrackerZeroColor:SetScript("OnClick",
                function ()
                        ColorPickerFrame.hasOpacity = false;
                        ColorPickerFrame.func = QGT_OptionsSaveColor;
                        lastColorPick = "TrackerZero";
                        ColorPickerFrame:SetColorRGB(QGT_Settings.ColorizeObjZero.r, QGT_Settings.ColorizeObjZero.g, QGT_Settings.ColorizeObjZero.b);
                        ColorPickerFrame:Show();
                        ColorPickerFrame:SetPoint("TOPLEFT", InterfaceOptionsFrame, "TOPRIGHT", -50, 0);
                end);
        QGT_OptionsFrameTrackerZeroLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerZeroLabel", "ARTWORK", "GameFontNormalSmall");
        QGT_OptionsFrameTrackerZeroLabel:SetPoint("TOP", "QGT_OptionsFrameTrackerZeroColor", "BOTTOM", 0, 0);
        QGT_OptionsFrameTrackerZeroLabel:SetText("0%");

        temp = QGT_OptionsFrameTracker:CreateTexture("QGT_OptionsFrameTrackerGradient", "ARTWORK");
        temp:SetWidth(80);
        temp:SetHeight(12);
        temp:SetTexture(1, 1, 1);
        temp:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerZeroColor", "TOPRIGHT", 12, -2);

        QGT_OptionsFrameTrackerFullColor = CreateFrame("Button", "QGT_OptionsFrameTrackerFullColor", QGT_OptionsFrameTracker, "QGT_ColorPickerButtonTemplate");
        QGT_OptionsFrameTrackerFullColor:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerGradient", "TOPRIGHT", 12, 2);
        QGT_OptionsFrameTrackerFullColorSwatch:SetTexture(1.0, 1.0, 1.0, 1.0);
        QGT_OptionsFrameTrackerFullColor.tooltipText = QG_OPT_TRACKER_OBJ_COLOR_99;
        QGT_OptionsFrameTrackerFullColor:SetScript("OnClick",
                function ()
                        ColorPickerFrame.hasOpacity = false;
                        ColorPickerFrame.func = QGT_OptionsSaveColor;
                        lastColorPick = "TrackerFull";
                        ColorPickerFrame:SetColorRGB(QGT_Settings.ColorizeObjFull.r, QGT_Settings.ColorizeObjFull.g, QGT_Settings.ColorizeObjFull.b);
                        ColorPickerFrame:Show();
                        ColorPickerFrame:SetPoint("TOPLEFT", InterfaceOptionsFrame, "TOPRIGHT", -50, 0);
                end);
        QGT_OptionsFrameTrackerFullLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerFullLabel", "ARTWORK", "GameFontNormalSmall");
        QGT_OptionsFrameTrackerFullLabel:SetPoint("TOP", "QGT_OptionsFrameTrackerFullColor", "BOTTOM", 0, 0);
        QGT_OptionsFrameTrackerFullLabel:SetText("99%");

        QGT_OptionsFrameTrackerCompleteColor = CreateFrame("Button", "QGT_OptionsFrameTrackerCompleteColor", QGT_OptionsFrameTracker, "QGT_ColorPickerButtonTemplate");
        QGT_OptionsFrameTrackerCompleteColor:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerFullColor, "TOPRIGHT", 30, 0);
        QGT_OptionsFrameTrackerCompleteColorSwatch:SetTexture(1.0, 1.0, 1.0, 1.0);
        QGT_OptionsFrameTrackerCompleteColor.tooltipText = QG_OPT_TRACKER_OBJ_COLOR_COMPLETE;
        QGT_OptionsFrameTrackerCompleteColor:SetScript("OnClick",
                function ()
                        ColorPickerFrame.hasOpacity = false;
                        ColorPickerFrame.func = QGT_OptionsSaveColor;
                        lastColorPick = "TrackerComplete";
                        ColorPickerFrame:SetColorRGB(QGT_Settings.ColorizeObjComplete.r, QGT_Settings.ColorizeObjComplete.g, QGT_Settings.ColorizeObjComplete.b);
                        ColorPickerFrame:Show();
                        ColorPickerFrame:SetPoint("TOPLEFT", InterfaceOptionsFrame, "TOPRIGHT", -50, 0);
                end);
        QGT_OptionsFrameTrackerCompleteLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerCompleteLabel", "ARTWORK", "GameFontNormalSmall");
        QGT_OptionsFrameTrackerCompleteLabel:SetPoint("TOP", "QGT_OptionsFrameTrackerCompleteColor", "BOTTOM", 0, 0);
        QGT_OptionsFrameTrackerCompleteLabel:SetText(COMPLETE);

        QGT_OptionsFrameTrackerBulletLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerBulletLabel", "ARTWORK", "GameFontNormal");
        QGT_OptionsFrameTrackerBulletLabel:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerZeroLabel", "BOTTOMLEFT", 0, -6);
        QGT_OptionsFrameTrackerBulletLabel:SetText(QG_OPT_TRACKER_BULLET);

        QGT_OptionsFrameTrackerBulletText = CreateFrame("EditBox", "QGT_OptionsFrameTrackerBulletText", QGT_OptionsFrameTracker, "InputBoxTemplate");
        QGT_OptionsFrameTrackerBulletText:SetPoint("LEFT", "QGT_OptionsFrameTrackerBulletLabel", "RIGHT", 8, 0);
        QGT_OptionsFrameTrackerBulletText:SetHeight(20);
        QGT_OptionsFrameTrackerBulletText:SetWidth(36);
        QGT_OptionsFrameTrackerBulletText:SetAutoFocus(false);
        QGT_OptionsFrameTrackerBulletText:SetScript("OnShow",
                function (self)
                        QGT_OptionsFrameTrackerBulletText:SetCursorPosition(0);
                end);
        QGT_OptionsFrameTrackerBulletText:SetScript("OnTextChanged",
                function ()
                        QGT_Settings.Bullet = QGT_OptionsFrameTrackerBulletText:GetText();
                        WatchFrame_Update();
                end);
        QGT_OptionsFrameTrackerBulletText:SetScript("OnEscapePressed",
                function (self)
                        self:ClearFocus();
                end);

        QGT_OptionsFrameTrackerAlpha = CreateFrame("Slider", "QGT_OptionsFrameTrackerAlpha", QGT_OptionsFrameTracker, "OptionsSliderTemplate");
        QGT_OptionsFrameTrackerAlpha:SetWidth(300);
        QGT_OptionsFrameTrackerAlpha:SetHeight(16);
        QGT_OptionsFrameTrackerAlpha:SetPoint("CENTER", QGT_OptionsFrameTracker, "BOTTOM", 0, 24);
        QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA);
        QGT_OptionsFrameTrackerAlphaHigh:SetText("100%");
        QGT_OptionsFrameTrackerAlphaLow:SetText("0%");
        QGT_OptionsFrameTrackerAlpha:SetMinMaxValues(0,1);
        QGT_OptionsFrameTrackerAlpha:SetValueStep(0.01);
        QGT_OptionsFrameTrackerAlpha:SetValue(0.7);
        QGT_OptionsFrameTrackerAlpha:SetScript("OnValueChanged",
                function ()
                        QGT_Settings.Alpha = QGT_OptionsFrameTrackerAlpha:GetValue();
                        QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha);
                        QGT_QuestWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha);
                        QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha);
                        QGT_AchievementWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha);
                        QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA.." ("..abs(ceil((QGT_Settings.Alpha * 100)-0.5)).."%)");
                end);

        QGT_OptionsFrameTrackerScale = CreateFrame("Slider", "QGT_OptionsFrameTrackerScale", QGT_OptionsFrameTracker, "OptionsSliderTemplate");
        QGT_OptionsFrameTrackerScale:SetWidth(300);
        QGT_OptionsFrameTrackerScale:SetHeight(16);
        QGT_OptionsFrameTrackerScale:SetPoint("CENTER", QGT_OptionsFrameTracker, "BOTTOM", 0, 58);
        QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE);
        QGT_OptionsFrameTrackerScaleHigh:SetText("150%");
        QGT_OptionsFrameTrackerScaleLow:SetText("50%");
        QGT_OptionsFrameTrackerScale:SetMinMaxValues(0.5,1.5);
        QGT_OptionsFrameTrackerScale:SetValueStep(0.01);
        QGT_OptionsFrameTrackerScale:SetValue(0.9);
        QGT_OptionsFrameTrackerScale:SetScript("OnValueChanged",
                function ()
                        QGT_Settings.Scale = QGT_OptionsFrameTrackerScale:GetValue();
                        QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE.." ("..ceil((QGT_Settings.Scale * 100)-0.5).."%)");
                        QGT_QuestWatchFrame:SetScale(QGT_Settings.Scale);
                        QGT_AchievementWatchFrame:SetScale(QGT_Settings.Scale);
                end);

        QGT_OptionsFrameTrackerLines = CreateFrame("Slider", "QGT_OptionsFrameTrackerLines", QGT_OptionsFrameTracker, "OptionsSliderTemplate");
        QGT_OptionsFrameTrackerLines:SetWidth(300);
        QGT_OptionsFrameTrackerLines:SetHeight(16);
        QGT_OptionsFrameTrackerLines:SetPoint("CENTER", QGT_OptionsFrameTracker, "BOTTOM", 0, 92);
        QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES);
        QGT_OptionsFrameTrackerLinesHigh:SetText("40");
        QGT_OptionsFrameTrackerLinesLow:SetText("7");
        QGT_OptionsFrameTrackerLines:SetMinMaxValues(7,40);
        QGT_OptionsFrameTrackerLines:SetValueStep(1);
        QGT_OptionsFrameTrackerLines:SetValue(30);
        QGT_OptionsFrameTrackerLines:SetScript("OnValueChanged",
                function ()
                        QGT_Settings.Lines = QGT_OptionsFrameTrackerLines:GetValue();
                        QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES.." "..QGT_Settings.Lines);
                        WatchFrame_Update();
                end);

end

function QGT_OptionsSaveColor()
        local r,g,b = ColorPickerFrame:GetColorRGB();

        if (lastColorPick == "TrackerZero") then
                QGT_Settings.ColorizeObjZero.r = r;
                QGT_Settings.ColorizeObjZero.g = g;
                QGT_Settings.ColorizeObjZero.b = b;
                QGT_UpdateOptionsTrackerObjFade();
                WatchFrame_Update();
        elseif (lastColorPick == "TrackerFull") then
                QGT_Settings.ColorizeObjFull.r = r;
                QGT_Settings.ColorizeObjFull.g = g;
                QGT_Settings.ColorizeObjFull.b = b;
                QGT_UpdateOptionsTrackerObjFade();
                WatchFrame_Update();
        elseif (lastColorPick == "TrackerComplete") then
                QGT_Settings.ColorizeObjComplete.r = r;
                QGT_Settings.ColorizeObjComplete.g = g;
                QGT_Settings.ColorizeObjComplete.b = b;
                QGT_OptionsFrameTrackerCompleteColorSwatch:SetTexture(r, g, b);
                WatchFrame_Update();
        end
end

function QGT_UpdateOptionsTrackerObjFade()
        local r, g, b;
        
        QGT_OptionsFrameTrackerGradient:SetGradient("HORIZONTAL", QGT_Settings.ColorizeObjZero.r, QGT_Settings.ColorizeObjZero.g, QGT_Settings.ColorizeObjZero.b, QGT_Settings.ColorizeObjFull.r, QGT_Settings.ColorizeObjFull.g, QGT_Settings.ColorizeObjFull.b);

        r, g, b = QGT_QuestWatchGetObjColor(0, true);
        QGT_OptionsFrameTrackerZeroColorSwatch:SetTexture(r, g, b);

        r, g, b = QGT_QuestWatchGetObjColor(0.99, true);
        QGT_OptionsFrameTrackerFullColorSwatch:SetTexture(r, g, b);

        r, g, b = QGT_QuestWatchGetObjColor(1, true);
        QGT_OptionsFrameTrackerCompleteColorSwatch:SetTexture(r, g, b);
end

function QGT_SetTrackerDefaults()
        QGT_Settings.ShowBorder = true;
        QGT_SetQuestWatchBorder(QGT_Settings.ShowBorder);
        QGT_SetAchievementWatchBorder(QGT_Settings.ShowBorder);
        QGT_OptionsFrameTrackerBorderToggle:SetChecked(QGT_Settings.ShowBorder);
        
        QGT_Settings.Scale = 0.9;
        QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE.." ("..ceil((QGT_Settings.Scale * 100)-0.5).."%)");
        QGT_OptionsFrameTrackerScale:SetValue(QGT_Settings.Scale);
        QGT_QuestWatchFrame:SetScale(QGT_Settings.Scale);
        QGT_AchievementWatchFrame:SetScale(QGT_Settings.Scale);
        
        QGT_Settings.Lines = 30;
        QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES.." "..QGT_Settings.Lines);
        QGT_OptionsFrameTrackerLines:SetValue(QGT_Settings.Lines);
        
        QGT_Settings.Minimized = false;
        
        QGT_Settings.Alpha = 0.7;
        QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha);
        QGT_QuestWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha);
        QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha);
        QGT_AchievementWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha);
        QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA.." ("..abs(ceil((QGT_Settings.Alpha * 100)-0.5)).."%)");
        QGT_OptionsFrameTrackerAlpha:SetValue(QGT_Settings.Alpha);
        
        QGT_Settings.ShowHeaders = true;
        QGT_OptionsFrameTrackerHeadersToggle:SetChecked(QGT_Settings.ShowHeaders);
        
        QGT_Settings.QuestItemIcons = true;
        QGT_OptionsFrameQuestItemIconsToggle:SetChecked(QGT_Settings.QuestItemIcons);
        
        QGT_Settings.ShowLevels = true;
        QGT_OptionsFrameTrackerShowLevelsToggle:SetChecked(QGT_Settings.ShowLevels);
        
        QGT_Settings.Pin = false;
        QGT_OptionsFrameTrackerPinToggle:SetChecked(QGT_Settings.Pin);
        
        QGT_Settings.HideDuringCombat = false;
        QGT_OptionsFrameTrackerHideCombatToggle:SetChecked(QGT_Settings.HideDuringCombat);
        
        QGT_Settings.HideBlizzardTracker = true;
        QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetChecked(QGT_Settings.HideBlizzardTracker);
        
        QGT_Settings.AutoUnTrack = false;
        QGT_OptionsFrameTrackerAutoUnTrackToggle:SetChecked(QGT_Settings.AutoUnTrack);
        
        QGT_Settings.ShowCompletedObj = true;
        QGT_OptionsFrameTrackerShowCompletedObjToggle:SetChecked(QGT_Settings.ShowCompletedObj);
        
        QGT_Settings.ColorizeObj = false;
        QGT_OptionsFrameTrackerColorizeObjToggle:SetChecked(QGT_Settings.ColorizeObj);
        QGT_Settings.ColorizeObjZero.r = 0.8;
        QGT_Settings.ColorizeObjZero.g = 0.2;
        QGT_Settings.ColorizeObjZero.b = 0.8;
        QGT_Settings.ColorizeObjFull.r = 0.3;
        QGT_Settings.ColorizeObjFull.g = 0.8;
        QGT_Settings.ColorizeObjFull.b = 1.0;
        QGT_Settings.ColorizeObjComplete.r = 0.1;
        QGT_Settings.ColorizeObjComplete.g = 0.9;
        QGT_Settings.ColorizeObjComplete.b = 1.0;
        
        QGT_Settings.ClickThrough = false;
        QGT_OptionsFrameTrackerClickThroughToggle:SetChecked(QGT_Settings.ClickThrough);
        
        QGT_Settings.ShowQuestTooltips = true;
        QGT_OptionsFrameTrackerQuestTooltipsToggle:SetChecked(QGT_Settings.ShowQuestTooltips);
        
        QGT_Settings.ShowPartyTooltips = true;
        QGT_OptionsFrameTrackerPartyTooltipsToggle:SetChecked(QGT_Settings.ShowPartyTooltips);
        
        QGT_Settings.ShowQuestPercent = true;
        QGT_OptionsFrameTrackerQuestPercentToggle:SetChecked(QGT_Settings.ShowQuestPercent);

        QGT_Settings.Bullet = "-";
        QGT_OptionsFrameTrackerBulletText:SetText(QGT_Settings.Bullet);
        
        QGT_Settings.Anchor = "TOP";
        QGT_OptionsFrameTrackerExpandUpToggle:SetChecked(false);
        
        QGT_Settings.QuestWatchSort = 0; -- Default to Header/Quest style, like QuestLog (1=Sorted by proximity)
        
        QGT_UpdateOptionsTrackerObjFade();
        WatchFrame_Update();
end

-- QuestWatch functions
function QGT_WatchFrame_Update()
        if (QGT_Settings.HideBlizzardTracker) then
                WatchFrame:Hide();
        else
                WatchFrame:Show();
        end

        if (not (QGT_PlayerAlive and QGT_VariablesLoaded)) then return; end
        
        if ((not QGT_ShowTracker) or (QGT_PlayerInCombat and QGT_Settings.HideDuringCombat)) then
                QGT_QuestWatchFrame:Hide();
                QGT_AchievementWatchFrame:Hide();
                return;
        end

        if ((QGT_Settings.LastTracker == "Q") or QGT_Settings.BothTrackers) then
                QGT_QuestWatch_Update();
        else
                QGT_QuestWatchFrame:Hide();
        end
        if ((QGT_Settings.LastTracker == "A") or QGT_Settings.BothTrackers) then
                QGT_AchievementWatch_Update();
        else
                QGT_AchievementWatchFrame:Hide();
        end
end
hooksecurefunc("WatchFrame_Update", QGT_WatchFrame_Update);

function WatchFrame_GetRemainingSpace()
        return 1000;
end

function QGT_QuestWatchLoadSettings()
        if (QGT_WatchHeaders == nil) then
            QGT_WatchHeaders = {};
        end
        if (QGT_WatchQuests == nil) then
            QGT_WatchQuests = {};
        end
        if (QGT_WatchAchievements == nil) then
            QGT_WatchAchievements = {};
        end

        if (QGT_Settings == nil) then
                QGT_Settings = {};
        end
        if (QGT_Settings.QuestWatch == nil) then
                QGT_Settings.QuestWatch = {};
        end
        if (QGT_Settings.AchievementWatch == nil) then
                QGT_Settings.AchievementWatch = {};
        end
        if (QGT_Settings.ShowBorder ~= false) then
                QGT_Settings.ShowBorder = true;
        end
        QGT_OptionsFrameTrackerBorderToggle:SetChecked(QGT_Settings.ShowBorder);
        QGT_SetQuestWatchBorder(QGT_Settings.ShowBorder);
        QGT_SetAchievementWatchBorder(QGT_Settings.ShowBorder);
        if (QGT_Settings.Scale == nil) then
                QGT_Settings.Scale = 0.9;
        end
        QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE.." ("..ceil((QGT_Settings.Scale * 100)-0.5).."%)");
        QGT_OptionsFrameTrackerScale:SetValue(QGT_Settings.Scale);
        QGT_QuestWatchFrame:SetScale(QGT_Settings.Scale);
        QGT_AchievementWatchFrame:SetScale(QGT_Settings.Scale);
        
        if (QGT_Settings.Lines == nil) then
                QGT_Settings.Lines = 30;
        end
        QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES.." "..QGT_Settings.Lines);
        QGT_OptionsFrameTrackerLines:SetValue(QGT_Settings.Lines);
        
        if (QGT_Settings.QuestWatch.Minimized ~= true) then
                QGT_Settings.QuestWatch.Minimized = false;
        end
        if (QGT_Settings.QuestWatch.AutoMinimize ~= true) then
                QGT_Settings.QuestWatch.AutoMinimize = false;
        end
        if (QGT_Settings.AchievementWatch.Minimized ~= true) then
                QGT_Settings.AchievementWatch.Minimized = false;
        end
        if (QGT_Settings.AchievementWatch.AutoMinimize ~= true) then
                QGT_Settings.AchievementWatch.AutoMinimize = false;
        end
        if (QGT_Settings.Anchor == nil) then
                QGT_Settings.Anchor = "TOP";
        end
        if (QGT_Settings.Anchor == "BOTTOM") then
                QGT_OptionsFrameTrackerExpandUpToggle:SetChecked(true);
        else
                QGT_OptionsFrameTrackerExpandUpToggle:SetChecked(false);
        end

        if (QGT_Settings.Alpha == nil) then
                QGT_Settings.Alpha = 0.7;
        end
        QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha);
        QGT_QuestWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha);
        QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha);
        QGT_AchievementWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha);
        QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA.." ("..abs(ceil((QGT_Settings.Alpha * 100)-0.5)).."%)");
        QGT_OptionsFrameTrackerAlpha:SetValue(QGT_Settings.Alpha);

        if (QGT_Settings.ShowHeaders ~= false) then
                QGT_Settings.ShowHeaders = true;
        end
        QGT_OptionsFrameTrackerHeadersToggle:SetChecked(QGT_Settings.ShowHeaders);

        if (QGT_Settings.QuestItemIcons ~= false) then
                QGT_Settings.QuestItemIcons = true;
        end
        QGT_OptionsFrameQuestItemIconsToggle:SetChecked(QGT_Settings.QuestItemIcons);

        if (QGT_Settings.ShowLevels ~= false) then
                QGT_Settings.ShowLevels = true;
        end
        QGT_OptionsFrameTrackerShowLevelsToggle:SetChecked(QGT_Settings.ShowLevels);

        if (QGT_Settings.Pin ~= true) then
                QGT_Settings.Pin = false;
        end
        QGT_OptionsFrameTrackerPinToggle:SetChecked(QGT_Settings.Pin);

        if (QGT_Settings.HideDuringCombat ~= true) then
                QGT_Settings.HideDuringCombat = false;
        end
        QGT_OptionsFrameTrackerHideCombatToggle:SetChecked(QGT_Settings.HideDuringCombat);
        
        if (QGT_Settings.HideBlizzardTracker ~= false) then
                QGT_Settings.HideBlizzardTracker = true;
        end
        QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetChecked(QGT_Settings.HideBlizzardTracker);

        if (QGT_Settings.AutoUnTrack ~= true) then
                QGT_Settings.AutoUnTrack = false;
        end
        QGT_OptionsFrameTrackerAutoUnTrackToggle:SetChecked(QGT_Settings.AutoUnTrack);

        if (QGT_Settings.ShowCompletedObj ~= false) then
                QGT_Settings.ShowCompletedObj = true;
        end
        QGT_OptionsFrameTrackerShowCompletedObjToggle:SetChecked(QGT_Settings.ShowCompletedObj);

        if (QGT_Settings.ColorizeObj ~= true) then
                QGT_Settings.ColorizeObj = false;
        end
        QGT_OptionsFrameTrackerColorizeObjToggle:SetChecked(QGT_Settings.ColorizeObj);
        
        if (QGT_Settings.ColorizeObjZero == nil) then
                QGT_Settings.ColorizeObjZero = {};
                QGT_Settings.ColorizeObjZero.r = 0.8;
                QGT_Settings.ColorizeObjZero.g = 0.2;
                QGT_Settings.ColorizeObjZero.b = 0.8;
        end
        if (QGT_Settings.ColorizeObjFull == nil) then
                QGT_Settings.ColorizeObjFull = {};
                QGT_Settings.ColorizeObjFull.r = 0.3;
                QGT_Settings.ColorizeObjFull.g = 0.8;
                QGT_Settings.ColorizeObjFull.b = 1.0;
        end
        if (QGT_Settings.ColorizeObjComplete == nil) then
                QGT_Settings.ColorizeObjComplete = {};
                QGT_Settings.ColorizeObjComplete.r = 0.1;
                QGT_Settings.ColorizeObjComplete.g = 0.9;
                QGT_Settings.ColorizeObjComplete.b = 1.0;
        end

        if (QGT_Settings.ClickThrough ~= true) then
                QGT_Settings.ClickThrough = false;
        end
        QGT_OptionsFrameTrackerClickThroughToggle:SetChecked(QGT_Settings.ClickThrough);

        if (QGT_Settings.ShowQuestTooltips ~= false) then
                QGT_Settings.ShowQuestTooltips = true;
        end
        QGT_OptionsFrameTrackerQuestTooltipsToggle:SetChecked(QGT_Settings.ShowQuestTooltips);

        if (QGT_Settings.ShowPartyTooltips ~= false) then
                QGT_Settings.ShowPartyTooltips = true;
        end
        QGT_OptionsFrameTrackerPartyTooltipsToggle:SetChecked(QGT_Settings.ShowPartyTooltips);

        if (QGT_Settings.ShowQuestPercent ~= false) then
                QGT_Settings.ShowQuestPercent = true;
        end
        QGT_OptionsFrameTrackerQuestPercentToggle:SetChecked(QGT_Settings.ShowQuestPercent);
        
        if (QGT_Settings.Bullet == nil) then
                QGT_Settings.Bullet = "-";
        end     
        QGT_OptionsFrameTrackerBulletText:SetText(QGT_Settings.Bullet);
        
        if (QGT_Settings.LastTracker ~= "A") then
                QGT_Settings.LastTracker = "Q";
        end
        if (QGT_Settings.BothTrackers ~= true) then
                QGT_Settings.BothTrackers = false;
        end
end

Compare with Previous | Blame