All pastes #734497 Raw Edit

Unnamed

public lua v1 · immutable
·published 2007-10-12 19:35 UTC
rendered paste body
local TL, TC, TR = 'TOPLEFT',    'TOP',    'TOPRIGHT'local ML, MC, MR = 'LEFT',       'CENTER', 'RIGHT'local BL, BC, BR = 'BOTTOMLEFT', 'BOTTOM', 'BOTTOMRIGHT'local _G = _Glocal bindings = {	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=',	'SHIFT-1', 'SHIFT-2', 'SHIFT-3', 'SHIFT-4', 'SHIFT-5', 'SHIFT-6', 'SHIFT-7', 'SHIFT-8', 'SHIFT-9', 'SHIFT-0', 'SHIFT--', 'SHIFT-=',	'CTRL-1', 'CTRL-2', 'CTRL-3', 'CTRL-4', 'CTRL-5', 'CTRL-6', 'CTRL-7', 'CTRL-8', 'CTRL-9', 'CTRL-0', 'CTRL--', 'CTRL-=',	'ALT-1', 'ALT-2', 'ALT-3', 'ALT-4', 'ALT-5', 'ALT-6', 'ALT-7', 'ALT-8', 'ALT-9', 'ALT-0', 'ALT--', 'ALT-=',}local buttonname = 'actionbutton'local barpadding = 1local function update_bindings ()	local h,b	for i = 1,48 do		h = _G[buttonname..i..'HotKey']		b = GetBindingText(bindings[i], 'KEY_')		b = b:gsub('SHIFT%-', 's')		b = b:gsub('CTRL%-', 'c')		b = b:gsub('ALT%-', 'a')		h:SetText(b)	endendlocal function update_text ()	for i = 1,48 do		_G[buttonname..i..'Name']:SetText('')	endendlocal function update_looks (b)	local name = b:GetName()	local icon = _G[name..'Icon']	local texture = _G[name..'NormalTexture2'] or _G[name..'NormalTexture']		icon:SetTexCoord(0.08,0.92,0.08,0.92)	texture:SetTexCoord(0,0,0,0)endlocal function create_button (name, id)	local a = this	local b = CreateFrame('CheckButton', name..id, UIParent, 'ActionBarButtonTemplate')	this = b	ActionButton_UpdateAction()	this = a	b:SetScript('OnAttributeChanged', Actionbutton_Update)	b:SetAttribute('type', 'action')	b:SetAttribute('action', id)	b:SetID(id)	return bendlocal function create_bar (name, first, last, padding)	local bar = CreateFrame('Frame', nil, UIParent)	local button	local numbuttons = last - first + 1	button = _G[name..first] or create_button(name, first)	button:SetParent(bar)	button:SetPoint(BL, bar, BL)	update_looks(button)	for i = first + 1, last do		button = _G[name..i] or create_button(name, i)		button:SetParent(bar)		button:SetPoint(ML, _G[name..i-1], MR, padding, 0)		update_looks(button)	end	bar:SetWidth(numbuttons * button:GetWidth() + (numbuttons - 1) * padding)	bar:SetHeight(button:GetHeight())	return barendRegisterEvent('actionbar', 'PLAYER_LOGIN', function ()	for i = 1, 48 do		SetBindingClick(bindings[i], buttonname..i)	endend)Actionbar1 = create_bar(buttonname, 1, 12, barpadding)Actionbar1:SetPoint(BC, UIParent, BC, 0,  barpadding)Actionbar1:Show()Actionbar2 = create_bar(buttonname, 13, 24, barpadding)Actionbar2:SetPoint(BC, Actionbar1, TC, 0, barpadding)Actionbar2:Show()Actionbar3 = create_bar(buttonname, 25, 36, barpadding)Actionbar3:SetPoint(BC, Actionbar2, TC, 0, barpadding)Actionbar3:Show()Actionbar4 = create_bar(buttonname, 37, 48, barpadding)Actionbar4:SetPoint(BC, Actionbar3, TC, 0, barpadding)Actionbar4:Show()Actionbar5 = create_bar('PetActionButton', 1, 10, barpadding)Actionbar5:SetPoint(BC, Actionbar4, TC, 0, barpadding)Actionbar5:Show()hooksecurefunc('ActionButton_UpdateHotkeys', update_bindings)hooksecurefunc('ActionButton_Update', update_text)