kgPanels

Create panels for customizing your UI, sucessor to eePanels

Wiki and FAQ

Sample Scripts

OnClick now provides a pressed and released variable you can check for.

if pressed then
  -- do mouse down actions
elseif released then
  -- do mouse up actions
end

This means your script will get called twice when someone clicks the panel.

Here is a youtube link to a video Tutorial

Ive created an Example Texture Pack.

This example pack is just a template. If you want to use it as a storage spot for your art, look at the read me file for directions on usage.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of SunTsu SunTsu Nov 13, 2010 at 17:57 UTC - 0 likes

    The language you see is Lua, the very language used in each and every Addon. http://www.lua.org/pil would be a good startingpoint and wowhead/wowprogramming as a reference for WoW specific stuff

  • Avatar of Stuckinwell Stuckinwell Nov 12, 2010 at 21:48 UTC - 0 likes

    I hope this isn't a terribly silly question, but is there any relatively easy location where one could find the general syntax used by this mod? I know what I want to do with my panels, but have no experience coding mods in WoW and thus my ideas for OnClick/OnLoad are going to waste. I see a few samples in the FAQ and on wowwiki, but not nearly enough to code something useful. A basic repository for common commands in the language would be extremely useful, though such a thing rarely exists in cases like this.

    Last edited Nov 12, 2010 by Stuckinwell
  • Avatar of DasFaultier DasFaultier Nov 11, 2010 at 14:57 UTC - 0 likes

    Hey, i would like to request again an idea to change the framebordercolor of ally my frames by clicking a single one. The mentioned variable, containing "was.hidden" is still a mystery to me. (Idea is 3 Posts below)

  • Avatar of kagaro kagaro Oct 30, 2010 at 00:22 UTC - 0 likes

    Loom927: if you have libsharedmedia installed correctly and something adding fonts to libsharedmedia they will show up in the dropdown

  • Avatar of Velran Velran Oct 29, 2010 at 16:52 UTC - 0 likes

    Hello, I'm having trouble adding fonts to kgpanels. I've tried various methods people have posted on different forums, but they didn't work. Please can you help me?

    I already have SharedMedia.

  • Avatar of DasFaultier DasFaultier Oct 28, 2010 at 17:30 UTC - 0 likes
    kgPanels.db.global.layouts[kgPanels.active]["KgPanel15"].scripts["LOAD"] = "local class = UnitClass("player")
    self:SetBackdropBorderColor(RAID_CLASS_COLORS[class].r,
    RAID_CLASS_COLORS[class].g, RAID_CLASS_COLORS[class].b, 0.7)"
    

    Throws following error: kgPanels: [string "Menu_Color_Class_OnClickUp"]:1: unfinished string near '")' But if you say, that's messy, can i make something like this: If i click Panel A, it will change the AlphaLevel of Frame B with "FrameB:SetAlpha(0.1)" and because of that Panel C will change it'S color, because of "if FrameB:GetAlpha() == 0.1 then self:SetBackDropColor(1, 1, 1) elseif FrameB:GetAlpha() == 0.2 then ..." and so on? And the change of the Alpha is permament?

    Edit: i just re-found your tip to make a panel remember it's last status [Hide/Show] >>just add a variable to the panel. >>like self.wasHidden = false

    i really don't know how you've ment that. See, i'm really good at using pre-defined functions, but unkowns functions or selfdefined ones are more than worse. So, i don't know how to make it work. i would like to get it work almost the one above: if i hide a frame, it's status will be remembered and considering of it's status, antoher frame will coler itself. But how?

    Last edited Oct 29, 2010 by DasFaultier
  • Avatar of kagaro kagaro Oct 27, 2010 at 20:22 UTC - 0 likes

    The OnLoad script, isnt executing cause kgPanels fakes OnLoad as the panels can be created well before the parents and ancors exists. The faked OnLoad is done via a hidden function called InitScripts, which in turns runs the attached onLoad after the parents and anchors come into existence. Also OnLoad in your context below would never work, as by time you can fetch the panel, OnLoad has already executed. (onLoad works best with XML files as it calls that after CreateFrame executes.) So your best is instead of fuding the onLoad, to directly just set the backdrop and alhpa. IF you want this to be permanement base on clicks, then your gonna need to mess with the saved variables

    kgPanels.db.global.layouts[kgPanels.active]['KgPanel5"].scripts["LOAD"] =" You script as text here"
    

    I Really dont advise you doing that, as you could corrupt your saved variables.

    As for the first function, where are you defining it? if you want to make it global to your scripts I suggest more along the lines of: In an OnLoad script

    kgPanels.MoveTo = function(...)
    .. code here ...
    end
    

    so in OnClick you could do kgPanels:MoveTo(self, .....)

  • Avatar of DasFaultier DasFaultier Oct 27, 2010 at 20:09 UTC - 0 likes

    Hey Kagaro.

    I worked out 2 Scripts with a mate, but they don't want to work. Both are called by 'OnClick' First, to move a panel out of the frame:

    function kgPanels_MoveTo(Panel, newX, newY, moveDelay, moveStep, SavedTime)
    	if GetTime()-SavedTime <= moveDelay then
    		local point, relativeTo, relativePoint, posX, posY = Panel:GetPoint()
    		if posX == newX and posY == newY then return end
    		if posX < newX then
    			posX = posX+(moveStep or 1)
    		end
    		if posY < newY then
    			posY = posY+(moveStep or 1)
    		end
    		if posX > newX then
    			posX = newX
    		end
    		if posY > newY then
    			posY = newY
    		end
    		Panel:SetPoint(point, relativeTo, relativePoint, posX, posY)
    		SavedTime = GetTime()
    		kgPanels_MoveTo(Panel, newX, newY, moveDelay, moveStep, SavedTime)
    	end
    end
    -- Usage: kgPanels_MoveTo(frame, posX, posY, interval (seconds), steps, GetTime()) - kgPanels_MoveTo(self, 1000, 1000, 0.1, 10, GetTime()) - will move frame "self" to 1000, 1000. Moving 10 pixels every 0.1 seconds.
    

    and second, to Change the OnLoad script of a frame by clicking another frame:

    local Panel5 = kgPanels:FetchFrame("KgPanel5")
    Panel5:SetScript("OnLoad", self:SetBackdropBorderColor(0.77, 0.12, 0.23, 1)) 
    self:SetAlpha(0.5)
    

    Both of them don't work. Any ideas?

  • Avatar of 3dfxorchid 3dfxorchid Oct 19, 2010 at 16:02 UTC - 0 likes

    how is it to make in an simple script to show the money from a char, i only found big scripts, is this posible to make?

    mfg

  • Avatar of kagaro kagaro Oct 19, 2010 at 00:52 UTC - 0 likes

    ok applied a fix that should resolve the issues

Facts

Date created
Sep 16, 2008
Category
Last update
Jun 23, 2015
Development stage
Release
Language
  • enUS
  • frFR
  • koKR
  • zhCN
License
All Rights Reserved
Curse link
kgPanels
Reverse relationships
1
Downloads
1,888,212
Recent files
  • A: r437 for 6.2.0 Jun 23, 2015
  • A: r436 for 6.1.0 Feb 24, 2015
  • R: 1.20 for 6.0.2 Oct 24, 2014
  • R: 1.19 for 6.0.2 Oct 17, 2014
  • A: r433 for 6.0.2 Oct 17, 2014

Authors