Extra action bars addon to make own action bars. It is not replacement to standard action bars.
Features
- supported buttons: spells, mounts, macro, battlepets, equipment sets
- right-click self cast
- keybounds via LibKeyBound
- configuration via easy dropdown menu
- tabbed style for several visibility driven bars
- minimum buttons per bar: 1
- maximum buttons per bar: 12 * 12
- custom alpha on mouseleave
- "FlyoutButton Custom", "Minimap Button Frame", "Button Facade" compatible
- each button can have own macrotext assigned (independent from standard "Macro")
- range colored buttons
- "LastEffect" like text to represent average spell damage/heal
- "Presets" to copy bars between characters
- ClickThrough mode
How to
- enter "Settings Mode": click minimap icon
- click again or close tools frame to leave
- to access container/tab settings click "Configure" button (see screenshot)
- to change rows/cols simply resize container using "Resize" grip button
- to remove container remove all tabs
- visibility of button frame depends from visibility options
- custom visibility macro like ([stealth] show; hide)
Slash commands
- Type '/teb' or '/TinyExtraBars' to open UI
- '/teb' or '/TinyExtraBars' plus 'help' to see available
Note: Since v1.49 library LibUIDropDownMenu included. It can be deleted if installed as separate addon.
Limitation: it appears the mage main teleportation spells, can't be put on these bars, probably because they expand.
This is a good addon for the purpose; way better than Extra Bars addon. It's especially important that it has a profile support that also saves binds. Edit: a limitation I noticed that puts it lower than an alternative is that spells like the mage teleportation spells (which expand to other spells) don't seem to be supported.
Hey! I love this Addon, would it be possible to make it work in TBC?
Great addon.
Is there a way to show//hide bars on mouse over?
cool addon.
could we have an option to disable screen clamping?
also, an option to disable minimap icon?
cheers!
Just fyi... tabs are broken as of the update this week. As soon as you click on another tab, it all goes black. Happens with only TEB enabled. Works fine till you click a tab... have to reload to get it working again.
Keeep getting Lua Errror with Main Char.
Message: Interface\AddOns\TinyExtraBars\Container.lua:380: attempt to index field '?' (a nil value)
Time: Sun Jan 31 03:29:59 2021
Count: 1
Stack: Interface\AddOns\TinyExtraBars\Container.lua:380: attempt to index field '?' (a nil value)
[string "@Interface\AddOns\TinyExtraBars\Container.lua"]:380: in function `SetKeybind'
[string "@Interface\AddOns\TinyExtraBars\Container.lua"]:274: in function `TEB_Container_New'
[string "@Interface\AddOns\TinyExtraBars\TinyExtraBars.lua"]:718: in function `TinyExtraBars_LoadContainers'
[string "@Interface\AddOns\TinyExtraBars\TinyExtraBars.lua"]:962: in function <Interface\AddOns\TinyExtraBars\TinyExtraBars.lua:845>
[string "@Interface\AddOns\TinyExtraBars\TinyExtraBars.lua"]:1050: in function <Interface\AddOns\TinyExtraBars\TinyExtraBars.lua:1033>
Locals: self = TinyExtraBarsContainerFrame1 {
showtabs = false
showtooltip = false
cols = 4
UnwrapScript = <function> defined @Interface\FrameXML\SecureHandlers.lua:788
clickthrough = false
OnTabSubmenu = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:892
configureTab = TinyExtraBarsContainerFrame1ConfigureTab {
}
OnShow = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:294
button_size = 36
SetKeybind = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:377
FrameList = <table> {
}
resizegrip = TinyExtraBarsContainerFrame1ResizeGripButton {
}
OnResize = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:315
configureContainer = TinyExtraBarsContainerFrame1ConfigureContainer {
}
alphaInCombat = 1
button_spacing = 10
strata = "LOW"
Execute = <function> defined @Interface\FrameXML\SecureHandlers.lua:777
rows = 4
OnMouseUp = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:306
maxRows = 4
SetFrameRef = <function> defined @Interface\FrameXML\SecureHandlers.lua:793
SetSize = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:284
SetTabSubmenu = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:860
Bg = <unnamed> {
}
WrapScript = <function> defined @Interface\FrameXML\SecureHandlers.lua:782
OnContainerSubmenu = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:880
0 = <userdata>
OnHide = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:297
SetDefaultKeybindText = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:359
alpha = 1
tabs = <table> {
}
SetEmptyButtonsVisible = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:342
numTabs = 1
maxCols = 4
activeTab = 1
showemptybuttons = false
OnMouseDown = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:300
selectedTab = 1
SetContainerSubmenu = <function> defined @Interface\AddOns\TinyExtraBars\Container.lua:837
}
key = "ALT-D"
row = 5
col = 3
(for generator) = <function> defined =[C]:-1
(for state) = <table> {
1 = TinyExtraBarsContainerFrame1ButtonFrame1 {
}
}
(for control) = 1
_ = 1
fl = TinyExtraBarsContainerFrame1ButtonFrame1 {
0 = <userdata>
EventHandlersTable = <table> {
}
ResetCustomAlpha = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame.lua:221
SetButtonsCount = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame.lua:289
DisableVisibilityDriver = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame.lua:190
UnwrapScript = <function> defined @Interface\FrameXML\SecureHandlers.lua:788
SaveVisibilityDriver = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame.lua:124
SetFrameRef = <function> defined @Interface\FrameXML\SecureHandlers.lua:793
ButtonList = <table> {
}
SetSize = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame.lua:199
container = TinyExtraBarsContainerFrame1 {
}
SetButtons = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame.lua:225
WrapScript = <function> defined @Interface\FrameXML\SecureHandlers.lua:782
OnShow = <function> defined @Interface\AddOns\TinyExtraBars\ButtonFrame
Is there any way to resize the tabs, or resize the font of the tab titles? I'm trying to condense a lot of my non-combat skills and items into a small grid with multiple tabs, but my tabs are sticking out awkwardly over the side of the bar. I even tried relabeling them to something shorter like "1" "2" "3" etc, but it didn't help because the tab size seems fixed.
Also wondering if there's an easy way to reorder the tabs? Seems like if I want to reorder, I have to just delete tabs and remake them, which is a hassle.
How would set a teb bar or button to only show in combat?
In reply to Oh_lawdie:
The same rules that used in "Button Forge" addon "To setup a visibility macro", put "[combat] show; hide" into Configure Tab->Visibilty->Custom (without " of course).
Sadly I can't use your addon because it overrides my CTRL+Middle mouse button shortcut everytime I log in with TinyExtraBars activated :(
Could you disable this shortcut please ? I'm using it since several years.
Thank you very much
In reply to laurenyamew:
You can try to disable it in TinyExtraBars.lua line 959, you can edit it as text file with Notepad or Notepad++
Just add two minuses at the start of line. I did that long time ago, but I can't remember what for.
I would like to rename tabs as "Buffs" or "PVP" and I don't know how to rename tabs. I click "Configure Tab" and I see a black square without anything to configure. Could you help me please ?
In reply to laurenyamew:
Configure Tab -> Title, there form with edit box "Set tab title". Can you see dropdown menu on clicking "Configure tab"?
In reply to vladimirseven:
ok this is working now in v1.62 thank you very much. It would be good if we can configure the Alpha of the background around buttons when we activate tabs.
Hey there, first of all thanks for creating and maintaining this addon.
I've noticed that I can't use Mythic Dungeon Tools correctly, as an error happens when I right-click on a pull:
13x ...traBars\libs\LibUIDropDownMenu\LibUIDropDownMenu.lua:111: attempt to index field '?' (a nil value)
[string "@TinyExtraBars\libs\LibUIDropDownMenu\LibUIDropDownMenu.lua"]:111: in function `L_UIDropDownMenu_Initialize'
[string "@TinyExtraBars\libs\LibUIDropDownMenu\LibEasyMenu-90030.lua"]:34: in function `L_EasyMenu'
[string "@MythicDungeonTools\AceGUIWidget-MythicDungeonToolsPullButton.lua"]:203: in function <...nTools\AceGUIWidget-MythicDungeonToolsPullButton.lua:131>
Locals:
frame = PullButtonsOptionsDropDown {
0 = <userdata>
menuList = <table> {
}
PixelSnapDisabled = true
Right = PullButtonsOptionsDropDownRight {
}
Left = PullButtonsOptionsDropDownLeft {
}
displayMode = "MENU"
initialize = <function> defined @TinyExtraBars\libs\LibUIDropDownMenu\LibEasyMenu.lua:38
Button = PullButtonsOptionsDropDownButton {
}
Icon = PullButtonsOptionsDropDownIcon {
}
Middle = PullButtonsOptionsDropDownMiddle {
}
Text = PullButtonsOptionsDropDownText {
}
}
initFunction = <function> defined @TinyExtraBars\libs\LibUIDropDownMenu\LibEasyMenu.lua:38
displayMode = "MENU"
level = 1
menuList = <table> {
1 = <table> {
}
2 = <table> {
}
3 = <table> {
}
4 = <table> {
}
5 = <table> {
}
6 = <table> {
}
7 = <table> {
}
8 = <table> {
}
9 = <table> {
}
10 = <table> {
}
11 = <table> {
}
12 = <table> {
}
13 = <table> {
}
14 = <table> {
}
15 = <table> {
}
16 = <table> {
}
17 = <table> {
}
}
dropDownList = L_DropDownList1 {
0 = <userdata>
Button1 = L_DropDownList1Button1 {
}
MenuBackdrop = L_DropDownList1MenuBackdrop {
}
Backdrop = L_DropDownList1Backdrop {
}
maxWidth = 71.155552
dropdown = PullButtonsOptionsDropDown {
}
shouldRefresh = true
numButtons = 17
Border = L_DropDownList1Border {
}
}
name = "PullButtonsOptionsDropDown"
(*temporary) = nil
(*temporary) = nil
(*temporary) = "ButtonNormalTexture"
(*temporary) = 17
(*temporary) = 1
(*temporary) = 17
(*temporary) = <table> {
notCheckable = 1
text = "Close"
index = 17
}
(*temporary) = <function> defined @TinyExtraBars\libs\LibUIDropDownMenu\LibUIDropDownMenu.lua:289
(*temporary) = "attempt to index field '?' (a nil value)"
securecall = <function> defined =[C]:-1
_G = <table> {
ContainerFrame5Item7 = ContainerFrame5Item7 {
}
DH_HAVOC_CORE_ABILITY_2 = "Strong melee attack that consumes Fury. If it critical strikes, some Fury is refunded."
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
ElvUF_RaidGroup1UnitButton22_HealthBar = ElvUF_RaidGroup1UnitButton22_HealthBar {
}
AchievementFrameStatsBG = AchievementFrameStatsBG {
}
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 743
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 401
CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture = CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture {
}
PawnItemComparer = <function> defined @Pawn\Pawn.lua:3635
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
InterfaceOptionsNamesPanelUnitNameplatesShowAll = InterfaceOptionsNamesPanelUnitNameplatesShowAll {
}
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT = 355
MerchantItem4AltCurrencyFrameItem1Text = MerchantItem4AltCurrencyFrameItem1Text {
}
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
CHAT_HEADER_SUFFIX = ": "
EncounterDetails_SpellAurasScrollScrollChildFrame = EncounterDetails_SpellAurasScrollScrollChildFrame {
}
MultiBarBottomRightButton8Shine5 = MultiBarBottomRightButton8Shine5 {
}
COVENANT_MISSIONS_HEALTH = "Health"
Overachiever_SearchFrameContainerButton1TabardBackground = Overachiever_SearchFrameContainerButton1TabardBackground {
}
UnitFrameManaBar_UnregisterDefaultEvents = <function> defined @FrameXML\UnitFrame.lua:789
PaperDollTitlesPaneButton12BgTop = PaperDollTitlesPaneButton12BgTop {
}
CALENDAR_RAID_RESET_DESCRIPTION = "%1$s resets at %2$s."
AllTheThings-Settings-Use the Master Audio ChannelText = AllTheThings-Settings-Use the Master Audio ChannelText {
}
MoneyFrame_OnEvent = <function> defined @FrameXML\MoneyFrame.lua:202
AceConfigDialogTooltipTexture20 = AceConfigDialogTooltipTexture20 {
}
LE_GAME_ERR_RECRUIT_A_FRIEND_FAILED = 953
ElvUI_Bar5Button12Shine7 = ElvUI_Bar5Button12Shine7 {
}
CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight = CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight {
}
LFGTeleport = <function> defined =[C]:-1
LE_GAME_ERR_O
I've tried to fix it somehow, as it seems to be just Mythic Dungeon Tools picking up LibUIDropDownMenu from teb/libs instead of from its own libs folder. even installing LibUIDropDownMenu as a standalone addon did not fix it.
I would appreciate it very much if you could look into this.
Thanks!
In reply to Chalkosss:
At first original DropDownMenu from Blizzard caused bugs, then I figured how to avoid these bugs and made library. Since then other addons used it or made their own version like ElvUI did. Since addons in client using libraries by names it can be the problem of using different versions of the same library. I'll look what happening in "Mythic Dungeon Tools".
P.S. due to continued support of LibUIDropDownMenu library in TinyExtraBars changed by supported by community, mine was made during MoP times. Uploaded in v1.62
In reply to vladimirseven:
Thanks for the update, it now works wonders. Too bad the developer of Mythic Dungeon Tools decided to break his own addon and make people pay for the fix, but that's another story. Cheers!
Hey there, great addon but I wondered if you could possibly add an option to hide the minimap button
Thanks a lot for making this :)
In reply to dlx106:
You might want to try the addon HidingBar for all your minimap icon hiding needs