The purpose of DataDump is to allow rapid inspection of UI elements and values, as well as editing values of UI objects. The Variable Inspector may be set to constantly refresh the data so that current values are always displayed. The UI Object Inspector allows various values of the UI objects to be edited. This latter feature allows a dev to adjust the UI as desired, without having to go through the process of adjusting values in source files, reloading the UI, inspecting the results, and repeating until the UI objects are set up as desired. The primary target audience of Data Dump is Add On and UI / Interface developers. While one of my goals was to make Data Dump easy to use, it does expect at least a small amount of programming experience to use it. If you are interested in developing Add Ons or making UI / Interface enhancements welcome to the club! There are plenty of resource on the Web to get you started. Another Add On I would strongly recommend is WoWLua. It will allow you to test code directly and easily while running WoW. Features of Data Dump: Variable Display Displays info on a variable. You may enter any variable into the input field as long as the variable would resolve if if the following code was executed: return varName Tables and sub-tables may be expanded or collapsed using the plus/minus buttons. The three primary columns are Key, Type, and Value. The key is displayed in the Key Button. Left clicking the key buttons will drill down, and place bread crumbs in the left margin. Clicking an up arrow will return the display to a higher bread crumb. Right clicking the key button will cause a new variable display to be created. If the value in the input field could not be fully displayed textually, then the input field will be disabled. An example of an impossible to resolve input field would be if one of the keys in the variable's resolution path was a function or table. The value's type is displayed in the Type Button. If the type is a UI object, then right clicking the button will open a new UI Inspector which displays the UI element. The value is displayed in the Value Button. If the value is a UI object, and it has a resolvable name, that name will be displayed in the Value Button. Left clicking the Value Button will display the value in a copy box. The value cannot be edited, but it may be copied. Pressing escape of clicking the red box will dismiss the copy box. Left clicking the Refresh Button cause the values to be refreshed. Right clicking the Refresh Button will display the refresh dialog, wherein a refresh rate may be specified. The display will continue to refresh until it is hidden, deactivated, or the UI is reloaded. Warning1: using a Variable Display to get info on _G will cause over 50k lines of data to be generated. Warning2: tables in _G may not liked to be touched by add ons, and may become tainted. Warning3: getting _G will use a lot of add on memory Warning4: getting _G will use A LOT of add on memory UI Object Display Displays info about a WoW UI Object Element. The Region Tab display positional info about the UI Element. Edit Boxs may be updated and the actual UI Element will display any changes when enter is pressed. Note: you may need to refresh the display if an edit would change one of the read only fields. Ex: changing the value in Scale will have an impact on Effective Scale, but you would need to click Refresh to see this impact. The Coordinates Menu allows the choices of showing the Element's coordinates, or its bounds values. The bounds values are the maximum sizes needed to display the element and all of its child frames / regions. The points editor may be used to make changes to a specific point. Clicking an existing point will display the point editor. Changes to the point will take place when Set or Delete are clicked. The point editor may be closed with no effects by clicking Cancel or the original point line. New points may be added by clicking the + point line. Clicking Resizable or Clamped will open another editor displaying multiple fields. Clicking Get Parent will open a new UI Inspector containing info on the parent frame. Clicking Get Functions will return a Variable Display that lists all of the functions attached to the element. Functions that are on the meta table are marked as "Meta Function". Functions that are directly attached to the table are marked as "Attached Function". Functions that are directly attached to the table and override a meta function are marked as "Overridden Function". Clicking Child Frames will return a Variable Display that lists all of the child frames of the current element. Clicking Child Regions will return a Variable Display that lists all of the region objects that are children of the current element. If certain features are not appropriate for an element, the specific feature is disabled. The Scripts tab shows a few values regarding secure frames. Clicking Get Scripts will return a variable Display listing all possible scripts that may be attached to the element, as well as the script signature and which scripts are active. The Backdrop Tab displays info on the backdrop of the element. It also allows the editing of the various values. Note that new values are only applied once the appropriate Set button is clicked. Events Display When Watch All Events is checked, the Events Display will record all events that transpire in chronological order. The Clear button will remove all recorded events. The Deactivate All button will stop any of the currently recorded events from being displayed, while the Activate All button will allow all of them to be displayed. The default is that all events are displayed. By unchecking Show Chronologically, each event with a unique name will be collapsed down to one entry. The entries will be sorted alphabetically. The purpose of this feature is to easily allow all events with a given name to be hidden, and thus allow easier inspection of the actual events of interest. Clicking the red X on the left of each line will disable that entry. Clicking on an event will display a detail pane that shows the milliseconds of the event, as well as arguments of the event. General Notes: Data Dump is designed to keep the displays ready to use even between reloads. If a display has active text in its input field, and the Red X is click, the display is merely hidden. Using the appropriate show command will retrieve the display. The ability to retrieve these displays works across UI reloads. This way, if several displays are being used, and a UI reload is required, the developer does not have to go through all the effort to recreate the displays. Furthermore, if some displays are visible, and others are hidden, the ones that are visible will still be shown after the UI reload is complete. The only thing turned off is auto-refresh. To actually delete a display, click the delete button. This hides the display, removes the value from the input field, and readies for it to be recycled in the event another display of the same type is needed. Note: some displays will be created with the input field disabled. These are not saved, and will be fully removed after a UI reload. These type of displays are typically generated by other displays, and are not saved because either there is no way to correctly resolve the variable via the input field, or that the display was generated from clicking buttons like Get Children. Performance Note: if a display is hidden during UI reload, the new display will not be allocated in memory until it is specifically requested to be shown.
Version 2: Initial public release.