3.2.9.3 Copy Layer


Version Info

Minimum Origin Version Required: Origin 8 SR2

Example

This example shows how to copy one layer from one page to another page with Page::AddLayer method.

void wks_copy_ex()
{
	// 1. prepare source worksheet page
	WorksheetPage wksSourcePage;
	wksSourcePage.Create("Origin");
	wksSourcePage.Rename("Source");
	wksSourcePage.AddLayer(); // add more one worksheet layer.
	
	Worksheet wks = wksSourcePage.Layers(0);
	wks.SetName("ABC");
	DataRange dr;
	dr.Add(wks, 0, "X");
	dr.Add(wks, 1, "Y");
	
	vector vx, vy;
	vx.Data(0.5, 100, 0.5);
	vy = vx * 10;
	dr.SetData(&vy, &vx);
	
	// 2. prepare destination worksheet page
	WorksheetPage wksDestPage;
	wksDestPage.Create("Origin");
	wksDestPage.Rename("Dest");
	
	// 3. Copy worksheet from one page to another page
	printf("Before moving....\n");
	print_out_layer_names(wksSourcePage);
	print_out_layer_names(wksDestPage);
	
	// want copy "ABC" layer from "Source" page to "Dest" page as the first one layer
	BOOL 	bKeepSrcLayer = true;
	int 	nNewLayerPos = 0;
	bool	bRet = wksDestPage.AddLayer(wks, DCTRL_COPY_DEFAULT, bKeepSrcLayer, nNewLayerPos); 

	printf("After moving....\n");
	print_out_layer_names(wksSourcePage);
	print_out_layer_names(wksDestPage);
	
}

static void print_out_layer_names(WorksheetPage& wksPage)
{
	int ii = 0;
	printf("Layers in %s page: \n", wksPage.GetName());
	foreach(Layer lay in wksPage.Layers)
	{
		printf("\tLayer %d = %s\n", ++ii, lay.GetName())
	}
}