Originally Posted by kurapica.igas
Well, if you only need one event handler for one frame's event, it's simple to do it , just add one method to your frame, like :
Lua Code:
------------------------------ -- Template part ------------------------------ local function Fire(self, event, ...) return type(self[event]) == "function" and self[event](self, ...) end local function OnClick(self) return self.Parent:Fire("OnValueChanged", self:GetID()) end function CreateDropDownMenu( ... ) local menu = CreateFrame("Frame", ...) -- Give it a new method menu.Fire = Fire -- Create menu buttons for i = 1, 10 do local btn = CreateFrame("Button", nil, menu) btn:SetID(i) btn.Parent = menu btn:SetScript("OnClick", OnClick) end return menu end ------------------------------ -- Test part ------------------------------ local menu = CreateDropDownMenu() function menu:OnValueChanged(value) -- action end
|
I think this is what i need. Thanks.