Thread Tools Display Modes
Prev Previous Post   Next Post Next
12-28-06, 12:03 AM   #1
johnflesh
A Kobold Labourer
Join Date: Dec 2006
Posts: 1
Custom IMG Graphics UI

Lately I have been trying to track down a nice mod to put a custom graphic on the BACKGROUD below my UI for looks. I have used XArt and I found a new one called Darktide (which was just recently remade from an old one borrowing XArt's code). The problem is they are seemingly both set to resolutions above my own.

I am not in search of the mod so much as a code for this in .lua.

I will give one example of an LUA I have been trying to alter (Darktide) and then tell you the results based on my monitor's resolution and how it interacts. (I have yet to alter it successfully) so I came here for some help.

Code:
Darktide = {}

function Darktide:GetClass()
    local _, class = UnitClass("player")
    class = string.lower(class)
    return class
end

function Darktide:CreateArtFrame()
    self.frame = CreateFrame("Frame", "DarktideFrame", UIParent)
    self.frame:SetFrameStrata("BACKGROUND")
    self.frame:EnableMouse(false)
    self.frame:SetMovable(false)
    self.frame:SetWidth(1536)
    self.frame:SetHeight(256) -- 6 * 256 = 1536 :)
    self.frame:ClearAllPoints()
    self.frame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", 0, 0)
    
    for i=1,6 do
        self["art"..i] = self.frame:CreateTexture("$parentArt"..i,"BACKGROUND")
        self["art"..i]:SetWidth(256)
        self["art"..i]:SetHeight(256)
        self["art"..i]:SetTexture("Interface\\Addons\\Darktide\\Textures\\"..self:GetClass()..i)
        self["art"..i]:ClearAllPoints()
        if i == 1 then
            self["art"..i]:SetPoint("BOTTOMLEFT", self.frame, "BOTTOMLEFT", 0, 0)
        else
            self["art"..i]:SetPoint("BOTTOMLEFT", self["art"..i-1], "BOTTOMRIGHT", 0, 0)
        end
        self["art"..i]:Show()
		
    end
	
	self.frame:RegisterEvent("DISPLAY_SIZE_CHANGED")
	self.frame:RegisterEvent("CVAR_UPDATE")
	self.frame:SetScript("OnEvent", function() this:SetScale(UIParent:GetWidth()/1536) end)
	
    self.frame:Show()
end

Darktide:CreateArtFrame()
This code deals with 6 images (.tga) that are 256 x 256.

_____________________________________________________

Again this works fine except my resolution isn't w.1536 - it's width is 1280. So inturn it cuts off some of the graphics that proceed off the stage to the bottom right side.

SO.. I have a few questions here. Each question is similar but is actually quite different and is assuming another route in this success.

1. How can I get this code to work for my own resolution (native) of 1280 x 1024 and have the graphics fit?

2. If I alter (resize) the graphics to meet my native (1280) and then alter the code accordingly, nothing happens. No graphics show up at all.

3. (most important) Is there a way to make a SINGLE graphic work instead of using 6 different pieces? Or in XArt's case, 4 different pieces? If there is a way to get a single graphic to work, what is that code, I am a noob to this but really want to find the solution as it will get me what I want, and teach me all the same.

Thanks for your time and help, in advance.
JohnB.

2.
  Reply With Quote
 

WoWInterface » Developer Discussions » Graphics Help » Custom IMG Graphics UI

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off