Kong UI Hider is a small addon that can automatically fade out elements of the user interface (Minimap, PlayerFrame, Recount, etc.) and then show them again when moused-over, entering combat, or any of several other user-specified conditions are met.
Using Kong to Hide the User Interface
In order to hide any part of the User interface (UI), you must tell Kong to hide it. To do this, first position the mouse over the component you want hidden, then type:
/kong hide
That's all there is to it! You will notice that component will now slowly fade out when the cursor is moved elsewhere. However, if you return the cursor to the component, it will quickly fade back into view.
Note: It is important that cursor is always over the frame that you want to configure when issuing /kong commands. Each hidden frame has its own individual settings, and Kong uses the cursor to know which frame to configure.
Basic Customization
By default, any frame that is hidden by Kong using /kong hide will be shown under the following three conditions:
The cursor is moved over the component
The player enters combat
The player enters a vehicle
This behavior can be customized using additional /kong commands. For example, to prevent a frame from appearing in combat, one can again place the cursor over the target component and type:
/kong combat hide
Once this command is issued, the frame will remain hidden until one of the other conditions listed above occurs. Similarly,
/kong vehicle hide
will prevent the frame from appearing while the player is riding on a vehicle.
In the event that one wishes to restore default combat and vehicle functionality, this can be done using the following :
/kong combat show
/kong vehicle show
Displaying the UI While Out of Combat
You may want certain frames to only appear when out of combat. This functionality is disabled by default, but can be enabled using:
/kong combat hide
/kong nocombat show
Macro conditions
Advanced users may want to take advantage of Kong's support for macro conditions to customize the visibility of their UI. The command /kong macro set, when given a macro condition inside [square brackets], will cause a UI component to be shown or hidden based on the given condition. For example:
/kong macro set [exists]
will show a frame when you have a target selected. The command:
/kong macro set [group:raid]
will show the frame when you are in a raid.
If at any time you wish to remove the macro condition from a frame, /kong macro clear can be used.
For a complete list of all the possible conditions, see http://www.wowwiki.com/Making_a_macro#Conditionals.
Mouseover Groups
Sometimes it may make sense to show several different frames when any of them are moused-over. For this purpose, Kong provides the /kong group command. This command takes an action (either add or remove) and a user-specified group name. For example:
/kong group add group1
will add the frame under the cursor to a group named 'group1'. The command must then be repeated for any other frames that you want to add to the group.
To remove a frame from a group, /kong group remove, followed by the group name will remove the frame from the mouseover group:
/kong group remove group1
Transparency
For those who want to further customize the way Kong displays the UI when fading components in and out, Kong offers a few additional commands. One of which, /kong alpha, can be used to configure the transparency of a component when it is being shown or hidden. This command must be passed the fade-direction (in or out) and the alpha (a value between 0 and 1 where 0 is completely transparent and 1 is opaque). For example, the command:
/kong alpha out .5
/kong alpha in 1
instructs Kong to display the frame at half alpha when faded out and full alpha when faded in. Likewise,
/kong alpha out 0
/kong alpha in .5
tells Kong to only display the frame at half alpha when faded in and hide it completely otherwise.
Fade Speed
Kong also allows you to customize the speed at which frames fade in and out. The command /kong speed takes a fade direction (in or out) and a duration (in seconds) over which the fade duration should take place. For example:
/kong speed in 0
will cause the frame under the cursor to fade in instantly, rather than over the default duration of .2 seconds. Fade duration can also be increased:
/kong speed out 3
This will cause the UI component to fade out over the course of 3 seconds each time it is hidden.
Condition-Specific Settings
Kong also allows condition-specific customizations. For example, say that we want a frame to appear instantly when moused-over, but fade in slowly when displayed for other reasons:
/kong mouseover speed in 0
/kong speed in 1
Here, the command /kong speed essentially sets the default fade-in speed, while /kong mouseover speed overrides that default with a condition-specific fade speed. The same overrides could be done for other conditions. For example:
/kong vehicle alpha in .3
/kong alpha in 1
will show the UI component beneath the cursor at only 30% alpha when in a vehicle, but fade it in to 100% when any other condition applies.
Disabling Kong
Sometimes you may want to be able to see the entire UI all at once without entering combat, etc. In these cases you can disable Kong, which will cause all hidden frames to be immediately shown. This can either be done by configuring a key to disable Kong in the Keybinds menu, or by issuing the following command:
/kong disable
Once Kong is disabled, you can re-enable it using either /kong enable or /kong toggle.
Experiment
You may have to play around with Kong to really get a feel for it. If you need help remembering commands in game, simply typing /kong will bring up a list of commands with brief descriptions, and typing /kong followed by a command will often give more specific details on the command.
Change Log - Kong UI Hider
Version 0.9c
- Fixed a bug that was preventing users on from being able to manipulate the default profiles for characters on realms with spaces in their names.
- Fixed an error that would occur when using /kong show on a frame that was part of a mouseover group.
- Fixed an error that would occur when the in and out alpha of a frame or trigger were set to the same value.
- Fixed an error that would occur if a user omitted the word "in" or "out" when setting fade speed.
- Fixed an error that could occur when Kong attempted to fade a frame that was already being faded using the UIFrameFadeIn/Out methods.
- Kong will now be able to find some additional late-loading frames.
Version 0.9b
- Fixed a bug that would cause frames to remain on screen after a member of a mouseover group was unregistered with /kong show.
Version 0.9a
- Fixed a bug introduced in version 0.9 that could prevent a frame's configuration from being saved between game sessions.
Version 0.9
- Added "/kong profile" for managing Kong configurations and sharing them between characters.
- Added "/kong casting" to configure frames to appear while casting.
- Fixed a bug that could cause frames to disappear when faded in and out at the same time.
Version 0.8a
- Minimap icons will now be hidden along with the minimap itself.
- Minimap terrain should now always be visible when the minimap is at least 88% alpha. This is a workaround for a Blizzard minimap bug that causes the minimap contents to disappear when it is faded out in certain areas of the world.
-Fixed a bug that could cause frames to remain either hidden or shown after entering certain vehicles or being picked up in a boss fight (Chopper sidecar, Archavon, Kologarn, Lord Jaraxxus, etc.).
-Fixed a bug could cause frames to remain hidden after zoning in or out of an instance.
Version 0.8
- Added "/kong group" to configure frame grouping. This allows multiple frames to appear when a single frame is moused-over.
- Fixed a bug that was preventing "/kong nocombat" from working correctly.
Version 0.7
- Added "/kong macro" to configure frames to appear when a given macro condition is met.
- Added alpha commands for individual triggers (ie. "/kong combat alpha") to allow for different frame alphas under different conditions. Default frame alpha can still be set using "/kong alpha".
- Added speed commands for both frame defaults ("/kong speed") and individual triggers (ie. "/kong combat speed") to control the rate at which frames fade in or out.
- Added "/kong mouseover" to support customizations to the fade speed and alpha of frames when the mouse is moved over them.
- Added "/kong enable" and "/kong disable" commands and entries for these commands in the Key Bindings screen.
- Due to significant code structure changes, user settings from previous versions will be lost.
Version 0.6a
- Update for patch 3.1 compatibility.
Version 0.6
- Added an entry in the Key Bindings screen to allow quick toggling of UI fading on/off.
- Fixed a bug that would cause Kong to fade frames after reloading the UI even if Kong was disabled.
Version 0.5
- Added "/kong nocombat" to configue frames to appear when out of combat.
- Added "/kong vehicle" to configure frames to appear when in a vehicle.
- Fixed a bug that could cause a frame to fade out when it shouldn't.
- Fixed a bug that prevented "/kong combat" from working when not in combat.
Version 0.4
- Fixed a bug that would cause frames to be hidden at login when Kong was disabled.
- Fixed a bug that would cause frames to reappear after they had been removed from the screen (party frames out of party, etc).
- Fixed an "Interface action failed because of an AddOn" bug.
- Fixed a bug that caused registered frames to be permanently shown on screen when /kong combat was used in combat.
- Renamed to Kong UI Hider to (hopefully) make the addon more visible to those searching for its functionality.
Version 0.3
- Added the ability to control faded and shown alpha.
- Added the ability to toggle Kong on or off.
- Fixed a few nil index errors related to saving data between sessions, and added warnings to the default chat log when these issues occur.
Version 0.2
- Added the ability to configure frames to either appear in combat or stay hidden until mouseover.
Version 0.1
- Initial version.
Optional Files - Kong UI Hider
Sorry, there are currently no optional files available.
i want to hide a chat frame when i enter a raid group
When it comes to hiding chat, I personally prefer to use Prat to fade the text out on a line-by-line basis. Your needs may differ though.
If you're sure you want to hide the blizzard chat frame(s), you'll need to hover the cursor over the edge of the frame (so that you could resize it if you were to click and drag). Also, make sure that the chat frame is not in non-interactive mode. You can then use /kong macro set [nogroup:raid] to make it hidden in raids and otherwise visible.
Originally posted by xXVegâsXx ...i want a frame to only show when in group/raid but not in combat
i tried
/kong macro set [group:raid] [nocombat]
but then the frame dont fade out when im solo
The current condition will cause the frame to appear when in a raid OR when not in combat. It sounds like you want it to appear when in a raid AND not in combat. Try:
Originally posted by Zenkai Everything works fine up until a UI Reload or logout+login; Kong is throwing me an error that has something to do with it no being able to find the "ag_player" frame. I believe it might have something to do with the order in which the frame is created and Kong tries to modify them
I've just uploaded Kong v0.9c which has slightly better support for late-loading frames. It works for Shadowed Unit Frames, but im not sure about ag. Let me know if you're still having problems.
Quote:
I live on a realm that has a space in its name (Wyrmrest Accord), and Kong saves my profile as "zenkai_of_wyrmrest accord." So I can't load/delete this profile since the space delimits that argument.
This should now be fixed. Thanks for the feedback.
First of all, I don't believe this is compatible with the ag_UnitFrames add-on at the moment. Everything works fine up until a UI Reload or logout+login; Kong is throwing me an error that has something to do with it no being able to find the "ag_player" frame. I believe it might have something to do with the order in which the frame is created and Kong tries to modify them, but I may wrong. I'll look into it later, when I have time, to try to locate the problem.
The second bug is minor, but it's easily fixable. When Kong saves a profile for a character for the first time, it names it "[playername]_of_[realm]". Well, I live on a realm that has a space in its name (Wyrmrest Accord), and Kong saves my profile as "zenkai_of_wyrmrest accord." So I can't load/delete this profile since the space delimits that argument. Follow? o.o
Maybe in your next release, you can search the realm name for a space, and replace it with an underscore or something.
Thanks!
EDIT: Here's the fix for the profile name bug:
Search (ctrl-F) Kong.lua for "local defaultProfile". Change this line from
Code:
local defaultProfile = string.lower(UnitName("player")).."_of_"..string.lower(GetRealmName());
to
Code:
local defaultProfile = string.lower(UnitName("player")).."_of_"..string.lower(string.gsub(GetRealmName()," ","_"));
Would there be a possibility to have all frames 'fade in' (= don't show at first, then slowly appear) on login or on interface reload, and 'fade out' on logout?
Sounds like a neat idea for somewhat of a novelty feature. I'll see if there's a simple way to do it, but I can't really say something like that would be too high on my list of priority features to add.
**EDIT #2** Found a quick-n-dirty solution by just setting the frame's mouseover alpha to 0.00000001. This apparently satisfies whatever behind-the-scenes math was going on. However...I think a simple "/kong mouseover hide" would be nice...
I intentionally left out the "/kong mouseover hide" command because the frame is never removed from the screen; it will continue to receive mouse clicks even though it is "hidden". This could cause some confusing/frustrating behavior for inexperienced users when trying to click on the world if the cursor is actually above the invisible frame.
If an advanced user really wants this behavior they can do as you did by setting the mouseover alpha to 0, although it obviously shouldn't be causing an error. I'll look into that. I'm glad you found a suitable workaround in the meantime.
Would there be a possibility to have all frames 'fade in' (= don't show at first, then slowly appear) on login or on interface reload, and 'fade out' on logout?
Been getting this error pretty randomly (i.e., it doesn't just occur during times when fading triggers would occur):
Code:
Date: 2010-01-17 12:49:42
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Kong\Kong.lua line 94:
attempt to compare nil with number
Debug:
[C]: ?
Kong\Kong.lua:94: Kong_CalculateFadeIn()
Kong\Kong.lua:68: Kong_FadeIn()
Kong\Kong.lua:1184:
Kong\Kong.lua:1143
This didn't start popping up until I hid a frame, then set its' mouseover alpha to 0 (I only want this particular frame to show when in combat).
**EDIT** Error seems to be relating to mousing over the item with 0 mouseover alpha. Hope that helps...
**EDIT #2** Found a quick-n-dirty solution by just setting the frame's mouseover alpha to 0.00000001. This apparently satisfies whatever behind-the-scenes math was going on. However...I think a simple "/kong mouseover hide" would be nice...
Originally posted by Khavatari It say frame registered but nothing happens with the bars
I tried Kong with this addon last night and it did work. However, i noticed that there is an invisible frame that can be hidden instead of the actual buttons if the mouse is over the right spot.
Can you do /kong list and tell me the names it prints? That would help me figure out if Kong is getting the right frame.