-- 这是聚光灯控制脚本，用lua 5.2.x语言编写。聚光灯介绍形式是枫传网络独创的软件介绍方式。通过将软件界面雾化为背景，并用聚光灯突显要介绍的部分，配合文字说明，对软件进行介绍。您可以按照提示修改此脚本。
-- 下面为文件信息，除CodePage外，其它项目请不要修改。
Application = "GTalkabout"
Version = "1.1"
ScriptType = "tutorial"
CodePage = 936	-- 简体中文，如果您将此脚本翻译为其他语种，请修改为该语种对应的代码页，否则，请不要修改。

-- 下面为介绍文字，是markdown格式文本。您可以将其翻译为其它语种或修改，请不要修改圆括号内的文字。
Hint_text = [[
批注消息
===
![钉子按钮](link_tool_button.bmp)按下后，您创建的消息可以和选中源代码关联，成为批注消息。

批注消息是极客讨论器的核心，具有多种用途，您可以用它：  
**注释代码**：虽然批注消息并不直接和源代码写在一起，但需要提取的时候，消息可以自动关联它批注的代码。  
**记录原始代码**：批注的同时可以记录它关联的代码，将来代码有修改，可以和当时的代码作比较。  
**检索版本库内代码**：批注消息还记录了代码在版本库中的位置，可以在很多修改版本，很多文件的版本库中快速定位。  
**记录版本库中的修改**：和检索版本库内代码相类似，除了批注内容，也可以批注修改。  
**创建消息路标**：在函数地图中，批注消息可以给函数节点建立路标，用于快速展示代码间的调用关系和路径。  

批注消息的产生也有多种途径：  
您可以**手工创建批注消息**，按下![钉子按钮](link_tool_button.bmp)后，选择要批注的代码，编辑消息并记录/发送。  
您可以**和网友分享批注消息**，这个主要针对开源代码，分享是为了共同学习和协作开发。  
此外还有各种**自动化生成批注消息**的途径，如文件监控记录，可以监控您对源代码的本地保存，并从中提取批注消息。  

[关闭提示](cancel_auto_load)
]]

-- 下面为聚光灯流程控制，请不要修改！
function ControlValueIterator(ControlTable)
	local iIndex = 0

	return function()
		iIndex = iIndex + 1;
		local ControlValue = ControlTable[iIndex];

		if type(ControlValue) == "string" then
			return ControlValue, "";
		elseif type(ControlValue) == "table" then
			local Control, Value = ControlValue[1], ControlValue[2];

			if type(Control) == "string" then
				if type(Value) == "string" then
					return Control, Value;
				else
					return Control, "";
				end
			else
				return nil;
			end
		else
			return nil;
		end
	end
end

function ChangeSpotlights(ControlTable)
	local Iter = ControlValueIterator(ControlTable);
	local Control, Value = Iter();

	if Control == "close" or Control == "cancel_auto_load" then
		return {}, "";
	end
	return { {"im_tab", 1} }, Hint_text;
end

AutoLoad = 0