> I have a question and getting a bug
>> This code I don't really understand the BindingTestCaptureFrame.button = self. I dont see any "button" frame or variable defined in the xml
>> function BindingTestButton_OnClick(self, button)
> if button == "LeftButton" then
> BindingTestCaptureFrame.button = self
> BindingTestCaptureFrame:Show()
> elseif button == "RightButton" then
> local key = GetBindingKey(self.command)
> if key then
> SetBinding(key, nil)
> end
> BindingTestButton_OnEnter(self)
> end
> end
The section of the book that discusses widget scripts states that each script is automatically called with certain arguments. You can consult the documentation for [OnClick][1] to see what these are. If you're using XML you'll need to either explicitly pass these arguments to your handler function, or if you use the `function="BlahBlah"` syntax, it will do it for you.
[1]: http://wowprogramming.com/docs/scripts/OnClick
> This code is generating an error when I mouse over the buttons
> the print(self.command) was to see what was causing the error. The result is a nil.
> So I guess passing nil to GetbindingKey() is bad, but why its nil I have no idea.
>> function BindingTestButton_OnEnter(self)
> GameTooltip:SetOwner(self, "ANCHOR_BOTTOMRIGHT")
> GameTooltip:AddLine(TOOLTIP_TEXT1)
> GameTooltip:AddLine(TOOLTIP_TEXT2)
> print(self.command)
> local list = {GetBindingKey(self.command)}
> for i, key in ipairs(list) do
> list[i] = GetBindingText(key, "KEY_")
> end
> GameTooltip:AddLine(
> TOOLTIP_BINDING_LIST:format(table.concat(list, LIST_SEPERATOR)),
> NORMAL_FONT_COLOR.r,
> NORMAL_FONT_COLOR.g,
> NORMAL_FONT_COLOR.b,
> 1
> )
> GameTooltip:Show()
> end
>> The error
>> Message: Interface\AddOns\BindingTest\BindingTest.lua:52: Usage: GetBindingKey("COMMAND"[, mode])
> Time: 06/28/10 01:36:39
> Count: 3
> Stack: [C]: in function `GetBindingKey'
> Interface\AddOns\BindingTest\BindingTest.lua:52: in function >> Locals: (*temporary) = nil
I'm checking to see why something like this might happen.
↧