#include "StdAfx.h"
#include "PGL/PGL.h"
#include "PGL/PGLTextPropPage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CPGLTextPropPage, CPropertyPage)
CPGLTextPropPage::CPGLTextPropPage(CPGLText* _pText) : CPropertyPage(CPGLTextPropPage::IDD)
{
m_sText = _T("");
m_fAngle = 0.0f;
m_rAlign = -1;
m_pText=_pText;
}
CPGLTextPropPage::~CPGLTextPropPage()
{
}
void CPGLTextPropPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Text(pDX, IDC_PGL_EDIT_STRIN_TEXT, m_sText);
DDX_Text(pDX, IDC_PGL_EDIT_ANGLE, m_fAngle);
DDX_Radio(pDX, IDC_PGL_RADIO_LEFT, m_rAlign);
}
BEGIN_MESSAGE_MAP(CPGLTextPropPage, CPropertyPage)
ON_BN_CLICKED(IDC_PGL_BUTTON_CHOOSE_FONT, OnPglButtonChooseFont)
ON_EN_KILLFOCUS(IDC_PGL_EDIT_STRIN_TEXT, OnKillfocusPglEditStrinText)
END_MESSAGE_MAP()
void CPGLTextPropPage::OnPglButtonChooseFont()
{
LOGFONT lf=m_pText->GetFont().GetLOGFONT();
CFontDialog fontDlg(&lf);
if (fontDlg.DoModal() == IDOK)
{
fontDlg.GetCurrentFont(&lf);
TRACE("Face name of the selected font = %s\n", lf.lfFaceName);
m_pText->GetFont().SetLOGFONT(lf);
}
}
void CPGLTextPropPage::OnKillfocusPglEditStrinText()
{
UpdateData(TRUE);
m_pText->SetString(m_sText);
}
BOOL CPGLTextPropPage::OnKillActive()
{
UpdateData(TRUE);
m_pText->SetString(m_sText);
m_pText->SetAngle(m_fAngle);
switch (m_rAlign)
{
case 0:
m_pText->SetAlign(PGL_TEXT_ALIGN_LEFT);
break;
case 1:
m_pText->SetAlign(PGL_TEXT_ALIGN_CENTER);
break;
case 2:
m_pText->SetAlign(PGL_TEXT_ALIGN_RIGHT);
break;
}
return CPropertyPage::OnKillActive();
}
void CPGLTextPropPage::Refresh()
{
ASSERT_VALID(m_pText);
m_sText=m_pText->GetString();
m_fAngle=m_pText->GetAngle();
switch (m_pText->GetAlign())
{
case PGL_TEXT_ALIGN_LEFT:
m_rAlign=0;
break;
case PGL_TEXT_ALIGN_CENTER:
m_rAlign=1;
break;
case PGL_TEXT_ALIGN_RIGHT:
m_rAlign=2;
break;
}
UpdateData(FALSE);
}
BOOL CPGLTextPropPage::OnSetActive()
{
Refresh();
return CPropertyPage::OnSetActive();
}