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

-- 下面为介绍文字，是markdown格式文本。您可以将其翻译为其它语种或修改，请不要修改圆括号内的文字。
Cover_text = [[
欢迎使用 极客讨论器 个人版
===
此软件内核采用 极客讨论器 1.2.0 版 由枫传网络版权所有

极客讨论器是一款**讨论和批注源代码的工具**，适合于程序员，软件开发、测试、管理人员，编程爱好者。个人版是免费软件，主要定位个人开发者。

和传统的讨论方式不同的是，极客讨论器的消息可以和一段代码关联，形成批注消息，使得消息具有注释的属性，可通过消息定位代码，也可通过代码定位消息，**即使代码被修改**（后面会介绍怎么应对代码修改）。而较之注释又有如下优势：  
*1*.<font color=#652>注释由源代码作者提供，缺少交互性，很多时候并不能帮助阅读者理解源代码，而消息即可由作者发出也可由阅读者发出，谁都可以帮助其他人理解，也可以向其他人求助；</font>  
*2*.<font color=#066>一段代码可能涉及到多个流程，如一个函数多处调用，或者一段代码因不同的输入有不同的流程和输出，注释不太好清晰的解释复杂的流程，消息则可以分开阅读，如帖子型的消息每个帖子和它的回复解释一个流程；</font>  
*3*.<font color=#652>注释仅是文字信息，而消息可以包含文字、图片、一段修补代码、另一个项目中的代码，从而对特定代码做文字说明、图片说明、创建补丁包；以及对多个相关项目进行逻辑关联；</font>  
*4*.<font color=#066>消息更丰富的表现形式带来了更强大的功能，除了充当阅读源代码时的注释，还能在版本库导航栏中指示某个版本，某处代码的修改；在函数地图中建立消息路标，指出其它代码与它的调用关系。</font>

因为随着开发的进行，被批注的代码可能会被修改和删除，所以消息实际上是关联到subversion/git版本库内的对应位置，而在需要提取消息的时候，自动调整那些批注位置有修改的消息。提取消息是**回忆**的过程，而在不同开发阶段记录的消息，都能在某一时刻全部**回忆**出来，并且能根据代码的修改自动调整批注位置，这就是消息的**全面回忆**。  
*从批注转换到版本库内位置，到提取时再转换到本地代码位置，全程由软件自动计算完成，无需人工干预。*

[关闭向导](cancel_auto_load)

若您需要进一步的帮助，请在[关闭向导](cancel_auto_load)后点击右上角![选项按钮](open_options.png)，查看软件在不同场景下的使用方法：

![向导选项页](tutorials_option.png)
]]

-- 下面为聚光灯流程控制，请不要修改！
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 == "index" then
		return {}, Cover_text;
	elseif Control == "close" or Control == "cancel_auto_load" then
		return {}, "";
	end
end

AutoLoad = 0