## LibExtraTip

LibExtraTip is a library of API functions for manipulating additional information into GameTooltips by either adding information to the bottom of existing tooltips (embedded mode) or by adding information to an extra "attached" tooltip construct which is placed to the bottom of the existing tooltip.
Copyright (C) 2008, by the respecive below authors.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Author: Matt Richard (Tem)
Author: Ken Allan <ken@norganna.org>
Version: 1.0

### Class Method LibExtraTip:RegisterTooltip(tooltip)

#### Adds the provided tooltip to the list of tooltips to monitor for items.

tooltip: GameTooltip object
Returns: true if tooltip is registered
Available since v1.0

### Class Method LibExtraTip:IsRegistered(tooltip)

#### Checks to see if the tooltip has been registered with LibExtraTip

tooltip: GameTooltip object
Returns: true if tooltip is registered
Available since v1.0

### Class Method LibExtraTip:AddCallback(callback, priority)

#### Adds a callback to be informed of any registered tooltip's activity.

Callbacks are passed the following parameters (in order):
- tooltip: The tooltip object being shown (GameTooltip object)
- item: The item being shown (in ItemLink format)
- quantity: The quantity of the item being shown (may be nil when the quantity is unavailable)
- return values from GetItemInfo (in order)
callback: the method to be called
priority: the priority of the callback (optional, default 200)
Available since v1.0

### Class Method LibExtraTip:RemoveCallback(callback)

#### Removes the given callback from the list of callbacks.

callback: the callback to remove from notifications
Returns: true if successfully removed
Available since v1.0

### Class Method LibExtraTip:SetEmbedMode(flag)

#### Sets the default embed mode of the library (default false)

A false embedMode causes AddLine, AddDoubleLine and AddMoneyLine to add lines to the attached tooltip rather than embed added lines directly in the item tooltip. This setting only takes effect when embed mode is not specified on individual AddLine, AddDoubleLine and AddMoneyLine commands.
flag: boolean flag if true embeds by default
Available since v1.0

### Class Method LibExtraTip:AddLine(tooltip, text, r, g, b, embed)

#### Adds a line to a registered tooltip.

tooltip: GameTooltip object
text: the contents of the tooltip line
r: red component of the tooltip line color (optional)
g: green component of the tooltip line color (optional)
b: blue component of the tooltip line color (optional)
embed: override the lib's embedMode setting (optional)
See also: SetEmbedMode
Available since v1.0

### Class Method LibExtraTip:AddDoubleLine(tooltip, textLeft, textRight, lr, lg, lb, rr, rg, rb, embed)

#### Adds a two-columned line to the tooltip.

tooltip: GameTooltip object
textLeft: the left column's contents
textRight: the left column's contents
r: red component of the tooltip line color (optional)
g: green component of the tooltip line color (optional)
b: blue component of the tooltip line color (optional)
embed: override the lib's embedMode setting (optional)
See also: SetEmbedMode
Available since v1.0

### Class Method LibExtraTip:GetMoneyText(money, concise)

#### Creates a string representation of the money value passed using embedded textures for the icons

money: the money value to be converted in copper
concise: when false (default), the representation of 1g is "1g 00s 00c" when true, it is simply "1g" (optional)
Available since v1.0

### Class Method LibExtraTip:AddMoneyLine(tooltip, text, money, r, g, b, embed)

#### Adds a line with text in the left column and a money frame in the right.

The money parameter is given in copper coins (i.e. 1g 27s 5c would be 12705)
tooltip: GameTooltip object
text: the contents of the tooltip line
money: the money value to be displayed (in copper)
r: red component of the tooltip line color (optional)
g: green component of the tooltip line color (optional)
b: blue component of the tooltip line color (optional)
embed: override the lib's embedMode setting (optional)
See also: SetEmbedMode
Available since v1.0

### Class Method LibExtraTip:CallTooltipMethod(tooltip, method, args, detail)

#### Calls a tooltip's method, passing arguments and setting additional details.

You must use this function when you are setting your own tooltip, but want LibExtraTip to display the extra tooltip information and notify any callbacks.
tooltip: GameTooltip object
method: the tooltip method to call (or nil to not call any)
args: table of arguments to pass to tooltip method
detail: additional detail items to set for the callbacks
Returns: whatever the called method returns
Available since v1.0

### Class Method LibExtraTip:GetTooltipAdditional(tooltip)

#### Get the additional information from a tooltip event.

Often additional event details are available about the situation under which the tooltip was invoked, such as:
- The call that triggered the tooltip.
- The slot/inventory/index of the item in question.
- Whether the item is usable or not.
- Auction price information.
- Ownership information.
- Any data provided by the Get*Info() functions.
If you require access to this information for the current tooltip, call this function to retrieve it.
tooltip: GameTooltip object
Returns: table containing the additional information
Available since v1.0