636 lines
17 KiB
C++
636 lines
17 KiB
C++
// OXCustomizeCaptionPage.cpp : implementation file
|
|
//
|
|
// Version: 9.3
|
|
|
|
|
|
#include "stdafx.h"
|
|
#include "OXCustomizeCaptionPage.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// COXCustomizeCaptionPage dialog
|
|
|
|
IMPLEMENT_DYNCREATE(COXCustomizeCaptionPage, COXCustomizePage)
|
|
|
|
COXCustomizeCaptionPage::COXCustomizeCaptionPage()
|
|
{
|
|
//{{AFX_DATA_INIT(COXCustomizeCaptionPage)
|
|
m_bGradient = FALSE;
|
|
m_nCaptionState = -1;
|
|
m_nGradientAlgorithm = -1;
|
|
m_nGradientAlignment = -1;
|
|
m_nTextAlignment = -1;
|
|
m_nTextEllipsis = -1;
|
|
m_nNumberShade = 0;
|
|
m_bPaintCaption = TRUE;
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_bOnlyMainWindow=FALSE;
|
|
|
|
m_nDialogID=IDD;
|
|
m_sProfileName.Empty();
|
|
}
|
|
|
|
COXCustomizeCaptionPage::~COXCustomizeCaptionPage()
|
|
{
|
|
}
|
|
|
|
|
|
BOOL COXCustomizeCaptionPage::
|
|
InitializeCaptionPainter(BOOL bPaintCaption/*=TRUE*/,
|
|
LPCTSTR lpszProfileName/*=_T("CustomizeCaptionPainter")*/,
|
|
BOOL bOnlyMainWindow/*=FALSE*/)
|
|
{
|
|
m_bPaintCaption=bPaintCaption;
|
|
m_bOnlyMainWindow=bOnlyMainWindow;
|
|
|
|
if(lpszProfileName!=NULL)
|
|
{
|
|
m_sProfileName=lpszProfileName;
|
|
|
|
CWinApp* pApp=AfxGetApp();
|
|
ASSERT(pApp!=NULL);
|
|
|
|
m_bPaintCaption=pApp->GetProfileInt(m_sProfileName,
|
|
_T("PaintCaption"),m_bPaintCaption);
|
|
m_bOnlyMainWindow=pApp->GetProfileInt(m_sProfileName,
|
|
_T("OnlyMainWindow"),m_bOnlyMainWindow);
|
|
}
|
|
|
|
SetupCaptionPainting();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
BOOL COXCustomizeCaptionPage::OnCloseManager(BOOL bIsOk)
|
|
{
|
|
CWnd* pWnd=AfxGetMainWnd();
|
|
ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd()));
|
|
|
|
CWinApp* pApp=AfxGetApp();
|
|
ASSERT(pApp!=NULL);
|
|
|
|
|
|
if(bIsOk)
|
|
{
|
|
if(!m_sProfileName.IsEmpty())
|
|
{
|
|
pApp->WriteProfileInt(m_sProfileName,
|
|
_T("PaintCaption"),m_bPaintCaption);
|
|
pApp->WriteProfileInt(m_sProfileName,
|
|
_T("OnlyMainWindow"),m_bOnlyMainWindow);
|
|
|
|
SetupCaptionPainting();
|
|
m_captionPainterOrganizer.
|
|
SetCaptionInfo(NULL,&m_ActiveInfo,TRUE,TRUE);
|
|
m_captionPainterOrganizer.
|
|
SetCaptionInfo(NULL,&m_PassiveInfo,FALSE,TRUE);
|
|
//SetVars();
|
|
|
|
COXCaptionPainter* pCaptionPainter=m_captionPainterOrganizer.
|
|
GetPainter(pWnd);
|
|
if(pCaptionPainter!=NULL)
|
|
{
|
|
pCaptionPainter->SaveState(m_sProfileName);
|
|
// pCaptionPainter->LoadState(m_sProfileName);
|
|
}
|
|
//pWnd->PostMessage(WM_NCPAINT, 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(!m_sProfileName.IsEmpty())
|
|
{
|
|
m_bPaintCaption=pApp->GetProfileInt(m_sProfileName,
|
|
_T("PaintCaption"),m_bPaintCaption);
|
|
m_bOnlyMainWindow=pApp->GetProfileInt(m_sProfileName,
|
|
_T("OnlyMainWindow"),m_bOnlyMainWindow);
|
|
|
|
SetupCaptionPainting();
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
void COXCustomizeCaptionPage::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
COXCustomizePage::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(COXCustomizeCaptionPage)
|
|
DDX_Control(pDX, IDC_OX_BUTTON_SMALLTEXTFONT, m_btnSmallTextFont);
|
|
DDX_Control(pDX, IDC_OX_STATIC_PREVIEW, m_preview);
|
|
DDX_Control(pDX, IDC_OX_EDIT_NUMSHADES, m_ctlEditNumberShade);
|
|
DDX_Control(pDX, IDC_OX_COMBO_TEXT_ELLIPSIS, m_ctlComboTextEllipsis);
|
|
DDX_Control(pDX, IDC_OX_COMBO_TEXT_ALIGNMENT, m_ctlComboTextAlignment);
|
|
DDX_Control(pDX, IDC_OX_COMBO_GRADIENT_ALGORITHM, m_ctlComboGradientAlgorithm);
|
|
DDX_Control(pDX, IDC_OX_COMBO_GRADIENT_ALIGNMENT, m_ctlComboGradientAlignment);
|
|
DDX_Control(pDX, IDC_OX_COMBO_CAPTION_STATE, m_ctlComboCaptionState);
|
|
DDX_Control(pDX, IDC_OX_SPIN_NUMSHADES, m_spinNumberShade);
|
|
DDX_Control(pDX, IDC_OX_SEPARATOR_CAPTION, m_separator);
|
|
DDX_Control(pDX, IDC_OX_BUTTON_TEXTFONT, m_btnTextFont);
|
|
DDX_Control(pDX, IDC_OX_BUTTON_BACKCOLOR, m_btnBackColor);
|
|
DDX_Check(pDX, IDC_OX_CHECK_GRADIENT, m_bGradient);
|
|
DDX_CBIndex(pDX, IDC_OX_COMBO_CAPTION_STATE, m_nCaptionState);
|
|
DDX_CBIndex(pDX, IDC_OX_COMBO_GRADIENT_ALGORITHM, m_nGradientAlgorithm);
|
|
DDX_CBIndex(pDX, IDC_OX_COMBO_GRADIENT_ALIGNMENT, m_nGradientAlignment);
|
|
DDX_CBIndex(pDX, IDC_OX_COMBO_TEXT_ALIGNMENT, m_nTextAlignment);
|
|
DDX_CBIndex(pDX, IDC_OX_COMBO_TEXT_ELLIPSIS, m_nTextEllipsis);
|
|
DDX_Text(pDX, IDC_OX_EDIT_NUMSHADES, m_nNumberShade);
|
|
DDV_MinMaxUInt(pDX, m_nNumberShade, 1, 128);
|
|
DDX_Check(pDX, IDC_OX_CHECK_PAINT_CAPTION, m_bPaintCaption);
|
|
//}}AFX_DATA_MAP
|
|
DDX_ColorPicker(pDX, IDC_OX_BUTTON_BACKCOLOR, m_clrBackground);
|
|
DDX_FontPickerFont(pDX, IDC_OX_BUTTON_TEXTFONT, &m_font);
|
|
DDX_FontPickerColor(pDX, IDC_OX_BUTTON_TEXTFONT, m_clrText);
|
|
DDX_FontPickerFont(pDX, IDC_OX_BUTTON_SMALLTEXTFONT, &m_fontSmall);
|
|
DDX_FontPickerColor(pDX, IDC_OX_BUTTON_SMALLTEXTFONT, m_clrTextSmall);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(COXCustomizeCaptionPage, COXCustomizePage)
|
|
//{{AFX_MSG_MAP(COXCustomizeCaptionPage)
|
|
ON_BN_CLICKED(IDC_OX_BUTTON_BACKCOLOR, OnButtonBackcolor)
|
|
ON_BN_CLICKED(IDC_OX_BUTTON_TEXTFONT, OnButtonTextfont)
|
|
ON_BN_CLICKED(IDC_OX_CHECK_GRADIENT, OnCheckGradient)
|
|
ON_CBN_SELCHANGE(IDC_OX_COMBO_CAPTION_STATE, OnSelchangeComboCaptionState)
|
|
ON_CBN_SELCHANGE(IDC_OX_COMBO_GRADIENT_ALGORITHM, OnSelchangeComboGradientAlgorithm)
|
|
ON_CBN_SELCHANGE(IDC_OX_COMBO_GRADIENT_ALIGNMENT, OnSelchangeComboGradientAlignment)
|
|
ON_CBN_SELCHANGE(IDC_OX_COMBO_TEXT_ALIGNMENT, OnSelchangeComboTextAlignment)
|
|
ON_CBN_SELCHANGE(IDC_OX_COMBO_TEXT_ELLIPSIS, OnSelchangeComboTextEllipsis)
|
|
ON_EN_CHANGE(IDC_OX_EDIT_NUMSHADES, OnChangeEditNumshades)
|
|
ON_BN_CLICKED(IDC_OX_BUTTON_SMALLTEXTFONT, OnButtonSmalltextfont)
|
|
ON_BN_CLICKED(IDC_OX_CHECK_PAINT_CAPTION, OnCheckPaintCaption)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// COXCustomizeCaptionPage message handlers
|
|
|
|
BOOL COXCustomizeCaptionPage::Load(const COXCustomizeManager* pCustomizeManager)
|
|
{
|
|
// Call default implementation. It will load this demo dialog as the first
|
|
// page and will create About and CodeSample pages if specified.
|
|
if(!COXCustomizePage::Load(pCustomizeManager))
|
|
return FALSE;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
void COXCustomizeCaptionPage::Unload()
|
|
{
|
|
// add here code for cleaning up all objects created by demo
|
|
//
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
COXCustomizePage::Unload();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnInitDialog()
|
|
{
|
|
// must call default implementation
|
|
COXCustomizePage::OnInitDialog();
|
|
|
|
// add here initialization code for your demo dialog. Treat it as a
|
|
// normal CDialog::OnInitDialog function
|
|
|
|
m_btnTextFont.SetBuddy(IDC_OX_STATIC_TEXTFONT);
|
|
m_btnSmallTextFont.SetBuddy(IDC_OX_STATIC_SMALLTEXTFONT);
|
|
|
|
CString sText;
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_ACTIVESTATE));
|
|
m_ctlComboCaptionState.AddString(sText);//"Caption in active state"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_INACTIVESTATE));
|
|
m_ctlComboCaptionState.AddString(sText);//"Caption in inactive state"
|
|
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_LEFT));
|
|
m_ctlComboGradientAlignment.AddString(sText);//"Left"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_CENTER));
|
|
m_ctlComboGradientAlignment.AddString(sText);//"Center"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_RIGHT));
|
|
m_ctlComboGradientAlignment.AddString(sText);//"Right"
|
|
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_LINEAR));
|
|
m_ctlComboGradientAlgorithm.AddString(sText);//"Linear"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_SQUARE));
|
|
m_ctlComboGradientAlgorithm.AddString(sText);//"Square"
|
|
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_TOPLEFT));
|
|
m_ctlComboTextAlignment.AddString(sText);//"TopLeft"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_TOPCENTER));
|
|
m_ctlComboTextAlignment.AddString(sText);//"TopCenter"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_TOPRIGHT));
|
|
m_ctlComboTextAlignment.AddString(sText);//"TopRight"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_CENTERLEFT));
|
|
m_ctlComboTextAlignment.AddString(sText);//"CenterLeft"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_CENTER));
|
|
m_ctlComboTextAlignment.AddString(sText);//"Center"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_CENTERRIGHT));
|
|
m_ctlComboTextAlignment.AddString(sText);//"CenterRight"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_BOTTOMLEFT));
|
|
m_ctlComboTextAlignment.AddString(sText);//"BottomLeft"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_BOTTOMCENTER));
|
|
m_ctlComboTextAlignment.AddString(sText);//"BottomCenter"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_BOTTOMRIGHT));
|
|
m_ctlComboTextAlignment.AddString(sText);//"BottomRight"
|
|
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_NONE));
|
|
m_ctlComboTextEllipsis.AddString(sText);//"None"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_END));
|
|
m_ctlComboTextEllipsis.AddString(sText);//"End"
|
|
VERIFY(sText.LoadString(IDS_OX_CSMZECAPTION_PATH));
|
|
m_ctlComboTextEllipsis.AddString(sText);//"Path"
|
|
|
|
m_nCaptionState=0;
|
|
|
|
// spin control
|
|
GetVars();
|
|
m_spinNumberShade.SetRange(1,128);
|
|
|
|
|
|
// layout
|
|
//
|
|
m_LayoutManager.TieChild(&m_ctlComboCaptionState,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
m_LayoutManager.TieChild(&m_separator,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
|
|
m_LayoutManager.TieChild(IDC_OX_STATIC_TEXTFONT,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
m_LayoutManager.TieChild(IDC_OX_STATIC_SMALLTEXTFONT,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
|
|
m_LayoutManager.TieChild(IDC_OX_GRADIENT_GROUP,OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
m_LayoutManager.TieChild(&m_ctlComboGradientAlignment,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
m_LayoutManager.TieChild(&m_ctlComboGradientAlgorithm,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT,OX_LMT_SAME);
|
|
|
|
m_LayoutManager.TieChild(IDC_OX_PREVIEW_GROUP,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT|OX_LMS_BOTTOM,OX_LMT_SAME);
|
|
m_LayoutManager.TieChild(IDC_OX_STATIC_PREVIEW,
|
|
OX_LMS_LEFT|OX_LMS_RIGHT|OX_LMS_BOTTOM,OX_LMT_SAME);
|
|
//
|
|
///////////////////////////////////////
|
|
OnCheckPaintCaption();
|
|
UpdateData();
|
|
GetVars();
|
|
|
|
m_bInitialized=TRUE;
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnButtonBackcolor()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnButtonTextfont()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
UpdateData(TRUE);
|
|
if(m_clrTextSmall!=m_clrText)
|
|
{
|
|
m_clrTextSmall=m_clrText;
|
|
}
|
|
UpdateData(FALSE);
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnCheckGradient()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
ShowControls();
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnSelchangeComboCaptionState()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
if(!UpdateData(TRUE))
|
|
return;
|
|
// SetVars();
|
|
GetVars(FALSE);
|
|
// UpdateData(FALSE);
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnSelchangeComboGradientAlgorithm()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnSelchangeComboGradientAlignment()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnSelchangeComboTextAlignment()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnSelchangeComboTextEllipsis()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
SetVars();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnChangeEditNumshades()
|
|
{
|
|
// TODO: If this is a RICHEDIT control, the control will not
|
|
// send this notification unless you override the COXCustomizePage::OnInitDialog()
|
|
// function and call CRichEditCtrl().SetEventMask()
|
|
// with the ENM_CHANGE flag ORed into the mask.
|
|
|
|
// TODO: Add your control notification handler code here
|
|
|
|
if(m_bInitialized)
|
|
SetVars();
|
|
}
|
|
|
|
|
|
void COXCustomizeCaptionPage::GetVars(BOOL bLoad)
|
|
{
|
|
CWnd* pWnd=AfxGetMainWnd();
|
|
ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd()));
|
|
|
|
COXCaptionPainter* pCaptionPainter=m_captionPainterOrganizer.
|
|
GetPainter(pWnd);
|
|
BOOL bActive=(m_ctlComboCaptionState.GetCurSel()==NULL)?TRUE:FALSE;
|
|
COXCaptionInfo* pCI=NULL;
|
|
|
|
if(bLoad && (pCaptionPainter!=NULL))
|
|
{
|
|
pCI=pCaptionPainter->GetCaptionInfo(TRUE);
|
|
ASSERT(pCI);
|
|
m_ActiveInfo=*pCI;
|
|
pCI=pCaptionPainter->GetCaptionInfo(FALSE);
|
|
ASSERT(pCI);
|
|
m_PassiveInfo=*pCI;
|
|
}
|
|
pCI=bActive?&m_ActiveInfo:&m_PassiveInfo;
|
|
|
|
m_bGradient=pCI->GetGradient();
|
|
m_nGradientAlgorithm=pCI->GetGradientAlgorithm();
|
|
m_nGradientAlignment=pCI->GetGradientAlignment();
|
|
|
|
UINT nTextFormat=pCI->GetTextFormat();
|
|
if(nTextFormat&DT_END_ELLIPSIS)
|
|
m_nTextEllipsis=1;
|
|
else if(nTextFormat&DT_PATH_ELLIPSIS)
|
|
m_nTextEllipsis=2;
|
|
else
|
|
m_nTextEllipsis=0;
|
|
|
|
if(nTextFormat&DT_VCENTER)
|
|
{
|
|
if(nTextFormat&DT_CENTER)
|
|
m_nTextAlignment=4;
|
|
else if(nTextFormat&DT_RIGHT)
|
|
m_nTextAlignment=5;
|
|
else
|
|
m_nTextAlignment=3;
|
|
}
|
|
else if(nTextFormat&DT_BOTTOM)
|
|
{
|
|
if(nTextFormat&DT_CENTER)
|
|
m_nTextAlignment=7;
|
|
else if(nTextFormat&DT_RIGHT)
|
|
m_nTextAlignment=8;
|
|
else
|
|
m_nTextAlignment=6;
|
|
}
|
|
else
|
|
{
|
|
if(nTextFormat&DT_CENTER)
|
|
m_nTextAlignment=1;
|
|
else if(nTextFormat&DT_RIGHT)
|
|
m_nTextAlignment=2;
|
|
else
|
|
m_nTextAlignment=0;
|
|
}
|
|
|
|
m_clrBackground=pCI->GetBackgroundColor(m_nCaptionState==0 ? TRUE : FALSE);
|
|
|
|
|
|
m_clrText=pCI->GetTextColor(m_nCaptionState==0 ? TRUE : FALSE);
|
|
|
|
m_clrTextSmall=m_clrText;
|
|
|
|
m_nNumberShade=pCI->GetNumberShade();
|
|
|
|
LOGFONT lf;
|
|
VERIFY(pCI->GetCaptionLogFont(&lf));
|
|
if((HFONT)m_font!=NULL)
|
|
m_font.DeleteObject();
|
|
VERIFY(m_font.CreateFontIndirect(&lf));
|
|
|
|
VERIFY(pCI->GetSmCaptionLogFont(&lf));
|
|
if((HFONT)m_fontSmall!=NULL)
|
|
m_fontSmall.DeleteObject();
|
|
VERIFY(m_fontSmall.CreateFontIndirect(&lf));
|
|
|
|
UpdateData(FALSE);
|
|
|
|
ShowControls();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::SetVars()
|
|
{
|
|
if(!UpdateData())
|
|
return;
|
|
|
|
CWnd* pWnd=AfxGetMainWnd();
|
|
ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd()));
|
|
|
|
BOOL bActive=(m_ctlComboCaptionState.GetCurSel()==NULL)?TRUE:FALSE;
|
|
COXCaptionInfo* pCI=NULL;
|
|
|
|
pCI=bActive?&m_ActiveInfo:&m_PassiveInfo;
|
|
|
|
pCI->SetGradient(m_bGradient);
|
|
pCI->SetGradientAlgorithm(m_nGradientAlgorithm==0 ? ID_GRADIENT_LINEAR :
|
|
ID_GRADIENT_SQUARE);
|
|
pCI->SetGradientAlignment(m_nGradientAlignment==0 ? ID_GRADIENT_LEFT :
|
|
(m_nGradientAlignment==1 ? ID_GRADIENT_CENTER : ID_GRADIENT_RIGHT));
|
|
|
|
UINT nTextFormat=DT_SINGLELINE;
|
|
switch(m_nTextEllipsis)
|
|
{
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
nTextFormat|=DT_END_ELLIPSIS;
|
|
break;
|
|
case 2:
|
|
nTextFormat|=DT_PATH_ELLIPSIS;
|
|
break;
|
|
default:
|
|
ASSERT(FALSE);
|
|
}
|
|
|
|
switch(m_nTextAlignment)
|
|
{
|
|
case 0:
|
|
nTextFormat|=DT_TOP|DT_LEFT;
|
|
break;
|
|
case 1:
|
|
nTextFormat|=DT_TOP|DT_CENTER;
|
|
break;
|
|
case 2:
|
|
nTextFormat|=DT_TOP|DT_RIGHT;
|
|
break;
|
|
case 3:
|
|
nTextFormat|=DT_VCENTER|DT_LEFT;
|
|
break;
|
|
case 4:
|
|
nTextFormat|=DT_VCENTER|DT_CENTER;
|
|
break;
|
|
case 5:
|
|
nTextFormat|=DT_VCENTER|DT_RIGHT;
|
|
break;
|
|
case 6:
|
|
nTextFormat|=DT_BOTTOM|DT_LEFT;
|
|
break;
|
|
case 7:
|
|
nTextFormat|=DT_BOTTOM|DT_CENTER;
|
|
break;
|
|
case 8:
|
|
nTextFormat|=DT_BOTTOM|DT_RIGHT;
|
|
break;
|
|
}
|
|
pCI->SetTextFormat(nTextFormat);
|
|
|
|
pCI->SetBackgroundColor(m_clrBackground);
|
|
pCI->SetTextColor(m_clrText);
|
|
pCI->SetNumberShade(m_nNumberShade);
|
|
|
|
|
|
LOGFONT lf;
|
|
if(m_font.GetLogFont(&lf))
|
|
pCI->SetCaptionLogFont(&lf);
|
|
|
|
if(m_fontSmall.GetLogFont(&lf))
|
|
pCI->SetSmCaptionLogFont(&lf);
|
|
|
|
ShowControls();
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::ShowControls()
|
|
{
|
|
if(!UpdateData(TRUE))
|
|
return;
|
|
|
|
m_ctlComboGradientAlignment.EnableWindow(m_bGradient & m_bPaintCaption);
|
|
m_ctlComboGradientAlgorithm.EnableWindow(m_bGradient & m_bPaintCaption);
|
|
m_ctlEditNumberShade.EnableWindow(m_bGradient & m_bPaintCaption);
|
|
|
|
m_btnBackColor.SetDefaultColor(m_nCaptionState==0 ?
|
|
RGB(0,0,128) : RGB(128, 128, 128));
|
|
|
|
// update Preview Pane
|
|
if(m_bGradient)
|
|
{
|
|
m_preview.SetBackgroundFillType(m_nGradientAlignment==0 ? GRADIENT_LEFT :
|
|
(m_nGradientAlignment==1 ? GRADIENT_CENTER : GRADIENT_RIGHT));
|
|
}
|
|
else
|
|
{
|
|
m_preview.SetBackgroundFillType(NOGRADIENT);
|
|
}
|
|
|
|
m_preview.SetBkColor(m_clrBackground);
|
|
/////////////////////////
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
|
|
|
|
void COXCustomizeCaptionPage::OnButtonSmalltextfont()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
UpdateData(TRUE);
|
|
if(m_clrTextSmall!=m_clrText)
|
|
{
|
|
m_clrText=m_clrTextSmall;
|
|
}
|
|
UpdateData(FALSE);
|
|
SetVars();
|
|
}
|
|
|
|
|
|
void COXCustomizeCaptionPage::SetupCaptionPainting()
|
|
{
|
|
CWnd* pWnd=AfxGetMainWnd();
|
|
ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd()));
|
|
|
|
if(m_captionPainterOrganizer.IsAttachedAllInThread())
|
|
{
|
|
VERIFY(m_captionPainterOrganizer.DetachAllInThread());
|
|
}
|
|
else if(m_captionPainterOrganizer.IsAttached(pWnd))
|
|
{
|
|
VERIFY(m_captionPainterOrganizer.Detach(pWnd));
|
|
}
|
|
|
|
if(m_bPaintCaption)
|
|
{
|
|
if(m_bOnlyMainWindow)
|
|
{
|
|
VERIFY(m_captionPainterOrganizer.Attach(pWnd));
|
|
}
|
|
else
|
|
{
|
|
VERIFY(m_captionPainterOrganizer.AttachAllInThread());
|
|
}
|
|
|
|
if(!m_sProfileName.IsEmpty())
|
|
{
|
|
Sleep(10);
|
|
m_captionPainterOrganizer.LoadState(NULL,m_sProfileName);
|
|
}
|
|
}
|
|
}
|
|
|
|
void COXCustomizeCaptionPage::OnCheckPaintCaption()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
if(!UpdateData(TRUE))
|
|
return;
|
|
|
|
m_btnSmallTextFont.EnableWindow(m_bPaintCaption);
|
|
m_ctlEditNumberShade.EnableWindow(m_bPaintCaption);
|
|
m_ctlComboTextEllipsis.EnableWindow(m_bPaintCaption);
|
|
m_ctlComboTextAlignment.EnableWindow(m_bPaintCaption);
|
|
m_ctlComboGradientAlgorithm.EnableWindow(m_bPaintCaption);
|
|
m_ctlComboGradientAlignment.EnableWindow(m_bPaintCaption);
|
|
m_ctlComboCaptionState.EnableWindow(m_bPaintCaption);
|
|
m_spinNumberShade.EnableWindow(m_bPaintCaption);
|
|
m_btnTextFont.EnableWindow(m_bPaintCaption);
|
|
m_btnBackColor.EnableWindow(m_bPaintCaption);
|
|
|
|
GetDlgItem(IDC_OX_CHECK_GRADIENT)->EnableWindow(m_bPaintCaption);
|
|
|
|
}
|