//ide扩展库
import winex;
import fsys.cab; 
import win.ui.ctrl.edit; 

namespace ide{
	getActiveCodeEditor = function(){
		var hView = getActiveViewHwnd(); 
		if( hView ){
			var hEdit = ..winex.findEx(hView ,,"AAutoCodeEditor.+")
			if(hEdit){ 
				var ctrl = ..win.ui.ctrl.edit();
				ctrl.hwnd = hEdit;
				return ctrl;
			}
		}
	};
	compile = function(){
		::SendMessageInt( getMainHwnd(),0x111/*_WM_COMMAND*/, 0x8315/*_IDE_ID_BUILD_COMPILE*/,0);
	};
	run = function(){
		::SendMessageInt( getMainHwnd(),0x111/*_WM_COMMAND*/, 0x831D/*_IDE_ID_BUILD_RUN*/,0);
	};
	publish = function(){
		::SendMessageInt( getMainHwnd(),0x111/*_WM_COMMAND*/, 0x8317/*_IDE_ID_BUILD_PUBLISH*/,0);
	};
	switchDesignView = function(){
		::SendMessageInt( getMainHwnd(),0x111/*_WM_COMMAND*/, 0x831A/*_IDE_ID_DESIGN_SWITCHTO*/,0);
	};
	getVersion = function(){
		var ver = getConfig("version");  
		major,minor,build = ..string.match(ver,"\s*(\d+)\.(\d+)\.(\d+)");
		return major,minor,build;
	};
	 
	var hasBeenEntered = false; 
	importFile = function(libName){ 
		if(hasBeenEntered){
			error('导入库失败,未找到库文件\n库路径:' + libName,2 );
		}
		hasBeenEntered = true; 
		
		if( ..win.msgboxTest( libName+"扩展库尚未安装，您需要下载安装"+libName+"扩展库吗?","快手(AAuto Quicker)") ){ 
			..fsys.cab.download( "http://www.ecranesoft.com/public/aauto/lib/"+libName+".cab"
				,"快手(AAuto Quicker) - 下载"+libName+"扩展库", ..fsys.joinpath(..io._exedir,"/download/lib/") );
			
			if(..io.libpath(libName) ){	
				global.import(libName);
				return true;
			}
		}
		
		error('导入库失败,未找到库文件\n库路径:' + libName,2 );
		hasBeenEntered = false;
		return false; 
	}
} 

/**intellisense(ide)
getActiveCodeEditor() = 返回当前代码编辑器控件\n!edit.
switchDesignView() = 切换当前窗体设计视图;
run() = 运行当前视图源码;
runFile("__") = 运行指定AAuto文件,\n参数指定aau文件路径
compile() = 编译当前视图源码;
publish() = 编译当前工程生成exe文件;
getProjectDir() = 获取当前工程所在目录,\n如果未打开工程，返回空字符串
getProjectPath() = 获取当前工程路径,\n如果未打开工程，返回空字符串
getProjectProperty("publishDir__") = 返回工程属性,\n失败返回空字符串 
projectIsOpened() = 返回当前是否已经打开工程
refreshUserLib() = 刷新当前工程用户库节点,\n并更新用户库智能提示数据
refreshStdLib() = 刷新标准库视图,\n并更新标准库智能提示数据
openDocument("/__/*输入文件路径*/") = 打开*.aau文件或*.aproj工程文件。
newDocument() = 新建aau文档窗口
insertCode(__) = 在当前代码编辑器光标位置插入代码,\n支持智能提示模板语法，自动插入新行，自动缩进，\n并将双下划线转换为光标位置，其后的段注释显示为汽泡提示。\n成功返回true
save() = 保存当前文档
saveAll() = 保存所有文档，并保存工程文件
getActiveViewHwnd() = 获取活动视图句柄,以及文档路径.\n其父窗口为MDI子窗口，子窗口为编辑器窗口,\n如果文档未保存为文件，则返回值2为空
getMainHwnd() = 获取IDE顶层主窗口句柄
showDesktopAlert(.(提示信息,链接文本,链接URL,显示时间) = 在桌面右下角弹出信息提示框,\n除第一个参数以外，其他参数可选，\n显示时间以毫秒为单位，默认为10000毫秒
getConfig("__/*属性名*/") = 返回IDE配置文件 ("/Config/USE.CFG") 指定字段值,\n返回值为字符串，失败返回空串
setConfig("__/*属性名*/","") = 修改IDE配置文件 ("/Config/USE.CFG") 指定字段值,\n参数必须都是字符串
pluginViewCreate("__/*aau文件*/") = 创建视图插件,\n参数指定aau文件路径
pluginViewShow(.(winform) = 显示视图插件,\n请用此函数替换winform.show(),\n窗体样式必须设为"child"样式
getVersion() = @major,minor,build = ide.getVersion();
end intellisense**/

/**intellisense()
ide = 快手开发环境扩展支持库,\n需要使用import ide;语句导入才能使用。 
_IDE_ID_BUILD_COMPILE=@0x8315/*_IDE_ID_BUILD_COMPILE*/
_IDE_ID_BUILD_PUBLISH=@0x8317/*_IDE_ID_BUILD_PUBLISH*/
_IDE_ID_DESIGN_SWITCHTO=@0x831A/*_IDE_ID_DESIGN_SWITCHTO*/
_IDE_ID_BUILD_RUN=@0x831D/*_IDE_ID_BUILD_RUN*/
end intellisense**/
 


 
