Mercurial > wow > reagentmaker
comparison SecureMenu.lua @ 2:04c5b817eead
The try to build my own secure menu continues...
| author | contrebasse |
|---|---|
| date | Tue, 29 Mar 2011 22:06:36 +0200 |
| parents | 5fc29ed07094 |
| children | ed0582126cae |
comparison
equal
deleted
inserted
replaced
| 1:5fc29ed07094 | 2:04c5b817eead |
|---|---|
| 14 right = 12, | 14 right = 12, |
| 15 top = 12, | 15 top = 12, |
| 16 bottom = 11 | 16 bottom = 11 |
| 17 } | 17 } |
| 18 }) | 18 }) |
| 19 MenuFrame:SetWidth(70) | 19 MenuFrame:SetWidth(170) |
| 20 MenuFrame:SetFrameStrata("DIALOG") | |
| 21 | |
| 22 local MENU_ENTRY_HEIGHT = 12 | |
| 23 | |
| 20 local numActiveEntries = 0 | 24 local numActiveEntries = 0 |
| 21 local menuEntries = {} | 25 local menuEntries = {} |
| 26 local parentBtn -- The button it's associated with | |
| 22 | 27 |
| 28 function A.menuIsOpen(btn) | |
| 29 if btn then | |
| 30 return MenuFrame:IsShown() and (btn==parentBtn) | |
| 31 else | |
| 32 return MenuFrame:IsShown() | |
| 33 end | |
| 34 end | |
| 23 function A.menuOpen(parent) | 35 function A.menuOpen(parent) |
| 24 A.DEBUG("menuOpen") | 36 A.DEBUG("menuOpen") |
| 25 --if not InCombatLockDown() and numActiveEntries>0 then | 37 --if not InCombatLockDown() and numActiveEntries>0 then |
| 38 parentBtn = parent | |
| 26 MenuFrame:ClearAllPoints() | 39 MenuFrame:ClearAllPoints() |
| 27 MenuFrame:SetPoint("TOPLEFT",parent,"TOPRIGHT",0,0) | 40 MenuFrame:SetPoint("LEFT",parent,"RIGHT",0,0) |
| 28 | 41 |
| 29 MenuFrame:SetSize(50,50) | 42 MenuFrame:SetHeight(240) |
| 30 MenuFrame:SetParent(UIParent) | 43 --MenuFrame:SetParent(UIParent) |
| 31 | 44 |
| 32 MenuFrame:Show() | 45 MenuFrame:Show() |
| 33 --end | 46 --end |
| 34 end | 47 end |
| 35 function A.menuClose() | 48 function A.menuClose() |
| 36 MenuFrame:Hide() | 49 MenuFrame:Hide() |
| 37 MenuFrame:ClearAllPoints() | 50 MenuFrame:ClearAllPoints() |
| 38 | 51 |
| 52 parentBtn = nil | |
| 39 for i=1,numActiveEntries do | 53 for i=1,numActiveEntries do |
| 40 menuEntries[i]:Hide() | 54 menuEntries[i]:Hide() |
| 41 end | 55 end |
| 42 end | 56 end |
| 43 | 57 |
| 44 function A.menuAddItem(text,action,itemID) | 58 function A.menuAddItem(text,action,itemID) |
| 45 A.DEBUG("menuAddItem "..text) | 59 A.DEBUG("menuAddItem "..text) |
| 46 local btn | 60 local btn |
| 47 -- Create a button only if necessary | 61 -- Create a button only if necessary |
| 48 if numActiveEntries >= #menuEntries then | 62 if numActiveEntries >= #menuEntries then |
| 49 btn = CreateFrame("Button", nil, MenuFrame, "SecureActionButtonTemplate") | 63 btn = CreateFrame("Button", "ReagentMakerMenuButton"..(#menuEntries+1), MenuFrame) --, "SecureActionButtonTemplate") |
| 50 table.insert(menuEntries,btn) | 64 table.insert(menuEntries,btn) |
| 51 | 65 |
| 52 btn:SetHeight(12) | 66 btn:SetHeight(MENU_ENTRY_HEIGHT) |
| 53 btn:SetWidth(70) | 67 btn:SetWidth(160) |
| 54 | 68 |
| 55 -- Set its position | 69 -- Set its position |
| 56 if #menuEntries==1 then | 70 if #menuEntries==0 then |
| 57 btn:SetPoint("TOPLEFT",MenuFrame,"TOPLEFT",0,0) | 71 btn:SetPoint("TOPLEFT",MenuFrame,"TOPLEFT",0,0) |
| 58 else | 72 else |
| 59 btn:SetPoint("TOPLEFT",menuEntries[#menuEntries-1],"BOTTOMLEFT",0,0) | 73 btn:SetPoint("TOPLEFT",menuEntries[#menuEntries-1],"BOTTOMLEFT",0,0) |
| 60 end | 74 end |
| 61 else | 75 else |
| 62 btn = menuEntries[numActiveEntries+1] | 76 btn = menuEntries[numActiveEntries+1] |
| 63 end | 77 end |
| 64 | 78 |
| 65 -- Set its text | 79 -- Set its text |
| 66 btn:SetText(text or " ") | 80 btn:SetText(text or "???") |
| 67 | 81 |
| 68 -- Set its action | 82 -- Set its action |
| 69 if type(action)=="function" then | 83 if type(action)=="function" then |
| 70 btn:SetScript("OnClick",action) | 84 btn:SetScript("OnClick",action) |
| 71 btn:SetAttribute("type", nil) | 85 btn:SetAttribute("type", nil) |
| 78 btn:SetAttribute("target-item",GetItemInfo(itemID)) | 92 btn:SetAttribute("target-item",GetItemInfo(itemID)) |
| 79 end -- if | 93 end -- if |
| 80 | 94 |
| 81 -- Reposition MenuFrame | 95 -- Reposition MenuFrame |
| 82 --MenuFrame:SetPoint("BOTTOMRIGHT",btn,"BOTTOMRIGHT",0,0) | 96 --MenuFrame:SetPoint("BOTTOMRIGHT",btn,"BOTTOMRIGHT",0,0) |
| 83 MenuFrame:SetHeight((numActiveEntries+1)*12) | 97 MenuFrame:SetHeight((numActiveEntries+1)*MENU_ENTRY_HEIGHT) |
| 84 | 98 |
| 85 -- Increase she entry number | 99 -- Increase the entry number |
| 86 numActiveEntries = numActiveEntries + 1 | 100 numActiveEntries = numActiveEntries + 1 |
| 101 A.DEBUG("Item added ") | |
| 87 end -- function | 102 end -- function |
