mischivin@6: local dataobj = LibStub:GetLibrary("LibDataBroker-1.1"):NewDataObject("WhistleMaster", { mischivin@6: type = "data source", mischivin@6: label = "Whistle Master", mischivin@6: text = "N/A", mischivin@6: icon = "Interface\\Icons\\Ability_Hunter_Beastcall", mischivin@6: OnClick = function(clickedframe, button) mischivin@6: ToggleFrame(WorldMapFrame) mischivin@6: end, mischivin@6: }) mischivin@6: mischivin@6: local f = CreateFrame("frame") mischivin@6: local UPDATEPERIOD, elapsed = 5, 0 mischivin@6: mischivin@6: f:SetScript("OnUpdate", function(self, elap) mischivin@6: elapsed = elapsed + elap mischivin@6: if elapsed < UPDATEPERIOD then return end mischivin@6: elapsed = 0 mischivin@8: if UpdateWhistleMaster() then mischivin@8: dataobj.text = WM_ClosestNode.name mischivin@8: else mischivin@13: dataobj.text = "N/A" mischivin@8: end mischivin@6: mischivin@6: end) mischivin@6: mischivin@6: function dataobj:OnTooltipShow() mischivin@6: self:AddLine("Click to open the World Map") mischivin@6: end mischivin@6: mischivin@6: function dataobj:OnEnter() mischivin@6: GameTooltip:SetOwner(self, "ANCHOR_NONE") mischivin@6: GameTooltip:SetPoint("TOP", self, "BOTTOM") mischivin@6: GameTooltip:ClearLines() mischivin@6: dataobj.OnTooltipShow(GameTooltip) mischivin@6: GameTooltip:Show() mischivin@6: end mischivin@6: mischivin@6: function dataobj:OnLeave() mischivin@6: GameTooltip:Hide() mischivin@6: end