5.13
-------------
r37:
* Fixed Alpha == 0 update problems (Not updating name, health)
* Fixed Neon panel (Not holding values)

r36:
* Modified layering
* Mainstream Release!

r35:
* Updates and fixes to Neon (including Unit Level)
* Inclusion of Graphite (just a peek at an upcoming theme)
* Layering adjustment
* Removal of some beta debug code

r31:
* New theme callback function: OnContextUpdate. Triggered when the GUID of a unit is updated.
* SetThreatColor will trigger for every unit, with no filtering, allowing the designer to use the
Threat Glow for other purposes (such as debuff tracking)
* Neon and Grey Panels are parented to their own category.
* Neon Panel has been updated
* New Neon features:
- Threat glow border
- Class Icon
- Debuff Widget Config

r30:
- Modified the theme table preprocessor to fill in values on the incoming theme table, rather than generating a totally segregated table.
- The style application function will now use that updated custom theme table
- Theme styles can be modified in real-time, and updated with TidyPlates:ForceUpdate()
- Theme reload will only be required when new styles are added, after the initial loading. (to multi-style themes)

r28: 
- Added SetCastbarColor function

r26:
- Added SetThreatColor function

- Modified the core to reduce the workload on data updates.
	More specifically, I've made new paths for update requests
	which avoid updating every single piece of data when only
	a single value has changed.  
- Cleaned up some code, and added some new comments
	

5.12.2
-------------
+ Bugs!


5.12.1 
-------------
+ Better Nesting for Neon and Grey
+ Fix for no-show nameplates



-------------
Beta 1&2
	Beta 1 will launch without Grey.  This is so I can keep focused on features, and then work toward
	the interface panels.  I use Neon, so that's what I'll be testing with.
	+ Notes Widget
		+ Currently only editable via LUA.  Add notes in the widgets\NotesWidget.lua file.
	+ Unit Raid Icon Info
		* STAR, MOON, CIRCLE, SQUARE, DIAMOND, CROSS, TRIANGLE, SKULL
	+ Range-Check Widget (for group members)
		+ Interface (Drop down menu for range)
	+ Packaged Neon with the Main Release
	+ Make Selection Box and Threat Line defaults for Tidy Plates: Neon
	+ Add Level Display Option to Grey
	+ Neon: Make the Enemy Player color pass through (PVP)
	+ Updated Combo Points
	+ Neon: Added health text
	
	
Beta 2B
	
	+ Neon now can show the unit level in its health text field
	+ Added events for PLAYER_CONTROL_LOST, PLAYER_CONTROL_GAINED, UNIT_FACTION
	+ Grey is included, again.  It's not fully updated
	+ Minor bug fixes
	+ Both Neon and Grey will now only modulate the scale and aggro color of NPC nameplates; PvP colors will automatically pass through
	
	
Beta 3
	+ Fixed some "no target" update errors
	+ Working on cast bar problems; Reverting to older method
	REMOVED - When you click on the Tidy Plates entry in the Interface Options list, it will expand the list, showing all subitems
	+ The debuff widget can be filtered by creating and linking a function to the debuff widget object (widget.Filter)
		example: 
			plate.widgets.AuraIcon.Filter = function(debuffinfo)
				if (debuff.duration < 50 ) or debuff.name == "Hunter's Mark" then return true end
			end
	+ Fixed some aura widget bugs

Beta 4
	+ Cast bar has been totally reverted to older method; Some graphical glitches
		may still occur, but it'll be Blizz's API's fault, this time ;-)
	+ Debug Text has been removed
	+ Note Widget has been repaired
	+ Unit Raid Icon Info  (unit.raidIcon)
		* STAR, MOON, CIRCLE, SQUARE, DIAMOND, CROSS, TRIANGLE, SKULL
			

Beta 6
	+ Fixed some Casting bar bugs
	+ Note widget; Removed interface from neon
	
	
	
Beta 7
	+ Highlight fixed
	+ As a side note; Since Beta 5 the unit text will no longer turn yellow on mouseover, or red when a unit is in combat.

B8...
	+ Cleaned up indicator code
	+ Unit information table: levelcolorRed, levelcolorGreen, levelcolorBlue
	+ clean up spellcasting errors
	
B9
+ Fooled around with region hiding

B10
+ more casting issues
+ are there any ways that I can make my function names show up in the debug/crash report?


B12
+ Changed "CreateAltStatusbar" to "CreateTidyPlatesStatusbar" so it doesn't conflict with some other addon

	
5.11.5
---------------
* Fixed Statusbar #ind errors  (I hope)

5.11.4
---------------
* Grey Theme: New Customization Tool
	1. Under the "TidyPlates_Grey" folder, you'll find another folder, "TidyPlates_GreyExtension"
	2. To use it, begin by moving that folder up to your Addons folder
	3. Open the file, "TidyPlates_GreyExtension\GreyExtension.lua"
	4. You can directly modify the default behavior and appearance
	5. This process can be duplicated for any theme, and will not get overwritten by an update
	Post a comment, or write me an email (binbwen@gmail.com) if you need some help with this
* A full status update will now be performed when the cast bar is shown, to prevent null values

5.11.3
---------------
* Castborder size is being reset during odd times; Added improvements to restore the shape
* Fixed the issue with Grey aggro borders not remaining hidden after /reloads (saved variable merge issue)
* Fixed crazy errors - sorry folks!  

5.11.1
---------------
* Problems with OnInitialize not being called (widget errors occuring during combat)  An attempted fix is applied.
* Fixed unit.class updates (hopefully)

5.11.0
---------------
/greydps and /greytank are the new shortcuts

* Added Debuff widgets to Grey/Tank
* Health text in Grey; "%x" will now read "x%"
* Added outline to text of Threat Line Widget (makes it easier to read in a cluttered battle)
*  also decreased the text size
* Threat Line Widget will look to see if the player is marked as a Main Tank in the Raid settings. If so, it will display the person who has pulled aggro (Target of). otherwise, it will assume dps mode and hide the tank name.
* Threat Line will color the Lost side green if it's being held by a tank

* Added a Statusbar wrapper, which fixes Lucky Charms, and enables vertical stat bars with masks
* Added basic Debuff icons
* Fixed Virtual Plates compatibility (Thanks Saiket!!) 
* Fixed layering issues (Plates over map/combattext/etc)

Theme function Changes:
* theme.OnInitialize will get called every time a nameplate is shown.  Authors should check for
exsisting objects/widgets before creating new ones.
*theme.OnUpdate is called when the data on the plate is updated.  This does not need a existence 
check since it's guaranteed to run after an OnInitialize.

5.10.5
-------------------------------------------------------------------------
Went back to LiberationSans for default font.  Why?  I like it!

5.10.4
-------------------------------------------------------------------------
+ If the Threat Line Widget sees that the targetted character is a "MAINTANK" under the raid roles, it will color the name blue.

5.10.3
-------------------------------------------------------------------------
+ Fixed "Hide Neutrals"
+ Went to ArialNarrow for the default font
+ Grey\DPS 
	+ Added Hide Neutrals, Ignore Elites
+ Added SetPoint to extended (just in case)
+ Changed health bar color gathering to assist duels

- Removed from loading procedure:
	- SetCVar("CameraDistanceMaxFactor", 6)
	- SetCVar("threatWarning", 3)
	- SetCVar("ShowClassColorInNameplate", 1)
	- SetCVar("showVKeyCastbar", 1)
	
5.10.2
-------------------------------------------------------------------------
+ Removed Cvar setting, "CameraDistanceMaxFactor" (fixes camera zoom issues)
+ Re-enabled Cursor Update Event

5.10.1
-------------------------------------------------------------------------
+ Remove Cvar setting, "CameraDistanceMaxFactor"  (fixes camera zoom issues)
+ Cursor Update Event
	
Add to Grey:
+ Scale: ignore non-elites
+ Alpha: hide non-elites
+ Spinner Widget
+ move widgets to .widget
+ add a target widget to grey (testing)

5.10
-------------------------------------------------------------------------
++ "Avoid Overlap" (Alias) in panel
++ "Autoshow" Option in panel
++ Independent Frame
	* scale pass-through	(Not fully implemented; using Virtual Plates AND a theme which changes scale will show oddities)
	* force alpha override	(The developer can tell Tidy Plates to force the alpha - avoiding Blizzard's default alpha - by returning 'true' as a second value for the return)
		- ex. theme.SetAlpha = function(unit) return 1, true end  -- Will maintain the opacity at 100%, regardless of target status
++ Set Default CVars after VARIABLES_LOADED
++ Dual Spec Support (Changes theme based on spec)
	- Added a second dropdown menu in panel
++ Troubleshooting Panel
	- Vkey/Bindings
	- reset/reload
++ Widgets
	+ created TidyPlatesWidgets. table
		+ Threat Wheel 
		+ Class Icon Widget
		+ Combo Point Widget 
		+ Threat Line 
		+ MT Logic Widget  
	+ Syntax usage will follow
++ Scale pass-through	(Not Complete; Using Virtual Plates AND a theme which changes scale will show oddities)
++ Performance Enhancements
++ More Comments (woo?)
++ Code Re-organization 
++ Widgets now use TidyPlatesWidgets:HideIn(), and a watcher frame to perform time checks; Faster than having
	each widget process for OnUpdate
++ Improvements to Panel Helpers
++ 	Unit Info table
	+ .GUID (from mouseover or target)
++ Grey Theme 
	++ Critter/Neutral Filter checkbox
	++ Panel redesign
	++ Tank Mode; "Expands the size of runaway mobs"
	++ DPS Mode; "Expands the size of aggro'd mobs"
	++ Widgets
	++ Each of my own themes should have their own config panel for role,
		allowing dual spec to work seamlessly..
		TidyPlatesThemes["Grey (DPS)"] = config
		TidyPlatesThemes["Grey (Tank)"] =  copytable(config)
++ Virtual Plates should now behave better
	* Scale-changing plates will still cause problemos, but now, ordinary plates will work just fine.
	* Returning NIL in your ScaleDelegate function (if  you've got multiple modes) will allow VirtualPlates passthrough.
++ Grey Tank/DPS panels and saved variables got some love; They work better
	+ Delegate functions now use local variables for speed
+ Fixed Forceupdate	
+ Fixed some Grey variables
+ something else.. forgot what it was.  (Ok, I remembered;  I spelled "deficit" wrong.  I bought the wrong vowel!)
+ Fixed Health Text modes
* Grey Theme 
	- Added Current Health + Percent
* Widgets
	- General Mouseover Widget
	- Combo Point Widget
* Still had trouble with nameplate alpha changes updating after the OnShow call.
	-- Solution: Indvidual Plate echo-update  
* Retracted "Raid-Tanked" Widget (for the time-being)
* Added an extended.widget table
	- Theme designers should put all their widget references in this table
* When nameplates are changed (manually or auto) by the Tidy Plates UI, 
	the software will attempt to hide/clear any frames listed under the
	extended.widget table.

-------------------------------------------------------------------------
5.9.5
* Critter Filter on default theme, returned to Mode-level 

5.9.4
* Adjusted position of default theme data, to reduce targeting woes
* Added a cache reset to the Hide hook
* ForceUpdate now only operates on Shown plates
* CURSOR_UPDATE is now part of the default events
* Added alpha == 0 bypass
* Elite Borders now have a star on the artwork, making visual ID easier
* Simplified Scale and Alpha delegates of the default theme
* Critter Filter on default theme, now always on

5.9.3
* frame layering tweaks
* moved some skinning code around
* casting progress now forces single plate graphical updates (to eliminate casting icon oddities)
* painted my nails

5.9.2
* removed some old code related to the frame separation "feature" *shudder*
* frames faded too much (more than 50%); problem fixed
* level text will not show when skull icon is active
* TidyPlates:ForceUpdate() does not allow targetting a specific frame, anymore.  Use: TidyPlates:ForceUpdateFrame(frame), instead
* added .secureframe pointer to .extended, pointing to the base frame
* added .flags to name, level, specialText, and specialText2 - used for adding outlines to your text...  if you REALLY want them.  *shudder*


5.9.1
* Changed default fonts from Arial to Liberation (halves the file size, woo!)
* Undo the frame separation (Allows Virtual Plates to run)
* '.hitbox' has been added, as a style category.  This will alter the clickable region, out-of-combat
	- .hitbox.height	height of hitbox (default: 37)
	- .hitbox.width		width of hitbox (default: 149)
	
Tidy Plates 5.9 Release Notes
Release
* Clean Up Files - Check!
* Rename of "Beta Grey" to "Standard Grey" - Check!
* re-added health bar color function

Beta 7.5
* Various tweaks to the update system
* unit info cache filters out non-changing events 
* Testing of new theme, Neon, which has a new threat widget, and uses health bar color to ID aggro

Beta 7
* Added: unit.isTarget to Unit Information Table
* Each Tidy Plates extension has been changed to not be parented to the plate object.
	- Please watch for memory leaks
* Themes must now use the TOC tag, "## Dependencies: TidyPlates", to ensure proper operation
* typing '/tidyplates' or '/tidybeta' without parameters will list the command line options AND open the interface panel
* fixed a layering problem with casting bar
* added unit info cache, to determine if unit info has changed
* TidyPlates:ReloadTheme() will reload the current theme from the table source
* TidyPlates:ForceUpdate() and :ForceUpdate(plate) will force the update of the entire plate
	- Use this function when you absolutely must update every bit of graphic on the plate(s)
* TidyPlates:Update() refreshes the unit data on each plate, and checks for changes
	- Use this function for frugal CPU usage
* Threat widget will now color the unit's target name by class color

Beta 6
* Fixed some bugs with combo points; It's still needing work, though.
* Added reset commands:
	'/tidyplates reset' and ' /tidybeta reset' resets variables without messing with WTF folders
* Fixed position of Scale slider in the Beta Grey Interface Panel

Beta 5
* Added an 'Apply' button to BetaGrey theme
* Added slash commands for Beta grey '/tidybeta [tank, dps, pvp]
* Fixed some bugs
* Added a text box to the threat widget, showing who (if it's not you) has the highest threat

Beta 2
* Engine modifications (echo function)
	- Allows accurate update of current target/alpha 
	- Reduces CPU consumption

Beta 1 (And Earlier - This list is a work-in-progress) 
* New Functions/Methods:
	TidyPlates:ForceUpdate() - Forces the update of all nameplates
	TidyPlates:ForceUpdate(frame) - Forces the update of the specified nameplate
* Current Derived Unit Information Table (supplied to delegate functions):
	unit.threatSituation	"LOW", "MEDIUM", "HIGH"	
	unit.reaction			"FRIENDLY", "NEUTRAL", "HOSTILE"
	unit.type				"NPC", "PLAYER"
	unit.isBoss			true, if the skull icon is active (the creature is a boss/level ??)
	unit.isDangerous	Same as isBoss
	unit.isElite		true, if unit is elite (ie. elite symbol is shown)
	unit.isMarked		true, if the unit is marked with a raid icon
	unit.name			the unit's name
	unit.alpha			float, the alpha of the nameplate (ie. 1= target, 1< non-target)
	unit.level			integer, the unit's level
	unit.health			integer, the unit's health
	unit.isMouseover	true, if the highlight region is showing (ie. mouse is over the frame)
	unit.red, unit.green, unit.blue 	0.0-1 Values, the raw color of the health bar
	unit.isCasting						true, if cast bar is being shown
	_, unit.healthmax 					integer, the maximum health of the unit
	unit.class 			"DEATHKNIGHT", "DRUID","HUNTER", etc..
	unit.isInCombat 	true, if name text is red (ie. unit is in combat with you)
* Interface Options Panel
		- Theme Chooser
* New Delegate Functions: OnInitialize, OnUpdate 
	- OnInitialize(plate)		This function is supplied a pointer to the Tidy Plates extension, 
								which can be directly edited. This function is called when the plate 
								extension is created. 
	- OnUpdate(plate, unit)		This function is supplied a pointer to the Tidy Plates extension, and
								the Unit Information Table.  This function is called when the plate is 
								updated (via event, or forced), after all other delegate functions have 
								been called
		
		
		
		
		
		
		



[B][SIZE="3"]Beta Versions[/SIZE][/B]

Beta 1
The biggest changes: Independent alpha control, internal widgets, dual spec support, troubleshooting panel, sweeping performance enhancements.

Beta 2
Significant core changes, hopefully for much better performance (it's faster in my own tests).  Started splitting 'Grey' into two themes; Grey/Tank and Grey/DPS.  Both will have their own panels.  Neither panel is finished (or even partially working).

Beta 3
More core changes, and changes to the panel utility functions (not that anyone besides me uses em) Grey Theme modifications (heavy).  "Grey\Tank" is the first subtheme, which will be followed by "Grey\DPS".  If you want to help me out, make some suggestions about "Grey\PVP" features.  Can't promise anything, but I'll give it a shot.

Beta 4
The new Grey theme is pretty much done.  Both Tank and DPS panels are active, and the functions work.  The new widget, "Main Tanked", has been implemented; It looks at your target and mouseovertargets for characters that are main tanks in your raid.  The nameplates will still expand when another player has aggro (in tank mode), but you'll get a nice icon indicating if it's being tanked, or if it's attacking a squishy.  Bear in mind, you need to mouse over the unit for it to work.  The icon will stay active for several seconds, so just sweep your cursor over the mobs.  (Yes, sweeping your cursor over mobs DOES incur some performance hits, since it signals the Tidy Plates core, though nothing that hurts my framerate.  I'm pretty confident that just about ALL of you downloading this have a much faster machine than I do.)

Beta 5
Grey -Fixes for tank and dps saved variables
Grey- Panel improvements
Grey- Function improvements
Scale function changes

Beta 5&6
Bug Fixes n such

Beta 7
Changes to alpha handling, and adding the combo point widget back to the fray.  Added a few more Text modes.  Moved a bunch of things to the 5.10.X/5.11 list.

Beta 8
Changed some performance thingies, fixed some panel items, and retracted the Raid-Tanked widget (for now)

I'm going to move forward toward releasing 5.10.  In order to speed up the process, I had to move some features to future releases.



Threat Widget:
The Threat Widget is simply a statusbar, drawn from the center-line of the nameplates, which represents your relative threat to that unit.  When the bar extends right and becomes amber, you've got the attention of the unit; The length of that bar indicates your lead over the next highest threat-holder.  If the bar extendeds left, the color will change to cyan, indicating that the unit isn't attacking you.  The length of the bar will indicate how far your threat trails behind the top threat-holder.  Additionally, if you are NOT the highest threat-holder, the threat widget will tell you who is.

Summary; Tanks will want to see a right-pointing amber bar, while DPS will want to see left-leaning cyan.  Longer bars are safer. 
