== v4.2.375 ==

=== General ===

* ButtonFacade has been renamed to **Masque** and has been partially rewritten. It should be backwards-compatible with ButtonFacade-enabled add-ons and includes a replacement ButtonFacade add-on that will pre-load Masque for those add-ons still using the old API.
* Masque's options are now load-on-demand. An option is available to pre-load them but this option is disabled by default.
* Masque's slash commands are **/msq** and **/masque**.
* Masque now supports LibDualSpec-1.0.
* Add-ons and their groups can now be disabled. Any group (including the Global group) that is disabled will also disable its child groups.
* Masque includes a debug mode. When enabled, Masque will throw Lua errors when it encounters API or skin errors. This feature can be toggled via the options window or by passing the **debug** parameter to the slash commands.

=== API ===

* Masque's API is now available via the **LibStub("Masque")** call.
* Add-ons no longer need to save skin settings. This is now handled by Masque.
* To prevent excessive overhead, a button's layers (ButtonData) are no longer parsed when the button is skinned but rather when the button is added to a group.
* The following methods are available to the API and function as they previously did:
** :Group('Addon' [, 'Group'])
** :AddSkin('SkinID', {SkinData} [, Replace])
** :GetNormal({Button}) (Previously 'GetNormalTexture')
** :GetGloss({Button}) (Previously 'GetGlossLayer')
** :GetBackdrop({Button}) (Previously 'GetBackdropLayer')
** :AddSpellAlert('Shape', 'Glow', 'Ants') - NEW - Adds a spell alert texture set for the specified shape.
** All other methods have been deprecated and are in a temporary state until add-on authors update to the new API.

* The following methods are available to the Group API and function as they previously did:
** :AddButton({Button} [, {ButtonData})
** :RemoveButton({Button})
** :Delete()
** :ReSkin()
** :GetColor('Layer') (Previously 'GetlayerColor')
** :GetLayer({Button}, 'Layer') - NEW - Returns the specified layer for the button passed.
** All other methods have been either deprecated or are intended for internal use only.

=== Skins ===

* The default skin has been cleaned up and now looks better. (Maul)
* Skins can now use a random texture for the **Normal** layer. 
* Added the **Duration** text layer for buff/debuff buttons.
* Skin elements no longer support a **Scale** attribute. Use **Width** and **Height**.
* The **Icon** layer no longer supports a **BlendMode** attribute.
* Skins can no longer hide text layers.
* Text layers now accept the **JustifyH** and **JustifyV** attributes.
* The **LBF_Version** entry has been replaced with **Masque_Version**. (Currently 40200) Make SURE your skins have this attribute. This tells Masque that the skin is up to date.
* Skins now support a **Shape** parameter that will allow the spell alert animation to fit the button style. Masque includes a **Circle** texture set and includes a method to add new spell alert textures.
* Skins now support the **Version** and **Author** keys. A future version of Masque //may// include a panel to display skin information.
* Skins no longer have to specify the **Normal** layer as being **Static**. Instead, this is now the default behavior. If a skin author wants to use the built-in state changes, they can force this by explicitly setting the **Static** attribute to **false**.
* Skins can now use the **EmptyTexture** and **EmptyCoords** attributes for the **Normal** layer even if not using the default state changes.
* Text layers now accept the following attributes:
** Font ("Path\To\Font")
** FontSize
** Note that fonts must be included with the skin and are disabled by default. Users have the option whether or not to enable skin fonts.

=== Known Issues ===

* Many add-ons and skins will need to be updated. Be patient.

\\

Please see the documentation on the project page for more information.