Updated the Interface version for Retail to 100005. (#305)
Updated the Interface version for Wrath Classic to 30401. (#304)
Updated the supporters list.
API
Added support for two new regions added to AuraButtonTemplate in 10.0.5 (#302):
DebuffBorder - Replaces the Border region for buttons based on DebuffButtonTemplate, which was removed in 10.0.5.
EnchantBorder - Replaces the Border region for buttons based on TempEnchantButtonTemplate, which was removed in 10.0.5.
Masque will check for older definitions (Eg: Border.Debuff or Border) to maintain compatibility with skins missing these layers and Classic.
Further improvements to type-handling.
Increased the API_VERSION to 100005.
In an effort to reduce redundancy in skins, skin layers can now reference other layers by passing the string name of the referenced layer instead of a definition table. Eg:
If Border is defined as Border = { ... }, DebuffBorder can be defined as DebuffBorder = "Border" to tell Masque to use the Border table for DebuffBorder.
Note that this is only useful for layers with the identical definition tables.
A better example can be seen in the Dream skin.
Updated various region settings.
Skins
Updated all skins for the changed listed above.
Bug Fixes
Fixed an issue causing spell alerts to not be skinned properly.
Fixed an issue causing buttons moved from an enabled group to a disabled group to not be unskinned properly. (#299)
Add-on authors can now assign a "Notes" field to groups that will be displayed in the Skin Settings panel for the group, above the Disable option, and in the tooltip for the group. (#291)
Bug Fixes
Fixed an issue causing the Normal texture to be resized on skins using button states. (#292)
Fixed an issue causing text regions to not be skinned properly on Aura type buttons. (#293)
Fixed an issue preventing the Icon mask from being used on Aura type buttons for the Blizzard Modern skin. (#294)
Added an Alternate Sorting option to General Settings / Interface that causes skins included with Masque to be listed above third-party skins in the Skin drop-down. (#290)
Skins
Added a texture to the Cooldown region for "Blizzard Modern" to prevent the corners from overlapping the Normal texture. (#289)
Updated the Interface version for Retail to 100002. (#286)
Skins
Due to some ambiguity with the naming of some included skins, those names have been revisited and are as follows: (#280)
"Default" (Dragonflight) is now "Blizzard Modern".
"Default (Classic)" is now "Blizzard Classic".
"Classic" is now "Classic Redux".
Due to the name changes, a fail-safe has been implemented for skins that have yet to be updated to use the new names in their template field. This will allow those skins to continue to function. (#280)
The default skins for new profiles will now be the "Blizzard" variant for the respective client. (#281)
Users who use one of the renamed skins will have their saved variables migrated automatically to reference the new names. (#284)
API
The GetDefaultSkin API method will now return the skin table along with the SkinID of the default skin. (#283)
The SetCallback Group API method now accepts a third boolean parameter that will cause the callback to return the group object rather than the string ID as the first parameter. (#285)
Localization
Updated koKR. (Netaras) (#278)
Bug Fixes
Fixed an issue that allowed text regions with spaces to wrap to new lines.
Fixed an issue that caused the edge texture for the Blizzard Modern skin to be too large. (#279)
Fixed an issue that caused some skins to use the wrong edge texture. (#282)
Added support for the changes implemented in the Dragonflight pre-patch.
Added a Classic Scaling option to Masque's option under General Settings / Interface that forces Masque to use the old scaling method for action bars. This is a global option that is disabled by default, so that users who've already adjusted their action bars will be unaffected by the change.
Due to some bugs with the new UI, add-ons are unable to open the new Settings menu to sub-categories. Therefore, Masque's options will pre-load for Dragonflight users not using the stand-alone GUI.
Removed the TBC Classic ToC file.
Update Masque's icon.
Updated the Interface version for Retail to 100000.
Updated the Supporters panel.
Skins
Added a new Default skin that mimics the new interface in Dragonflight.
Notes:
This skin is unavailable in Classic due to missing assets.
The original "Default" skin has been renamed to "Default (Classic)".
Updated all included skins to support changes made in this update.
API
A new IconSlot texture region is available to skins to compensate for the removal of the Backpack icon in Dragonflight and is only used for that specific button on the Retail client. An example implementation can be seen in the Default (Classic) skin.
API version increased to 100000.
Added five new button types: Backpack, BagSlot, Possess, ReagentBag and Stance.
Implemented a fail-safe for buttons that qualify as a sub-type but are passed as a base type.
Implemented a fail-safe for add-ons that use custom Normal textures.
Skin API
Added atlas support to various regions.
Added skin support for the Anchor attribute which allows a layer to be anchored to a region (eg, the icon) rather than the button. The value of this attribute must be a string that matches a table key for either the regions table or the button.
This will help alleviate issues with the positioning of text regions on buttons that are larger than their skin by allowing those regions be positioned relative to the icon.
Improved the skinning of masks.
Improved the type-handling for buttons so that the base type will act as a fall-back for sub-types. This will remove the need for skins to declare sub-types that have the same skin settings as the base type. The hierarchy is as follows:
Action
Pet
Possess
Stance
Item
Backpack
BagSlot
ReagentBag
Aura
Buff
Debuff
Enchant
In addition, the ReagentBag type will fall back to the BagSlot type before falling back to Item.
Skins using "Default" as a template will need to be updated to use "Default (Classic)".
Localization
Added a missing deDE entry.
Added two missing locale entries.
Added two new localization entries for the Custom Scaling option.
Updated koKR. (Netaras)
Updated zhTW. (BNS333)
Bug Fixes
Fixed an issue in SKIN that swapped the quest icon and border textures.
Fixed an issue that prevented bag buttons from being properly detected as item buttons in Classic.
Fixed an issue with LibDualSpec-1.0 being unavailable in Wrath Classic.
Updated the level of the HotKey, Count and Duration regions so that they appear above other regions.
Updated the size of the contextual overlays for Dream and Zoomed.
API
Added support for the IconOverlay2 (Conduit Frame) Item button region.
Masque will now hook the :Show() and :Hide() methods of the Icon regions to determine if a button is empty. This only applies to Action, Item and Pet buttons.
The API method :AddType() now has a third parameter that can be used to specify an existing type as a reference for per-type settings.
Skin API
Relaxed the restrictions on skin compatibility checks to be more in line with their actual compatibility level.
Added support for the JunkIcon, QuestBorder and UpgradeIcon regions.
API
Added support for the following Item button regions:
JunkIcon
QuestBorder
UpgradeIcon
Increased the API_VERSION to 90000.
Skin API
Regions that are undeclared and cannot be hidden will use the settings of the Default skin. This improves compatibility between Masque and older skins.
Masks specified at the button or region level can now be either a string texture path or a table of settings.
Localization
Updated ruRU. (Doomstep_)
Bug Fixes
Classic Item buttons should now correctly use the Checked texture instead of the SlotHighlight texture that Retail uses.
This update contains extensive changes that will require add-on, skin and localization updates. Please make sure that your add-ons and skins have been updated before reporting issues.
Classic
Added Classic support. Please download the appropriate package.
GUI
The options window has been updated.
The primary panel under the "Masque" header is now an information display and contains information about Masque and any installed skins.
This option can be disabled in the "Performance Settings" panel.
The "Addons" panel has been more appropriately named "Skin Settings".
A new "General Settings" panel is available that contains interface and performance settings for Masque.
A new option, "Shadow", is available for skins that provide them.
A new option, "Clean Database", is available in the "Developer" panel that will purge the settings of unused add-ons and groups.
Masque now has an optional, stand-alone GUI.
Options that are unavailable due to skin settings will now be hidden.
The font size for all options panels has been increased.
The "Gloss" option now has a toggle and color picker.
Skins
The Blizzard skin has been renamed to Classic.
The Classic, Dream and Zoomed skins have all been updated, including a slight increase in size to be more in line with the default button size.
The Zoomed skin now has a background. (#44)
A new skin, Default, is available that resembles the default button style(s). This skin will be applied when skinning is disabled for a button or group, unless the add-on has supplied its own default skin.
The handling of Cooldown and Charge frames has been improved:
Added new, higher-quality, default textures that will change according to the shape set by the skin.
Note: Only "Square" and "Circle" are currently supported.
API
A new API method, :GetDefaultSkin(), is available that will return the default skin.
A new API method, :GetShadow({Button}), is available that will return the Shadow region for a button.
A new API method, :SetEmpty({Button} [, IsEmpty]), is available that will tell Masque whether a button has an icon, allowing it to apply different skin settings.
A new API method, :AddType("Type", {Regions}) is available that will allow add-ons to add custom button types with specific regions. Note that "Type" must be a unique string and {Regions} must be an indexed table of valid, string region names.
Add-on authors can now add a "default" skin that Masque will apply when buttons or groups from the add-on are disabled or removed.
The skin must be named the same as the add-on.
The skin can be disabled in Masque's GUI by setting the root skin attribute Disable = true.
Increased the API_VERSION to 80200.
The signature for callbacks has been updated. The new signature is as follows:
If arg is passed when registered: Callback(arg, Group, SkinID, Backdrop, Shadow, Gloss, Colors, Disabled)
If no arg is passed when registered: Callback(Group, SkinID, Backdrop, Shadow, Gloss, Colors, Disabled)
The third parameter of the :Group() API method, IsActionBar, has been replaced with a new string parameter, "StaticID". This will be used internally by Masque instead of the "Group" parameter.
Group API
A new method, :SetCallback(func [, {arg}]), is available that will allow callbacks to be registered at the group level. This will allow add-ons to be notified on a per-group basis, rather than when any group's settings have changed.
Groups can now be renamed.
Only sub-groups with static IDs support this feature. (See the Core API section above)
A new method, :SetName("Name"), is available that will replace the group's Group field and update Masque's options.
The :AddButton() Group method now has a third, string parameter, "Type", that will tell Masque the type of button being passed.
If not passed, Masque will attempt to determine the "Type" by checking for specific regions. If none are found, it will default to "Legacy".
Masque will use this value to determine which regions to search for, if unavailable in the Regions (formerly ButtonData) table, and which regions to apply skins to when skinning a button.
The following are valid values:
"Legacy" - This is fall-back type for backwards compatibility. It supports most regions previously supported by Masque. Only use this value if the other types don't cover all necessary regions.
"Action" - Supports regions available in ActionButtonTemplate and its derivatives.
"Pet" - Supports regions available in PetActionButtonTemplate.
"Item" - Supports regions available in ItemButtonTemplate and its derivatives (ContainerFrameItem, etc).
Border is still available for compatibility.
"Aura" - Supports regions available in AuraButtonTemplate plus Border.
Can be used for generic "Aura" buttons.
"Debuff" - Same as "Aura", but a different Border texture with no color support.
"Enchant" - Same as "Aura", but a different Border texture with color support.
Custom types are also supported, as mentioned above.
The :AddButton() Group method now has a fourth, boolean parameter, Strict, that if set to true will cause Masque to skip locating missing regions. This value is always true if a frame object is passed.
The :GetOptions() method now accepts an Order parameter (number).
The :ReSkin() method now has abooleanSilent parameter that when set to true, will prevent the add-on/group's callback from being fired.
Skin API
A new panel has been implemented that displays information about skins. The following fields are available for skin tables and will be used in this panel:
Description - A short string description of the skin.
Version - The skin version (number).
Author - A string value for the author's name.
Authors - An indexedtable list of author names.
Website - A string value for the website URL.
Websites - An indexedtable list of website URLs.
Group - A string name of the group the skin belongs to, when using skin variations.
Title - A string title to be displayed instead of the SkinID. Requires Group to be set.
Order - An number indicating the order the skins should be displayed in. Requires Group to be set.
Most regions can now have nested skins for each button type. (See the Group API section above for a list of types)
Most regions have been restored to their default positions. This will require updates to most skins.
Most skin settings now have default values stored internally by Masque. Any settings not specified will fall back to these values.
Skins can now customize the following button regions:
ActionButton
"NewAction" - Texture, Color, Size, Position
"SpellHighlight" - Texture, Color, Size, Position
ItemButton
"IconBorder" - Texture, Size, Position
"SlotHighlight" - Texture, Color, Size, Position
"IconOverlay" - Size, Position
"NewItem" - Texture, Size, Position
"SearchOverlay" - Texture and/or Color, Size, Position
"ContextOverlay" - Texture and/or Color, Size, Position
Skins can now specify a per-button mask that can be applied to multiple regions.
Declare the mask at the root level of the skin, like any other layer: Mask = { ... },
Masks accept the following attributes, relative to the button where applicable:
Texture
Width
Height
Point
RePoint
OffsetX
OffsetY
SetAllPoints
To use the mask on valid layers, simply add the UseMask = true, attribute/value pair to those layers.
Skins can now use custom Cooldown swipe textures.
Skins can now use the following settings:
DrawLayerstring - The layer to place the region.
DrawLevelnumber - The level to place the region.
Pointstring - The point of the region to anchor to the button.
RelPointstring - The point of the button where Point will be anchored. Defaults to Point.
SetAllPointsboolean - Fits the region to the button.
For details on these settings, check the API documentation online.
The following regions can now use the booleanUseColor setting that, when set to true, will cause Masque to use a color instead of a texture. Additionally, these regions can now use masks.
Backdrop
Pushed
Flash
Highlight
SearchOverlay
ContextOverlay
Using a Gloss or Shadow texture no longer requires a Normal texture.
Localization
Updated ptBR. (LordBastion)
Updated ruRU. (Neurotoxin001)
Updated zhCN. (Adavak/Ananhaid)
Updated zhTW. (BNS333)
Bug Fixes/Improvements
Fixed a missing entry for LibDualSpec-1.0.
Fixed an issue that would cause buttons to be skinned with the default skin when changing groups. (#47)
Fixed an issue that would cause groups to incorrectly inherit the wrong skin. (WeakAuras/WeakAuras2#1171)
Fixed an issue that would cause Masque to attempt to skin newly-created groups.
Fixed an issue that would cause the default cooldown count to appear below other text regions. (#19)
Fixed an issue with edge textures on round buttons. (#38)
Functions registered as callbacks without an argtable will no longer pass false in place of arg.
Groups registered prior to the PLAYER_LOGIN event will now be queued and skinned when that event fires. (#41)
Masque no longer adjusts the frame levels of buttons or their child frames.
Masque will now exit out of some hooks after a button has been removed from its group.
Masque now supports masks for icons. This allows for a variety of new button shapes.
Due the nature of this feature, users may experience "lag" or memory issues with skins using the mask feature. The PTR patch supposedly fixes these issues so if you do experience this, avoid those skins for now.
GUI
Users can now adjust the color of the Cooldown swipe via Masque's options.
Users can now control the color of the Border of equipped items via Masque's options, if using an add-on that supports it.
Skins
Added support for Cooldown swipe textures and colors using the same format as other texture regions.
Added support for Border colors using the same format as other texture regions.
Added tentative support for icon masks implemented in patch 7.2. See Masque: Cirque for implementation until the wiki is updated.
API
A third parameter, IsActionBar, is now available to the :Group() method. Setting this parameter to true will allow Masque (and by proxy, users) to adjust the color of equipped item borders. (#11)
With this option enabled, Masque will override the Border region's SetVertexColor method of all buttons in this group. This is to prevent the game from changing the color. The functionality remains in a substitute method, __MSQ_SetVertexColor.
This parameter must be passed on the initial :Group() call as its presence or absence in calls after the group has been created will have no effect. The group option IsActionBar must be explicitly set or unset if the group has already been created.
Increased the API_VERSION to 70200.
Libraries
LibDualSpec-1.0 is no longer included with Masque. You'll need to download it separately if you want to use it.