Module:Api methods
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Api methods/doc
-- https://wowpedia.fandom.com/wiki/Template:Api_methods
local m = {}
local widget_data = {
Object = {
"GetDebugName",
"GetParent",
"GetParentKey",
"SetParentKey",
},
FrameScriptObject = {
"GetName",
"GetObjectType",
"IsForbidden",
"IsObjectType",
"SetForbidden",
},
ScriptRegion = {
"ScriptRegion:CanChangeProtectedState",
"ScriptRegion:EnableMouse",
"ScriptRegion:EnableMouseWheel",
"ScriptRegion:GetBottom",
"ScriptRegion:GetCenter",
"ScriptRegion:GetHeight",
"ScriptRegion:GetLeft",
"ScriptRegion:GetRect",
"ScriptRegion:GetRight",
"ScriptRegion:GetScaledRect",
"ScriptRegion:GetScript",
"ScriptRegion:GetSize",
"ScriptRegion:GetSourceLocation",
"ScriptRegion:GetTop",
"ScriptRegion:GetWidth",
"ScriptRegion:HasScript",
"ScriptRegion:Hide",
"ScriptRegion:HookScript",
"ScriptRegion:IsAnchoringRestricted",
"ScriptRegion:IsDragging",
"ScriptRegion:IsMouseClickEnabled",
"ScriptRegion:IsMouseEnabled",
"ScriptRegion:IsMouseMotionEnabled",
"ScriptRegion:IsMouseOver",
"ScriptRegion:IsMouseWheelEnabled",
"ScriptRegion:IsProtected",
"ScriptRegion:IsRectValid",
"ScriptRegion:IsShown",
"ScriptRegion:IsVisible",
"ScriptRegion:SetMouseClickEnabled",
"ScriptRegion:SetMouseMotionEnabled",
"ScriptRegion:SetParent",
"ScriptRegion:SetPassThroughButtons",
"ScriptRegion:SetScript",
"ScriptRegion:SetShown",
"ScriptRegion:Show",
"ScriptRegionResizing:AdjustPointsOffset",
"ScriptRegionResizing:ClearAllPoints",
"ScriptRegionResizing:ClearPoint",
"ScriptRegionResizing:ClearPointsOffset",
"ScriptRegionResizing:GetNumPoints",
"ScriptRegionResizing:GetPoint",
"ScriptRegionResizing:GetPointByName",
"ScriptRegionResizing:SetAllPoints",
"ScriptRegionResizing:SetHeight",
"ScriptRegionResizing:SetPoint",
"ScriptRegionResizing:SetSize",
"ScriptRegionResizing:SetWidth",
"AnimatableObject:CreateAnimationGroup",
"AnimatableObject:GetAnimationGroups",
"AnimatableObject:StopAnimating",
},
}
local inherited = {
FrameScriptObject = {"Object"},
ScriptRegion = {"FrameScriptObject", "Object"},
}
local fs = "[[API %s %s|%s:%s]]"
local function FormatLinks(widget)
local widget_link = string.format("[[UIOBJECT_%s|%s]]", widget, widget)
local t = {}
for _, method in pairs(widget_data[widget]) do
if method:find(":") then
local widget2, method2 = method:match("(%w+):(%w+)")
table.insert(t, fs:format(widget2, method2, widget2, method2)) -- hack
else
table.insert(t, fs:format(widget, method, widget, method))
end
end
widget_list = string.format('\n<div style="margin-left:1em">%s</div>', table.concat(t, "<br>"))
return widget_link..widget_list
end
local function GetWidgetMethods(args, widget)
local t = {}
if args.inherited == "1" and inherited[widget] then
for _, v in pairs(inherited[widget]) do
local inherited = FormatLinks(v)
table.insert(t, inherited)
end
else
local defind = FormatLinks(widget)
table.insert(t, defind)
end
return table.concat(t)
end
function m.main(f)
local widget = f.args[1]
local methods = GetWidgetMethods(f.args, widget)
local darktable = string.format('{| class="darktable\n|%s\n|}', methods)
return darktable
end
return m