vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 TITAN_PANEL_MENU_POPUP_IND = "...";
2 TITAN_PANEL_MENU_FUNC_HIDE = "TitanPanelRightClickMenu_Hide";
3 TITAN_PANEL_MENU_FUNC_CUSTOMIZE = "TitanPanelRightClickMenu_Customize";
4  
5 function TitanRightClickMenu_OnLoad()
6 local id = TitanUtils_GetButtonIDFromMenu();
7 if (id) then
8 local prepareFunction = getglobal("TitanPanelRightClickMenu_Prepare"..id.."Menu");
9 if (prepareFunction) then
10 UIDropDownMenu_Initialize(this, prepareFunction, "MENU");
11 end
12 end
13 end
14  
15 function TitanPanelRightClickMenu_Toggle()
16 local position = TitanPanelGetVar("Position");
17 local x, y = GetCursorPosition(UIParent);
18 local fontscale = UIParent:GetScale() * TitanPanelGetVar("FontScale");
19  
20 TITAN_PANEL_SELECTED = TitanUtils_GetButtonID(this:GetName())
21 -- Toggle menu
22  
23 if TITAN_PANEL_SELECTED == "MoneyButtonGold" or TITAN_PANEL_SELECTED == "MoneyButtonSilver" or TITAN_PANEL_SELECTED == "MoneyButtonCopper" then
24 TITAN_PANEL_SELECTED = "Money"
25 end
26  
27 local i = TitanPanel_GetButtonNumber(TITAN_PANEL_SELECTED)
28  
29 if TITAN_PANEL_SELECTED ~= "Bar" and TITAN_PANEL_SELECTED ~= "AuxBar" then
30 if TitanPanelSettings.Location[i] ~= nil then
31 TITAN_PANEL_SELECTED = TitanPanelSettings.Location[i]
32 else
33 TitanPanelSettings.Location[i] = "Bar"
34 TITAN_PANEL_SELECTED = "Bar"
35 end
36 end
37  
38 local menu = getglobal(this:GetName().."RightClickMenu");
39 if ( TITAN_PANEL_SELECTED == "Bar" and position == TITAN_PANEL_PLACE_TOP ) then
40 menu.point = "TOPLEFT";
41 menu.relativePoint = "BOTTOMLEFT";
42 else
43 menu.point = "BOTTOMLEFT";
44 menu.relativePoint = "TOPLEFT";
45 end
46 ToggleDropDownMenu(1, nil, menu, "TitanPanel" .. TITAN_PANEL_SELECTED .. "Button", TitanUtils_Max(x - 40, 0) / fontscale, 0);
47  
48 -- Adjust menu position if it's off the screen/scaled
49 local listFrame = getglobal("DropDownList"..UIDROPDOWNMENU_MENU_LEVEL);
50 local offscreenX, offscreenY = TitanUtils_GetOffscreen(listFrame);
51 if not TitanPanelGetVar("DisableFont") then
52 listFrame:SetScale(fontscale);
53 end
54  
55 if ( offscreenX == 1 ) then
56 if ( TITAN_PANEL_SELECTED == "Bar" and position == TITAN_PANEL_PLACE_TOP ) then
57 listFrame:ClearAllPoints();
58 listFrame:SetPoint("TOPRIGHT", "TitanPanel" .. TITAN_PANEL_SELECTED .. "Button", "BOTTOMLEFT", x, 0);
59 else
60 listFrame:ClearAllPoints();
61 listFrame:SetPoint("BOTTOMRIGHT", "TitanPanel" .. TITAN_PANEL_SELECTED .. "Button", "TOPLEFT", x, 0);
62 end
63 end
64 end
65  
66 function TitanPanelRightClickMenu_IsVisible()
67 return DropDownList1:IsVisible();
68 end
69  
70 function TitanPanelRightClickMenu_Close()
71 DropDownList1:Hide();
72 end
73  
74 function TitanPanelRightClickMenu_AddTitle(title, level)
75 if (title) then
76 local info = {};
77 info.text = title;
78 info.notClickable = 1;
79 info.isTitle = 1;
80 UIDropDownMenu_AddButton(info, level);
81 end
82 end
83  
84 function TitanPanelRightClickMenu_AddCommand(text, value, functionName, level)
85 local info = {};
86 info.text = text;
87 info.value = value;
88 info.func = getglobal(functionName);
89 --info.notCheckable = 1;
90 UIDropDownMenu_AddButton(info, level);
91 end
92  
93 function TitanPanelRightClickMenu_AddSpacer(level)
94 local info = {};
95 info.disabled = 1;
96 UIDropDownMenu_AddButton(info, level);
97 end
98  
99 function TitanPanelRightClickMenu_Hide()
100 TitanPanel_RemoveButton(this.value);
101 end
102  
103 function TitanPanelRightClickMenu_AddToggleVar(text, id, var, toggleTable)
104 local info = {};
105 info.text = text;
106 info.value = {id, var, toggleTable};
107 info.func = TitanPanelRightClickMenu_ToggleVar;
108 info.checked = TitanGetVar(id, var);
109 info.keepShownOnClick = 1;
110 UIDropDownMenu_AddButton(info);
111 end
112  
113 function TitanPanelRightClickMenu_AddToggleIcon(id)
114 TitanPanelRightClickMenu_AddToggleVar(TITAN_PANEL_MENU_SHOW_ICON, id, "ShowIcon");
115 end
116  
117 function TitanPanelRightClickMenu_AddToggleLabelText(id)
118 TitanPanelRightClickMenu_AddToggleVar(TITAN_PANEL_MENU_SHOW_LABEL_TEXT, id, "ShowLabelText");
119 end
120  
121 function TitanPanelRightClickMenu_AddToggleColoredText(id)
122 TitanPanelRightClickMenu_AddToggleVar(TITAN_PANEL_MENU_SHOW_COLORED_TEXT, id, "ShowColoredText");
123 end
124  
125 function TitanPanelRightClickMenu_ToggleVar()
126 local id = this.value[1];
127 local var = this.value[2];
128 local toggleTable = this.value[3];
129  
130 -- Toggle var
131 TitanToggleVar(id, var);
132  
133 if ( TitanPanelRightClickMenu_AllVarNil(id, toggleTable) ) then
134 -- Undo if all vars in toggle table nil
135 TitanToggleVar(id, var);
136 else
137 -- Otherwise continue and update the button
138 TitanPanelButton_UpdateButton(id, 1);
139 end
140 end
141  
142 function TitanPanelRightClickMenu_AllVarNil(id, toggleTable)
143 if ( toggleTable ) then
144 for i, v in toggleTable do
145 if ( TitanGetVar(id, v) ) then
146 return;
147 end
148 end
149 return 1;
150 end
151 end
152  
153 function TitanPanelRightClickMenu_ToggleColoredText()
154 TitanToggleVar(this.value, "ShowColoredText");
155 TitanPanelButton_UpdateButton(this.value, 1);
156 end