view inkscape/firefox/content/wizard.js @ 1265:ca301f6abef7

Support undo for insert key frame/rm keyframe. We will refresh all layers and scenes since it is not feasible to collect these changes and update the layers and scenes. We may scan two level only in the future to improve the performance.
author wycc
date Wed, 12 Jan 2011 15:01:14 +0800
parents 3d21115297ba
children
line wrap: on
line source

function Wizard()
{
	this.dialog = $('#wizard');
	this.dialog.dialog({width:600,autoOpen:false});
	this.step2 = $('#wizard_step2');
	this.step2.dialog({width:600,autoOpen:false});
	this.step3 = $('#wizard_step3');
	this.step3.dialog({width:600,autoOpen:false});
}


Wizard.prototype.execute=function(cb)
{
	this.dialog.dialog('open');
}

aaa=1
// In the first step, users will select the project type.
Wizard.prototype.step1_cb=function(type)
{
	this.type = type;
	var obj = $('#wizardname');
	this.name = obj.attr('value');
	this.step2.dialog('open');
	this.dialog.dialog('close');
	this.step3.dialog('close');
}

// In the step 2, get the output path
Wizard.prototype.step2_cb=function()
{
	this.dir = $('#outputpath').attr('value');
	this.step2.dialog('close');
	this.step3.dialog('open');
	system_mkdir(this.dir);
	this.generate_source('main.c','main.c');
	this.step3.append('main.c<br>');
	this.generate_source('list.mbsvg','list.mbsvg');
	this.step3.append('list.mbsvg<br>');
	this.generate_source('app.h',this.name+'.h');
	this.step3.append(this.name+'.h<br>');
	this.generate_source('app.c',this.name+'.c');
	this.step3.append(this.name+'.c<br>');
	this.generate_source('app.prj',this.name+'.prj');
	this.step3.append('app.prj<br>');
	this.generate_source('Makefile','Makefile');
	this.step3.append('Makefile<br>');
	this.done_cb();
}

Wizard.prototype.done_cb=function()
{
	this.step3.dialog('close');
	this.cb(this.dir+'/'+this.name+'.prj');
}


Wizard.prototype.generate_source=function (tmpl,fname)
{
	var file = system_open_write(this.dir+'/'+fname);
	var template = system_open_read('/usr/local/share/mb/template/'+this.type+'/'+tmpl);
	if (template == null) {
		return;
	}
	if (file == null) {
		return;
	}
	var data = template.read(template.available());
	var regex = /\%n/gi;
	// FIXME: replace name here
	data=data.replace(regex,this.name);
	file.write(data,data.length);
	file.close();
	template.close();
}