Download
(812Kb)
Download
Updated: 11-23-20 04:24 PM
Pictures
File Info
Compatibility:
Shadowlands patch (9.0.2)
Battle for Azeroth (8.0.1)
Shadows of Argus (7.3.0)
Tomb of Sargeras (7.2.0)
Return to Karazhan (7.1.5)
Legion (7.0.3)
Updated:11-23-20 04:24 PM
Created:unknown
Downloads:161,273
Favorites:811
MD5:

TipTop  Popular! (More than 5000 hits)

Version: 3.1.2
by: Seerah [More]

In my quest to find the perfect tooltip mod, I decided to create my own and have a learning experience. Thus, TipTop was born. TipTop seeks to modify the default tip instead of replace it.


Apparently, my comments are a magnet for bug reports and feature requests, despite the buttons for them to the right to put them on my portal, the FAQ saying to put them on my portal (with links even!), and repeated requests in the comments section to put them at my portal. So I'll put it here in big, colorful, bold letters.

FEATURE REQUESTS AND BUG REPORTS NEED TO BE PUT ON MY PORTAL. IF YOU PUT THEM IN MY COMMENTS, THEY WILL MOST LIKELY BE FORGOTTEN AND/OR IGNORED.
I appreciate the time that you take to report bugs and request things, but please appreciate the time/effort that it takes me to go through them and remember them, and please just put them in the correct location.



Features:
  • optional class-colored border for units (optional support for !ClassColors)
  • optional difficulty-colored border for units
  • option to display class icon before unit's name in tooltip (off by default)
  • various class icon textures to choose from (thanks, gossipgirlxo and Flat Player Icons!)
  • option to display guild rank (off by default)
  • added target text line
  • "faded" tip if unit is tapped, dead, or offline
  • custom border, background, and status bar textures
  • custom font selection, plus option of Outline, etc.
  • custom background color/alpha
  • custom health bar color, including class-colored
  • ability to move the tooltip or attach to cursor
  • can show health on statusbar in five different formats
  • health bar may be above or below the tooltip, or be contained inside the tooltip
  • item-quality colored border for items
  • raid icon display
  • added talent text line
  • displays (Rare), (AFK), and (DND) when possible, next to the unit's name
  • option to display elite/rare elite graphic for those units
  • adjust tip background alpha
  • SharedMedia support
  • each character has a choice of using either a global or character specific profile
  • option to shorten player names
  • option to color player names by class



FAQ:

Where are the options?
The options panel is located on the addons page of the Interface Options panel. Hit escape, go to Interface, click the AddOns tab, and you'll see TipTop listed there. You can also use the slash commands /tiptop or /tip

How do I move the tooltip?
In the TipTop config window, scroll down until you see the anchor settings. You may either anchor the mouse to the cursor, or to a side/corner of the screen. Note that x,y offsets only work when the tip is *not* anchored to the cursor. This is a limitation set by the game's API, and I will not code in the hacks that other tooltip addons use to get around this. I suggest using the alpha setting instead so the tip doesn't block your view so much.

I want the tooltip offset from the cursor - will you add it or is it bugged?
See above.

Where can I find more fonts/borders/bar textures?
For further font choices, I suggest the SharedMedia addon. Have a font you want to use that's not in there? Read the "Instructions for MyMedia.txt" file in the SharedMedia folder.

How can I give feedback?
Feel free to leave your comments/questions here, but all bug reports and feature requests need to go to my portal if you want me to remember to do them.

Can I use your code/textures?
All use of my code and custom textures separate from TipTop must be for your own personal use and they may not be redistributed separate from the addon. You may use snippets of my code in addons you intend to distribute only after receiving permission, and credit must be given.

Can I redistribute this addon?
My addons may only be redistributed in UI compilations, and any mention of the addon must point to its download page or my portal, both on wowinterface.

Do you accept cookies?
I love cookies! Unfortunately, they may turn to crumbs in the mail. Instead, you may donate to my cookie fund via PayPal.

3.1.2
- update for 9.0
- fixed backdrop errors

3.1.1
- fix to allow the tooltip to resize when using short names

3.1
- added option: color player names by class
- added option: display only player name (no titles or server names)
- fixed: tooltips now stick to the alpha you choose
- fixed: hack to force world frame tooltips to use your color choice for the background
- some code cleanup

3.0.1
- fix for white story tooltip and war campaign tooltip

3.0
- TipTop 3.0!
- now reuses the default tooltip's bg instead of making and adjusting a new frame
- updated for color api changes in BfA
- code clean up, some reorganization, and some adjustments

2.19.3
- fix for a random, odd nil error

2.19.2
- fixed another boss mouseover bug with large health numbers

2.19.1
- updated TOC number for 7.3
- modified usage of :SetBackdrop to keep the Aurora addon from complaining

2.19
- tweaked raid marker code, in case the client ever returns a number without an icon assigned to it
- added the ability to set the font of the health bar text independently

2.18.1
- fix for guild ranks not displaying for characters from other servers

2.18
- added option to disable class-colored border for NPCs
- added option to disable class icon for NPCs
- reorganized options

2.17
- added font size option for tooltip text
- added font size option for health bar text

2.16.3
- fix (hopefully) for integer overflow error on NPCs with extremely large amounts of health, when curhp/maxhap is displayed on healthbar

2.16.2
- update TOC for 7.1
- tweaked specialization line code
- tweaked tooltip anchor code (should play nice with the updates to LibItemUpgradeInfo using by Auctionator, etc)

2.16.1
- possible fix for repeated specialization lines
- "specialization" is now localized

2.16
- added new class icon textures
- removed old class icon texture files (used straight from default UI now)
- updated LibSharedMedia-3.0

2.15
- added new health format, 1.2k / 1.2k (100%), as requested

2.14.4
- fix for anchor not showing

2.14.3
- update for Legion
- fixed for new API to check if unit is tapped

2.14.2
- fixed nil error if you don't have the elitetexture setting enabled

2.14.1
- fixed elite texture bug (where it wouldn't hide after mousing over an elite unit)
- fixed typo that's been there for years and no one's ever noticed - rare elite texture (silver dragon) should now display
- fixed oversight that I haven't updated the manual level number for units with a level of -1 (skull texture) for a couple of xpacs... >.>

2.14
- updated for WoD
- added :ClearAllPoints() call when reanchoring GameTooltip
- Removed references to ShoppingTooltip3 and ItemRefShoppingTooltip3 which were removed from the UI.

2.13.3
- added missing logic check to fix error on line 296

2.13.2
- logic check to fix error in 5.4
- updated Ace3 libs
- updated TOC for 5.4

2.13.1
- fix for nil error reported by Ookami.kun

2.13
- updated TOC for 5.2
- updated libraries
- added new feature: ability to display guild rank (off by default)

2.12
- updated TOC to 5.1
- put in fix for white borders on clickable tooltips when border is hidden or not set to color by item quality
- skin Blizz's new compare tips for clickable tooltips
- fixed level logic for difficulty coloring

2.11.1
- put in check to only set percent health text if <= 100%
- this fixes errors where the client would wrongly report a maxhp of 1

2.11
- updated TOC for MoP
- updated libs
- added Monk class icon
- fixed talents - they now only show Specialization, no talent points
- added option to truncate health text
- cleaned up code a tad
- localized new globals in the upvalues list
- added optional faction icon to tooltip (settings located in "Extra Stuff" section)
- removed "MONOCHROME" font flag because it currently crashes the client
- changed "THICK OUTLINE" font flag to "MONOCHROME OUTLINE" (this won't crash you)
- changed two included statusbar textures - converted to .blp properly this time

2.9.4
- updated TOC for 4.3
- updated libs

2.9.3
- fixed a bug with the short talents option when mousing over someone with no talent spec

2.9.2
- that was quick! today's mini-patch fixed heirloom item colors (removed override code from TipTop)

2.9.1
- attempt to fix Blizz bug where Heirloom items are colored white (this only fixes the tooltip borders, I filed a bug report to fix on the servers)

2.9
- added option to only show main spec name (hiding the talent points)

2.8.3
- updated libs
- tweaked options layout for larger window

2.8.2
- bumped TOC number for 4.2
- all seems to be working as expected!

2.8.1
- updated libs
- fixed: health bars now stay your custom color!

2.8
- the health bar on the tooltip may now be colored by class

2.7
- FIXED: nil error when trying to get talents from players who haven't chosen their spec yet
- NEW: draggable frame for quick repositioning of the tooltip. X,Y coordinates are still available for fine tuning. Don't want to use the mover frame? It's not created or anything until you click the config button for it.

2.6
- optimizations to talent gathering code

2.5
- updated for Cataclysm
- changed "INSPECT_TALENT_READY" to "INSPECT_READY"
- use GUID returned by new event to only grab talents for the unit I requested
- fix for changes to GetTalentTabInfo()
- updated all libraries

2.4
- fiddled with padding between statusbar and frame border when the health bar is inside
- can now color the border by level difficulty (if class and difficulty are *both* selected, friendly units will be colored by class, and others will be by difficulty)
- changed hp display for units with no maxhp (ex. walls in WG) so that maxhp is 1 - this displays their current health, at least, instead of forcing the text to be blank
- fix for random/rare error with talents

2.3.2
- refix for talent spam

2.3.1
- hopefully fixed: nil error and repeating icon bug
- fixed: minimum width for tooltip (code is for aesthetics and to fit in health display)
- updated: libs and TOC number

2.3
- Fixed: talent text spamming the tooltip for some raid frames
- Fixed: Elite graphic not obeying its checkbox in options
- Added: option to display class icon next to name in tooltip (off by default)

2.2
- you can now set the font flags for the tooltips' text (Outline, etc)
- if you have the elite graphic enabled, it will now show for bosses too

2.1.1
- added support for WorldMapTooltip
- fixed health percent display for "units" with no health (gates in Wintergrasp, for example)

2.1
- added a couple additional checks to silence a couple errors
- added some additional options for profiles (copy from default profile and reset profile)

2.0.1
- fixed error for custom created frames/tooltips that try to look like the game tooltip - let me know if something's still awry
- fixed an oopsie - target text works again (had accidentally deleted the line that called its function >.< )

2.0
- semi-rewrite of 1.x
- the ability to have the health bar inside the tip is back
- rearranged options
- new health bar color option
- added an elite/rare elite graphic option for hubby
- changed directory structure and pushed media into a media subdirectory
Optional Files (0)


Post A Reply Comment Options
Unread 07-23-17, 07:39 PM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Originally Posted by ceylina
Personal curiosity, is wow's cobbled lua implementation faster in doing internal functions (math as in less than) than a built in wow function call (unitExists)? I guess it depends on the function? UnitExists is a boolean check while icon < 9 has to check against 18 possible index locations of GetRaidTargetIndex and both of those functions by blizzard essentially have to check against the unit moused over that GetRaidTargetIndex is going to do anyway.

I would be curious of the process cost of both. Neither here nor there, I like your solution better personally
As a reminder, and a note to those reading, this portion of code in TipTop now reads:
Lua Code:
  1. local function RaidIconUpdate()
  2.     local icon = GetRaidTargetIndex("mouseover")
  3.     if icon and icon < 9 then
  4.         SetRaidTargetIconTexture(raidIcon, icon)
  5.         raidIcon:Show()
  6.     else
  7.         raidIcon:Hide()
  8.     end
  9. end
If no icon is set for the unit, GetRaidTargetIndex returns nil.

Now to your questions.

UnitExists() is a global function. When calling it for the before-mentioned logic, the client:
1. looks up the UnitExists key in the global table (_G) to see what it is assigned to - in this case a function
2. calls the function (passing through the "mouseover" unit in this case, checking to see if that is a valid unitID, and checking to see if "mouseover" actually applies to a unit)
3. uses that boolean to progress into the if-block or not

If we use icon < 9 instead, the client does this:
1. looks up what the local variable icon is assigned to (let's say it's set to the value of 1, a number, for the first raid marker)
2. uses the comparative operator < to see if 1 < 9
3. uses that boolean to progress into the if-block or not

At first glance, this seems like the same amount of work - or steps, anyway. However, local variable lookups are faster than global variables. I happen to upvalue the UnitExists function at the top of the TipTop file, so it IS local, not global. Comparing step 1, in this case then, is moot. For step 2, function calls are one of the most expensive things in Lua. The UnitExists function is actually defined in C, so this function gets run on the C-side of the client. This makes it a little bit faster and more efficient, but not as much as simply comparing two numbers to each other.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Last edited by Seerah : 07-23-17 at 07:43 PM.
Report comment to moderator  
Reply With Quote
Unread 07-23-17, 03:50 PM  
ceylina
A Wyrmkin Dreamwalker

Forum posts: 50
File comments: 93
Uploads: 0
Originally Posted by Seerah
Instead of an extra function call, I'll just add in a check to see if the icon index is in the range we want. (icon < 9) This will be a little faster.
Personal curiosity, is wow's cobbled lua implementation faster in doing internal functions (math as in less than) than a built in wow function call (unitExists)? I guess it depends on the function? UnitExists is a boolean check while icon < 9 has to check against 18 possible index locations of GetRaidTargetIndex and both of those functions by blizzard essentially have to check against the unit moused over that GetRaidTargetIndex is going to do anyway.

I would be curious of the process cost of both. Neither here nor there, I like your solution better personally
Report comment to moderator  
Reply With Quote
Unread 07-23-17, 01:56 PM  
Devellien
A Kobold Labourer

Forum posts: 0
File comments: 20
Uploads: 0
Re: Re: flight map and world map

Originally Posted by Seerah
Are you talking about on the World Map, minimap, in the world? And did you try with only TipTop enabled?
i figured it out i just started using Elvui about a month ago and it was a tooltip option in it that i didn't disable so your addon works as it was suppose to

thank you again i appreciate it
Report comment to moderator  
Reply With Quote
Unread 07-23-17, 12:16 PM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Re: flight map and world map

Originally Posted by Devellien
when i hover over the icon's around legion all of the tooltips are white making all the text unreadable

thank you for updating i prefer this addon over the rest
Are you talking about on the World Map, minimap, in the world? And did you try with only TipTop enabled?
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Last edited by Seerah : 07-23-17 at 12:17 PM.
Report comment to moderator  
Reply With Quote
Unread 07-23-17, 12:15 PM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Originally Posted by ceylina
Wanted to share something I had an error with trying another tooltip addon that showed raid markers.
Thanks. Wowprogramming doesn't have that note, and I'm sure that's where I found the function years ago when adding this feature. Instead of an extra function call, I'll just add in a check to see if the icon index is in the range we want. (icon < 9) This will be a little faster.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Report comment to moderator  
Reply With Quote
Unread 07-23-17, 10:22 AM  
ceylina
A Wyrmkin Dreamwalker

Forum posts: 50
File comments: 93
Uploads: 0
Wanted to share something I had an error with trying another tooltip addon that showed raid markers.

I was on break (I think) between a boss kill and got an error with the other addon at the point where the function GetRaidTargetIndex() was used. The error was because they were trying to concatenate together the marker name returned from the index of GetRaidTargetIndex and using the global ICON_LIST[index]. While you do not use the function like they do, you do call GetRaidTargetIndex() around line 203

I am bringing this up because of something that the wowpedia page for the function says caught my eye while trying to figure this out:

This function can return arbitrary values if the queried unit does not exist. Use UnitExists to check whether a unit is valid.

For example: "raid2target" when "raid2" is offline and not targetting anything at all misbehaves.
http://wow.gamepedia.com/API_GetRaidTargetIndex

I don't endorse wowpedia one way or the other but I think it interesting that it states UnitExists() should be used to validate GetRaidTargetIndex returning a proper index for a marker. Well it says invalid units can return arbitrary values but if someone disconnects or otherwise goes offline but visually shows online this may possibly could happen (that's my theory as to why the error kept happening 12 times)

I experienced the error this can cause and wanted to pass it along because this is my main tooltip addon and I was testing that one as it was well new and I am a sucker for new and shiny


What I am getting at is that in the super rare possible outcome, it may trip up"local icon = GetRaidTargetIndex("mouseover")" and the variable icon may give a valid return but not one that is one of the known raid markers (skull, moon, etc). icon can return some number 1-18 while only 1-8 correspond to known marker icons or at least the unit is a valid unit. I just know in some circumstances it can not return the index you want.

I have never had an error with your addon relating to this but maybe it tripped up but never threw an error. Like the unit had a marker but was offline?

What am I getting at? Well maybe adding in UnitExists("mouseover") as a validation step before, during, or after GetRaidTargetIndex() will make sure you only get a raid marker showing on the tooltip if it is one of the known raid markers.


This was long winded because 99% of the time I report anything anywhere the author thinks I am speaking in absolutes and "that can't happen / you don't know what you are talking about" is often the first reply and it now makes me never get just to the point anymore.



Point: GetRaidTargetIndex() needs to make sure unit is valid so using UnitExists() makes sure proper raid marker is shown. You may want to add that to have addon always work right showing raid markers.
Last edited by ceylina : 07-23-17 at 11:37 AM.
Report comment to moderator  
Reply With Quote
Unread 07-23-17, 02:00 AM  
Devellien
A Kobold Labourer

Forum posts: 0
File comments: 20
Uploads: 0
flight map and world map

when i hover over the icon's around legion all of the tooltips are white making all the text unreadable

thank you for updating i prefer this addon over the rest
Report comment to moderator  
Reply With Quote
Unread 07-22-17, 02:03 PM  
ceylina
A Wyrmkin Dreamwalker

Forum posts: 50
File comments: 93
Uploads: 0
Yup it works, thanks!
Report comment to moderator  
Reply With Quote
Unread 07-22-17, 01:44 PM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Originally Posted by Seerah
Originally Posted by ceylina
Just something that I noticed... Guild ranks do not show up on other server's players.

So say I am on Detheroc and I click someone on Area52, that person on Area52 will not show the guild rank.
Oooh, something I hadn't noticed (I may have that feature off in my install). Thanks!
Ah, I see. The client had added the guild realm name onto the line, so it was confusing my code. Should be all fixed, and I'll push this live.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Report comment to moderator  
Reply With Quote
Unread 07-21-17, 08:55 AM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Originally Posted by ceylina
Just something that I noticed... Guild ranks do not show up on other server's players.

So say I am on Detheroc and I click someone on Area52, that person on Area52 will not show the guild rank.
Oooh, something I hadn't noticed (I may have that feature off in my install). Thanks!
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Report comment to moderator  
Reply With Quote
Unread 07-20-17, 07:32 PM  
ceylina
A Wyrmkin Dreamwalker

Forum posts: 50
File comments: 93
Uploads: 0
Just something that I noticed... Guild ranks do not show up on other server's players.

So say I am on Detheroc and I click someone on Area52, that person on Area52 will not show the guild rank.
Report comment to moderator  
Reply With Quote
Unread 04-13-17, 03:16 AM  
dary1125
A Kobold Labourer

Forum posts: 0
File comments: 25
Uploads: 0
Re: Re: Error for 7.2

Originally Posted by Seerah
Originally Posted by dary1125
...snip...
This error is not from TipTop. Not from MY TipTop anyway. I don't know where you downloaded your copy from or what changes you've made to your file. But there is no variable named challengeLevel, and tiptop.lua doesn't even have a line 607.

(Note: if you downloaded a different version from somewhere else, it is an unauthorized upload that is breaking copyright.)
I have modified myself,please check it,help fix, thank you!

TipTop_mod
Report comment to moderator  
Reply With Quote
Unread 04-02-17, 02:42 PM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Re: Error for 7.2

Originally Posted by dary1125
...snip...
This error is not from TipTop. Not from MY TipTop anyway. I don't know where you downloaded your copy from or what changes you've made to your file. But there is no variable named challengeLevel, and tiptop.lua doesn't even have a line 607.

(Note: if you downloaded a different version from somewhere else, it is an unauthorized upload that is breaking copyright.)
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Report comment to moderator  
Reply With Quote
Unread 04-02-17, 10:14 AM  
dary1125
A Kobold Labourer

Forum posts: 0
File comments: 25
Uploads: 0
Error for 7.2

Code:
32x FrameXML\UIParent.lua:4197: attempt to perform arithmetic on local 'challengeLevel' (a string value)
FrameXML\UIParent.lua:4197: in function <FrameXML\UIParent.lua:4196>
(tail call): ?
TipTop\tiptop-2.18.lua:294: in function <TipTop\tiptop.lua:278>
TipTop\tiptop-2.18.lua:542: in function <TipTop\tiptop.lua:540>
TipTop\tiptop-2.18.lua:607: in function <TipTop\tiptop.lua:605>

Locals:
unitLevel = 110
challengeLevel = "??"
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on local 'challengeLevel' (a string value)"
Report comment to moderator  
Reply With Quote
Unread 03-30-17, 04:15 PM  
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 10860
File comments: 687
Uploads: 33
Re: Hide ToolTip in combat&#65311;

Originally Posted by dary1125
1.How to hide ToolTip in combat?
2.How to Use Class Color for players name?
Hope that the author later to join the Spell and Item ID display.
1. You can't. I still have no idea, personally, why anyone would want to do this.
2. You can't. Names are colored by reaction, and is the default UI code. TipTop doesn't touch the names. You can color the border by class, or show a class icon next to the name.

If you mean make the tooltips for the items in your bags display in the set location onscreen that your action bars' tooltips do, I won't be doing that either. The code in the default UI and many bag addons checks to see where your mouse is in order to determine which side of the mouse to display tooltips on, and thus, which side of the tooltip to display compare tooltips. I'm not getting in the middle of all that.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

[SIGPIC][/SIGPIC]
Last edited by Seerah : 03-30-17 at 04:16 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.