1001 lines
28 KiB
C++
1001 lines
28 KiB
C++
|
|
// MainFrm.cpp : implementation of the CMainFrame class
|
||
|
|
//
|
||
|
|
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
|
||
|
|
// (c)1998-2008 Codejock Software, All Rights Reserved.
|
||
|
|
//
|
||
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
||
|
|
//
|
||
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||
|
|
// SINGLE COMPUTER.
|
||
|
|
//
|
||
|
|
// CONTACT INFORMATION:
|
||
|
|
// support@codejock.com
|
||
|
|
// http://www.codejock.com
|
||
|
|
//
|
||
|
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
#include "stdafx.h"
|
||
|
|
#include "CustomThemes.h"
|
||
|
|
|
||
|
|
#include "MainFrm.h"
|
||
|
|
|
||
|
|
#include "CustomControls.h"
|
||
|
|
#include "Themes.h"
|
||
|
|
|
||
|
|
|
||
|
|
#ifdef _DEBUG
|
||
|
|
#define new DEBUG_NEW
|
||
|
|
#undef THIS_FILE
|
||
|
|
static char THIS_FILE[] = __FILE__;
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
// CMainFrame
|
||
|
|
|
||
|
|
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
|
||
|
|
|
||
|
|
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
|
||
|
|
ON_WM_CREATE()
|
||
|
|
ON_COMMAND_RANGE(ID_SCROLL_ITEM1, ID_MULTICOLUMN_COLUMN2, OnScrollItem)
|
||
|
|
ON_COMMAND_RANGE(ID_BUTTON32799, ID_BUTTON32818, OnScrollItem)
|
||
|
|
ON_COMMAND_RANGE(ID_BACK, ID_VIEWS, OnScrollItem)
|
||
|
|
|
||
|
|
|
||
|
|
ON_UPDATE_COMMAND_UI_RANGE(ID_THEME_DEFAULT, ID_THEME_RIBBON, OnUpdateTheme)
|
||
|
|
ON_COMMAND_RANGE(ID_THEME_DEFAULT, ID_THEME_RIBBON, OnSwitchTheme)
|
||
|
|
ON_COMMAND(ID_THEME_CUSTOM, OnThemeCustom)
|
||
|
|
|
||
|
|
ON_COMMAND(ID_VIEW_OFFICE2007FRAME, OnViewOffice2007Frame)
|
||
|
|
ON_UPDATE_COMMAND_UI(ID_VIEW_OFFICE2007FRAME, OnUpdateViewOffice2007Frame)
|
||
|
|
|
||
|
|
ON_COMMAND(ID_VIEW_TEXTBELOWICONS, OnTextBelow)
|
||
|
|
ON_UPDATE_COMMAND_UI(ID_VIEW_TEXTBELOWICONS, OnUpdateTextBelow)
|
||
|
|
|
||
|
|
ON_COMMAND(ID_VIEW_RIGHTTOLEFT, OnOptionsRighttoleft)
|
||
|
|
ON_UPDATE_COMMAND_UI(ID_VIEW_RIGHTTOLEFT, OnUpdateOptionsRighttoleft)
|
||
|
|
|
||
|
|
|
||
|
|
ON_COMMAND_EX(ID_VIEW_MESSAGE_BAR, CFrameWnd::OnBarCheck)
|
||
|
|
ON_UPDATE_COMMAND_UI(ID_VIEW_MESSAGE_BAR, CFrameWnd::OnUpdateControlBarMenu)
|
||
|
|
|
||
|
|
ON_WM_CLOSE()
|
||
|
|
|
||
|
|
ON_COMMAND_RANGE(ID_SAVEAS_XML, ID_SAVEAS_BINARY, OnSaveAs)
|
||
|
|
ON_UPDATE_COMMAND_UI_RANGE(ID_SAVEAS_XML, ID_SAVEAS_BINARY, OnUpdateSaveAs)
|
||
|
|
|
||
|
|
|
||
|
|
ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize)
|
||
|
|
|
||
|
|
ON_XTP_EXECUTE(ID_EDIT_STATE, OnEditState)
|
||
|
|
ON_UPDATE_COMMAND_UI(ID_EDIT_STATE, OnUpdateEditState)
|
||
|
|
ON_XTP_EXECUTE(ID_FILE_NEW, OnFileNew)
|
||
|
|
|
||
|
|
ON_XTP_CREATECONTROL()
|
||
|
|
ON_XTP_CREATECOMMANDBAR()
|
||
|
|
|
||
|
|
ON_XTP_EXECUTE_RANGE(ID_TASKPANEL_NEWDOCUMENT, ID_TASKPANEL_SEARCH, OnTaskPanelCaption)
|
||
|
|
ON_UPDATE_COMMAND_UI_RANGE(ID_TASKPANEL_NEWDOCUMENT, ID_TASKPANEL_SEARCH, OnUpdateTaskPanelCaption)
|
||
|
|
ON_MESSAGE(WM_XTP_CONTROLRBUTTONUP, OnControlRButtonUp)
|
||
|
|
|
||
|
|
|
||
|
|
ON_XTP_EXECUTE(ID_COMBO_DATE, OnComboDate)
|
||
|
|
ON_UPDATE_COMMAND_UI(ID_COMBO_DATE, OnUpdateComboDate)
|
||
|
|
|
||
|
|
|
||
|
|
END_MESSAGE_MAP()
|
||
|
|
|
||
|
|
static UINT indicators[] =
|
||
|
|
{
|
||
|
|
ID_SEPARATOR, // status line indicator
|
||
|
|
ID_INDICATOR_CAPS,
|
||
|
|
ID_INDICATOR_NUM,
|
||
|
|
ID_INDICATOR_SCRL,
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
static UINT uHideCmds[] =
|
||
|
|
{
|
||
|
|
ID_FILE_CLOSE,
|
||
|
|
ID_FILE_SAVE_AS,
|
||
|
|
ID_FILE_PRINT_PREVIEW,
|
||
|
|
ID_FILE_PRINT_SETUP,
|
||
|
|
ID_WINDOW_CASCADE,
|
||
|
|
ID_WINDOW_TILE_HORZ,
|
||
|
|
ID_WINDOW_ARRANGE,
|
||
|
|
ID_SCROLL_ITEM21,
|
||
|
|
ID_SCROLL_ITEM22,
|
||
|
|
ID_SCROLL_ITEM23,
|
||
|
|
ID_SCROLL_ITEM24,
|
||
|
|
ID_SCROLL_ITEM25,
|
||
|
|
ID_SCROLL_ITEM26
|
||
|
|
};
|
||
|
|
|
||
|
|
LPCTSTR lpszProfileName = _T("CommandBars_ver13");
|
||
|
|
|
||
|
|
#define IDR_COLORTEXT_POPUP 1000
|
||
|
|
#define IDR_COLORBACK_POPUP 1001
|
||
|
|
|
||
|
|
// CMainFrame construction/destruction
|
||
|
|
|
||
|
|
CMainFrame::CMainFrame()
|
||
|
|
{
|
||
|
|
m_nState = 0;
|
||
|
|
m_nIDSaveAs = ID_SAVEAS_XML;
|
||
|
|
m_dt = COleDateTime::GetCurrentTime();
|
||
|
|
m_nCurrentTheme = ID_THEME_OFFICE_XP;
|
||
|
|
|
||
|
|
m_bOffice2007Frame = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
CMainFrame::~CMainFrame()
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||
|
|
{
|
||
|
|
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
|
||
|
|
return -1;
|
||
|
|
|
||
|
|
if (!m_wndStatusBar.Create(this) ||
|
||
|
|
!m_wndStatusBar.SetIndicators(indicators,
|
||
|
|
sizeof(indicators)/sizeof(UINT)))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create status bar\n");
|
||
|
|
return -1; // fail to create
|
||
|
|
}
|
||
|
|
|
||
|
|
// Initialize command bars. Command bars must be created and initialized
|
||
|
|
// after all standard MFC control bars have been created.
|
||
|
|
if (!InitCommandBars())
|
||
|
|
return -1;
|
||
|
|
|
||
|
|
// Set the default theme to Office XP.
|
||
|
|
CXTPPaintManager::SetTheme(xtpThemeOfficeXP);
|
||
|
|
|
||
|
|
// Get a pointer to the command bars object.
|
||
|
|
CXTPCommandBars* pCommandBars = GetCommandBars();
|
||
|
|
|
||
|
|
// create the menubar.
|
||
|
|
CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_CUSTOMTYPE);
|
||
|
|
pMenuBar->SetFlags(xtpFlagIgnoreSetMenuMessage);
|
||
|
|
|
||
|
|
// create the standard toolbar.
|
||
|
|
CXTPToolBar* pStandardBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop);
|
||
|
|
if (!pStandardBar || !pStandardBar->LoadToolBar(IDR_MAINFRAME))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create toolbar\n");
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// create the left docked toolbar.
|
||
|
|
CXTPToolBar* pLeftBar = (CXTPToolBar*)pCommandBars->Add(_T("Left Bar"), xtpBarLeft);
|
||
|
|
if (!pLeftBar || !pLeftBar->LoadToolBar(IDR_LEFT))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create toolbar\n");
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// create the combo box toolbar.
|
||
|
|
CXTPToolBar* pComboBoxBar = (CXTPToolBar*)pCommandBars->Add(_T("ComboBox Bar"), xtpBarBottom);
|
||
|
|
if (!pComboBoxBar || !pComboBoxBar->LoadToolBar(IDR_COMBOBOX_BAR))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create toolbar\n");
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// create the theme toolbar.
|
||
|
|
CXTPToolBar* pThemeBar = (CXTPToolBar*)pCommandBars->Add(_T("Theme Bar"), xtpBarTop);
|
||
|
|
if (!pThemeBar || !pThemeBar->LoadToolBar(IDR_SWITCH))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create toolbar\n");
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// create the custom toolbar.
|
||
|
|
CXTPToolBar* pCustomBar = (CXTPToolBar*)pCommandBars->Add(_T("Custom Bar"), xtpBarTop);
|
||
|
|
if (!pCustomBar || !pCustomBar->LoadToolBar(IDR_CUSTOM))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create toolbar\n");
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Dock to the right of...
|
||
|
|
DockRightOf(pCustomBar, pStandardBar);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// create the 24 bit icon toolbar.
|
||
|
|
CXTPToolBar* p24BitIconBar = (CXTPToolBar*)pCommandBars->Add(_T("26bit Icons Bar"), xtpBarTop);
|
||
|
|
if (!p24BitIconBar || !p24BitIconBar->LoadToolBar(IDR_EXPLORER_BAR))
|
||
|
|
{
|
||
|
|
TRACE0("Failed to create toolbar\n");
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Dock to the right of...
|
||
|
|
DockRightOf(p24BitIconBar, pThemeBar);
|
||
|
|
|
||
|
|
CXTPDialogBar* pBar = (CXTPDialogBar*)pCommandBars->Add(_T("Task Panel"), xtpBarRight, RUNTIME_CLASS(CXTPDialogBar));
|
||
|
|
pBar->SetBarID(200);
|
||
|
|
pBar->EnableDocking(xtpFlagAlignAny|xtpFlagFloating|xtpFlagStretched);
|
||
|
|
pBar->SetCaption(_T("&New Document"));
|
||
|
|
pBar->ModifyStyle(0, WS_CLIPCHILDREN|WS_CLIPSIBLINGS);
|
||
|
|
|
||
|
|
m_wndTaskPanel.Create(pBar);
|
||
|
|
pBar->SetChild(&m_wndTaskPanel);
|
||
|
|
pBar->SetCaptionPopup(IDR_MENU_TASKPANEL);
|
||
|
|
m_wndTaskPanel.SetTheme(XTPPaintManager()->BaseTheme());
|
||
|
|
|
||
|
|
pCommandBars->GetCommandBarsOptions()->animationType = xtpAnimateWindowsDefault;
|
||
|
|
pCommandBars->GetCommandBarsOptions()->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault);
|
||
|
|
|
||
|
|
CXTPControlWindowList::m_bShowRadioButtons = TRUE;
|
||
|
|
|
||
|
|
pCommandBars->GetContextMenus()->Add(IDR_CONTEXT_MENU);
|
||
|
|
pCommandBars->GetShortcutManager()->SetAccelerators(IDR_MAINFRAME);
|
||
|
|
|
||
|
|
// Load the saved toolbar layout.
|
||
|
|
LoadCommandBars(lpszProfileName);
|
||
|
|
|
||
|
|
|
||
|
|
if (!m_wndMessageBar.Create(GetCommandBars()))
|
||
|
|
return -1;
|
||
|
|
|
||
|
|
m_wndMessageBar.AddButton(SC_CLOSE, NULL, _T("Close Message Bar"));
|
||
|
|
m_wndMessageBar.AddButton(XTP_ID_CUSTOMIZE, _T("Options..."));
|
||
|
|
m_wndMessageBar.SetMessage(_T("Security Warning. Certain content has been disabled"));
|
||
|
|
m_wndMessageBar.ShowWindow(SW_HIDE);
|
||
|
|
|
||
|
|
|
||
|
|
// Initialize intelligent menus.
|
||
|
|
pCommandBars->GetCommandBarsOptions()->bAlwaysShowFullMenus = FALSE;
|
||
|
|
pCommandBars->HideCommands(uHideCmds, _countof(uHideCmds));
|
||
|
|
|
||
|
|
// Toggle floating by double click
|
||
|
|
pCommandBars->GetCommandBarsOptions()->bDblClickFloat = TRUE;
|
||
|
|
|
||
|
|
pCommandBars->GetToolTipContext()->SetStyle(xtpToolTipOffice);
|
||
|
|
|
||
|
|
// Change size of popup icons.
|
||
|
|
// pCommandBars->GetCommandBarsOptions()->szPopupIcons = CSize(20, 20);
|
||
|
|
|
||
|
|
m_wndClient.Attach(this);
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::DockRightOf(CXTPToolBar* pBarToDock, CXTPToolBar* pBarOnLeft)
|
||
|
|
{
|
||
|
|
RecalcLayout(TRUE);
|
||
|
|
CXTPWindowRect rcBar(pBarOnLeft);
|
||
|
|
rcBar.OffsetRect(rcBar.Width(), 0);
|
||
|
|
GetCommandBars()->DockCommandBar(pBarToDock, rcBar, pBarOnLeft->GetDockBar());
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
||
|
|
{
|
||
|
|
if( !CMDIFrameWnd::PreCreateWindow(cs) )
|
||
|
|
return FALSE;
|
||
|
|
|
||
|
|
cs.lpszClass = _T("XTPMainFrame");
|
||
|
|
CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass,
|
||
|
|
CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME));
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// CMainFrame diagnostics
|
||
|
|
|
||
|
|
#ifdef _DEBUG
|
||
|
|
void CMainFrame::AssertValid() const
|
||
|
|
{
|
||
|
|
CMDIFrameWnd::AssertValid();
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::Dump(CDumpContext& dc) const
|
||
|
|
{
|
||
|
|
CMDIFrameWnd::Dump(dc);
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif //_DEBUG
|
||
|
|
|
||
|
|
|
||
|
|
// CMainFrame message handlers
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::SetCustomTheme(CXTPPaintManager* pTheme)
|
||
|
|
{
|
||
|
|
CXTPPaintManager::SetCustomTheme(pTheme);
|
||
|
|
|
||
|
|
if ((pTheme->BaseTheme() == xtpThemeOffice2007 || pTheme->BaseTheme() == xtpThemeRibbon) &&
|
||
|
|
(m_bOffice2007Frame == 2 || m_bOffice2007Frame == 1))
|
||
|
|
{
|
||
|
|
EnableOffice2007Frame(GetCommandBars());
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
EnableOffice2007Frame(0);
|
||
|
|
}
|
||
|
|
|
||
|
|
m_wndTaskPanel.SetTheme(XTPPaintManager()->BaseTheme());
|
||
|
|
GetCommandBars()->RedrawCommandBars();
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnThemeCustom()
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateTheme(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
pCmdUI->SetCheck(pCmdUI->m_nID == m_nCurrentTheme ? TRUE : FALSE);
|
||
|
|
}
|
||
|
|
void CMainFrame::OnSwitchTheme(UINT nTheme)
|
||
|
|
{
|
||
|
|
switch (nTheme)
|
||
|
|
{
|
||
|
|
case ID_THEME_DEFAULT: SetCustomTheme(new CXTPDefaultTheme()); break;
|
||
|
|
case ID_THEME_OFFICE_XP: SetCustomTheme(new CXTPOfficeTheme()); break;
|
||
|
|
case ID_THEME_OFFICE_2003: SetCustomTheme(new CXTPOffice2003Theme()); break;
|
||
|
|
case ID_THEME_WINDOWS_XP: SetCustomTheme(new CXTPNativeXPTheme()); break;
|
||
|
|
case ID_THEME_RIBBON: SetCustomTheme(new CXTPRibbonTheme()); break;
|
||
|
|
case ID_THEME_OFFICE2007: SetCustomTheme(new CXTPOffice2007Theme()); break;
|
||
|
|
case ID_THEME_VISUALSTUDIO2008: SetCustomTheme(new CXTPVisualStudio2008Theme()); break;
|
||
|
|
|
||
|
|
case ID_THEME_MAC: SetCustomTheme(new CCustomMacTheme()); break;
|
||
|
|
case ID_THEME_GRAY: SetCustomTheme(new CCustomGrayTheme()); break;
|
||
|
|
case ID_THEME_ICY: SetCustomTheme(new CCustomIcyTheme()); break;
|
||
|
|
case ID_THEME_GRAD: SetCustomTheme(new CCustomGradientTheme()); break;
|
||
|
|
case ID_THEME_BEVEL: SetCustomTheme(new CCustomBevelTheme()); break;
|
||
|
|
case ID_THEME_FANCY: SetCustomTheme(new CCustomFancyTheme()); break;
|
||
|
|
case ID_THEME_ACD: SetCustomTheme(new CCustomBackgroundTheme()); break;
|
||
|
|
}
|
||
|
|
|
||
|
|
m_nCurrentTheme = nTheme;
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnViewOffice2007Frame()
|
||
|
|
{
|
||
|
|
m_bOffice2007Frame = m_bOffice2007Frame + 1;
|
||
|
|
if (m_bOffice2007Frame == 3) m_bOffice2007Frame = 0;
|
||
|
|
|
||
|
|
OnSwitchTheme(m_nCurrentTheme);
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateViewOffice2007Frame(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
if (m_nCurrentTheme == ID_THEME_RIBBON || m_nCurrentTheme == ID_THEME_OFFICE2007)
|
||
|
|
{
|
||
|
|
pCmdUI->Enable(TRUE);
|
||
|
|
pCmdUI->SetCheck(m_bOffice2007Frame);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
pCmdUI->Enable(FALSE);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::OnScrollItem(UINT)
|
||
|
|
{
|
||
|
|
// TODO: Add your command handler code here
|
||
|
|
}
|
||
|
|
|
||
|
|
BOOL GetAppDataFolder(CString& strAppDataFolder)
|
||
|
|
{
|
||
|
|
OSVERSIONINFO versionInfo = { sizeof(OSVERSIONINFO) };
|
||
|
|
if (!(GetVersionEx(&versionInfo) && versionInfo.dwPlatformId >= VER_PLATFORM_WIN32_NT && versionInfo.dwMajorVersion >= 5))
|
||
|
|
return FALSE;
|
||
|
|
|
||
|
|
LPITEMIDLIST pidlAppData = NULL;
|
||
|
|
IMalloc * pMalloc = NULL;
|
||
|
|
BOOL bResult = FALSE;
|
||
|
|
|
||
|
|
HRESULT hr = SHGetMalloc(&pMalloc);
|
||
|
|
if (SUCCEEDED(hr))
|
||
|
|
{
|
||
|
|
TCHAR szPath[MAX_PATH];
|
||
|
|
if (SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidlAppData) == NOERROR )
|
||
|
|
{
|
||
|
|
if (SHGetPathFromIDList( pidlAppData, szPath))
|
||
|
|
{
|
||
|
|
strAppDataFolder = szPath;
|
||
|
|
bResult = TRUE;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
pMalloc->Free(pidlAppData);
|
||
|
|
pMalloc->Release();
|
||
|
|
|
||
|
|
}
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnClose()
|
||
|
|
{
|
||
|
|
CString strAppDataFolder;
|
||
|
|
|
||
|
|
if (GetAppDataFolder(strAppDataFolder))
|
||
|
|
{
|
||
|
|
CreateDirectory(strAppDataFolder + _T("\\") + AfxGetApp()->m_pszAppName, NULL);
|
||
|
|
|
||
|
|
// Set customization path as "\Documents and Settings\user\Application Data\CustomThemes\CommandBars_ver6"
|
||
|
|
GetCommandBars()->SetCustomizationDataFileName(strAppDataFolder + _T("\\") + AfxGetApp()->m_pszAppName + _T("\\") + lpszProfileName);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
SaveCommandBars(lpszProfileName);
|
||
|
|
|
||
|
|
CMDIFrameWnd::OnClose();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::OnCustomize()
|
||
|
|
{
|
||
|
|
CXTPCustomizeSheet cs(GetCommandBars());
|
||
|
|
|
||
|
|
CXTPCustomizeKeyboardPage pageKeyboard(&cs);
|
||
|
|
pageKeyboard.AddCategories(IDR_CUSTOMTYPE);
|
||
|
|
cs.AddPage(&pageKeyboard);
|
||
|
|
|
||
|
|
CXTPCustomizeMenusPage pageMenus(&cs);
|
||
|
|
cs.AddPage(&pageMenus);
|
||
|
|
|
||
|
|
CXTPCustomizeOptionsPage pageOptions(&cs);
|
||
|
|
cs.AddPage(&pageOptions);
|
||
|
|
|
||
|
|
CXTPCustomizeCommandsPage* pCommands = cs.GetCommandsPage();
|
||
|
|
pCommands->AddCategories(IDR_CUSTOMTYPE);
|
||
|
|
pCommands->GetControls(_T("File"))->Add(xtpControlButton, ID_FILE_OPEN, _T(""), 1);
|
||
|
|
|
||
|
|
pCommands->AddToolbarCategory(_T("Themes"), IDR_SWITCH);
|
||
|
|
|
||
|
|
pCommands->InsertAllCommandsCategory();
|
||
|
|
pCommands->InsertBuiltInMenus(IDR_CUSTOMTYPE);
|
||
|
|
pCommands->InsertNewMenuCategory();
|
||
|
|
|
||
|
|
CXTPControls* pControls = pCommands->GetControls(_T("Test"));
|
||
|
|
ASSERT(pControls);
|
||
|
|
pControls->Add(xtpControlButton, ID_FILE_NEW);
|
||
|
|
pControls->Add(xtpControlPopup, ID_TOOLS_HEX);
|
||
|
|
pControls->Add(xtpControlButtonPopup, ID_TOOLS_HEX);
|
||
|
|
pControls->Add(xtpControlSplitButtonPopup, ID_TOOLS_HEX);
|
||
|
|
|
||
|
|
CXTPControl* pControlState = GetCommandBars()->FindControl(xtpControlComboBox, ID_EDIT_STATE, FALSE, TRUE);
|
||
|
|
if (pControlState) pControls->AddClone(pControlState, 4);
|
||
|
|
|
||
|
|
CXTPControl* pControlNew = GetCommandBars()->FindControl(xtpControlEdit, ID_FILE_NEW, FALSE, TRUE);
|
||
|
|
if (pControlNew) pControls->AddClone(pControlNew, 6);
|
||
|
|
|
||
|
|
cs.DoModal();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
int CMainFrame::OnCreateCommandBar(LPCREATEBARSTRUCT lpCreatePopup)
|
||
|
|
{
|
||
|
|
if (lpCreatePopup->bTearOffBar && (lpCreatePopup->nID == IDR_COLORTEXT_POPUP || lpCreatePopup->nID == IDR_COLORBACK_POPUP))
|
||
|
|
{
|
||
|
|
CXTPToolBar* pToolBar = DYNAMIC_DOWNCAST(CXTPToolBar, lpCreatePopup->pCommandBar);
|
||
|
|
ASSERT(pToolBar);
|
||
|
|
|
||
|
|
// Prevent docking.
|
||
|
|
pToolBar->EnableDocking(xtpFlagFloating);
|
||
|
|
// Prevent customization
|
||
|
|
pToolBar->EnableCustomization(FALSE);
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
return FALSE;
|
||
|
|
}
|
||
|
|
|
||
|
|
int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
|
||
|
|
{
|
||
|
|
if (lpCreateControl->bToolBar == FALSE)
|
||
|
|
{
|
||
|
|
if (lpCreateControl->controlType == xtpControlPopup && lpCreateControl->strCaption == _T("&Open..."))
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlSplitButtonPopup;
|
||
|
|
lpCreateControl->nID = ID_FILE_OPEN;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
if (lpCreateControl->controlType == xtpControlButton && lpCreateControl->nID == ID_TOOLS_HEX)
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlSplitButtonPopup;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_MULTICOLUMN_COLUMN1 || lpCreateControl->nID == ID_MULTICOLUMN_COLUMN2)
|
||
|
|
{
|
||
|
|
lpCreateControl->pControl = new CXTPControlLabel();
|
||
|
|
lpCreateControl->pControl->SetItemDefault(TRUE);
|
||
|
|
lpCreateControl->pControl->SetStyle(xtpButtonCaption);
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->controlType == xtpControlButton && lpCreateControl->nID == ID_EDIT_FIND)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboFind = (CXTPControlComboBox*)CXTPControlComboBox::CreateObject();
|
||
|
|
pComboFind->SetDropDownListStyle();
|
||
|
|
pComboFind->SetEditHint(_T("Click to find string"));
|
||
|
|
|
||
|
|
pComboFind->AddString(_T("Line1"));
|
||
|
|
pComboFind->AddString(_T("Line2"));
|
||
|
|
pComboFind->AddString(_T("Line3"));
|
||
|
|
|
||
|
|
pComboFind->SetWidth(150);
|
||
|
|
pComboFind->SetCaption(_T("Find"));
|
||
|
|
pComboFind->SetStyle(xtpComboLabel);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pComboFind;
|
||
|
|
return TRUE;
|
||
|
|
|
||
|
|
}
|
||
|
|
if (lpCreateControl->nID == ID_PARA_INDENT)
|
||
|
|
{
|
||
|
|
CXTPControlEdit* pControl = new CXTPControlEdit();
|
||
|
|
pControl->SetWidth(133);
|
||
|
|
pControl->ShowSpinButtons();
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pControl;
|
||
|
|
return TRUE;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
CXTPToolBar* pToolBar = DYNAMIC_DOWNCAST(CXTPToolBar, lpCreateControl->pCommandBar);
|
||
|
|
if (!pToolBar)
|
||
|
|
return FALSE;
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_FILE_PRINT_EX && pToolBar->GetBarID() == IDR_LEFT)
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlSplitButtonPopup;
|
||
|
|
lpCreateControl->buttonStyle = xtpButtonIconAndCaption;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
if (lpCreateControl->nID == IDR_MENU_POPUP && pToolBar->GetBarID() == IDR_LEFT)
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlPopup;
|
||
|
|
lpCreateControl->buttonStyle = xtpButtonIconAndCaption;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
if (lpCreateControl->nID == ID_TOOLS_HEX && pToolBar->GetBarID() == IDR_MAINFRAME)
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlSplitButtonPopup;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
if (lpCreateControl->nID == ID_FILE_NEW && pToolBar->GetBarID() == IDR_COMBOBOX_BAR)
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlEdit;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_THEME_CUSTOM)
|
||
|
|
{
|
||
|
|
lpCreateControl->buttonStyle = xtpButtonIconAndCaption;
|
||
|
|
lpCreateControl->controlType = xtpControlPopup;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
if (lpCreateControl->nID == ID_VIEW_OFFICE2007FRAME)
|
||
|
|
{
|
||
|
|
lpCreateControl->controlType = xtpControlCheckBox;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (pToolBar->GetBarID() == IDR_SWITCH && (lpCreateControl->nID >= ID_THEME_DEFAULT && lpCreateControl->nID <= ID_THEME_RIBBON))
|
||
|
|
{
|
||
|
|
lpCreateControl->buttonStyle = xtpButtonCaption;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_EDIT_FIND && pToolBar->GetBarID() == IDR_COMBOBOX_BAR)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboFind = new CXTPControlComboBox(GetCommandBars());
|
||
|
|
pComboFind->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
|
||
|
|
|
||
|
|
//pComboFind->SetListIconId(ID_FILE_NEW);
|
||
|
|
|
||
|
|
pComboFind->SetDropDownListStyle();
|
||
|
|
pComboFind->SetEditHint(_T("Click to find string"));
|
||
|
|
|
||
|
|
pComboFind->AddString(_T("Line1"));
|
||
|
|
pComboFind->AddString(_T("Line2"));
|
||
|
|
pComboFind->AddString(_T("Line3"));
|
||
|
|
|
||
|
|
pComboFind->SetWidth(150);
|
||
|
|
pComboFind->SetStyle(xtpButtonIconAndCaption);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pComboFind;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_COMBO_MASKED)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboMasked = (CXTPControlComboBox*)CControlComboBoxEx::CreateObject();
|
||
|
|
|
||
|
|
//pComboMasked->GetCommandBar()->SetCommandBars(GetCommandBars()); // Require to find Site.
|
||
|
|
//pComboMasked->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
|
||
|
|
|
||
|
|
pComboMasked->SetDropDownListStyle();
|
||
|
|
|
||
|
|
pComboMasked->AddString(_T("12:00:20:30"));
|
||
|
|
pComboMasked->AddString(_T("11:03:12:30"));
|
||
|
|
pComboMasked->AddString(_T("00:00:12:30"));
|
||
|
|
pComboMasked->AddString(_T("10:00:30:30"));
|
||
|
|
|
||
|
|
pComboMasked->SetWidth(130);
|
||
|
|
pComboMasked->SetStyle(xtpComboLabel);
|
||
|
|
pComboMasked->SetFlags(xtpFlagManualUpdate);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pComboMasked;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_COMBO_OWNERDRAW)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboCustomDraw = new CControlComboBoxCustomDraw(GetCommandBars());
|
||
|
|
|
||
|
|
pComboCustomDraw->SetDropDownListStyle();
|
||
|
|
pComboCustomDraw->SetWidth(130);
|
||
|
|
pComboCustomDraw->SetDropDownWidth(230);
|
||
|
|
pComboCustomDraw->SetStyle(xtpComboLabel);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pComboCustomDraw;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_COMBO_POPUP)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboPopup = (CXTPControlComboBox*)CControlComboBoxPopup::CreateObject();
|
||
|
|
|
||
|
|
CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars());
|
||
|
|
CMenu menu;
|
||
|
|
menu.LoadMenu(IDR_MENU_SAVEAS);
|
||
|
|
|
||
|
|
pPopupBar->LoadMenu(menu.GetSubMenu(0));
|
||
|
|
|
||
|
|
pComboPopup->SetCommandBar(pPopupBar);
|
||
|
|
|
||
|
|
pPopupBar->InternalRelease();
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
pComboPopup->SetWidth(130);
|
||
|
|
pComboPopup->SetStyle(xtpComboLabel);
|
||
|
|
pComboPopup->SetFlags(xtpFlagManualUpdate);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pComboPopup;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_COMBO_DATE)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pCombo = new CControlComboBoxDatePicker();
|
||
|
|
pCombo->SetWidth(100);
|
||
|
|
lpCreateControl->pControl = pCombo;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_EDIT_STATE && pToolBar->GetBarID() == IDR_COMBOBOX_BAR)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboState = (CXTPControlComboBox*)CXTPControlComboBox::CreateObject();
|
||
|
|
pComboState->AddString(_T("Debug"));
|
||
|
|
pComboState->AddString(_T("Release"));
|
||
|
|
pComboState->AddString(_T("Configuration Manager"));
|
||
|
|
pComboState->SetDropDownWidth(150);
|
||
|
|
lpCreateControl->pControl = pComboState;
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_COMBO_DISABLED && pToolBar->GetBarID() == IDR_COMBOBOX_BAR)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pComboDisable = (CXTPControlComboBox*)CXTPControlComboBox::CreateObject();
|
||
|
|
pComboDisable->SetStyle(xtpComboLabel);
|
||
|
|
lpCreateControl->pControl = pComboDisable;
|
||
|
|
return TRUE;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_BUTTONLINE && pToolBar->GetBarID() == IDR_CUSTOM)
|
||
|
|
{
|
||
|
|
CXTPControlPopup* pButtonLine = CXTPControlPopup::CreateControlPopup(xtpControlButtonPopup);
|
||
|
|
pButtonLine->SetFlags(xtpFlagManualUpdate);
|
||
|
|
|
||
|
|
CXTPPopupBar* pLineBar = (CXTPPopupBar*)CXTPPopupToolBar::CreateObject();
|
||
|
|
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(0.25), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(0.5), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(0.75), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(1), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(1.5), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(2.25), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(3), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(4.5), 0, _T(""), -1, FALSE);
|
||
|
|
pLineBar->GetControls()->Add(new CControlButtonLine(6), 0, _T(""), -1, FALSE);
|
||
|
|
|
||
|
|
pButtonLine->SetCommandBar(pLineBar);
|
||
|
|
pLineBar->InternalRelease();
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pButtonLine;
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_BUTTONSTYLE && pToolBar->GetBarID() == IDR_CUSTOM)
|
||
|
|
{
|
||
|
|
CXTPControlPopup* pButtonStyle = CXTPControlPopup::CreateControlPopup(xtpControlButtonPopup);
|
||
|
|
pButtonStyle->SetFlags(xtpFlagManualUpdate);
|
||
|
|
|
||
|
|
CXTPPopupBar* pStyleBar = (CXTPPopupBar*)CXTPPopupToolBar::CreateObject();
|
||
|
|
|
||
|
|
pStyleBar->GetControls()->Add(new CControlButtonStyle(0), 0, _T(""), -1, FALSE);
|
||
|
|
pStyleBar->GetControls()->Add(new CControlButtonStyle(1), 0, _T(""), -1, FALSE);
|
||
|
|
pStyleBar->GetControls()->Add(new CControlButtonStyle(2), 0, _T(""), -1, FALSE);
|
||
|
|
pStyleBar->GetControls()->Add(new CControlButtonStyle(3), 0, _T(""), -1, FALSE);
|
||
|
|
pStyleBar->GetControls()->Add(new CControlButtonStyle(4), 0, _T(""), -1, FALSE);
|
||
|
|
pStyleBar->GetControls()->Add(new CControlButtonStyle(5), 0, _T(""), -1, FALSE);
|
||
|
|
|
||
|
|
pButtonStyle->SetCommandBar(pStyleBar);
|
||
|
|
pStyleBar->InternalRelease();
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pButtonStyle;
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_BUTTONARROW && pToolBar->GetBarID() == IDR_CUSTOM)
|
||
|
|
{
|
||
|
|
CXTPControlPopup* pButtonArrow = CXTPControlPopup::CreateControlPopup(xtpControlButtonPopup);
|
||
|
|
pButtonArrow->SetFlags(xtpFlagManualUpdate);
|
||
|
|
|
||
|
|
CXTPPopupBar* pArrowBar = (CXTPPopupBar*)CXTPPopupToolBar::CreateObject();
|
||
|
|
|
||
|
|
pArrowBar->GetControls()->Add(new CControlButtonArrow(1), 0, _T(""), -1, FALSE);
|
||
|
|
pArrowBar->GetControls()->Add(new CControlButtonArrow(2), 0, _T(""), -1, FALSE);
|
||
|
|
pArrowBar->GetControls()->Add(new CControlButtonArrow(3), 0, _T(""), -1, FALSE);
|
||
|
|
pArrowBar->GetControls()->Add(new CControlButtonArrow(4), 0, _T(""), -1, FALSE);
|
||
|
|
CXTPControlButton* pOther =
|
||
|
|
(CXTPControlButton*)pArrowBar->GetControls()->Add(new CControlButtonArrow(0), 0, _T(""), -1, FALSE);
|
||
|
|
|
||
|
|
|
||
|
|
pOther->SetCaption(_T("Other Arrow..."));
|
||
|
|
pOther->SetBeginGroup(TRUE);
|
||
|
|
pOther->SetStyle(xtpButtonCaption);
|
||
|
|
|
||
|
|
pButtonArrow->SetCommandBar(pArrowBar);
|
||
|
|
pArrowBar->InternalRelease();
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pButtonArrow;
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_BUTTON_TEXT && pToolBar->GetBarID() == IDR_CUSTOM)
|
||
|
|
{
|
||
|
|
CXTPControlPopupColor* pPopupColor = new CXTPControlPopupColor();
|
||
|
|
|
||
|
|
CXTPPopupBar* pColorBar = (CXTPPopupBar*)CXTPPopupToolBar::CreateObject();
|
||
|
|
|
||
|
|
CXTPControlButtonColor* pButtonAutomatic = (CXTPControlButtonColor*)pColorBar->GetControls()->Add(new CXTPControlButtonColor(), ID_TEXT_AUTO);
|
||
|
|
pButtonAutomatic->SetColor(GetSysColor(COLOR_BTNTEXT));
|
||
|
|
|
||
|
|
pColorBar->GetControls()->Add(new CXTPControlColorSelector(), ID_SELECTOR_TEXT);
|
||
|
|
pColorBar->GetControls()->Add(new CXTPControlButtonColor(), ID_TEXT_MORE);
|
||
|
|
|
||
|
|
pPopupColor->SetCommandBar(pColorBar);
|
||
|
|
pColorBar->InternalRelease();
|
||
|
|
|
||
|
|
pColorBar->SetTearOffPopup(_T("Text Color"), IDR_COLORTEXT_POPUP, 0);
|
||
|
|
pColorBar->EnableCustomization(FALSE);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pPopupColor;
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lpCreateControl->nID == ID_BUTTON_BACK && pToolBar->GetBarID() == IDR_CUSTOM)
|
||
|
|
{
|
||
|
|
CXTPControlPopupColor* pPopupColorBack = new CXTPControlPopupColor();
|
||
|
|
|
||
|
|
CXTPPopupBar* pColorBar = (CXTPPopupBar*)CXTPPopupToolBar::CreateObject();
|
||
|
|
|
||
|
|
CXTPControlButtonColor* pButtonAutomatic = (CXTPControlButtonColor*)pColorBar->GetControls()->Add(new CXTPControlButtonColor(), ID_BACK_NONE);
|
||
|
|
pButtonAutomatic->SetColor(GetSysColor(COLOR_WINDOW));
|
||
|
|
|
||
|
|
pColorBar->GetControls()->Add(new CXTPControlColorSelector(), ID_SELECTOR_BACK);
|
||
|
|
pColorBar->GetControls()->Add(new CXTPControlButtonColor(), ID_BACK_MORE);
|
||
|
|
|
||
|
|
pPopupColorBack->SetCommandBar(pColorBar);
|
||
|
|
pColorBar->InternalRelease();
|
||
|
|
|
||
|
|
pColorBar->SetTearOffPopup(_T("Back Color"), IDR_COLORBACK_POPUP, 0);
|
||
|
|
pColorBar->EnableCustomization(FALSE);
|
||
|
|
|
||
|
|
lpCreateControl->pControl = pPopupColorBack;
|
||
|
|
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return FALSE;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::OnEditState(NMHDR* pNMHDR, LRESULT* pResult)
|
||
|
|
{
|
||
|
|
NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
|
||
|
|
|
||
|
|
CXTPControlComboBox* pControl = (CXTPControlComboBox*)tagNMCONTROL->pControl;
|
||
|
|
if (pControl->GetType() == xtpControlComboBox)
|
||
|
|
{
|
||
|
|
int nState = pControl->GetCurSel();
|
||
|
|
if (nState != 2)
|
||
|
|
{
|
||
|
|
m_nState = nState;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageBox(_T("Configuration Manager"));
|
||
|
|
pControl->SetCurSel(m_nState);
|
||
|
|
}
|
||
|
|
*pResult = TRUE; // Handled
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateEditState(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
CXTPControlComboBox* pStateCombo = DYNAMIC_DOWNCAST(CXTPControlComboBox, CXTPControl::FromUI(pCmdUI));
|
||
|
|
|
||
|
|
if (pStateCombo && !pStateCombo->HasFocus())
|
||
|
|
{
|
||
|
|
pStateCombo->SetCurSel(m_nState);
|
||
|
|
}
|
||
|
|
|
||
|
|
pCmdUI->Enable(TRUE);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::OnFileNew(NMHDR* pNMHDR, LRESULT* pResult)
|
||
|
|
{
|
||
|
|
NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
|
||
|
|
|
||
|
|
CXTPControlComboBox* pControl = (CXTPControlComboBox*)tagNMCONTROL->pControl;
|
||
|
|
if (pControl->GetType() == xtpControlEdit)
|
||
|
|
{
|
||
|
|
CString str = ((CXTPControlEdit*)pControl)->GetEditText();
|
||
|
|
|
||
|
|
CDocument* pDocument = ((CCustomThemesApp*)AfxGetApp())->m_pDocTemplate->OpenDocumentFile(NULL);
|
||
|
|
if (pDocument != NULL && str.GetLength() > 0)
|
||
|
|
{
|
||
|
|
pDocument->SetTitle(str);
|
||
|
|
}
|
||
|
|
|
||
|
|
*pResult = TRUE; // Handled
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
BOOL CMainFrame::OnTaskPanelCaption(UINT /*nID*/, NMHDR* pNMHDR, LRESULT* /*pResult*/)
|
||
|
|
{
|
||
|
|
CXTPControl* pControl = ((NMXTPCONTROL*)pNMHDR)->pControl;
|
||
|
|
CXTPDialogBar* pBar = DYNAMIC_DOWNCAST(CXTPDialogBar, GetCommandBars()->GetToolBar(200));
|
||
|
|
ASSERT(pBar);
|
||
|
|
|
||
|
|
pBar->SetCaption(pControl->GetCaption());
|
||
|
|
return 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateTaskPanelCaption(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
pCmdUI->Enable(TRUE);
|
||
|
|
|
||
|
|
CXTPDialogBar* pBar = DYNAMIC_DOWNCAST(CXTPDialogBar, GetCommandBars()->GetToolBar(200));
|
||
|
|
ASSERT(pBar);
|
||
|
|
|
||
|
|
CXTPControl* pControl = CXTPControl::FromUI(pCmdUI);
|
||
|
|
if (pControl)
|
||
|
|
{
|
||
|
|
pCmdUI->SetCheck(pControl->GetCaption() == pBar->GetCaption()? TRUE: FALSE);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::OnTextBelow()
|
||
|
|
{
|
||
|
|
GetCommandBars()->GetCommandBarsOptions()->bShowTextBelowIcons =
|
||
|
|
!GetCommandBars()->GetCommandBarsOptions()->bShowTextBelowIcons;
|
||
|
|
|
||
|
|
// or
|
||
|
|
// GetCommandBars()->GetAt(1)->ShowTextBelowIcons(TRUE);
|
||
|
|
|
||
|
|
GetCommandBars()->RedrawCommandBars();
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateTextBelow(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
pCmdUI->SetCheck(GetCommandBars()->GetCommandBarsOptions()->bShowTextBelowIcons);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CMainFrame::OnSaveAs(UINT nID)
|
||
|
|
{
|
||
|
|
m_nIDSaveAs = nID;
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateSaveAs(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
pCmdUI->SetCheck(pCmdUI->m_nID == m_nIDSaveAs? TRUE: FALSE);
|
||
|
|
}
|
||
|
|
|
||
|
|
LRESULT CMainFrame::OnControlRButtonUp(WPARAM, LPARAM lParam)
|
||
|
|
{
|
||
|
|
CXTPControl* pControl = (CXTPControl*)lParam;
|
||
|
|
|
||
|
|
UNUSED_ALWAYS(pControl);
|
||
|
|
|
||
|
|
return FALSE;
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnOptionsRighttoleft()
|
||
|
|
{
|
||
|
|
if (GetExStyle() & WS_EX_LAYOUTRTL)
|
||
|
|
{
|
||
|
|
GetCommandBars()->SetLayoutRTL(FALSE);
|
||
|
|
ModifyStyleEx(WS_EX_LAYOUTRTL, 0);
|
||
|
|
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
GetCommandBars()->SetLayoutRTL(TRUE);
|
||
|
|
ModifyStyleEx(0, WS_EX_LAYOUTRTL);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateOptionsRighttoleft(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
if (XTPSystemVersion()->IsLayoutRTLSupported())
|
||
|
|
{
|
||
|
|
pCmdUI->SetCheck(GetExStyle() & WS_EX_LAYOUTRTL ? TRUE : FALSE);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
pCmdUI->Enable(FALSE);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnComboDate(NMHDR* pNMHDR, LRESULT* pResult)
|
||
|
|
{
|
||
|
|
NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
|
||
|
|
|
||
|
|
CControlComboBoxDatePicker* pControl = DYNAMIC_DOWNCAST(CControlComboBoxDatePicker, tagNMCONTROL->pControl);
|
||
|
|
if (pControl)
|
||
|
|
{
|
||
|
|
m_dt = pControl->GetDate();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void CMainFrame::OnUpdateComboDate(CCmdUI* pCmdUI)
|
||
|
|
{
|
||
|
|
CControlComboBoxDatePicker* pControl = DYNAMIC_DOWNCAST(CControlComboBoxDatePicker, CXTPControl::FromUI(pCmdUI));
|
||
|
|
|
||
|
|
if (pControl)
|
||
|
|
{
|
||
|
|
pControl->SetDate(m_dt);
|
||
|
|
}
|
||
|
|
|
||
|
|
pCmdUI->Enable(TRUE);
|
||
|
|
}
|