WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Lua/XML Help (https://www.wowinterface.com/forums/forumdisplay.php?f=16)
-   -   SetScript OnMouseDown for a clickable text-only Frame? (https://www.wowinterface.com/forums/showthread.php?t=58482)

Krainz 12-24-20 01:27 PM

SetScript OnMouseDown for a clickable text-only Frame?
 
Hello, I'm tinkering with this code to make a clickable "Great Vault" text that opens the Weekly Vault

However, when I click the text, the OnMouseDown script doesn't happen. What am I doing wrong?

Lua Code:
  1. local f = CreateFrame("Frame", nil, UIParent)
  2. f:SetWidth(1)
  3. f:SetHeight(1)
  4. f:SetPoint("CENTER", 0, 0)
  5. local t = f:CreateFontString(f, "OVERLAY", "GameTooltipText")
  6. t:SetPoint("CENTER", 0, 0)
  7. t:SetText("Great Vault")
  8.  
  9. f:SetScript("OnMouseDown", function (self, button)
  10.     if button=='LeftButton' then
  11.         LoadAddOn("Blizzard_WeeklyRewards");
  12.         WeeklyRewardsFrame:Show()
  13.     end
  14. end)

Also, there's a XIV_Databar frame. I'd like to make that "Great Vault" frame's position relative to the XIV_Databar's position. How do I do it?

Ketho 12-24-20 02:45 PM

Try increasing the width and height to something bigger than 1 pixel

Fizzlemizz 12-24-20 03:02 PM

Lua Code:
  1. local f = CreateFrame("Frame", nil, UIParent)
  2. local t = f:CreateFontString(f, "OVERLAY", "GameTooltipText")
  3. t:SetText("Great Vault")
  4. f:SetSize(t:GetSize())
  5. t:SetPoint("CENTER")
  6. f:SetPoint("TOP", XIV_Databar, "BOTTOM", 0, 0) -- set f position relative to XIV_Databar
  7.  
  8. f:SetScript("OnMouseDown", function (self, button)
  9.     if button=='LeftButton' then
  10.         LoadAddOn("Blizzard_WeeklyRewards");
  11.         WeeklyRewardsFrame:Show()
  12.     end
  13. end)

Krainz 12-24-20 04:52 PM

Hmmm the frame doesn't show up in my screen with that SetPoint

If I put a
Lua Code:
  1. f:SetPoint("CENTER")

it works just fine, but of course I don't want it in the center of my screen.

I tried adding

Lua Code:
  1. local XIV_Databar = XIV_Databar

On the beginning of the code, as XIV_Databar is a frame created by another addon, to no avail.

I also tested in game by running /run XIV_Databar:Hide() and that frame became hidden as intended.

What am I missing?

Also, thanks for all the help and a very merry Christmas to you all!


EDIT:

lua Code:
  1. f:SetPoint("CENTER", XIV_Databar, "BOTTOM", 100, 0) -- set f position relative to XIV_Databar

This worked! Apparently all I needed to do was to move it to "CENTER". Thanks!


All times are GMT -6. The time now is 04:39 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI