Files
moonwell-client/reference/FrameXML/KnowledgeBaseFrame.lua
T

601 lines
19 KiB
Lua

-- 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