Quantcast
Download
(3 Kb)
Download
Updated: 07-23-16 07:00 AM
Pictures
File Info
Compatibility:
Legion (7.0.3)
Updated:07-23-16 07:00 AM
Created:02-02-10 10:42 AM
Downloads:20,188
Favorites:114
MD5:
Categories:Action Bar Mods, Miscellaneous
7.0.3

ncHoverBind  Popular! (More than 5000 hits)

Version: 1.4.2b
by: nightcracker, Coote

Now maintained by TMcMahon51. See thread here.


ncHoverBind is a simple addon that does one thing: binding buttons on mouseover. You can mouse over actionbuttons, spells in the spellbook and macro's in the macro pane and bind them while hovering. You can bind keys, mousebuttons 4 and 5 and the scrollwheel with this addon. If you made a mistake in binding, you can just press "Discard" and your old bindings are loaded. Real simple!


Usage:
Download and install. To start use either /hb or /hoverbind. Hover over buttons, spells or macro's and press a key, scroll with the mouse or press mousebutton 4 or 5. After you've bound your spell/items/macro's press "Save bindings" and your done!
If you use HealBot, use /hvb instead.

Upcoming features:
- Items
Suggest features!

Credits:
FatalEntity

1.4.2b
--
Bug fix for additional macros

1.4.2
--
TOC bump for Legion

1.4.1
--
6.1 TOC Bump

1.4.0
--
Updated for WoW 6.0 and Warlords of Draenor

1.3.1
--
5.4 .TOC bump

1.3.0
--
MoP compatibility.
.TOC bump

1.2.2
--
Added check to avoid interference with HealBot.

1.2.1
--
.TOC bump
Should be mostly error free now.

1.2.01
--
Reuploaded as .zip. Sorry to any MMO-Minion users, was unaware it couldn't handle .rar files.

1.2
--
Fixed Spellbook binding.
Added in Networm's fixes.

1.1
--
Fixed the keybinding mechanic so it correctly binds to the "hidden" keybinds. Also works on pet and shapeshift buttons now.
Optional Files (0)


Archived Files (11)
File Name
Version
Size
Author
Date
1.4.2
3kB
nightcracker
07-19-16 08:18 PM
1.4.1
3kB
nightcracker
02-23-15 07:00 PM
1.4.0
3kB
nightcracker
10-14-14 03:22 PM
1.3.1
3kB
nightcracker
07-27-14 09:58 PM
1.3.0
3kB
nightcracker
10-12-12 02:09 AM
1.2.2
3kB
nightcracker
08-15-12 03:23 PM
1.2.1
3kB
nightcracker
07-30-12 05:00 AM
1.2.01
4kB
nightcracker
11-17-10 12:48 PM
1.2
4kB
nightcracker
11-14-10 01:30 PM
1.1
3kB
nightcracker
02-12-10 12:02 AM
1.0
2kB
nightcracker
02-02-10 10:42 AM


Post A Reply Comment Options
Unread 11-05-12, 08:55 AM  
Razko
A Defias Bandit
 
Razko's Avatar

Forum posts: 2
File comments: 19
Uploads: 0
This is weird but it seems to "lag" with modifiers sometimes.

What I mean exactly is, if you're trying to hotkey something like say shift+1, and you do it very quickly, it registers only 1 as the bind, not shift+1. Sometimes I can replicate this, sometimes I can't.

I discovered this while just normally binding stuff by the way, so it's not like I was trying extra hard to be too fast. This happened just during normal use.

EDIT:
Figured it out. It's because of this:
Code:
bind:SetScript("OnKeyUp", function(self, key) self:Listener(key) end)
It's not uncommon that by the time you release 1, you're not holding shift down anymore, even though you do press shift+1 and the game registers it like that. Changing it to OnKeyDown makes it work flawlessly.

I got another question though: why don't you support middle mouse button binds? And will this addon work with more mouse buttons than 4 and 5, e.g. Naga for example?

EDIT2:

Support for middle mouse button:
1. Comment out this line
Code:
or key == "MiddleButton"
2. Add
Code:
if key == "MiddleButton" then key = "BUTTON3" end
directly above these
Code:
if key == "Button4" then key = "BUTTON4" end
if key == "Button5" then key = "BUTTON5" end
3. Profit
Last edited by Razko : 11-05-12 at 06:46 PM.
Report comment to moderator  
Reply With Quote
Unread 09-16-12, 03:41 PM  
Burnum
A Defias Bandit
 
Burnum's Avatar

Forum posts: 2
File comments: 81
Uploads: 0
BT4 has nearly the same function? Hmmm I have not found that, I'll have to investigate further.

-- Update

Wow, i'm blind! big button in the main UI. I guess I was expecting to see something in the LDB menu flyout.

Originally Posted by TMcMahon51
Originally Posted by Burnum
I can't figure out how this works, or even if it works. I get the save or discard thing on /hb but that is all it ever does. perhaps the current and the other version you linked do not work yet.
Or this never worked with Bartender4?
TBH, I have never tested it with BT4, nor have I ever used it with BT4 in the past, since BT has nearly the same function built in. It'll be about 2 weeks before I start playing again to be able to really test it, though.
Last edited by Burnum : 09-16-12 at 03:54 PM.
Report comment to moderator  
Reply With Quote
Unread 09-16-12, 12:42 PM  
Coote
A Scalebane Royal Guard
 
Coote's Avatar
AddOn Author - Click to view AddOns

Forum posts: 440
File comments: 69
Uploads: 12
Originally Posted by Burnum
I can't figure out how this works, or even if it works. I get the save or discard thing on /hb but that is all it ever does. perhaps the current and the other version you linked do not work yet.
Or this never worked with Bartender4?
TBH, I have never tested it with BT4, nor have I ever used it with BT4 in the past, since BT has nearly the same function built in. It'll be about 2 weeks before I start playing again to be able to really test it, though.
__________________

"This is the fifteen-thousandth four hundredth and ninety-eighth occurence".
Report comment to moderator  
Reply With Quote
Unread 09-16-12, 11:28 AM  
Burnum
A Defias Bandit
 
Burnum's Avatar

Forum posts: 2
File comments: 81
Uploads: 0
I can't figure out how this works, or even if it works. I get the save or discard thing on /hb but that is all it ever does. perhaps the current and the other version you linked do not work yet.
Or this never worked with Bartender4?

I love the idea! the way Bliz still makes us go to some scroll forever maybe you will find what you need key-bind list, if we want to do anything, is just stupid.

Thanks for your effort!
Report comment to moderator  
Reply With Quote
Unread 09-09-12, 02:31 AM  
Coote
A Scalebane Royal Guard
 
Coote's Avatar
AddOn Author - Click to view AddOns

Forum posts: 440
File comments: 69
Uploads: 12
Re: Busted?

I hadn't updated the MoP beta for live yet, since it wasn't 100% tested. I'm currently unable to do much testing until MoP goes live.

This should work, though I'm not sure if anything else had been changed between the time I uploaded it, and 5.0 dropping on live servers.
__________________

"This is the fifteen-thousandth four hundredth and ninety-eighth occurence".
Report comment to moderator  
Reply With Quote
Unread 09-09-12, 01:20 AM  
Burnum
A Defias Bandit
 
Burnum's Avatar

Forum posts: 2
File comments: 81
Uploads: 0
Busted?

Message: Interface\AddOns\ncHoverBind\ncHoverBind.lua:242: attempt to index global 'ShapeshiftButton1' (a nil value)
Time: Sun Sep 9 00:13:47 2012
Count: 1
Stack: Interface\AddOns\ncHoverBind\ncHoverBind.lua:242: in function `?'
Interface\FrameXML\ChatFrame.lua:4358: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:4052: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:4091: in function `ChatEdit_OnEnterPressed'
[string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1>

Locals: find = <function> defined =[C]:-1
_G = <table> {
ContainerFrame5Item7 = ContainerFrame5Item7 {
}
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonStock {
}
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
UNIT_NAMEPLATES_TYPE_TOOLTIP_3 = "This method avoids overlapping nameplates by spreading them out horizontally and vertically."
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
EventTraceFrameButton7HideButton = EventTraceFrameButton7HideButton {
}
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture = CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture {
}
TutorialFrameLeft19 = TutorialFrameLeft19 {
}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {
}
ERR_TRADE_EQUIPPED_BAG = "You can't trade equipped bags."
PVP_RANK_6_1 = "Corporal"
BOOKTYPE_PROFESSION = "professions"
AudioOptionsVoicePanelOutputDeviceDropDownButtonHighlightTexture = AudioOptionsVoicePanelOutputDeviceDropDownButtonHighlightTexture {
}
InterfaceOptionsDisplayPanelShowAggroPercentageText = InterfaceOptionsDisplayPanelShowAggroPercentageText {
}
VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture = VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture {
}
MerchantItem3AltCurrencyFrameItem1Text = MerchantItem3AltCurrencyFrameItem1Text {
}
OPTION_TOOLTIP_ACTION_BUTTON_USE_KEY_DOWN = "Action button keybinds will respond on key down, rather than on key up."
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
INSTANCE_UNAVAILABLE_OTHER_TEMPORARILY_DISABLED = "%s cannot enter. This instance is temporarily disabled."
IsReferAFriendLinked = <function> defined =[C]:-1
MAIL_LETTER_TOOLTIP = "Click to make a permanent
copy of this letter."
QuestDetailBotLeftCorner = QuestDetailBotLeftCorner {
}
ItemTextFrameInsetInsetTopRightCorner = ItemTextFrameInsetInsetTopRightCorner {
}
ERR_NOAMMO_S = "%s"
CHAT_CONFIG_OTHER_COMBAT = <table> {
}
CONSOLIDATED_BUFFS_PER_ROW = 4
TutorialFrameRight19 = TutorialFrameRight19 {
}
MoneyFrame_OnEvent = <function> defined @Interface\FrameXML\MoneyFrame.lua:233
BN_UNABLE_TO_RESOLVE_NAME = "Unable to whisper '%s'. Battle.net may be unavailable."
WatchFrameItem_OnEvent = <function> defined @Interface\FrameXML\WatchFrame.lua:1367
InterfaceOptionsCombatTextPanelFCTDropDown_OnClick = <function> defined @Interface\FrameXML\InterfaceOptionsPanels.lua:1419
LFGTeleport = <function> defined =[C]:-1
SpellButton6Cooldown = SpellButton6Cooldown {
}
ToggleEncounterJournal = <function> defined @Interface\FrameXML\UIParent.lua:617
Graphics_QualityText = Graphics_QualityText {
}
TalentMicroButtonAlertShadowTopLeft = TalentMicroButtonAlertShadowTopLeft {
}
ROGUE_COMBAT_CORE_ABILITY_4 = "Use for damage when you have 5 combo points. Primary finishing move."
Advanced_GraphicsAPIDropDownButtonHighlightTexture = Advanced_GraphicsAPIDropDownButtonHighlightTexture {
}
CompactUnitFrameProfilesSaveButton = CompactUnitFrameProfilesSaveButton {
}
BankFrameItem17SearchOverlay = BankFrameItem17SearchOverlay {
}
ACTION_SPELL_MISSED_POSSESSIVE = "1"
ChannelMemberButton10SpeakerFrameOn = ChannelMemberButton10SpeakerFrameOn {
}
EventTraceFrameTitleButton = EventTraceFrameTitleButton {
}
Is6
Report comment to moderator  
Reply With Quote
Unread 11-23-10, 08:09 PM  
networm
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 7
Uploads: 2
1 OneKeyMode
I think we bind only one key to any button almost. So I think just allow to bind one key is a good idea.
Here is a picture about it:

Here is the code to achieve this:
First add this line to head of ncHoveBind.lua:
Code:
local onekeymode = true
Add these code between SCREENTSHOT and ESC judge:
Code:
				RunBinding("SCREENSHOT");
				return
			end

			-- change behavior to bind only one key for one button
			if #self.button.bindings > 0 and onekeymode then
				for i = 1, #self.button.bindings do
					SetBinding(self.button.bindings[i])
				end
				self:Update(self.button, self.spellmacro)
				if self.spellmacro~="MACRO" then GameTooltip:Hide() end
			end

			if key == "ESCAPE" or key == "RightButton" then
				for i = 1, #self.button.bindings do
2 #showtooltip bug
fix can't bind anykey when a macro isn't available with #showtooltip
such as "#showtooltip /use Conjured Mana Strudel", we couldn't bind any key to it when we haven't Conjured Mana Strudel
Here is the error:
Code:
[08:07:14] Interface\AddOns\ncHoverBind\ncHoverBind.lua:185: attempt to get length of field 'bindings' (a nil value)
[C]: ?
Interface\AddOns\ncHoverBind\ncHoverBind.lua:185: in function `Listener'
Interface\AddOns\ncHoverBind\ncHoverBind.lua:37: in function <Interface\AddOns\ncHoverBind\ncHoverBind.lua:37>
Here is a picbute about it:

Here is the code to fix it:
Code:
					elseif self.button.action < 49 and self.button.action > 36 then
						self.button.bindstring = "MULTIACTIONBAR4BUTTON"..modact
					elseif self.button.action < 37 and self.button.action > 24 then
						self.button.bindstring = "MULTIACTIONBAR3BUTTON"..modact
					end
				end

				GameTooltip:AddLine("Trigger")
				GameTooltip:Show()
				-- fix can't bind anykey when a macro isn't available with #showtooltip
				-- such as "#showtooltip /use Conjured Mana Strudel", we couldn't bind any key to it when we haven't Conjured Mana Strudel
				bind.button.bindings = {GetBindingKey(bind.button.bindstring)}

				GameTooltip:SetScript("OnHide", function(self)
					self:SetOwner(bind, "ANCHOR_NONE")
					self:SetPoint("BOTTOM", bind, "TOP", 0, 1)
					self:AddLine(bind.button.name, 1, 1, 1)
				--	move the following line to front, comment it or delete it.
				--	bind.button.bindings = {GetBindingKey(bind.button.bindstring)}
Last edited by networm : 11-23-10 at 08:21 PM.
Report comment to moderator  
Reply With Quote
Unread 11-17-10, 02:54 PM  
markhr
A Fallenroot Satyr

Forum posts: 23
File comments: 43
Uploads: 0
Thanks for changing to zip.
Report comment to moderator  
Reply With Quote
Unread 11-17-10, 12:46 PM  
Coote
A Scalebane Royal Guard
 
Coote's Avatar
AddOn Author - Click to view AddOns

Forum posts: 440
File comments: 69
Uploads: 12
Originally posted by Farronski
Could you please reupload the addon as a *.zip file? MMOUI-Minion can't handle *rar files.
Sorry, I was unaware of that.
__________________

"This is the fifteen-thousandth four hundredth and ninety-eighth occurence".
Report comment to moderator  
Reply With Quote
Unread 11-17-10, 11:15 AM  
Farronski
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 11
Uploads: 2
Could you please reupload the addon as a *.zip file? MMOUI-Minion can't handle *rar files.

Would be nice...
Report comment to moderator  
Reply With Quote
Unread 11-15-10, 12:41 AM  
Slaxi81
A Murloc Raider
 
Slaxi81's Avatar
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 178
Uploads: 3
Thanks for update!


Have a nice day

Slaxi
__________________
Report comment to moderator  
Reply With Quote
Unread 11-14-10, 12:47 PM  
Coote
A Scalebane Royal Guard
 
Coote's Avatar
AddOn Author - Click to view AddOns

Forum posts: 440
File comments: 69
Uploads: 12
Re: SpellBook Spells

Originally posted by neverg
If you want to Fix it for SpellBook Spells, on line 52 change to:

lua Code:
  1. self.button.id = SpellBook_GetSpellBookSlot(self.button)
Thanks for including that. That is the one part I was having tons of trouble with. With any change I made, it was throwing errors at lines that had nothing to do with the spellbook frame. >.<

Update should be going up in under an hour.
__________________

"This is the fifteen-thousandth four hundredth and ninety-eighth occurence".
Report comment to moderator  
Reply With Quote
Unread 11-13-10, 09:53 PM  
neverg
A Frostmaul Preserver
 
neverg's Avatar
AddOn Author - Click to view AddOns

Forum posts: 254
File comments: 377
Uploads: 8
SpellBook Spells

If you want to Fix it for SpellBook Spells, on line 52 change to:

lua Code:
  1. self.button.id = SpellBook_GetSpellBookSlot(self.button)
  2. self.button.name = GetSpellBookItemName(self.button.id, SpellBookFrame.bookType)
__________________
My oUF Layout: oUF Lumen
Report comment to moderator  
Reply With Quote
Unread 11-06-10, 01:53 PM  
networm
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 7
Uploads: 2
Code:
bind:SetScript("OnKeyUp", function(self, key) self:Listener(key) end)
bind:SetScript("OnMouseUp", function(self, key) self:Listener(key) end)
Code:
-- chaged the following two Script from OnKeyUp to OnKeyDown to fix can't bind a combine key such as SHFT+T, ALT+SHIFT+Q
bind:SetScript("OnKeyDown", function(self, key) self:Listener(key) end)
bind:SetScript("OnMouseDown", function(self, key) self:Listener(key) end)
Code:
-- fix can't bind anykey when a macro isn't available
-- must comment the line in OnHide function
-- such as you are Fury Warrior and you have a macro
-- #showtooltip /cast BladeStorm
-- you can't bind any key to this button because OnHide is not called forever
bind.button.bindings = {GetBindingKey(bind.button.bindstring)}
GameTooltip:SetScript("OnHide", function(self)
self:SetOwner(bind, "ANCHOR_NONE")
to fix this just move "bind.button.bindings = {GetBindingKey(bind.button.bindstring)}" ahead from SetScript("OnHide") because a macro which can't use didn't have any tooltip so it can't trigger OnHide

Code:
		function bind:Listener(key)
			-- fix bind the SCREENSHOT key, now press SCREENSHOT key will take a screen shot
			-- GetBindingFromClick
			if GetBindingByKey(key) == "SCREENSHOT" then
				RunBinding("SCREENSHOT");
				return
			end

			-- change behavior to bind only one key for one button
			if #self.button.bindings > 0 then
				for i = 1, #self.button.bindings do
					SetBinding(self.button.bindings[i])
				end
				self:Update(self.button, self.spellmacro)
				if self.spellmacro~="MACRO" then GameTooltip:Hide() end
			end

Code:
	if not bind.enabled then
		bind:Activate()
		StaticPopup_Show("KEYBIND_MODE")
		-- fix issue that enter /hb it doesn't display bind tooltip when mouse is over action button
		local stance = ShapeshiftButton1:GetScript("OnClick")
		local pet = PetActionButton1:GetScript("OnClick")
		local button = SecureActionButton_OnClick
		local focus = GetMouseFocus()
		if focus.IsProtected and focus.GetObjectType and focus.GetScript and focus:GetObjectType()=="CheckButton" and focus:IsProtected() then
			local script = focus:GetScript("OnClick")
			if script==button then
				bind:Update(focus)
			elseif script==stance then
				bind:Update(focus, "STANCE")
			elseif script==pet then
				bind:Update(focus, "PET")
			end
		end
	end
Report comment to moderator  
Reply With Quote
Unread 10-23-10, 10:00 PM  
Coote
A Scalebane Royal Guard
 
Coote's Avatar
AddOn Author - Click to view AddOns

Forum posts: 440
File comments: 69
Uploads: 12
Originally posted by Kogasu
Existing binds do work, however binding from the "new" spellbook does not.
I'll look into this sometime tomorrow. My main focus is getting ncSpellAlert back to working condition, since a lot of spell IDs have been changed.
__________________

"This is the fifteen-thousandth four hundredth and ninety-eighth occurence".
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: