режим предателя + UI референсы и DragonUI
This commit is contained in:
@@ -0,0 +1,601 @@
|
||||
-- CONSTANTS
|
||||
KBASE_NUM_ARTICLES_PER_PAGE = 20;
|
||||
KBASE_NUM_FAKE_CATEGORIES = 1;
|
||||
KBASE_NUM_FAKE_SUBCATEGORIES = 1;
|
||||
KBASE_TOOLTIP_DELAY = .7;
|
||||
KBASE_SEARCH_BUTTON_DELAY = 1;
|
||||
|
||||
-- Internal variables
|
||||
KBASE_CURRENT_PAGE = 1;
|
||||
KBASE_SEARCH_PERFORMED = 0;
|
||||
KBASE_SETUP_LOADED = 0;
|
||||
KBASE_ENABLE_SEARCH = 1;
|
||||
|
||||
function KnowledgeBaseFrame_OnLoad(self)
|
||||
self:RegisterEvent("UPDATE_GM_STATUS");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_SETUP_LOAD_SUCCESS");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_SETUP_LOAD_FAILURE");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_QUERY_LOAD_SUCCESS");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_QUERY_LOAD_FAILURE");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_ARTICLE_LOAD_SUCCESS");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_ARTICLE_LOAD_FAILURE");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_SYSTEM_MOTD_UPDATE");
|
||||
self:RegisterEvent("KNOWLEDGE_BASE_SERVER_MESSAGE");
|
||||
|
||||
-- ADDITIONAL LAYOUT
|
||||
KnowledgeBaseFrame_DisableButtons();
|
||||
|
||||
KnowledgeBaseMotdText:SetWidth(KnowledgeBaseFrame:GetWidth() - KnowledgeBaseMotdLabel:GetWidth() - 80);
|
||||
KnowledgeBaseMotdTextFrame:SetWidth(KnowledgeBaseMotdText:GetWidth())
|
||||
KnowledgeBaseMotdTextFrame:SetHeight(KnowledgeBaseMotdText:GetHeight())
|
||||
|
||||
KnowledgeBaseServerMessageText:SetWidth(KnowledgeBaseFrame:GetWidth() - KnowledgeBaseServerMessageLabel:GetWidth() - 80);
|
||||
KnowledgeBaseServerMessageTextFrame:SetWidth(KnowledgeBaseServerMessageText:GetWidth())
|
||||
KnowledgeBaseServerMessageTextFrame:SetHeight(KnowledgeBaseServerMessageText:GetHeight())
|
||||
|
||||
KnowledgeBaseFrameEditBox:SetMaxBytes(128);
|
||||
KnowledgeBaseFrameEditBox:SetText(KBASE_DEFAULT_SEARCH_TEXT);
|
||||
|
||||
KnowledgeBaseArticleListFrameCount:SetPoint("TOPRIGHT", "KnowledgeBaseArticleListFramePreviousButton", "TOPLEFT", -6, -7);
|
||||
|
||||
KnowledgeBaseArticleScrollChildFrameTitle:SetWidth(KnowledgeBaseArticleScrollChildFrame:GetWidth() - KnowledgeBaseArticleScrollChildFrameBackButton:GetWidth() - 10);
|
||||
KnowledgeBaseArticleScrollChildFrameText:SetWidth(KnowledgeBaseArticleScrollChildFrame:GetWidth() - 10);
|
||||
KnowledgeBaseArticleListFramePreviousButton:SetPoint("RIGHT", "KnowledgeBaseArticleListFrameNextButton", "LEFT", - (KnowledgeBaseArticleListFramePreviousButtonText:GetWidth() + KnowledgeBaseArticleListFrameNextButtonText:GetWidth() + 5), 0);
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_OnShow(self)
|
||||
if ( KBASE_SETUP_LOADED == 0 ) then
|
||||
KBSetup_BeginLoading(KBASE_NUM_ARTICLES_PER_PAGE, KBASE_CURRENT_PAGE);
|
||||
end
|
||||
|
||||
GetGMStatus();
|
||||
GetGMTicket();
|
||||
KnowledgeBaseFrame_UpdateMotd();
|
||||
KnowledgeBaseFrame_UpdateServerMessage();
|
||||
KnowledgeBaseFrameEditBox:SetFocus();
|
||||
|
||||
HelpFrame.back = KnowledgeBaseFrameCancel;
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_OnEvent(self, event, ...)
|
||||
if ( event == "KNOWLEDGE_BASE_SETUP_LOAD_SUCCESS" ) then
|
||||
KBASE_SETUP_LOADED = 1;
|
||||
|
||||
UIDropDownMenu_Initialize(KnowledgeBaseFrameCategoryDropDown, KnowledgeBaseFrameCategoryDropDown_Initialize);
|
||||
UIDropDownMenu_Initialize(KnowledgeBaseFrameSubCategoryDropDown, KnowledgeBaseFrameSubCategoryDropDown_Initialize);
|
||||
|
||||
local articleHeaderCount = KBSetup_GetArticleHeaderCount();
|
||||
local totalArticleHeaderCount = KBSetup_GetTotalArticleCount();
|
||||
KnowledgeBaseFrame_EnableButtons(articleHeaderCount, totalArticleHeaderCount);
|
||||
|
||||
if ( articleHeaderCount > 0 ) then
|
||||
KnowledgeBaseArticleListFrame_PopulateArticleList(articleHeaderCount, totalArticleHeaderCount, KBSetup_GetArticleHeaderData);
|
||||
KnowledgeBaseFrame_ShowSearchFrame();
|
||||
else
|
||||
KnowledgeBaseErrorFrame_SetErrorMessage(KBASE_ERROR_NO_RESULTS);
|
||||
KnowledgeBaseFrame_ShowErrorFrame();
|
||||
end
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_SETUP_LOAD_FAILURE" ) then
|
||||
KnowledgeBaseErrorFrame_SetErrorMessage(KBASE_ERROR_LOAD_FAILURE);
|
||||
KnowledgeBaseFrame_ShowErrorFrame();
|
||||
KnowledgeBaseFrame_DisableButtons(nil);
|
||||
-- enable top issues button, to give them a chance to get the ui loaded
|
||||
KnowledgeBaseFrameTopIssuesButton:Enable();
|
||||
|
||||
KBASE_SETUP_LOADED = 0;
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_QUERY_LOAD_SUCCESS" ) then
|
||||
KnowledgeBaseArticleListFrameTitle:SetText(KBASE_SEARCH_RESULTS);
|
||||
|
||||
local articleHeaderCount = KBQuery_GetArticleHeaderCount();
|
||||
local totalArticleHeaderCount = KBQuery_GetTotalArticleCount();
|
||||
KnowledgeBaseFrame_EnableButtons(KBQuery_GetArticleHeaderCount(), KBQuery_GetTotalArticleCount());
|
||||
|
||||
if ( articleHeaderCount > 0 ) then
|
||||
KnowledgeBaseArticleListFrame_PopulateArticleList(articleHeaderCount, totalArticleHeaderCount, KBQuery_GetArticleHeaderData);
|
||||
KnowledgeBaseFrame_ShowSearchFrame();
|
||||
else
|
||||
KnowledgeBaseErrorFrame_SetErrorMessage(KBASE_ERROR_NO_RESULTS);
|
||||
KnowledgeBaseFrame_ShowErrorFrame();
|
||||
end
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_QUERY_LOAD_FAILURE" ) then
|
||||
KnowledgeBaseErrorFrame_SetErrorMessage(KBASE_ERROR_LOAD_FAILURE);
|
||||
KnowledgeBaseFrame_ShowErrorFrame();
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_ARTICLE_LOAD_SUCCESS" ) then
|
||||
|
||||
local id, subject, subjectAlt, text, keywords, languageId, isHot = KBArticle_GetData();
|
||||
KnowledgeBaseArticleScrollChildFrameTitle:SetText(subject);
|
||||
KnowledgeBaseArticleScrollChildFrameText:SetText(text);
|
||||
KnowledgeBaseArticleScrollChildFrameArticleId:SetFormattedText(KBASE_ARTICLE_ID, id);
|
||||
|
||||
KnowledgeBaseArticleScrollFrameScrollBar:SetValue(0);
|
||||
|
||||
KnowledgeBaseFrame_ShowArticleFrame();
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_ARTICLE_LOAD_FAILURE" ) then
|
||||
KnowledgeBaseErrorFrame_SetErrorMessage(KBASE_ERROR_LOAD_FAILURE);
|
||||
KnowledgeBaseFrame_ShowErrorFrame();
|
||||
end
|
||||
|
||||
if ( event == "UPDATE_GM_STATUS" ) then
|
||||
local status = ...;
|
||||
if ( status == GMTICKET_QUEUE_STATUS_ENABLED ) then
|
||||
GetGMTicket();
|
||||
else
|
||||
KnowledgeBaseFrameGMTalk:Disable();
|
||||
KnowledgeBaseFrameReportIssue:Disable();
|
||||
end
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_SYSTEM_MOTD_UPDATE" ) then
|
||||
KnowledgeBaseFrame_UpdateMotd();
|
||||
end
|
||||
|
||||
if ( event == "KNOWLEDGE_BASE_SERVER_MESSAGE" ) then
|
||||
KnowledgeBaseFrame_UpdateServerMessage();
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_UpdateMotd()
|
||||
local currentMotd = KBSystem_GetMOTD();
|
||||
if ( currentMotd ) then
|
||||
local singleLine = gsub(currentMotd, "\n", " ");
|
||||
KnowledgeBaseMotdText:SetText(singleLine);
|
||||
else
|
||||
KnowledgeBaseMotdText:SetText(nil);
|
||||
end
|
||||
KnowledgeBaseUpdateTopPanelPositions();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_UpdateServerMessage()
|
||||
local currrentServerNotice = KBSystem_GetServerNotice();
|
||||
if ( currrentServerNotice ) then
|
||||
local closeBracketIndex = strfind(currrentServerNotice, "] ", 1, true);
|
||||
if ( closeBracketIndex ) then
|
||||
currrentServerNotice = strsub(currrentServerNotice, closeBracketIndex + 2);
|
||||
end
|
||||
KnowledgeBaseServerMessageText:SetText(currrentServerNotice);
|
||||
else
|
||||
KnowledgeBaseServerMessageText:SetText(nil);
|
||||
end
|
||||
|
||||
KnowledgeBaseUpdateTopPanelPositions();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_Search(resetCurrentPage)
|
||||
if ( not KBSetup_IsLoaded() ) then
|
||||
return;
|
||||
end
|
||||
|
||||
KnowledgeBaseFrame_DisableButtons();
|
||||
|
||||
local categoryIndex = (UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameCategoryDropDown) or 1) - KBASE_NUM_FAKE_CATEGORIES;
|
||||
local subcategoryIndex = (UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameSubCategoryDropDown) or 1) - KBASE_NUM_FAKE_SUBCATEGORIES;
|
||||
|
||||
local searchText = KnowledgeBaseFrameEditBox:GetText();
|
||||
if ( searchText == KBASE_DEFAULT_SEARCH_TEXT ) then
|
||||
searchText = "";
|
||||
end
|
||||
|
||||
if ( resetCurrentPage == 1 ) then
|
||||
KBASE_CURRENT_PAGE = 1;
|
||||
end
|
||||
|
||||
KBQuery_BeginLoading(searchText,
|
||||
categoryIndex,
|
||||
subcategoryIndex,
|
||||
KBASE_NUM_ARTICLES_PER_PAGE,
|
||||
KBASE_CURRENT_PAGE);
|
||||
|
||||
KBASE_SEARCH_PERFORMED = 1;
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_LoadTopIssues()
|
||||
KnowledgeBaseFrame_DisableButtons();
|
||||
KBASE_SEARCH_PERFORMED = 0;
|
||||
KBASE_CURRENT_PAGE = 1;
|
||||
KBASE_SETUP_LOADED = 0;
|
||||
KBSetup_BeginLoading(KBASE_NUM_ARTICLES_PER_PAGE, KBASE_CURRENT_PAGE);
|
||||
end
|
||||
|
||||
function DisablePagingButton(button)
|
||||
button:Disable();
|
||||
local buttonText = _G[button:GetName() .. "Text"];
|
||||
buttonText:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
|
||||
end
|
||||
|
||||
function EnablePagingButton(button)
|
||||
button:Enable();
|
||||
local buttonText = _G[button:GetName() .. "Text"];
|
||||
buttonText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_DisableButtons()
|
||||
KBASE_ENABLE_SEARCH = 0;
|
||||
KnowledgeBaseFrameTopIssuesButton:Disable();
|
||||
KnowledgeBaseFrameSearchButton:Disable();
|
||||
|
||||
KnowledgeBaseFrameTopIssuesButton.enableDelay = KBASE_SEARCH_BUTTON_DELAY;
|
||||
KnowledgeBaseFrameSearchButton.enableDelay = KBASE_SEARCH_BUTTON_DELAY;
|
||||
|
||||
UIDropDownMenu_DisableDropDown(KnowledgeBaseFrameCategoryDropDown);
|
||||
UIDropDownMenu_DisableDropDown(KnowledgeBaseFrameSubCategoryDropDown);
|
||||
|
||||
DisablePagingButton(KnowledgeBaseArticleListFrameNextButton);
|
||||
DisablePagingButton(KnowledgeBaseArticleListFramePreviousButton);
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_EnableButtons(articleCount, totalArticleCount)
|
||||
KBASE_ENABLE_SEARCH = 1;
|
||||
|
||||
UIDropDownMenu_EnableDropDown(KnowledgeBaseFrameCategoryDropDown);
|
||||
UpdateSubCategoryEnabledState();
|
||||
|
||||
if ( KBASE_CURRENT_PAGE == 1 ) then
|
||||
DisablePagingButton(KnowledgeBaseArticleListFramePreviousButton);
|
||||
else
|
||||
EnablePagingButton(KnowledgeBaseArticleListFramePreviousButton);
|
||||
end
|
||||
|
||||
if ( articleCount ) then
|
||||
if (articleCount == KBASE_NUM_ARTICLES_PER_PAGE and (totalArticleCount > (KBASE_CURRENT_PAGE * KBASE_NUM_ARTICLES_PER_PAGE)) ) then
|
||||
EnablePagingButton(KnowledgeBaseArticleListFrameNextButton);
|
||||
else
|
||||
DisablePagingButton(KnowledgeBaseArticleListFrameNextButton);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_ShowSearchFrame()
|
||||
KnowledgeBaseArticleListFrame:Show();
|
||||
KnowledgeBaseArticleScrollFrame:Hide();
|
||||
KnowledgeBaseErrorFrame:Hide();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_ShowArticleFrame()
|
||||
KnowledgeBaseArticleListFrame:Hide();
|
||||
KnowledgeBaseArticleScrollFrame:Show();
|
||||
KnowledgeBaseErrorFrame:Hide();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrame_ShowErrorFrame()
|
||||
KnowledgeBaseArticleListFrame:Hide();
|
||||
KnowledgeBaseArticleScrollFrame:Hide();
|
||||
KnowledgeBaseErrorFrame:Show();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameCategoryDropDown_OnLoad(self)
|
||||
UIDropDownMenu_SetWidth(self, 120);
|
||||
UIDropDownMenu_SetText(self, CATEGORY);
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameCategoryDropDown_Initialize()
|
||||
KnowledgeBaseFrameCategoryDropDown_AddInfo(0, ALL);
|
||||
local numCategories = KBSetup_GetCategoryCount();
|
||||
for i=1, numCategories do
|
||||
local categoryId, categoryCaption = KBSetup_GetCategoryData(i);
|
||||
KnowledgeBaseFrameCategoryDropDown_AddInfo(i, categoryCaption);
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameCategoryDropDown_AddInfo(id, caption)
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
info.value = id;
|
||||
info.text = caption;
|
||||
info.func = KnowledgeBaseFrameCategoryButton_OnClick;
|
||||
local checked = nil;
|
||||
local selectedId = UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameCategoryDropDown);
|
||||
if (selectedId and ((selectedId - KBASE_NUM_FAKE_CATEGORIES) == id)) then
|
||||
checked = 1;
|
||||
end
|
||||
info.checked = checked;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameCategoryButton_OnClick(self)
|
||||
local oldSelectedCategoryId = UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameCategoryDropDown);
|
||||
local selectedCategoryId = self:GetID();
|
||||
|
||||
if ( selectedCategoryId == oldSelectedCategoryId) then
|
||||
return;
|
||||
end
|
||||
|
||||
UIDropDownMenu_SetSelectedID(KnowledgeBaseFrameCategoryDropDown, selectedCategoryId);
|
||||
|
||||
UIDropDownMenu_SetSelectedID(KnowledgeBaseFrameSubCategoryDropDown, 0);
|
||||
UIDropDownMenu_ClearAll(KnowledgeBaseFrameSubCategoryDropDown);
|
||||
UIDropDownMenu_SetText(KnowledgeBaseFrameSubCategoryDropDown, SUBCATEGORY);
|
||||
|
||||
UpdateSubCategoryEnabledState();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameSubCategoryDropDown_OnLoad(self)
|
||||
UIDropDownMenu_SetWidth(self, 120);
|
||||
UIDropDownMenu_SetText(self, SUBCATEGORY);
|
||||
end
|
||||
|
||||
function UpdateSubCategoryEnabledState()
|
||||
local selectedCategoryId = UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameCategoryDropDown);
|
||||
if ( not selectedCategoryId or selectedCategoryId == 1 ) then
|
||||
UIDropDownMenu_DisableDropDown(KnowledgeBaseFrameSubCategoryDropDown);
|
||||
return;
|
||||
end
|
||||
|
||||
local numSubCategories = KBSetup_GetSubCategoryCount(selectedCategoryId - KBASE_NUM_FAKE_CATEGORIES);
|
||||
if ( numSubCategories == 0 ) then
|
||||
UIDropDownMenu_DisableDropDown(KnowledgeBaseFrameSubCategoryDropDown);
|
||||
else
|
||||
UIDropDownMenu_EnableDropDown(KnowledgeBaseFrameSubCategoryDropDown);
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameSubCategoryDropDown_Initialize()
|
||||
local selectedCategoryId = UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameCategoryDropDown);
|
||||
if ( not selectedCategoryId or selectedCategoryId == 1 ) then
|
||||
return;
|
||||
end
|
||||
selectedCategoryId = selectedCategoryId - KBASE_NUM_FAKE_CATEGORIES;
|
||||
|
||||
KnowledgeBaseFrameSubCategoryDropDown_AddInfo(0, ALL);
|
||||
local numCategories = KBSetup_GetSubCategoryCount(selectedCategoryId);
|
||||
for i=1, numCategories do
|
||||
local categoryId, categoryCaption = KBSetup_GetSubCategoryData(selectedCategoryId, i);
|
||||
KnowledgeBaseFrameSubCategoryDropDown_AddInfo(i, categoryCaption);
|
||||
end
|
||||
|
||||
UpdateSubCategoryEnabledState();
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameSubCategoryDropDown_AddInfo(id, caption)
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
info.value = id;
|
||||
info.text = caption;
|
||||
info.func = KnowledgeBaseFrameSubCategoryButton_OnClick;
|
||||
local checked = nil;
|
||||
local selectedId = UIDropDownMenu_GetSelectedID(KnowledgeBaseFrameSubCategoryDropDown);
|
||||
if (selectedId and ((selectedId - KBASE_NUM_FAKE_SUBCATEGORIES) == id)) then
|
||||
checked = 1;
|
||||
end
|
||||
info.checked = checked;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
end
|
||||
|
||||
function KnowledgeBaseFrameSubCategoryButton_OnClick(self)
|
||||
UIDropDownMenu_SetSelectedID(KnowledgeBaseFrameSubCategoryDropDown, self:GetID());
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListFrame_HideArticleList()
|
||||
for i=1, KBASE_NUM_ARTICLES_PER_PAGE do
|
||||
local frame = _G["KnowledgeBaseArticleListItem" .. i];
|
||||
frame:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListFrame_PopulateArticleList(articleCount, totalArticleCount, dataFunc)
|
||||
KnowledgeBaseArticleListFrame_HideArticleList();
|
||||
for i=1, articleCount do
|
||||
local articleId, articleHeader, isArticleHot, isArticleUpdated = dataFunc(i);
|
||||
local frame = _G["KnowledgeBaseArticleListItem" .. i];
|
||||
frame.number = i + ((KBASE_CURRENT_PAGE -1) * KBASE_NUM_ARTICLES_PER_PAGE);
|
||||
frame.articleId = articleId;
|
||||
frame.articleHeader = articleHeader;
|
||||
frame.isArticleHot = isArticleHot;
|
||||
frame.isArticleUpdated = isArticleUpdated;
|
||||
|
||||
KnowledgeBaseArticleListItem_Update(frame);
|
||||
frame:Show();
|
||||
end
|
||||
|
||||
KnowledgeBaseArticleListFrameCount:SetFormattedText(KBASE_ARTICLE_COUNT,
|
||||
(((KBASE_CURRENT_PAGE -1) * KBASE_NUM_ARTICLES_PER_PAGE) + 1),
|
||||
min(articleCount, (KBASE_CURRENT_PAGE * KBASE_NUM_ARTICLES_PER_PAGE)) + ((KBASE_CURRENT_PAGE -1) * KBASE_NUM_ARTICLES_PER_PAGE),
|
||||
totalArticleCount);
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListItem_Update(frame)
|
||||
local numberText = _G[frame:GetName() .. "Number"];
|
||||
numberText:SetText(frame.number .. ".");
|
||||
|
||||
local updatedIcon = _G[frame:GetName() .. "UpdatedIcon"];
|
||||
|
||||
if ( frame.isArticleUpdated ) then
|
||||
updatedIcon:Show();
|
||||
else
|
||||
updatedIcon:Hide();
|
||||
end
|
||||
|
||||
local hotIcon = _G[frame:GetName() .. "HotIcon"];
|
||||
if ( frame.isArticleHot ) then
|
||||
hotIcon:Show();
|
||||
else
|
||||
hotIcon:Hide();
|
||||
end
|
||||
|
||||
local titleText = _G[frame:GetName() .. "Title"];
|
||||
titleText:SetText(frame.articleHeader);
|
||||
end
|
||||
|
||||
function KnowledgeBaseUpdateTopPanelPositions()
|
||||
if ( KnowledgeBaseMotdText:GetText() ) then
|
||||
KnowledgeBaseMotdLabel:Show();
|
||||
KnowledgeBaseMotdTextFrame:Show();
|
||||
else
|
||||
KnowledgeBaseMotdLabel:Hide();
|
||||
KnowledgeBaseMotdTextFrame:Hide();
|
||||
end
|
||||
|
||||
if ( KnowledgeBaseServerMessageText:GetText() ) then
|
||||
KnowledgeBaseServerMessageLabel:Show();
|
||||
KnowledgeBaseServerMessageTextFrame:Show();
|
||||
else
|
||||
KnowledgeBaseServerMessageLabel:Hide();
|
||||
KnowledgeBaseServerMessageTextFrame:Hide();
|
||||
end
|
||||
|
||||
if ( KnowledgeBaseMotdLabel:IsShown() ) then
|
||||
KnowledgeBaseServerMessageLabel:SetPoint("TOPLEFT", KnowledgeBaseMotdLabel, "BOTTOMLEFT", 0, -5);
|
||||
else
|
||||
KnowledgeBaseServerMessageLabel:SetPoint("TOPLEFT", KnowledgeBaseMotdLabel, "TOPLEFT", 0, 0);
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListFrame_PreviousPage()
|
||||
|
||||
if ( KBASE_CURRENT_PAGE == 1 ) then
|
||||
return;
|
||||
end
|
||||
|
||||
KBASE_CURRENT_PAGE = KBASE_CURRENT_PAGE - 1;
|
||||
|
||||
KnowledgeBaseFrame_DisableButtons();
|
||||
|
||||
if ( KBASE_SEARCH_PERFORMED == 1 ) then
|
||||
KnowledgeBaseFrame_Search(0);
|
||||
else
|
||||
KBASE_SETUP_LOADED = 0;
|
||||
KBSetup_BeginLoading(KBASE_NUM_ARTICLES_PER_PAGE, KBASE_CURRENT_PAGE);
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListFrame_NextPage()
|
||||
|
||||
KBASE_CURRENT_PAGE = KBASE_CURRENT_PAGE + 1;
|
||||
|
||||
KnowledgeBaseFrame_DisableButtons();
|
||||
|
||||
if ( KBASE_SEARCH_PERFORMED == 1 ) then
|
||||
KnowledgeBaseFrame_Search(0);
|
||||
else
|
||||
KBASE_SETUP_LOADED = 0;
|
||||
KBSetup_BeginLoading(KBASE_NUM_ARTICLES_PER_PAGE, KBASE_CURRENT_PAGE);
|
||||
end
|
||||
end
|
||||
|
||||
function KnowledgeBaseErrorFrame_SetErrorMessage(message)
|
||||
KnowledgeBaseErrorFrameText:SetText(message);
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListItem_OnClick(self)
|
||||
PlaySound("igMainMenuOptionCheckBoxOn");
|
||||
local searchText = KnowledgeBaseFrameEditBox:GetText();
|
||||
local searchType = 2;
|
||||
if (searchText == KBASE_DEFAULT_SEARCH_TEXT or searchText == "") then
|
||||
searchType = 1;
|
||||
end
|
||||
KBArticle_BeginLoading(self.articleId, searchType);
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListItem_OnEnter(self)
|
||||
self.tooltipDelay = KBASE_TOOLTIP_DELAY;
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListItem_OnUpdate(self, ...)
|
||||
if ( not self.tooltipDelay ) then
|
||||
return;
|
||||
end
|
||||
|
||||
local elapsed = ...;
|
||||
self.tooltipDelay = self.tooltipDelay - elapsed;
|
||||
if ( self.tooltipDelay > 0 ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.tooltipDelay = nil;
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT", 15);
|
||||
GameTooltip:SetText(self.articleHeader, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b, 1);
|
||||
|
||||
if ( self.isArticleHot ) then
|
||||
GameTooltip:AddLine(KBASE_HOT_ISSUE);
|
||||
GameTooltip:AddTexture("Interface\\HelpFrame\\HotIssueIcon");
|
||||
end
|
||||
|
||||
if ( self.isArticleUpdated ) then
|
||||
GameTooltip:AddLine(KBASE_RECENTLY_UPDATED);
|
||||
GameTooltip:AddTexture("Interface\\GossipFrame\\AvailableQuestIcon");
|
||||
end
|
||||
|
||||
GameTooltip:SetMinimumWidth(220, 1);
|
||||
GameTooltip:Show();
|
||||
end
|
||||
|
||||
function KnowledgeBaseArticleListItem_OnLeave(self)
|
||||
self.tooltipDelay = nil;
|
||||
GameTooltip:SetMinimumWidth(0, 0);
|
||||
GameTooltip:Hide();
|
||||
end
|
||||
|
||||
function KnowledgeBaseServerMessageTextFrame_OnEnter(self)
|
||||
self.tooltipDelay = KBASE_TOOLTIP_DELAY;
|
||||
end
|
||||
|
||||
function KnowledgeBaseServerMessageTextFrame_OnUpdate(self, elapsed)
|
||||
if ( not self.tooltipDelay ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.tooltipDelay = self.tooltipDelay - elapsed;
|
||||
if ( self.tooltipDelay > 0 ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.tooltipDelay = nil;
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT", 15);
|
||||
GameTooltip:SetText(KnowledgeBaseServerMessageText:GetText(), HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b, 1);
|
||||
GameTooltip:SetMinimumWidth(220, 1);
|
||||
GameTooltip:Show();
|
||||
end
|
||||
|
||||
function KnowledgeBaseServerMessageTextFrame_OnLeave(self)
|
||||
self.tooltipDelay = nil;
|
||||
GameTooltip:SetMinimumWidth(0, 0);
|
||||
GameTooltip:Hide();
|
||||
end
|
||||
|
||||
function KnowledgeBaseMotdTextFrame_OnEnter(self)
|
||||
self.tooltipDelay = KBASE_TOOLTIP_DELAY;
|
||||
end
|
||||
|
||||
function KnowledgeBaseMotdTextFrame_OnUpdate(self, elapsed)
|
||||
if ( not self.tooltipDelay ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.tooltipDelay = self.tooltipDelay - elapsed;
|
||||
if ( self.tooltipDelay > 0 ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.tooltipDelay = nil;
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT", 15);
|
||||
GameTooltip:SetText(KnowledgeBaseMotdText:GetText(), HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b, 1);
|
||||
GameTooltip:SetMinimumWidth(220, 1);
|
||||
GameTooltip:Show();
|
||||
end
|
||||
|
||||
function KnowledgeBaseMotdTextFrame_OnLeave(self)
|
||||
self.tooltipDelay = nil;
|
||||
GameTooltip:SetMinimumWidth(0, 0);
|
||||
GameTooltip:Hide();
|
||||
end
|
||||
|
||||
function SearchButton_OnUpdate(self, elapsed)
|
||||
if ( KBASE_ENABLE_SEARCH == 0 or ( not self.enableDelay ) ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.enableDelay = self.enableDelay - elapsed;
|
||||
if ( self.enableDelay > 0 ) then
|
||||
return;
|
||||
end
|
||||
|
||||
self.enableDelay = nil;
|
||||
self:Enable();
|
||||
end
|
||||
Reference in New Issue
Block a user