예제 #1
0
void CEnvelopeWizard::AddDroppedGraphic(int nDragImage, POINT point)
{
	if (!m_pEnvelopeDoc)
		return;

	CAGPage* pPage = m_pEnvelopeDoc->GetPage(0);
	if (!pPage)
		return;

	CAGLayer* pUserLayer = pPage->GetUserLayer();
	if (!pUserLayer)
		return;

	CAGSymImage* pImage = m_pGraphics[nDragImage];
	if (!pImage)
		return;

	CAGSymImage* pNewImage = (CAGSymImage*)pImage->Duplicate();
	if (!pNewImage)
		return;

	SetImageSize(pNewImage, &point);
	
	pUserLayer->AddSymbol(pNewImage);
	GetDocWin()->SymbolUnselect(true);
	GetDocWin()->SymbolSelect(pNewImage);
	GetDocWin()->SymbolInvalidate(pNewImage);
}
예제 #2
0
void CEnvelopeWizard::CreateEnvelope(CAGDoc** ppAGDoc)
{
	m_pEnvelopeDoc = new CAGDoc();

	// Let the caller take control over this document
	if (ppAGDoc)
		*ppAGDoc = m_pEnvelopeDoc;
	if (!m_pEnvelopeDoc)
		return;
	
	m_pEnvelopeDoc->SetPortrait(m_PageSize.cx <= m_PageSize.cy);
	m_pEnvelopeDoc->SetDocType(DOC_ENVELOPE);
	m_pEnvelopeDoc->SetFileName(CString("Untitled"));
	m_pEnvelopeDoc->SetModified(true);

	CAGPage* pPage = new CAGPage(m_PageSize.cx, m_PageSize.cy);
	if (!pPage)
		return;

	m_pEnvelopeDoc->AddPage(pPage);

	int nLayers = 2;
	for (int j = 0; j < nLayers; j++)
		pPage->AddLayer(new CAGLayer());

	CAGLayer* pUserLayer = pPage->GetUserLayer();
	if (!pUserLayer)
		return;

	CAGLayer* pMasterLayer = pPage->GetMasterLayer();
	if (!pUserLayer)
		return;

	m_nMaxImageSize = m_PageSize.cy / 2;

	m_pEnvelopePicture->GetPictureList()->DrawListViewThumbnails();

	// Add the Background Item
	CAGSymGraphic* pBackground = new CAGSymRectangle();
	if (pBackground)
	{
		RECT BackgroundRect;
		::SetRect(&BackgroundRect, 0, 0, m_PageSize.cx, m_PageSize.cy);
		pBackground->SetDestRect(BackgroundRect);
		pBackground->SetID(IDR_ENVELOPE_BACKGROUND);
		pBackground->SetFillColor(RGB(240,240,255));
		pBackground->SetFillColor2(RGB(255,255,255));
		pBackground->SetFillType(FT_Solid);
		pBackground->SetHidden(true);
		pUserLayer->AddSymbol(pBackground);
	}

	int xCenter = m_PageSize.cx / 2;
	int yCenter = m_PageSize.cy / 2;
	RECT rMargins = { INCHES(0.375), INCHES(0.375), m_PageSize.cx - INCHES(0.375), m_PageSize.cy - INCHES(0.375)};

	// Add the Send Address Text Item
	CAGSymText* pSendAddr = new CAGSymText(ST_TEXT);
	if (pSendAddr)
	{
		RECT SendRect;
		SendRect.left   = xCenter - (INCHES(1.75)/2);
		SendRect.top    = yCenter - (INCHES(1)/2);
		SendRect.right  = SendRect.left + INCHES(3.0);
		SendRect.bottom = SendRect.top + INCHES(1.1);
		pSendAddr->Create(SendRect);

		pSendAddr->SetID(IDR_ENVELOPE_SEND);
		SetAddressText(pSendAddr, m_strSendAddress);
		pSendAddr->SelectAll(false);
		pSendAddr->SetHorzJust(eFlushLeft);
		pSendAddr->SetVertJust(eVertTop);
		pSendAddr->SetEmphasis(false, false, false);
		pUserLayer->AddSymbol(pSendAddr);
	}

	// Add the Return Address Text Item
	CAGSymText* pReturnAddr = new CAGSymText(ST_TEXT);
	if (pReturnAddr)
	{
		RECT ReturnRect;
		ReturnRect.left   = rMargins.left;
		ReturnRect.top    = rMargins.top;
		ReturnRect.right  = ReturnRect.left + INCHES(3.0);
		ReturnRect.bottom = ReturnRect.top + INCHES(1.1);
		pReturnAddr->Create(ReturnRect);

		pReturnAddr->SetID(IDR_ENVELOPE_RETURN);
		SetAddressText(pReturnAddr, m_strReturnAddress);
		pReturnAddr->SelectAll(false);
		pReturnAddr->SetHorzJust(eFlushLeft);
		pReturnAddr->SetVertJust(eVertTop);
		pReturnAddr->SetEmphasis(false, false, false);
		pUserLayer->AddSymbol(pReturnAddr);
	}

	// Add the first image to the document
	CAGSymImage* pImage = m_pGraphics[0];
	if (!pImage)
		return;

	CAGSymImage* pNewImage = (CAGSymImage*)pImage->Duplicate();
	if (!pNewImage)
		return;

	SetImageSize(pNewImage);

	pNewImage->SetID(IDC_ENVELOPE_PIC_0);

	pUserLayer->AddSymbol(pNewImage);
	GetDocWin()->SymbolUnselect(true);
	GetDocWin()->SymbolSelect(pNewImage);
	GetDocWin()->Position(POS_LEFT, POS_BOTTOM, 0/*id*/);
}