You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
571 lines
20 KiB
571 lines
20 KiB
|
|
local Mixin,CreateFromMixins,CreateFrame,_G = Mixin,CreateFromMixins,CreateFrame,_G;
|
|
local TOOLTIP_DEFAULT_COLOR,select = TOOLTIP_DEFAULT_COLOR,select;
|
|
local TOOLTIP_DEFAULT_BACKGROUND_COLOR = TOOLTIP_DEFAULT_BACKGROUND_COLOR;
|
|
local NORMAL_FONT_COLOR,HIGHLIGHT_FONT_COLOR,BLACK_FONT_COLOR = NORMAL_FONT_COLOR,HIGHLIGHT_FONT_COLOR,BLACK_FONT_COLOR;
|
|
local NEW_FEATURE_SHADOW_COLOR,NEW_CAPS = NEW_FEATURE_SHADOW_COLOR,NEW_CAPS or NEW;
|
|
local BackdropTemplateMixin = BackdropTemplateMixin;
|
|
local GetPhysicalScreenSize = GetPhysicalScreenSize;
|
|
local Round,Lerp,min,max = Round,Lerp,min,max;
|
|
local ClampedPercentageBetween = ClampedPercentageBetween;
|
|
local PixelUtil,type,print,tinsert = PixelUtil,type,print,tinsert;
|
|
|
|
setfenv(1,LibStub("LibDropDownMenu"));
|
|
|
|
if not PixelUtil then -- classic compatibilty
|
|
PixelUtil = {};
|
|
|
|
function PixelUtil.GetPixelToUIUnitFactor()
|
|
local physicalWidth, physicalHeight = GetPhysicalScreenSize();
|
|
return 768.0 / physicalHeight;
|
|
end
|
|
|
|
function PixelUtil.GetNearestPixelSize(uiUnitSize, layoutScale, minPixels)
|
|
if uiUnitSize == 0 and (not minPixels or minPixels == 0) then
|
|
return 0;
|
|
end
|
|
|
|
local uiUnitFactor = PixelUtil.GetPixelToUIUnitFactor();
|
|
local numPixels = Round((uiUnitSize * layoutScale) / uiUnitFactor);
|
|
if minPixels then
|
|
if uiUnitSize < 0.0 then
|
|
if numPixels > -minPixels then
|
|
numPixels = -minPixels;
|
|
end
|
|
else
|
|
if numPixels < minPixels then
|
|
numPixels = minPixels;
|
|
end
|
|
end
|
|
end
|
|
|
|
return numPixels * uiUnitFactor / layoutScale;
|
|
end
|
|
|
|
function PixelUtil.SetWidth(region, width, minPixels)
|
|
region:SetWidth(PixelUtil.GetNearestPixelSize(width, region:GetEffectiveScale(), minPixels));
|
|
end
|
|
|
|
function PixelUtil.SetHeight(region, height, minPixels)
|
|
region:SetHeight(PixelUtil.GetNearestPixelSize(height, region:GetEffectiveScale(), minPixels));
|
|
end
|
|
|
|
function PixelUtil.SetSize(region, width, height, minWidthPixels, minHeightPixels)
|
|
PixelUtil.SetWidth(region, width, minWidthPixels);
|
|
PixelUtil.SetHeight(region, height, minHeightPixels);
|
|
end
|
|
|
|
function PixelUtil.SetPoint(region, point, relativeTo, relativePoint, offsetX, offsetY, minOffsetXPixels, minOffsetYPixels)
|
|
region:SetPoint(point, relativeTo, relativePoint,
|
|
PixelUtil.GetNearestPixelSize(offsetX, region:GetEffectiveScale(), minOffsetXPixels),
|
|
PixelUtil.GetNearestPixelSize(offsetY, region:GetEffectiveScale(), minOffsetYPixels)
|
|
);
|
|
end
|
|
|
|
function PixelUtil.SetStatusBarValue(statusBar, value)
|
|
local width = statusBar:GetWidth();
|
|
if width and width > 0.0 then
|
|
local min, max = statusBar:GetMinMaxValues();
|
|
local percent = ClampedPercentageBetween(value, min, max);
|
|
if percent == 0.0 or percent == 1.0 then
|
|
statusBar:SetValue(value);
|
|
else
|
|
local numPixels = PixelUtil.GetNearestPixelSize(statusBar:GetWidth() * percent, statusBar:GetEffectiveScale());
|
|
local roundedValue = Lerp(min, max, numPixels / width);
|
|
statusBar:SetValue(roundedValue);
|
|
end
|
|
else
|
|
statusBar:SetValue(value);
|
|
end
|
|
end
|
|
end
|
|
|
|
local function Create_NewFeature(parent,frameStrata,frameLevel,width,height,scale,shown)
|
|
local NewFeature = CreateFrame("Frame",nil,parent); -- ResizeLayoutFrame template unusable
|
|
--NewFeature:SetFrameStrata(frameStrata);
|
|
--NewFeature:SetFrameLevel(parent:GetFrameLevel()+frameLevel);
|
|
NewFeature:SetFrameLevel(frameLevel);
|
|
NewFeature:SetSize(width,height);
|
|
NewFeature:SetScale(scale);
|
|
NewFeature:SetShown(shown);
|
|
|
|
Mixin(NewFeature,NewFeatureLabelMixin);
|
|
|
|
-- <KeyValues>
|
|
NewFeature.animateFlow = true;
|
|
NewFeature.label = NEW_CAPS;
|
|
NewFeature.justifyH = "CENTER";
|
|
-- </KeyValues>
|
|
-- <Layers>
|
|
-- <Layer OVERLAY>
|
|
NewFeature.BGLabel = NewFeature:CreateFontString(nil,"OVERLAY","GameFontNormal_NoShadow");
|
|
NewFeature.BGLabel.ignoreInLayout = true;
|
|
NewFeature.BGLabel:SetDrawLayer("OVERLAY",1)
|
|
NewFeature.BGLabel:SetMaxLines(1);
|
|
NewFeature.BGLabel:SetJustifyH("CENTER")
|
|
NewFeature.BGLabel:SetText(NEW_CAPS);
|
|
NewFeature.BGLabel:SetTextColor(0.25,0.78,0.92,1 --[[NEW_FEATURE_SHADOW_COLOR:GetRGBA()]])
|
|
-- RAID_CLASS_COLORS.MAGE looks better on brighter backgrounds
|
|
NewFeature.BGLabel:SetPoint("CENTER",0.5,-0.5)
|
|
|
|
NewFeature.Label = NewFeature:CreateFontString(nil,"OVERLAY","GameFontHighlight");
|
|
NewFeature.Label:SetDrawLayer("OVERLAY",1)
|
|
NewFeature.Label:SetMaxLines(1)
|
|
NewFeature.Label:SetJustifyH("CENTER")
|
|
NewFeature.Label:SetText(NEW_CAPS)
|
|
NewFeature.Label:SetTextColor(0.25,0.78,0.92,1 --[[NEW_FEATURE_SHADOW_COLOR:GetRGBA()]])
|
|
NewFeature.Label:SetPoint("CENTER")
|
|
|
|
NewFeature.Glow = NewFeature:CreateTexture(nil,"OVERLAY",nil,1)
|
|
NewFeature.Glow:SetPoint("TOPLEFT",NewFeature.Label,-20,10)
|
|
NewFeature.Glow:SetPoint("BOTTOMRIGHT",NewFeature.Label,20,-10)
|
|
NewFeature.Glow:SetAtlas("collections-newglow")
|
|
-- </Layer OVERLAY>
|
|
-- </Layers>
|
|
|
|
-- <Animations>
|
|
NewFeature.Fade = NewFeature:CreateAnimationGroup()
|
|
NewFeature.Fade:SetLooping("REPEAT")
|
|
local A1 = NewFeature.Fade:CreateAnimation("Alpha")
|
|
A1:SetTarget(NewFeature.Glow)
|
|
A1:SetDuration(1.0)
|
|
A1:SetOrder(1)
|
|
A1:SetFromAlpha(1)
|
|
A1:SetToAlpha(0.5)
|
|
local A2 = NewFeature.Fade:CreateAnimation("Alpha")
|
|
A2:SetTarget(NewFeature.Glow)
|
|
A2:SetDuration(1.0)
|
|
A2:SetOrder(2)
|
|
A2:SetFromAlpha(0.5)
|
|
A2:SetToAlpha(1)
|
|
-- </Animations>
|
|
NewFeature.Fade:Play()
|
|
|
|
-- <Scripts>
|
|
NewFeature:SetScript("OnShow",NewFeature.OnShow);
|
|
--NewFeature:SetScript("OnLoad",NewFeature.OnLoad);
|
|
NewFeature:SetScript("OnHide",NewFeature.OnHide);
|
|
-- </Scripts>
|
|
|
|
return NewFeature
|
|
end
|
|
|
|
|
|
-- lua replacement of UIDropDownCustomMenuEntryTemplate
|
|
function Create_DropDownCustomMenuEntry(name,parent,opts)
|
|
local frame = CreateFrame("frame",name,parent);
|
|
Mixin(frame,UIDropDownCustomMenuEntryMixin);
|
|
frame:EnableMouse(true);
|
|
frame:Hide();
|
|
frame:SetScript("OnEnter",frame.OnEnter);
|
|
frame:SetScript("OnLeave",frame.OnLeave);
|
|
end
|
|
|
|
|
|
-- lua replacement of ColorSwatchTemplate
|
|
local function ColorSwatch_OnClick(self)
|
|
CloseDropDownMenus();
|
|
UIDropDownMenuButton_OpenColorPicker(self:GetParent());
|
|
end
|
|
|
|
local function ColorSwatch_OnEnter(self)
|
|
CloseDropDownMenus(self:GetParent():GetParent():GetID() + 1);
|
|
self.SwatchBg:SetVertexColor(NORMAL_FONT_COLOR:GetRGB());
|
|
end
|
|
|
|
local function ColorSwatch_OnLeave(self)
|
|
self.SwatchBg:SetVertexColor(HIGHLIGHT_FONT_COLOR:GetRGB());
|
|
end
|
|
|
|
function Create_ColorSwatch(name, parent, opts)
|
|
local colorswatch = CreateFrame("Button",name,parent);
|
|
Mixin(colorswatch, ColorSwatchMixin);
|
|
|
|
colorswatch:Hide();
|
|
colorswatch:SetSize(16,16);
|
|
colorswatch:SetScript("OnClick",ColorSwatch_OnClick);
|
|
colorswatch:SetScript("OnEnter",ColorSwatch_OnEnter);
|
|
colorswatch:SetScript("OnLeave",ColorSwatch_OnLeave);
|
|
|
|
colorswatch.SwatchBg = colorswatch:CreateTexture(name.."SwatchBg","BACKGROUND",nil,-3);
|
|
colorswatch.SwatchBg:SetPoint("CENTER");
|
|
colorswatch.SwatchBg:SetVertexColor(HIGHLIGHT_FONT_COLOR:GetRGB());
|
|
|
|
colorswatch.InnerBorder = colorswatch:CreateTexture(name.."InnerBorder","BACKGROUND",nil,-2);
|
|
colorswatch.InnerBorder:SetPoint("CENTER");
|
|
colorswatch.InnerBorder:SetVertexColor(BLACK_FONT_COLOR:GetRGB());
|
|
|
|
colorswatch.Color = colorswatch:CreateTexture(name.."Color","BACKGROUND",nil,-1);
|
|
colorswatch.Color:SetPoint("CENTER");
|
|
colorswatch.Color:SetVertexColor(HIGHLIGHT_FONT_COLOR:GetRGB());
|
|
|
|
PixelUtil.SetSize(colorswatch.SwatchBg,14,14);
|
|
PixelUtil.SetSize(colorswatch.InnerBorder,12,12);
|
|
PixelUtil.SetSize(colorswatch.Color,10,10);
|
|
|
|
return colorswatch;
|
|
end
|
|
|
|
|
|
-- lua replacement of UIDropDownMenuButtonTemplate
|
|
local function MenuButton_OnEnable(self)
|
|
self.invisibleButton:Hide();
|
|
end
|
|
local function MenuButton_OnDisable(self)
|
|
self.invisibleButton:Show();
|
|
end
|
|
|
|
function Update_DropDownMenuButton(name)
|
|
local button = _G[name];
|
|
if (button and button.NewFeature) then return end
|
|
|
|
button.NewFeature = Create_NewFeature(button,"FULLSCREEN_DIALOG",100,1,1,0.8,false);
|
|
button.NewFeature:SetPoint("LEFT", button.NormalText, "RIGHT", 20, 0);
|
|
end
|
|
|
|
function Create_DropDownMenuButton(name,parent,opts)
|
|
local button = CreateFrame("Button",name,parent);
|
|
button:SetSize(100,16);
|
|
button:SetFrameLevel(parent:GetFrameLevel()+2);
|
|
|
|
if opts then
|
|
if opts.id then
|
|
button:SetID(opts.id);
|
|
end
|
|
end
|
|
|
|
-- <Layers>
|
|
-- <Layer>
|
|
local highlight = button:CreateTexture(name.."Highlight","BACKGROUND");
|
|
highlight:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]);
|
|
highlight:SetBlendMode("ADD");
|
|
highlight:SetAllPoints();
|
|
highlight:Hide();
|
|
button.Highlight = highlight;
|
|
-- </Layer>
|
|
|
|
-- <Layer>
|
|
-- <Texture>
|
|
local check = button:CreateTexture(name.."Check","ARTWORK");
|
|
check:SetTexture([[Interface\Common\UI-DropDownRadioChecks]]);
|
|
check:SetSize(16,16);
|
|
check:SetPoint("LEFT",0,0);
|
|
check:SetTexCoord(0,0.5,0.5,1);
|
|
button.Check = check;
|
|
-- </Texture>
|
|
|
|
-- <Texture>
|
|
local uncheck = button:CreateTexture(name.."UnCheck","ARTWORK");
|
|
uncheck:SetTexture([[Interface\Common\UI-DropDownRadioChecks]]);
|
|
uncheck:SetSize(16,16);
|
|
uncheck:SetPoint("LEFT",0,0);
|
|
uncheck:SetTexCoord(0.5,1,0.5,1);
|
|
button.UnCheck = uncheck;
|
|
-- </Texture>
|
|
|
|
-- <Texture>
|
|
local icon = button:CreateTexture(name.."Icon","ARTWORK");
|
|
icon:Hide();
|
|
icon:SetSize(16,16);
|
|
icon:SetPoint("RIGHT",0,0);
|
|
if icon.SetScript then -- added with dragonflight
|
|
icon:SetScript("OnEnter",UIDropDownMenuButtonIcon_OnEnter);
|
|
icon:SetScript("OnLeave",UIDropDownMenuButtonIcon_OnLeave);
|
|
icon:SetScript("OnMouseUp",function(self,button)
|
|
if ( button == "LeftButton" ) then
|
|
UIDropDownMenuButtonIcon_OnClick(self, button);
|
|
end
|
|
end);
|
|
end
|
|
button.Icon = icon;
|
|
-- </Texture>
|
|
-- </Layer>
|
|
-- </Layers>
|
|
|
|
-- <Frames>
|
|
-- <Button>
|
|
local color = Create_ColorSwatch(name.."ColorSwatch",button);
|
|
color:SetPoint("RIGHT",-6,0);
|
|
button.ColorSwatch = color;
|
|
-- </Button>
|
|
-- <DropDownToggleButton>
|
|
local expandArrow = CreateFrame("Button",name.."ExpandArrow",button);
|
|
Mixin(expandArrow,DropDownExpandArrowMixin);
|
|
expandArrow:SetMotionScriptsWhileDisabled(true);
|
|
expandArrow:SetSize(16,16);
|
|
expandArrow:SetPoint("RIGHT",0,0);
|
|
expandArrow:SetScript("OnClick",expandArrow.OnMouseDown);
|
|
expandArrow:SetScript("OnEnter",expandArrow.OnEnter);
|
|
button.ExpandArrow = expandArrow;
|
|
|
|
local arrow = expandArrow:CreateTexture(nil,"ARTWORK");
|
|
arrow:SetTexture([[Interface\ChatFrame\ChatFrameExpandArrow]]);
|
|
arrow:SetAllPoints();
|
|
-- </DropDownToggleButton>
|
|
-- <Button>
|
|
button.invisibleButton = CreateFrame("Button",name.."InvisibleButton",button);
|
|
button.invisibleButton:Hide();
|
|
button.invisibleButton:SetPoint("TOPLEFT");
|
|
button.invisibleButton:SetPoint("BOTTOMLEFT");
|
|
button.invisibleButton:SetPoint("RIGHT",color,"LEFT",0,0);
|
|
button.invisibleButton:SetScript("OnEnter",UIDropDownMenuButtonInvisibleButton_OnEnter);
|
|
button.invisibleButton:SetScript("OnLeave",UIDropDownMenuButtonInvisibleButton_OnLeave);
|
|
-- </Button>
|
|
-- <Frame>
|
|
button.NewFeature = Create_NewFeature(button,"FULLSCREEN_DIALOG",100,1,1,0.8,false);
|
|
-- </Frame>
|
|
-- </Frames>
|
|
|
|
-- <Scripts>
|
|
button:SetScript("OnClick",UIDropDownMenuButton_OnClick);
|
|
button:SetScript("OnEnter",UIDropDownMenuButton_OnEnter);
|
|
button:SetScript("OnLeave",UIDropDownMenuButton_OnLeave);
|
|
button:SetScript("OnEnable",MenuButton_OnEnable);
|
|
button:SetScript("OnDisable",MenuButton_OnDisable);
|
|
-- </Scripts>
|
|
|
|
-- <ButtonText>
|
|
button.NormalText = button:CreateFontString(name.."NormalText","ARTWORK");
|
|
button.NormalText:SetPoint("LEFT",-5,0);
|
|
button:SetFontString(button.NormalText);
|
|
-- </ButtonText>
|
|
|
|
button.NewFeature:SetPoint("LEFT", button.NormalText, "RIGHT", 20, 0);
|
|
|
|
button:SetNormalFontObject("GameFontHighlightSmallLeft")
|
|
button:SetHighlightFontObject("GameFontHighlightSmallLeft");
|
|
button:SetDisabledFontObject("GameFontDisableSmallLeft");
|
|
|
|
return button;
|
|
end
|
|
|
|
|
|
-- lua replacement of DropDownMenuListTemplate
|
|
local function List_OnClick(self)
|
|
self:Hide();
|
|
end
|
|
|
|
function Create_DropDownList(name,parent,opts)
|
|
local list = CreateFrame("Button",name,parent);
|
|
|
|
list:Hide();
|
|
list:SetToplevel(true);
|
|
list:SetFrameStrata("FULLSCREEN_DIALOG");
|
|
list:EnableMouse(true);
|
|
list:SetClampedToScreen(true);
|
|
list:SetScript("OnClick",List_OnClick);
|
|
list:SetScript("OnUpdate",UIDropDownMenu_OnUpdate);
|
|
list:SetScript("OnShow",UIDropDownMenu_OnShow);
|
|
list:SetScript("OnHide",UIDropDownMenu_OnHide);
|
|
|
|
if opts then
|
|
if opts.id then
|
|
list:SetID(opts.id);
|
|
end
|
|
end
|
|
|
|
local backdrop = CreateFrame("Frame",name.."Backdrop",list,BackdropTemplateMixin and "BackdropTemplate" or nil);
|
|
backdrop:SetAllPoints();
|
|
backdrop:SetBackdrop({
|
|
bgFile=[[Interface\DialogFrame\UI-DialogBox-Background-Dark]],
|
|
edgeFile=[[Interface\DialogFrame\UI-DialogBox-Border]],
|
|
tile=true, tileSize=32, edgeSize=32,
|
|
insets = {left=11, right=12, top=12, bottom=9}
|
|
});
|
|
|
|
local menuBackdrop = CreateFrame("Frame",name.."MenuBackdrop",list,BackdropTemplateMixin and "BackdropTemplate" or nil);
|
|
menuBackdrop:SetAllPoints();
|
|
menuBackdrop:SetBackdrop({
|
|
bgFile=[[Interface\Tooltips\UI-Tooltip-Background]],
|
|
edgeFile=[[Interface\Tooltips\UI-Tooltip-Border]],
|
|
tile=true, edgeSize=16, tileSize=16,
|
|
insets={left=5, right=5, top=5, bottom=4}
|
|
});
|
|
menuBackdrop:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b);
|
|
menuBackdrop:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b);
|
|
|
|
Create_DropDownMenuButton(name.."Button1",list,{id=1});
|
|
|
|
if not UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT then
|
|
local fontName, fontHeight, fontFlags = _G["LibDropDownMenu_List1Button1NormalText"]:GetFont();
|
|
UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT = fontHeight;
|
|
end
|
|
|
|
return list;
|
|
end
|
|
|
|
|
|
-- lua replacement of UIDropDownMenuButtonScriptTemplate
|
|
function Create_DropDownMenuButtonScript(name,parent,mixin)
|
|
local button = CreateFrame("DropDownToggleButton",name,parent);
|
|
Mixin(button,mixin or DropDownMenuButtonMixin);
|
|
button:SetMotionScriptsWhileDisabled(true);
|
|
button:SetScript("OnMouseDown",button.OnMouseDown);
|
|
button:SetScript("OnEnter",button.OnEnter);
|
|
button:SetScript("OnLeave",button.OnLeave);
|
|
return button;
|
|
end
|
|
|
|
|
|
-- lua replacement of UIDropDownMenuTemplate
|
|
local function Menu_OnHide()
|
|
CloseDropDownMenus();
|
|
end
|
|
|
|
function Create_DropDownMenu(name,parent,opts)
|
|
local menu = CreateFrame("Frame",name);
|
|
|
|
menu:SetSize(40,32);
|
|
menu:SetScript("OnHide",Menu_OnHide);
|
|
|
|
if opts then
|
|
if opts.id then
|
|
menu:SetID(opts.id);
|
|
end
|
|
end
|
|
|
|
-- <Layers>
|
|
-- <Layer>
|
|
menu.Left = menu:CreateTexture(name.."Left","ARTWORK");
|
|
menu.Left:SetSize(25,64);
|
|
menu.Left:SetTexture([[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]]);
|
|
menu.Left:SetTexCoord(0,0.1953125,0,1);
|
|
menu.Left:SetPoint("TOPLEFT",0,17);
|
|
|
|
menu.Middle = menu:CreateTexture(name.."Middle","ARTWORK");
|
|
menu.Middle:SetSize(115,64);
|
|
menu.Middle:SetTexture([[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]]);
|
|
menu.Middle:SetTexCoord(0.1953125,0.8046875,0,1);
|
|
menu.Middle:SetPoint("LEFT",menu.Left,"RIGHT",0,0);
|
|
|
|
menu.Right = menu:CreateTexture(name.."Right","ARTWORK");
|
|
menu.Right:SetSize(25,64);
|
|
menu.Right:SetTexture([[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]]);
|
|
menu.Right:SetTexCoord(0.8046875,1,0,1);
|
|
menu.Right:SetPoint("LEFT",menu.Middle,"RIGHT",0,0);
|
|
|
|
menu.Text = menu:CreateFontString(name.."Text","ARTWORK","GameFontHighlightSmall");
|
|
menu.Text:SetNonSpaceWrap(false);
|
|
menu.Text:SetJustifyH("RIGHT");
|
|
menu.Text:SetSize(0,10);
|
|
menu.Text:SetPoint("RIGHT",menu.Right,"RIGHT",-43,2);
|
|
-- </Layer>
|
|
|
|
-- <Layer>
|
|
menu.Icon = menu:CreateTexture(name.."Icon","OVERLAY");
|
|
menu.Icon:Hide();
|
|
menu.Icon:SetSize(16,16);
|
|
menu.Icon:SetPoint("LEFT",30,2);
|
|
-- </Layer>
|
|
-- </Layers>
|
|
|
|
-- <Frames>
|
|
-- <DropDownToggleButton>
|
|
local buttonName = name.."Button";
|
|
menu.Button = Create_DropDownMenuButtonScript(buttonName,menu);
|
|
menu.Button:SetSize(24,24);
|
|
menu.Button:SetPoint("TOPRIGHT",menu.Right,"TOPRIGHT",-16,-18);
|
|
-- <Layers>
|
|
-- <Layer>
|
|
menu.Button.NormalTexture = menu.Button:CreateTexture(buttonName.."NormalTexture","ARTWORK");
|
|
menu.Button.NormalTexture:SetTexture([[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Up]]);
|
|
menu.Button.NormalTexture:SetAllPoints();
|
|
menu.Button:SetNormalTexture(menu.Button.NormalTexture);
|
|
|
|
menu.Button.PushedTexture = menu.Button:CreateTexture(buttonName.."PushedTexture","ARTWORK");
|
|
menu.Button.PushedTexture:SetTexture([[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Down]]);
|
|
menu.Button.PushedTexture:SetAllPoints();
|
|
menu.Button:SetPushedTexture(menu.Button.PushedTexture);
|
|
|
|
menu.Button.DisabledTexture = menu.Button:CreateTexture(buttonName.."DisabledTexture","ARTWORK");
|
|
menu.Button.DisabledTexture:SetTexture([[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Disabled]]);
|
|
menu.Button.DisabledTexture:SetAllPoints();
|
|
menu.Button:SetDisabledTexture(menu.Button.DisabledTexture);
|
|
|
|
menu.Button.HighlightTexture = menu.Button:CreateTexture(buttonName.."HighlightTexture","ARTWORK");
|
|
menu.Button.HighlightTexture:SetTexture([[Interface\ChatFrame\UI-Common-MouseHilight]],"ADD");
|
|
menu.Button.HighlightTexture:SetAllPoints();
|
|
menu.Button:SetHighlightTexture(menu.Button.HighlightTexture,"ADD");
|
|
-- </Layer>
|
|
-- </Layers>
|
|
-- </DropDownToggleButton>
|
|
-- </Frames>
|
|
return menu;
|
|
end
|
|
|
|
|
|
-- lua replacement of LargeUIDropDownMenuTemplate
|
|
function Create_LargeDropDownMenu(name,parent)
|
|
local menu = CreateFrame("Frame",name);
|
|
menu:SetScript("OnHide",Menu_OnHide);
|
|
|
|
-- <Frames>
|
|
-- <DropDownToggleButton>
|
|
local buttonName = name.."Button";
|
|
menu.Button = Create_DropDownMenuButtonScript(buttonName,menu,LargeDropDownMenuButtonMixin);
|
|
menu.Button:SetSize(27,26);
|
|
menu.Button:SetPoint("RIGHT",-3,2);
|
|
-- <Layers>
|
|
-- <Layer>
|
|
menu.Button.NormalTexture = menu.Button:CreateTexture(buttonName.."NormalTexture","ARTWORK");
|
|
menu.Button.NormalTexture:SetAtlas("auctionhouse-ui-dropdown-arrow-up",true);
|
|
menu.Button.NormalTexture:SetPoints("RIGHT");
|
|
menu.Button:SetNormalTexture(menu.Button.NormalTexture);
|
|
|
|
menu.Button.PushedTexture = menu.Button:CreateTexture(buttonName.."PushedTexture","ARTWORK");
|
|
menu.Button.PushedTexture:SetAtlas("auctionhouse-ui-dropdown-arrow-down",true);
|
|
menu.Button.PushedTexture:SetPoints("RIGHT");
|
|
menu.Button:SetPushedTexture(menu.Button.PushedTexture);
|
|
|
|
menu.Button.DisabledTexture = menu.Button:CreateTexture(buttonName.."DisabledTexture","ARTWORK");
|
|
menu.Button.DisabledTexture:SetAtlas("auctionhouse-ui-dropdown-arrow-disabled",true);
|
|
menu.Button.DisabledTexture:SetPoints("RIGHT");
|
|
menu.Button:SetDisabledTexture(menu.Button.DisabledTexture);
|
|
|
|
menu.Button.HighlightTexture = menu.Button:CreateTexture(buttonName.."HighlightTexture","ARTWORK");
|
|
menu.Button.HighlightTexture:SetTexture([[Interface\ChatFrame\UI-Common-MouseHilight]],"ADD");
|
|
menu.Button.HighlightTexture:SetPoints("CENTER");
|
|
menu.Button:SetHighlightTexture(menu.Button.HighlightTexture,"ADD");
|
|
-- </Layer>
|
|
-- </Layers>
|
|
-- </DropDownToggleButton>
|
|
-- </Frames>
|
|
|
|
-- <Layers>
|
|
-- <Layer>
|
|
menu.Left = menu:CreateTexture("ARTWORK");
|
|
menu.Left:SetAtlas("auctionhouse-ui-dropdown-left",true);
|
|
menu.Left:SetPoint("LEFT");
|
|
|
|
menu.Right = menu:CreateTexture("ARTWORK");
|
|
menu.Right:SetAtlas("auctionhouse-ui-dropdown-right",true);
|
|
menu.Right:SetPoint("LEFT");
|
|
|
|
menu.Middle = menu:CreateTexture("ARTWORK");
|
|
menu.Middle:SetAtlas("auctionhouse-ui-dropdown-middle");
|
|
menu.Middle:SetPoint("TOPLEFT",menu.Left,"TOPRIGHT");
|
|
menu.Middle:SetPoint("BOTTOMRIGHT",menu.Right,"BOTTOMLEFT");
|
|
|
|
menu.Text = menu:CreateFrontString("GameFontHighlight");
|
|
menu.Text:SetNonSpaceWrap(false);
|
|
menu.Text:SetJustifyH("RIGHT");
|
|
menu.Text:SetPoint("RIGHT",menu.Button,"LEFT",-4,1);
|
|
-- <Layer>
|
|
|
|
-- <Layer>
|
|
menu.Icon = menu:CreateTexture("OVERLAY");
|
|
menu.Icon:Hide();
|
|
menu.Icon:SetSize(16,16);
|
|
menu.Icon:SetPoint("LEFT",30,2);
|
|
-- <Layer>
|
|
-- <Layers>
|
|
|
|
return menu;
|
|
end
|
|
|
|
-- lua replacement of UIDropDownMenu.xml
|
|
if not _G.LibDropDownMenu_List1 then
|
|
for i=1, UIDROPDOWNMENU_MAXLEVELS, 1 do
|
|
Create_DropDownList("LibDropDownMenu_List"..i,nil,{id=i});
|
|
end
|
|
end
|
|
|