diff Import.lua @ 69:69db1c3025ac v27

fixed some bugs with 6.2 item link format changes, added bib overwolf support
author yellowfive
date Mon, 06 Jul 2015 17:39:57 -0700
parents 01b63b8ed811
children 0515882856f1
line wrap: on
line diff
--- a/Import.lua	Mon Jun 29 17:06:02 2015 -0700
+++ b/Import.lua	Mon Jul 06 17:39:57 2015 -0700
@@ -4,6 +4,7 @@
 
 local _txtImport
 local _lblError
+local _panelCover
 
 local function onImportOkClick(widget)
 	local txt = _txtImport:GetText()
@@ -21,7 +22,22 @@
 	Amr:HideCover()
 end
 
-local function renderImportWindow(container)
+local function onTextEnterPressed(widget)
+	-- hide the overwolf cover when import data is received
+	if _panelCover then
+		_panelCover:SetVisible(false)
+	end
+	
+	-- do an import if the data starts and ends with a dollar sign
+	local txt = _txtImport:GetText()
+	local txtLen = string.len(txt)
+	if txtLen > 2 and string.sub(txt, 1, 1) == '$' then	
+		onImportOkClick()
+	end
+	
+end
+
+local function renderImportWindow(container, fromOverwolf)
 
 	local panelImport = Amr:RenderCoverChrome(container, 700, 450)
 	
@@ -36,6 +52,7 @@
 	_txtImport:SetHeight(300)
 	_txtImport:SetPoint("TOP", lbl.frame, "BOTTOM", 0, -10)
 	_txtImport:SetFont(Amr.CreateFont("Regular", 12, Amr.Colors.Text))
+	_txtImport:SetCallback("OnEnterPressed", onTextEnterPressed)
 	panelImport:AddChild(_txtImport)
 	
 	local btnImportOk = AceGUI:Create("AmrUiButton")
@@ -65,11 +82,36 @@
 	_lblError:SetPoint("TOPLEFT", btnImportOk.frame, "BOTTOMLEFT", 0, -20)
 	panelImport:AddChild(_lblError)
 	
+	if fromOverwolf then
+		-- show a cover preventing interaction until we receive data from overwolf
+		_panelCover = AceGUI:Create("AmrUiPanel")
+		_panelCover:SetLayout("None")
+		_panelCover:EnableMouse(true)
+		_panelCover:SetBackgroundColor(Amr.Colors.Black, 0.75)
+		_panelCover:SetPoint("TOPLEFT", panelImport.frame, "TOPLEFT")
+		_panelCover:SetPoint("BOTTOMRIGHT", panelImport.frame, "BOTTOMRIGHT")
+		panelImport:AddChild(_panelCover)
+
+		local coverMsg = AceGUI:Create("AmrUiLabel")
+		coverMsg:SetWidth(500)
+		coverMsg:SetFont(Amr.CreateFont("Regular", 16, Amr.Colors.TextTan))
+		coverMsg:SetJustifyH("MIDDLE")
+		coverMsg:SetJustifyV("MIDDLE")
+		coverMsg:SetText(L.ImportOverwolfWait)
+		coverMsg:SetPoint("CENTER", _panelCover.frame, "CENTER", 0, 20)
+		_panelCover:AddChild(coverMsg)
+		
+		-- after adding, set cover to sit on top of everything
+		_panelCover:SetStrata("FULLSCREEN_DIALOG")
+		_panelCover:SetLevel(Amr.FrameLevels.Highest)		
+	end
 end
 
-function Amr:ShowImportWindow()
+function Amr:ShowImportWindow(fromOverwolf)
 	-- this is shown as a modal dialog
-	Amr:ShowCover(renderImportWindow)
+	Amr:ShowCover(function(container)
+		renderImportWindow(container, fromOverwolf)
+	end)
 	
 	_txtImport:SetText("")
 	_txtImport:SetFocus(true)