D!Framework is a set of tools for addon development . The main focus is reduce the amount of text to type, improving the productivity.
Documentation:
Functions: https://www.curseforge.com/wow/addons/libdframework/pages/framework-functions
Steps to implement it on your addon:
- First make sure you have thise libraries installed: LibStub, AceAddon-3.0, AceComm-3.0, AceConfig-3.0, AceConsole-3.0, AceDB-3.0, AceDBOptions-3.0, AceEvent-3.0, AceGUI-3.0, AceLocale-3.0, CallbackHandler-1.0, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0.
- Unzip the framework file into your libraries folder and load the file load.xml.
- On your .lua file, get the framework table with: local DF = _G ["DetailsFramework"]
- Create the addon object with: local MyNewAddon = DF:CreateAddOn ("MyAddonName", "GlobalSavedVariables", Ace3BasedConfigTable)
With these steps done, your addon is ready to use the framework.
Tools:
- Frame Panels
local commonFrame = DF:CreatePanel (parent, width, height, backdropTable, backdropColor, borderColor, member, name)
local fillPanel = DF:CreateFillPanel (parent, rows, width, height, totalLines, fillRow, autoWidth, options, member, name)
local simpleFrame = DF:CreateSimplePanel (parent, width, height, title, name, options, dbTable)
local pixelBorderFrame = DF:Create1PxPanel (parent, width, height, title, name, options, titleAnchor, noSpecialFrame)
local optionsButton = DF:CreateOptionsButton (parent, callback, name)
local feedbackButton = DF:CreateFeedbackButton (parent, callback, name)
local chartFrame = DF:CreateChartPanel (parent, width, height, name)
local graphicFrame = DF:CreateGFrame (parent, width, height, lineWidth, onEnter, onLeave, member, name)
local tabContainer = DF:CreateTabContainer (parent, title, name, frameList, options)
local listBox = DF:CreateSimpleListBox (parent, name, title, emptyText, listTable, onClick, options)
local scrollBox = DF:CreateScrollBox (parent, name, refreshFunc, data, width, height, lineAmount, lineHeight, createLineFunc, autoAmount, noScroll)
local leftResizer, rightResizer = DF:CreateResizeGrips (parent)
local auraConfig = DF:CreateAuraConfigPanel (parent, name, db, methodChangeCallback, options)
DF:ColorPick (attachFrame, r, g, b, alpha, callback)
DF:IconPick (callback, closeWhenSelected, callbackParam1, callbackParam2)
DF:CreateScaleBar (parent, config)
DF:ShowPromptPanel (message, trueFunction, falseFunction)
DF:ShowTextPromptPanel (message, callback)
- Buttons
local newButton = DF:CreateButton (parent, clickFunc, width, height, text, param1, param2, texture, member, name, textShortMethod, buttonTemplate, textTemplate)
- Dropdowns
local newDropdown = DF:CreateDropDown (parent, func, defaultValue, width, height, member, name, dropdownTemplate)
- Text
local newLabel = DF:CreateLabel (parent, text, size or template, color, font, member, name, layer)
- Bar
local newBar = DF:CreateBar (parent, texture, width, height, defaultValue, member, name)
- Texture
local newTexture = DF:CreateImage (parent, texture, wight, height, layer, texCoords, member, name)
- Sliders
local newSlider = DF:CreateSlider (parent, wight, height, minValue, maxValue, step, defaultValue, isDecemal, member, name, withLabel, sliderTemplate, labelTemplate)
- Text Entry
local newTextEntry = DF:CreateTextEntry (parent, func, wight, height, member, name, withLabel, textEntryTemplate, labelTemplate)
- Tooltip
local tooltip = GameCooltip2