changeset 6:2da5089ab7ff

(none)
author Flick <flickerstreak@gmail.com>
date Tue, 20 Mar 2007 21:20:20 +0000
parents 27aeec452e7f
children f920db5fc6b1
files classes/ReBinder.lua classes/ReBinder.xml
diffstat 2 files changed, 0 insertions(+), 374 deletions(-) [+]
line wrap: on
line diff
--- a/classes/ReBinder.lua	Tue Mar 20 21:20:05 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
--- ReBinder.lua
--- 
-
-ReBinder = { }
-
--- initial values
-ReBinder.active = false
-
-ReBinder.targets = { }
-
-function ReBinder:AddKeybindTarget( t )
-  if t then
-    self.targets[t] = CreateFrame("Button", nil, t, "ReBinderClickBindingTemplate")
-    self.targets[t].keybindTarget = t:GetName()
-  end
-end
-
-function ReBinder:RemoveKeybindTarget( t )
-  if t then
-    self.targets[t] = nil
-  end
-end
-
-function ReBinder:ShowClickBindingButtons()
-  for _, clickFrame in pairs(self.targets) do
-    clickFrame:Show()
-  end    
-end
-
-function ReBinder:HideClickBindingButtons()
-  for _, clickFrame in pairs(self.targets) do
-    clickFrame:Hide()
-  end    
-end
-
-function ReBinder:ClearSelectedKey()
-  self.selectedKey = nil
-end
-
-function ReBinder:ToggleEnabled()
-  if self:IsEnabled() then
-    self:Disable()
-  else
-    self:Enable()
-  end
-end
-
-function ReBinder:IsEnabled()
-  return ReBinderFrame:IsVisible()
-end
-
-function ReBinder:Enable()
-  ReBinderFrame:Show()
-end
-
-function ReBinder:Disable()
-  ReBinderFrame:Hide()
-end
-
-
-function ReBinder:HandleKeyPressed( key )
-  if key == nil or key == "UNKNOWN" or key == "SHIFT" or key == "CTRL" or key == "ALT" then 
-    return
-  end
-  if IsShiftKeyDown() then 
-    key = "SHIFT-"..key
-  end
-  if IsControlKeyDown() then
-    key = "CTRL-"..key
-  end
-  if IsAltKeyDown() then
-    key = "ALT-"..key
-  end
-  if key == "ESCAPE" or GetBindingAction(key) == "REBINDER_TOGGLEBINDINGMODE" then
-    ReBinderFrame:Hide()
-    return nil, nil
-  end
-
-  self.selectedKey = key
-
-  local keyTxt = GetBindingText(key, "KEY_")
-  local cmd    = GetBindingAction(key)
-  local cmdTxt
-  
-  if cmd then
-    cmdTxt = GetBindingText(cmd, "BINDING_NAME_")
-  end
-  
-  -- make click-bindings look prettier
-  local btnName
-  if cmdTxt then
-    btnName = string.match(cmdTxt,"CLICK (.+)\:LeftButton")
-    btnName = btnName or string.match(cmdTxt,"CLICK (.+)\:RightButton")
-  end
-  
-  return keyTxt, btnName or cmdTxt
-end
-
--- TODO: move to override-binding model and store data in profile
-function ReBinder:BindSelectedKeyTo( btnName )
-  if self.selectedKey and btnName then
-    self:ClearBinding(btnName)
-    SetBindingClick(self.selectedKey, btnName, "LeftButton")
-    SaveBindings(2) -- 2 = character-specific
-    ReBinderFrame.statusMsg:SetText(GetBindingText(self.selectedKey, "KEY_") .. " is now bound to " .. btnName)
-    ReBinderFrame.selectedKey:SetText("(none)")
-    ReBinderFrame.currentAction:SetText("(none)")
-    self.selectedKey = nil
-  end
-end
-
-
-function ReBinder:ClearBinding( btnName )
-  if btnName then
-    local current = GetBindingKey("CLICK "..btnName..":LeftButton")
-    if current then
-      SetBinding(current, nil)
-      ReBinderFrame.statusMsg:SetText("|cFFFF3333"..btnName .. " is now unbound|r")
-    end
-  end
-end
-
-
-function ReBinder:UpdateCurrentTarget( btnName )
-  local msg = ""
-  if btnName then
-    msg = btnName.." is currently "
-    local current = GetBindingKey("CLICK "..btnName..":LeftButton")
-    if current then
-      msg = msg .. "bound to " .. GetBindingText(current, "KEY_")
-    else
-      msg = msg .. " not bound"
-    end
-  end
-  ReBinderFrame.statusMsg:SetText(msg)
-end
--- a/classes/ReBinder.xml	Tue Mar 20 21:20:05 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/" 
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://www.blizzard.com/wow/ui/..\FrameXML\UI.xsd">
-
-
-  <Button name="ReBinderClickBindingTemplate" virtual="true" hidden="true" toplevel="true" setAllPoints="true">
-		<HighlightTexture alphaMode="ADD" file="Interface\Buttons\ButtonHilight-Square"/>
-    <Layers>
-      <Layer level="BACKGROUND">
-        <Texture>
-          <Color r="0" g="0" b="0" a="0"/>
-        </Texture>
-      </Layer>
-    </Layers>
-    <Scripts>
-      <OnLoad>
-        this:RegisterForClicks("LeftButtonUp","RightButtonUp")
-      </OnLoad>
-      <OnClick>
-        local mouseBtn = arg1
-        if mouseBtn == "LeftButton" then
-          ReBinder:BindSelectedKeyTo(this.keybindTarget)
-        elseif mouseBtn == "RightButton" then
-          ReBinder:ClearBinding(this.keybindTarget)
-        end
-      </OnClick>
-      <PostClick>
-        this:SetButtonState("NORMAL")
-      </PostClick>
-      <OnEnter>
-        ReBinder:UpdateCurrentTarget(this.keybindTarget)
-      </OnEnter>
-      <OnLeave>
-        ReBinder:UpdateCurrentTarget(nil)
-      </OnLeave>
-    </Scripts>
-  </Button>
-
-
-  <!-- this frame covers the entire UIParent. It is visible but empty and in the background, so all it does is consume key presses and unhandled mouse clicks -->
-  <Button name="ReBinderFrame" frameStrata="BACKGROUND" movable="false" enableMouse="true" enableKeyboard="true" parent="UIParent" hidden="true" setAllPoints="true">
-    <Frames>
-      <!-- this is a dialog frame that appears to provide user feedback for the outer frame -->
-      <Button name="$parentDialog" frameStrata="DIALOG" movable="true" enableMouse="true">
-        <Size>
-          <AbsDimension x="330" y="350"/>
-        </Size>
-        <Anchors>
-          <Anchor point="CENTER"/>
-        </Anchors>
-        <TitleRegion>
-          <Size>
-            <AbsDimension x="350" y="30"/>
-          </Size>
-          <Anchors>
-            <Anchor point="TOP">
-              <Offset>
-                <AbsDimension x="0" y="-10"/>
-              </Offset>
-            </Anchor>
-          </Anchors>
-        </TitleRegion>
-        <Backdrop edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
-          <EdgeSize>
-            <AbsValue val="16"/>
-          </EdgeSize>
-          <TileSize>
-            <AbsValue val="16"/>
-          </TileSize>
-          <BackgroundInsets>
-            <AbsInset left="4" right="4" top="4" bottom="4"/>
-          </BackgroundInsets>
-        </Backdrop>
-        <Layers>
-          <Layer level="BACKGROUND">
-            <Texture>
-              <Color r="0" g="0" b="0" a="0.7"/>
-            </Texture>
-          </Layer>
-          <Layer level="ARTWORK">
-            <FontString inherits="GameFontNormalLarge" text="Key Binding Setup" justifyH="CENTER">
-              <Size>
-                <AbsDimension x="200" y="30"/>
-              </Size>
-              <Anchors>
-                <Anchor point="TOP">
-                  <Offset>
-                    <AbsDimension x="0" y="-10"/>
-                  </Offset>
-                </Anchor>
-              </Anchors>
-            </FontString>
-            <FontString inherits="GameFontNormal" text="Press a key to ready it for assignment, then click a button to assign the key.|nRight-click a button to clear its binding." justifyH="CENTER">
-              <Size>
-                <AbsDimension x="240" y="70"/>
-              </Size>
-              <Anchors>
-                <Anchor point="TOP">
-                  <Offset>
-                    <AbsDimension x="0" y="-55"/>
-                  </Offset>
-                </Anchor>
-              </Anchors>
-              <Color r="1.0" g="1.0" b="1.0"/>
-            </FontString>
-            <FontString inherits="GameFontNormal" text="Selected Key:" justifyH="RIGHT">
-              <Size>
-                <AbsDimension x="175" y="25"/>
-              </Size>
-              <Anchors>
-                <Anchor point="RIGHT" relativePoint="TOP">
-                  <Offset>
-                    <AbsDimension x="-25" y="-160"/>
-                  </Offset>
-                </Anchor>
-              </Anchors>
-            </FontString>
-            <FontString inherits="GameFontNormal" text="Current Binding:" justifyH="RIGHT">
-              <Size>
-                <AbsDimension x="175" y="25"/>
-              </Size>
-              <Anchors>
-                <Anchor point="RIGHT" relativePoint="TOP">
-                  <Offset>
-                    <AbsDimension x="-25" y="-205"/>
-                  </Offset>
-                </Anchor>
-              </Anchors>
-            </FontString>
-            <FontString name="$parentCurrentActionText" inherits="GameFontNormal" text="(none)" justifyH="CENTER">
-              <Size>
-                <AbsDimension x="140" y="50"/>
-              </Size>
-              <Anchors>
-                <Anchor point="CENTER" relativePoint="TOP">
-                  <Offset>
-                    <AbsDimension x="75" y="-205"/>
-                  </Offset>
-                </Anchor>
-              </Anchors>
-              <Color r="0" g="1" b="0" a="1"/>
-            </FontString>
-            <FontString name="$parentStatusMsg" inherits="GameFontNormal" text="" justifyH="CENTER">
-              <Size>
-                <AbsDimension x="200" y="50"/>
-              </Size>
-              <Anchors>
-                <Anchor point="TOP">
-                  <Offset>
-                    <AbsDimension x="0" y="-230"/>
-                  </Offset>
-                </Anchor>
-              </Anchors>
-              <Color r="0.1" g="1.0" b="0.1"/>
-            </FontString>
-          </Layer>
-        </Layers>
-        <Frames>
-          <Button name="$parentSelectedKey" inherits="UIPanelButtonTemplate2" text="(none)">
-            <Size>
-              <AbsDimension x="140" y="28"/>
-            </Size>
-            <Anchors>
-              <Anchor point="CENTER" relativePoint="TOP">
-                <Offset>
-                  <AbsDimension x="75" y="-160"/>
-                </Offset>
-              </Anchor>
-            </Anchors>
-          </Button>
-          <Button inherits="GameMenuButtonTemplate" text="Done">
-            <Size>
-              <AbsDimension x="112" y="28"/>
-            </Size>
-            <Anchors>
-              <Anchor point="BOTTOM">
-                <Offset>
-                  <AbsDimension x="0" y="10"/>
-                </Offset>
-              </Anchor>
-            </Anchors>
-            <Scripts>
-              <OnClick>
-                this:GetParent():GetParent():Hide()
-              </OnClick>
-            </Scripts>
-          </Button>
-        </Frames>
-        <Scripts>
-          <!-- the dialog frame needs to handle clicks (close button, drag title) so we have to
-            re-implement the behavior of capturing alternate mouse buttons -->
-          <OnLoad>
-            this.selectedKey   = getglobal(this:GetName().."SelectedKeyText")
-            this.currentAction = getglobal(this:GetName().."CurrentActionText")
-            this:RegisterForClicks("MiddleButtonUp","Button4Up","Button5Up")
-          </OnLoad>
-          <OnClick>
-            local k, a = ReBinder:HandleKeyPressed(arg1)
-            if k then
-              this.selectedKey:SetText(k)
-              this.currentAction:SetText(a or "(none)")
-            end
-          </OnClick>
-        </Scripts>
-      </Button>
-    </Frames>
-    <Scripts>
-      <OnLoad>
-        this.selectedKey   = getglobal(this:GetName().."DialogSelectedKeyText")
-        this.currentAction = getglobal(this:GetName().."DialogCurrentActionText")
-        this.statusMsg     = getglobal(this:GetName().."DialogStatusMsg")
-        tinsert(UISpecialFrames,this:GetName())
-        this:RegisterForClicks("MiddleButtonUp","Button4Up","Button5Up")
-      </OnLoad>
-      <OnShow>
-        this.selectedKey:SetText("(none)")
-        this.currentAction:SetText("(none)")
-        this.statusMsg:SetText("")
-        ReBinder:ShowClickBindingButtons()
-      </OnShow>
-      <OnHide>
-        ReBinder:HideClickBindingButtons()
-        ReBinder:ClearSelectedKey()
-      </OnHide>
-      <OnKeyDown>
-        local k, a = ReBinder:HandleKeyPressed(arg1)
-        if k then
-          this.selectedKey:SetText(k)
-          this.currentAction:SetText(a or "(none)")
-        end
-      </OnKeyDown>
-      <OnClick>
-        local k, a = ReBinder:HandleKeyPressed(arg1)
-        if k then
-          this.selectedKey:SetText(k)
-          this.currentAction:SetText(a or "(none)")
-        end
-      </OnClick>
-    </Scripts>
-  </Button>
-
-</Ui>