vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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 |