WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Lua/XML Help (https://www.wowinterface.com/forums/forumdisplay.php?f=16)
-   -   Help Figuring Out Moveing Action Bars (https://www.wowinterface.com/forums/showthread.php?t=57359)

Dejablue 08-16-19 08:17 AM

Help Figuring Out Moveing Action Bars
 
Hey guys. I have been moving the action bars for a long time, but this last patch, 8.2, seems to ahve broken moving action buttons 1 -12.

I have an addon, DejaView, that moves each set of bars, Action Buttons, multibar left and right, pet action buttons, stance buttons, etc. They all still work except for action buttons 1 - 12.

Here is a short 20 second video that shows me attaching MultiBarBottomLeftButton1 to a colored frame I made, mbars, and then freely moving it around where I want. In chat you can see that dragging has been triggered and then OnDragStop it gets the position of the frame.

Then I change it to ActionButton1 and show that it won't move, other buttons move around and the chat shows drag starts but no points are retrieved OnDragStop.

Below is a simple version of the code where I create the colored frame to attach the buttons to. Change the frame in the last three lines between MultiBarBottomLeftButton1 and ActionButton1 to see how they behave differently.

Any help is appreciated.

Cheers!

Code:

local mbars=CreateFrame("Frame", "mbars", UIParent)
    mbars:SetFrameStrata("HIGH")
    mbars:SetClampedToScreen(true)
    mbars:SetMovable(true)
    mbars:SetUserPlaced(true)
    mbars:EnableMouse(true)
    mbars:RegisterForDrag("LeftButton")
    mbars:SetWidth(476)
    mbars:SetHeight(36)
    mbars:Show()               

    mbars:ClearAllPoints()               
    mbars:SetPoint("CENTER", "UIParent", "CENTER", 0, 0)
   
    mbars:SetScript("OnDragStart", function(self)
        self:StartMoving()
        self:SetUserPlaced(true)
        print("DragStart")
    end)
   
 
    mbars:SetScript("OnDragStop", function(self)
        self:StopMovingOrSizing()
        self:SetUserPlaced(false)
       
        point, relativeTo, relativePoint, xOfs, yOfs = self:GetPoint()
            if ( relativeTo ) then
                relativeTo = relativeTo:GetName();
            else
                relativeTo = self:GetParent():GetName();
            end
   
        -- These are debugging messages for the frame points
        -- Un-comment them to help debug
        point = point
        relativeTo = relativeTo
        relativePoint = relativePoint
        xOffset = xOfs
        yOffset = yOfs
        print(point,relativeTo,relativePoint,xOffset,yOffset)--Debugging
    end)

local mbarsFS = mbars:CreateFontString("FontString","OVERLAY","GameTooltipText")
    mbarsFS:SetPoint("CENTER",mbars,"CENTER",0,0)
    mbarsFS:SetFont("Fonts\\FRIZQT__.TTF", 10, "THINOUTLINE")
    mbarsFS:SetText("mbars");
    mbarsFS:SetTextColor(1, 1, 1);
   
local dragTexture=mbars:CreateTexture(nil,"ARTWORK")
    dragTexture:SetAllPoints(mbars)
    dragTexture:SetColorTexture(0, 192, 255, 0.7)

    MultiBarBottomLeftButton1:ClearAllPoints()
    MultiBarBottomLeftButton1:SetParent(mbars)
    MultiBarBottomLeftButton1:SetPoint("BOTTOMLEFT",mbars,"BOTTOMLEFT",0,3)


sigz 08-28-19 03:33 AM

you should try mbars:SetAllPoints(UIParent); instead of mbars:SetPoint("CENTER", "UIParent", "CENTER", 0, 0), else your mbars frame will not have volume.


All times are GMT -6. The time now is 09:43 AM.

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