V 10
2
LANG:1 8 (NoName)
LANG:0 8 (NoName)
PANEL,258 100 470 500 N "_3DFace" 0
"/**

fwInstallationAdvandedOptions.pnl

This panel is used for creating the new installation directory. 
If the directory does not exist - it is created and added to the project config file. 
The user can also change the installation directory to one of the directories contained in the proj_path of a config file. 
The panel also displays the information about the current installation directory.

Required $-parameters:

none

Panels called from this panel:

none

*/
main()
{
	
	dyn_string proj_paths;
	int i;
	string destinationDir;
	int dpGetResult;

	if(dpExists(\"fwInstallationInfo.installationDirectoryPath\"))
	{
		dpGetResult = dpGet(\"fwInstallationInfo.installationDirectoryPath:_original.._value\", destinationDir);
		fwInstallation_loadProjPaths(proj_paths);
		for(i = 1; i <= dynlen(proj_paths); i++)
		{
			sliProjPaths.appendItem(proj_paths[i]);
		}
	 	sliProjPaths.selectedText = destinationDir;
		dpConnect(\"fwInstallation_changeTxtDestinationDir\", \"fwInstallationInfo.installationDirectoryPath:_original.._value\");
	} else {
		PanelOff();
	}
}
 
fwInstallation_changeTxtDestinationDir(string dp1, string destinationDir)
{
 	sliProjPaths.selectedText = destinationDir;
}" 0
EE E E 1 -1 -1 0  28 56
"" 0 1
E"/** This function reads the config file and retrieves the list of
proj_paths

@param proj_paths: the return value with a list of proj_paths

@author M.Sliwinski
*/

int fwInstallation_loadProjPaths(dyn_string & proj_paths)
{
	
	dyn_string parameter_Value;
	dyn_string configLines;
	
	bool fileLoaded = false;
	
	string fileInString;

	string tempLine;
	string tempParameter;
	string tempValue;
	string tempString; 

	string configPath = getPath(CONFIG_REL_PATH);
	string configFile = configPath + \"config\";
	
	int i, j ;
	

	
	fileLoaded = fileToString(configFile, fileInString);
	
	if (! fileLoaded )
	{
	
		Debug(\"\\n Cannot load \" + configFile + \" file\");
		return -1;
	}
	else 
	{
		Debug(\"\\n\" + configFile + \" - file loaded\");
	}

	configLines = strsplit(fileInString, \"\\n\");
	
// each line is loaded in a row of dyn_string configLines
	
	for(i = 1; i <= dynlen(configLines); i++)
	{
		tempLine = strltrim(strrtrim(configLines[i]));
		
		if(tempLine == \"\")
		{
		}
		else
		{				
				parameter_Value = strsplit(tempLine, \"=\");
				
				tempParameter = strltrim(strrtrim(parameter_Value[1]));
				
				if(tempParameter == \"proj_path\")
				{  
				
					tempValue = strltrim(strrtrim(parameter_Value[2]));
				
					strreplace(tempValue, \"\\\"\" , \"\");

				
				  // now value is without quotation marks
					
					dynAppend(proj_paths, tempValue);
				}
		}	
	}		
	return 1;				
}


/** This function inserts the new proj_path into the config file

@param proj_paths: the return value with a list of proj_paths

@author M.Sliwinski
*/

int fwInstallation_addProjPath(string projPathValue)
{
	
	dyn_string parameter_Value;
	dyn_string configLines;
	
	bool fileLoaded = false;
	
	string fileInString;

	string tempLine;
	string tempParameter;
	string tempValue;
	string tempString; 

	string configPath = getPath(CONFIG_REL_PATH);
	string configFile = configPath + \"config\";
	string configFileEntry = \"proj_path = \\\"\" + projPathValue + \"\\\"\";
	
	
	int i, j ;
	int numberOfProjPaths = 0;
	int indexOfProjPath = 0;
	

	
	fileLoaded = fileToString(configFile, fileInString);
	
	if (! fileLoaded )
	{
	
		Debug(\"\\n Cannot load \" + configFile + \" file\");
		return -1;
	}
	else 
	{
		Debug(\"\\n\" + configFile + \" - file loaded\");
	}

	configLines = strsplit(fileInString, \"\\n\");
	
// each line is loaded in a row of dyn_string configLines
	
	for(i = 1; i <= dynlen(configLines); i++)
	{
		tempLine = strltrim(strrtrim(configLines[i]));
		
		if(tempLine == \"\")
		{
		}
		else
		{				
				parameter_Value = strsplit(tempLine, \"=\");
				
				tempParameter = strltrim(strrtrim(parameter_Value[1]));
				
				if(tempParameter == \"proj_path\")
				{  
			
					numberOfProjPaths++;
					
					if(indexOfProjPath == 0)
					{
						indexOfProjPath = i;
					}			
	
				}
		}	
	}		
	
	// insert the value into a string of config lines
	
	if(numberOfProjPaths > 8)
	{
	
		Debug(\"ERROR: cannot add the new proj_path - too many proj_paths defined in the config file: \" + numberOfProjPaths);
		
		return -1;
	}
	else
	{	
		dynInsertAt(configLines, configFileEntry , indexOfProjPath);
	
		fwInstallation_saveFile(configLines, configFile);
		
		return 1;
	}
	
}

/** This function saves the dyn_string into the file

@param configLines: the dyn_string with file lines
@param filename: the name of a destination file
@author M.Sliwinski
*/


int fwInstallation_saveFile( dyn_string & configLines, string filename)
{
	int i;
	string strLinesToSave;
	

	file fileHdlConfig;
	
	int writeResult;

//		Debug(\"saving everything to \" + configFile);


			fileHdlConfig = fopen(filename, \"w\");
			if(fileHdlConfig == 0)
			{
				Debug(\"\\n File \" + filename + \" could not opened ;-(\");
			}
			else
			{
					for(i = 1; i <= dynlen(configLines); i++)
					{
						strLinesToSave += configLines[i] + \"\\n\";
					}
					writeResult = fputs(strLinesToSave , fileHdlConfig);
			
					if (writeResult == 0)
					{
						Debug(\"\\n File \" + filename + \" - the file has been saved\");
					}
					
					fclose(fileHdlConfig);
			}
		
}

/** This function saves the new proj_path order into the config file

@param proj_paths: the value with a list of proj_paths

@author Sascha Schmeling
*/

int fwInstallation_changeProjPaths(dyn_string projPaths)
{
	
	dyn_string parameter_Value;
	dyn_string configLines;
	
	bool fileLoaded = false;
	
	string fileInString;

	string tempLine;
	string tempParameter;
	string tempValue;
	string tempString; 

	string configPath = getPath(CONFIG_REL_PATH);
	string configFile = configPath + \"config\";
	string configFileEntry;
	
	
	int i, j ;
	int numberOfProjPaths = 0;
	int indexOfProjPath = 0;
//SMS changes to accomodate commented project paths
	dyn_int projPathIndex;	

	
	fileLoaded = fileToString(configFile, fileInString);
	
	if (! fileLoaded )
	{
	
		Debug(\"\\n Cannot load \" + configFile + \" file\");
		return -1;
	}
	else 
	{
		Debug(\"\\n\" + configFile + \" - file loaded\");
	}

	configLines = strsplit(fileInString, \"\\n\");
	
// each line is loaded in a row of dyn_string configLines

	dynClear(projPathIndex);	
	for(i = 1; i <= dynlen(configLines); i++)
	{
		tempLine = strltrim(strrtrim(configLines[i]));
		
		if(tempLine == \"\")
		{
		}
		else
		{				
				parameter_Value = strsplit(tempLine, \"=\");
				
				tempParameter = strltrim(strrtrim(parameter_Value[1]));
				
				if(tempParameter == \"proj_path\")
				{  
			
					numberOfProjPaths++;
					dynAppend(projPathIndex,i);		//SMS store positions of valid project paths in the config file
					if(indexOfProjPath == 0)
					{
						indexOfProjPath = i;
					}			
	
				}
		}	
	}		

	if(numberOfProjPaths!=dynlen(projPaths))
	{
		DebugN(\"Config file changed on disk!!!\");
		return -1;
	} else {
		// exchange loaded projPaths with ordered ones
		for(i=numberOfProjPaths;i>=1;i--)
		{
			dynRemove(configLines, projPathIndex[i]);			
			configFileEntry = \"proj_path = \\\"\" + projPaths[i] + \"\\\"\";
			dynInsertAt(configLines, configFileEntry , projPathIndex[i]);
		}
		
		fwInstallation_saveFile(configLines, configFile);
	
		return 1;
	}
}

/** This function creates a project path, either creates the directory or just adds the path

@param sPath:	project path to be created

@author S.Schmeling
*/

int fwInstallation_createPath(string sPath)
{
	dyn_string projPaths;
	int i, x;
	string result;
	
	int directoryExists;
	bool state;
	string cmd, err = 0;
	shape shape_chckBox = getShape(\"checkCreateDirectory\");
	string logFile =  getPath(LOG_REL_PATH) + \"InstallationTool.log\";
	
	strreplace( sPath , \"//\" , \"/\");

	Debug(\"\\n sPath : \" + sPath);

		directoryExists = access(sPath, F_OK);

	if(sPath == \"\")
	{
		txtWarning.text = \"Directory cannot be empty\";
		txtWarning.visible = true;
	}
	else if((strpos(sPath,\" \")>-1) || (strpos(sPath,\"*\")>-1) || (strpos(sPath,\"?\")>-1))
	{
		txtWarning.text = \"Directory names shall not contain special characters [ *?]\";
		txtWarning.visible = true;		
	}
	else if( directoryExists == -1)
	{
	
		
		if (shape_chckBox.state(0) == true)
		{
			// the user has chosen to create the directory
			
	//		Debug(\"create directory: \" + sPath);
			
			//trim the last backslash in the directory name
			
			sPath = strrtrim(sPath, \"/\\\\\");

			if (_WIN32) 
			{
				if(strpos(sPath, \":\") >= 1)
				{		
					strreplace( sPath , \"/\" , \"\\\\\");
					sPath = strrtrim(sPath, \"/\");
					
					cmd = \"mkdir \" + sPath + \" 2> \" + logFile;
					err = system(\"cmd /c \" + cmd);
					if(err != \"0\")
					{
					
						x = fileToString(logFile, result);
						Debug(\"\\n cmd: \" + cmd + \"  result: \" + result);
						txtWarning.text = result;
						txtWarning.visible = true;
					}
				}
				else
				{
					txtWarning.text = \"You should give the whole path\";
					txtWarning.visible = true;
				}
			}
			else // _LINUX
			{
				if(strpos(sPath, \"/\") == 0)
				{
					cmd = \"mkdir \" + sPath + \" 2> \" + logFile;
					err = system(cmd);
					if(err != \"0\")
					{
						x = fileToString(logFile, result);
						txtWarning.text = result;
						txtWarning.visible = true;
					}
				}
				else
				{
					txtWarning.text = \"You should give the whole path\";
					txtWarning.visible = true;
				}
			}
			
			//the directory has been created - add it into the config file
			if(err == 0)
			{
				result = fwInstallation_addProjPath(sPath);
				
				if (result == -1)  // the project path could not be updated - too many entries
				{
					txtWarning.text = \"Too many project directories defined in the config file \\n\" +
									\"Choose directory defined in the proj_path \\n\" + 
									\"in the project config file\";
					txtWarning.visible = true;
				}
				else  // the project path has been updated
				{
			
				  	dpCreate(\"fwInstallationInfo\" , \"_FwInstallationInformation\");
					dpSet(\"fwInstallationInfo.installationDirectoryPath:_original.._value\", sPath);
					projPaths = sliProjPaths.items;
					dynInsertAt(projPaths,sPath,1);
					sliProjPaths.items = projPaths;
					sliProjPaths.selectedPos = 1;
			
//					PanelOff();
				}
			}
				
		}
		else // the user has not checked the option to create a new directory
		{
			txtWarning.text = \"Directory does not exist\";
			txtWarning.visible = true;
		}
	}
	else // the directory exists
	{
		 fwInstallation_loadProjPaths(projPaths);

		if(dynContains(projPaths, sPath))
		{
			// the config file contains the sPath in the proj_dir
			
			dpCreate(\"fwInstallationInfo\" , \"_FwInstallationInformation\");
			dpSet(\"fwInstallationInfo.installationDirectoryPath:_original.._value\", sPath);
			projPaths = sliProjPaths.items;
			dynInsertAt(projPaths,sPath,1);
			sliProjPaths.items = projPaths;
			sliProjPaths.selectedPos = 1;
		
//			PanelOff();
		}
		else //the directory exists but it is not in the config gile
		{
			// update the config file
			// e.g. add line: proj_path = \"D:/msliwins/test/framework1.1/PVSS\"
			
			result = fwInstallation_addProjPath(sPath);
		 
		 	if (result == -1)  // the project path could not be updated - too many entries
			{
				txtWarning.text = \"Choose directory defined in the proj_path \\nin the project config file\";
				txtWarning.visible = true;
			}
			else  // the project path has been updated
			{
			
			  	dpCreate(\"fwInstallationInformation\" , \"_FwInstallationInformation\");
				dpSet(\"fwInstallationInfo.installationDirectoryPath:_original.._value\", sPath);
				projPaths = sliProjPaths.items;
				dynInsertAt(projPaths,sPath,1);
				sliProjPaths.items = projPaths;
				sliProjPaths.selectedPos = 1;
	
//				PanelOff();
			}

	
		}
		
		
		}
	
}" 0
 2
"CBRef""1"
"EClose"E
""
DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
LAYER, 0 
1
LANG:1 6 Layer1
2 1
"Text12"
""
1 23 51 E E E 1 E 1 E N {0,0,0} E N "_Transparent" E E
 E E
2 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  0 E 25 19 181 41
0 2 0 "s" 0 0 0 192 0 0  25 19
 1
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-160-100-100-*-*-iso8859-1|-19,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-160-100-100-*-*-iso8859-1|-19,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 16 Advanced Options
LANG:0 16 Advanced Options
2 3
"Text2"
""
1 30 146 E E E 1 E 1 E N {0,0,0} E N "_Transparent" E E
 E E
4 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  0 E 32 122 296 138
0 2 0 "s" 0 0 0 192 0 0  32 122
 1
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 48 Select the new project path (it will be created)
LANG:0 60 Select the new installation directory ( it will be created )
2 11
"txtWarning"
""
1 30 105 E E E 1 E 0 E N {255,0,51} E N "_Transparent" E E
 E E
10 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  0 E 32 82 137 98
0 2 0 "s" 0 0 0 192 0 0  32 82
 1
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 15 Warning message
LANG:0 15 Warning message
30 14
"frmCreateNew"
""
1 20 230 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
 E E
13 0 0 0 0 0
EE E
1
2
LANG:1 0 
LANG:0 0 
0
E E 0 1 1 0 1 E U  0 E 20 60 450 230
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 16 Add Project Path
LANG:0 26 Add Installation Directory
30 15
"Frame2"
""
1 20 440 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
 E E
14 0 0 0 0 0
EE E
1
2
LANG:1 0 
LANG:0 0 
0
E E 0 1 1 0 1 E U  0 E 20 240 450 440
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 29 Choose Installation directory
LANG:0 29 Choose Installation directory
2 16
"Text1"
""
1 30 306 E E E 1 E 1 E N {0,0,0} E N "_Transparent" E E
 E E
15 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  0 E 32 262 257 294
0 2 0 "s" 0 0 0 192 0 0  32 262
 2
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 41 Select an existing installation directory
LANG:0 41 Select an existing installation directory
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
2
LANG:1 38 New components will be installed there
LANG:0 38 New components will be installed there
13 5
"btnOK"
""
1 370 190 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
6 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
368 188 442 222
T 
2
LANG:1 5 Apply
LANG:0 5 Apply
"main()
{
	fwInstallation_createPath(txtDestinationDir.text);
}
" 0
 E E E
13 9
"btnSelectSourceDir"
""
1 410 150 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
8 0 0 0 0 0
EE E
0
2
LANG:1 20 Select the directory
LANG:0 20 Select the directory
0
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
408 148 442 182
P 
13107
"pictures/fileselektor.xpm"
1
LANG:1 0 
"main()
{

string sPath;

int iErr;

	txtWarning.visible = false;
		
	sPath = txtDestinationDir.text;   // Content of textfield

	iErr = folderSelector( sPath );

	if(( iErr >= 1 ) && ( strlen( sPath ) > 0 ))
	{

	    if (_WIN32) 
	    	strreplace( sPath, \"/\", \"//\" ); 
		// if NT -> replace 
	
		strreplace( sPath, \"//\", \"/\" );
	
	    txtDestinationDir.text = sPath;  

  }
  
}" 0
 E E E
14 10
"txtDestinationDir"
""
1 30 150 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
 E E
9 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
LANG:0 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
0 ""
28 148 402 174
3 "s" 0 0 0 0 0 0 
E
E
E
20 13
"checkCreateDirectory"
""
1 30 180 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
12 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
28 178 192 212
1
T 
2
LANG:1 18 Create directory ?
LANG:0 18 Create directory ?
 1
1
LANG:1 0 
 E  E  0 0 0 0 0
1
E E 
"main()
{
	if(this.state(0))
	{
		Text2.text = \"Select the new project path (it will be created)\";
	} else {
		Text2.text = \"Select the new project path\";
	}	
}" 0
"main(int button, bool state)
{
	if(this.state(0))
	{
		Text2.text = \"Select the new project path (it will be created)\";
	} else {
		Text2.text = \"Select the new project path\";
	}	
}" 0
13 21
"btnOKAll"
""
1 300 450 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
19 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
298 448 372 482
T 
2
LANG:1 2 OK
LANG:0 2 OK
"main()
{
	fwInstallation_changeProjPaths(sliProjPaths.items);	
	PanelOff();	
}" 0
 E E E
13 22
"btnCancelAll"
""
1 380 450 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
20 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
378 448 452 482
T 
2
LANG:1 6 Cancel
LANG:0 6 Cancel
"main()
{
  PanelOff();
}" 0
 E E E
17 23
"sliProjPaths"
""
1 30 300 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
 E E
20 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
LANG:0 107 -microsoft windows-Arial-normal-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,400,0,0,0,0,3,2,1,34,Arial
0 ""
28 298 402 432
0
E
"main()
{
	string destinationDir;
	
	destinationDir = sliProjPaths.selectedText;
	
	dpSet(\"fwInstallationInfo.installationDirectoryPath:_original.._value\", destinationDir);
}" 0

E

3 1
13 24
"Button1"
""
1 410 300 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
21 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
LANG:0 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
0 ""
408 298 442 332
P 
10862530
"pictures/dpeMon_up.gif"
1
LANG:1 0 
"main()
{
	dyn_string listStrings = sliProjPaths.items;
	string selectedString = sliProjPaths.selectedText;
	int selectedPosition = sliProjPaths.selectedPos;
	
	if(selectedPosition != 1)
	{
		dynRemove(listStrings, selectedPosition);
		dynInsertAt(listStrings, selectedString, selectedPosition - 1);
	}	

	sliProjPaths.items = listStrings;
	sliProjPaths.selectedText = selectedString;

}" 0
 E E E
13 26
"Button3"
""
1 410 400 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
23 0 0 0 0 0
EE E
0
2
LANG:1 0 
LANG:0 0 
0
2
LANG:1 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
LANG:0 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
0 ""
408 398 442 432
P 
10862530
"pictures/dpeMon_down.gif"
1
LANG:1 0 
"main()
{
	dyn_string listStrings = sliProjPaths.items;
	string selectedString = sliProjPaths.selectedText;
	int selectedPosition = sliProjPaths.selectedPos;
	
	if(selectedPosition != dynlen(listStrings))
	{
		dynRemove(listStrings, selectedPosition);
		dynInsertAt(listStrings, selectedString, selectedPosition + 1);
	}	

	sliProjPaths.items = listStrings;
	sliProjPaths.selectedText = selectedString;

}" 0
 E E E
0
LAYER, 1 
1
LANG:1 6 Layer2
0
LAYER, 2 
1
LANG:1 6 Layer3
0
LAYER, 3 
1
LANG:1 6 Layer4
0
LAYER, 4 
1
LANG:1 6 Layer5
0
LAYER, 5 
1
LANG:1 6 Layer6
0
LAYER, 6 
1
LANG:1 6 Layer7
0
LAYER, 7 
1
LANG:1 6 Layer8
0
0