// mainfrm.cpp // // (c)1998-2025 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 "wordpad.h" #include "mainfrm.h" #include "Galleryitems.h" #include "wordpdoc.h" #include "wordpvw.h" #include "strings.h" #include "colorlis.h" #include "ControlSelector.h" #ifndef WM_DWMCOLORIZATIONCOLORCHANGED # define WM_DWMCOLORIZATIONCOLORCHANGED 0x320 #endif #ifdef _DEBUG # undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_SYSCOLORCHANGE() ON_WM_SIZE() ON_WM_MOVE() ON_COMMAND(ID_HELP, OnHelpFinder) ON_WM_DROPFILES() ON_COMMAND(ID_CHAR_COLOR, OnCharColor) ON_COMMAND(ID_PEN_TOGGLE, OnEmptyCommand) ON_WM_FONTCHANGE() ON_WM_QUERYNEWPALETTE() ON_WM_PALETTECHANGED() ON_WM_DEVMODECHANGE() ON_WM_CLOSE() ON_COMMAND(ID_FILE_QUICK_PRINT, OnEmptyCommand) ON_COMMAND(ID_FILE_SAVE_AS_OPEN_DOC_TXT, OnEmptyCommand) ON_COMMAND(ID_FILE_SAVE_AS_OPEN_XML, OnEmptyCommand) ON_COMMAND(ID_FILE_SAVE_AS_PLAIN_TXT_DOC, OnEmptyCommand) ON_COMMAND(ID_FILE_SAVE_AS_RICH_TXT, OnEmptyCommand) ON_COMMAND(ID_FILE_ABOUT, OnEmptyCommand) ON_COMMAND(ID_FILE_SEND_MAIL, OnEmptyCommand) ON_COMMAND(ID_HELP_INDEX, OnHelpFinder) ON_COMMAND(ID_SEND_IN_EMAIL, OnEmptyCommand) ON_COMMAND(ID_FONT_GROW, OnEmptyCommand) ON_COMMAND(ID_FONT_SHRINK, OnEmptyCommand) ON_COMMAND(ID_CHAR_STRIKETHROUGH, OnEmptyCommand) ON_COMMAND(ID_TEXT_SUBSCRIPT, OnEmptyCommand) ON_COMMAND(ID_TEXT_SUPERSCRIPT, OnEmptyCommand) ON_COMMAND(ID_PARA_DECREASEINDENT, OnEmptyCommand) ON_COMMAND(ID_PARA_INCREASEINDENT, OnEmptyCommand) ON_COMMAND(ID_PARA_INSERT_BULLET, OnEmptyCommand) ON_COMMAND(ID_PARA_LINESPACING, OnEmptyCommand) ON_COMMAND(ID_PARA_JUSTIFY, OnEmptyCommand) ON_COMMAND(ID_PARA_SHOWMARKS, OnEmptyCommand) ON_COMMAND(ID_INSERT_PIC, OnEmptyCommand) ON_COMMAND(ID_INSERT_PAINT_DRAWING, OnEmptyCommand) ON_COMMAND(ID_INSERT_DATETIME, OnEmptyCommand) ON_COMMAND(ID_INSERT_OBJECT, OnEmptyCommand) ON_COMMAND(ID_VIEW_ZOOMIN, OnEmptyCommand) ON_COMMAND(ID_VIEW_ZOOMOUT, OnEmptyCommand) ON_COMMAND(ID_VIEW_HUNDRED_PERC, OnEmptyCommand) ON_COMMAND(ID_VIEW_WORD_WRAP, OnEmptyCommand) ON_COMMAND(ID_VIEW_WORD_WRAP_NO, OnEmptyCommand) ON_COMMAND(ID_VIEW_WORD_WRAP_WINDOW, OnEmptyCommand) ON_COMMAND(ID_VIEW_WORD_WRAP_RULER, OnEmptyCommand) ON_COMMAND(ID_VIEW_MEASUREMENTS, OnEmptyCommand) ON_COMMAND(IDS_INCHES, OnEmptyCommand) ON_COMMAND(IDS_CENTIMETERS, OnEmptyCommand) ON_COMMAND(IDS_POINTS, OnEmptyCommand) ON_COMMAND(IDS_PICAS, OnEmptyCommand) ON_COMMAND(ID_EDITING_REPLACE, OnEmptyCommand) ON_COMMAND(ID_INSERT_COLUMNS, OnEmptyCommand) ON_COMMAND(ID_EDITING_SELECT_ALL, OnEmptyCommand) //}}AFX_MSG_MAP // Global help commands // ON_COMMAND(ID_CONTEXT_HELP, CFrameWnd::OnContextHelp) ON_COMMAND(ID_DEFAULT_HELP, OnHelpFinder) ON_UPDATE_COMMAND_UI(ID_VIEW_FORMATBAR, OnUpdateControlBarMenu) ON_UPDATE_COMMAND_UI(ID_VIEW_RULER, OnUpdateControlBarMenu) ON_MESSAGE(WPM_BARSTATE, OnBarState) ON_REGISTERED_MESSAGE(CWordPadApp::m_nOpenMsg, OnOpenMsg) ON_COMMAND_EX(ID_VIEW_STATUS_BAR, OnBarCheck) ON_COMMAND_EX(ID_VIEW_TOOLBAR, OnBarCheck) ON_COMMAND_EX(ID_VIEW_FORMATBAR, OnBarCheck) ON_COMMAND_EX(ID_VIEW_RULER, OnBarCheck) ON_COMMAND_RANGE(IDS_INCHES, IDS_PICAS, OnMeasurements) ON_UPDATE_COMMAND_UI_RANGE(IDS_PICAS, IDS_PICAS, OnUpdateMeasurements) ON_XTP_CREATECONTROL() ON_XTP_CREATECOMMANDBAR() ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize) ON_COMMAND_RANGE(ID_BDR_OUTSIDE, ID_BDR_INSIDE_VERT, OnBorders) ON_UPDATE_COMMAND_UI_RANGE(ID_BDR_OUTSIDE, ID_BDR_INSIDE_VERT, OnUpdateBorders) ON_COMMAND(ID_CONTEXT_HELP, CFrameWnd::OnContextHelp) ON_XTP_EXECUTE(ID_GALLERY_COLORS, OnGalleryThemeColors) ON_WM_XTP_THEMECHANGED() ON_COMMAND(ID_OPTIONS_THEME_DIALOG, OnThemeDialog) ON_COMMAND(ID_OPTIONS_FRAMETHEME, OnFrameTheme) ON_UPDATE_COMMAND_UI(ID_OPTIONS_FRAMETHEME, OnUpdateFrameTheme) ON_COMMAND(ID_OPTIONS_RIGHTTOLEFT, OnOptionsRightToLeft) ON_UPDATE_COMMAND_UI(ID_OPTIONS_RIGHTTOLEFT, OnUpdateOptionsRighttoleft) // ON_UPDATE_COMMAND_UI(ID_OPTIONS_ANIMATION, OnUpdateOptionsAnimation) // ON_COMMAND(ID_OPTIONS_ANIMATION, OnOptionsAnimation) ON_MESSAGE(WM_DWMCOLORIZATIONCOLORCHANGED, OnColorizationColorChanged) END_MESSAGE_MAP() static UINT BASED_CODE indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; #define IDR_COLORTEXT_POPUP 1000 enum Borders { borderTop = 1, borderLeft = 2, borderRight = 4, borderBottom = 8, borderInsideVert = 16, borderInsideHorz = 32, borderOutside = borderBottom | borderTop | borderLeft | borderRight, borderInside = borderInsideVert | borderInsideHorz, borderAll = borderInside | borderOutside }; ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame::CMainFrame() { m_hIconDoc = theApp.LoadIcon(IDI_ICON_DOC); m_hIconText = theApp.LoadIcon(IDI_ICON_TEXT); m_hIconWrite = theApp.LoadIcon(IDI_ICON_WRITE); m_dwBorders = 0; m_bIsRibbon = TRUE; m_bEnableFrameTheme = TRUE; m_nTheme = xtpThemeDlgOffice2016; m_nThemeColor = xtpThemeColor2016Colorful; m_nThemeAccent = xtpThemeAccentWord; m_nThemeBack = xtpThemeRibbonBackCircuit; m_bNewBackstage = TRUE; } CMainFrame::~CMainFrame() { } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { WNDCLASS wndcls; BOOL bRes = CFrameWnd::PreCreateWindow(cs); HINSTANCE hInst = AfxGetInstanceHandle(); // see if the class already exists if (!::GetClassInfo(hInst, szWordPadClass, &wndcls)) { // get default stuff ::GetClassInfo(hInst, cs.lpszClass, &wndcls); wndcls.style &= ~(CS_HREDRAW | CS_VREDRAW); // register a new class wndcls.lpszClassName = szWordPadClass; wndcls.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(IDR_MAINFRAME)); _ASSERTE(wndcls.hIcon != NULL); if (!AfxRegisterClass(&wndcls)) AfxThrowResourceException(); } cs.lpszClass = szWordPadClass; CRect rect = theApp.m_rectInitialFrame; if (rect.Width() > 0 && rect.Height() > 0) { // make sure window will be visible CDisplayIC dc; CRect rectDisplay(0, 0, dc.GetDeviceCaps(HORZRES), dc.GetDeviceCaps(VERTRES)); if (rectDisplay.PtInRect(rect.TopLeft()) && rectDisplay.PtInRect(rect.BottomRight())) { cs.x = rect.left; cs.y = rect.top; cs.cx = rect.Width(); cs.cy = rect.Height(); } } return bRes; } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!CreateStatusBar()) return -1; if (!InitCommandBars()) return -1; EnableDocking(CBRS_ALIGN_ANY); if (!CreateRulerBar()) return -1; CWnd* pView = GetDlgItem(AFX_IDW_PANE_FIRST); if (pView != NULL) pView->SetWindowPos(&wndBottom, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE); LoadIcons(); CreateGalleries(); // exclude unused themes. m_dlgTheme.ExcludeTheme(XTP_EXCLUDE_THEME_VISUALSTUDIO6 | XTP_EXCLUDE_THEME_VISUALSTUDIO2005 | XTP_EXCLUDE_THEME_VISUALSTUDIO2008 | XTP_EXCLUDE_THEME_VISUALSTUDIO2010 | XTP_EXCLUDE_THEME_VISUALSTUDIO2012 | XTP_EXCLUDE_THEME_CUSTOM); // create theme dialog. VERIFY(m_dlgTheme.Create(IDD_THEME_DIALOG, this)); // set startup theme m_dlgTheme.SetTheme(m_nTheme, m_nThemeColor, m_nThemeAccent, -1, TRUE); // enable auto preview. m_dlgTheme.EnableAutoPreview(TRUE); return 0; } void CMainFrame::EnableNormalStyle() { CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars) { pCommandBars->GetCommandBarsOptions()->bShowKeyboardTips = FALSE; pCommandBars->RemoveAll(); CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME); if (pMenuBar) { pMenuBar->SetFlags(xtpFlagIgnoreSetMenuMessage); if (!CreateToolBars()) { TRACE0("Failed to create toolbars\n"); return; } CXTPToolTipContext* pToolTipContext = GetCommandBars()->GetToolTipContext(); if (pToolTipContext) { pToolTipContext->SetStyle(xtpToolTipOffice); pToolTipContext->ShowTitleAndDescription(FALSE); pToolTipContext->SetFont(pCommandBars->GetPaintManager()->GetIconFont()); pToolTipContext->SetDelayTime(TTDT_INITIAL, 900); } } } } void CMainFrame::EnableRibbonStyle() { CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars) { pCommandBars->RemoveAll(); if (m_nTheme == xtpThemeDlgOffice2013 || m_nTheme == xtpThemeDlgOffice2016 || m_nTheme == xtpThemeDlgVisualStudio2015 || m_nTheme == xtpThemeDlgVisualStudio2017 || m_nTheme == xtpThemeDlgVisualStudio2019 || m_nTheme == xtpThemeDlgVisualStudio2022 || m_nTheme == xtpThemeDlgNativeWindows10 || m_nTheme == xtpThemeDlgNativeWindows11) LoadIcons2016(); else LoadIcons(); CXTPToolTipContext* pToolTipContext = GetCommandBars()->GetToolTipContext(); if (pToolTipContext) { pToolTipContext->SetStyle(xtpToolTipResource); pToolTipContext->ShowTitleAndDescription(); pToolTipContext->ShowImage(FALSE, 0); pToolTipContext->SetMargin(XTP_DPI(CRect(2, 2, 2, 2))); pToolTipContext->SetMaxTipWidth(180); pToolTipContext->SetFont(pCommandBars->GetPaintManager()->GetIconFont()); pToolTipContext->SetDelayTime(TTDT_INITIAL, 900); } if (!CreateRibbonBar()) { TRACE0("Failed to create ribbon\n"); return; } m_bShowMiniToolbar = TRUE; CreateMiniToolBar(); // SetTheme(ID_OPTIONS_STYLESCENIC); } } void CMainFrame::LoadIcons2016() { CXTPCommandBars* pCommandBars = GetCommandBars(); if (!pCommandBars) return; CXTPImageManager* pImgMgr = pCommandBars->GetImageManager(); if (!pImgMgr) return; pImgMgr->RemoveAll(); CString type(_T("RT_XAML")); // resource type UINT nWidth = 0; // Normal icons nWidth = XTP_DPI_X(16); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_DOCUMENT, ID_FILE_NEW, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_OPEN_FILLED, ID_FILE_OPEN, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_SAVE_FILLED, ID_FILE_SAVE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_COMMAND_REDO_2, ID_EDIT_REDO, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PRINTER, ID_FILE_PRINT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PRINTER, ID_FILE_QUICK_PRINT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_EXIT, ID_APP_EXIT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_BUTTON_HELP, ID_APP_ABOUT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CLIPBOARD_CUT, ID_EDIT_CUT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CLIPBOARD_COPY, ID_EDIT_COPY, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CLIPBOARD_PASTE_BLANK, ID_EDIT_PASTE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_SIZE_INCREASE, ID_FONT_GROW, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_SIZE_DECREASE, ID_FONT_SHRINK, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_ERASER, ID_FONT_CLEAR, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_BOLD, ID_CHAR_BOLD, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_ITALIC, ID_CHAR_ITALIC, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_UNDERLINE, ID_CHAR_UNDERLINE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_STRIKETHROUGH, ID_CHAR_STRIKETHROUGH, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_SUPERSCRIPT, ID_TEXT_SUPERSCRIPT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_CHARACTER_SUBSCRIPT, ID_TEXT_SUBSCRIPT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_LIST_BULLETS, ID_PARA_INSERT_BULLET, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_INDENT_LEFT, ID_PARA_INCREASEINDENT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_INDENT_RIGHT, ID_PARA_DECREASEINDENT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_MARKER_FILLED, ID_PARA_SHOWMARKS, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_ALIGN_LEFT, ID_PARA_LEFT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_ALIGN_CENTER, ID_PARA_CENTER, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_ALIGN_RIGHT, ID_PARA_RIGHT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_ALIGN_JUSTIFIED, ID_PARA_JUSTIFY, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PARAGRAPH_SPACING, ID_PARA_LINESPACING, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_FIND, ID_EDIT_FIND, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_REPLACE, ID_EDIT_REPLACE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_POINTER, ID_EDIT_SELECT_ALL, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_INSERT_PICTURE_FILLED, ID_INSERT_PIC, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_INSERT_SHAPES_FILLED, ID_INSERT_OBJECT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_OVERLAYS_CALENDAR_SELECTION_DAY_ADD, ID_INSERT_DATETIME, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_INSERT_CLIPART_FILLED, ID_INSERT_PAINT_DRAWING, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_TEXT_WRAPPING, ID_VIEW_WORD_WRAP, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PAGE_SIZE, ID_VIEW_MEASUREMENTS, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_VIEW_PAGE_100PERCENT, ID_VIEW_HUNDRED_PERC, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_ZOOM_IN, ID_VIEW_ZOOMIN, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_ZOOM_OUT, ID_VIEW_ZOOMOUT, nWidth); nWidth = XTP_DPI_X(32); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_DOCUMENT, ID_FILE_NEW, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_OPEN_FILLED, ID_FILE_OPEN, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_SAVE_FILLED, ID_FILE_SAVE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_COMMAND_REDO_2, ID_EDIT_REDO, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PRINTER, ID_FILE_PRINT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PRINTER, ID_FILE_QUICK_PRINT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_EXIT, ID_APP_EXIT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_BUTTON_HELP, ID_APP_ABOUT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CLIPBOARD_CUT, ID_EDIT_CUT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CLIPBOARD_COPY, ID_EDIT_COPY, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CLIPBOARD_PASTE_BLANK, ID_EDIT_PASTE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_SIZE_INCREASE, ID_FONT_GROW, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_SIZE_DECREASE, ID_FONT_SHRINK, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_ERASER, ID_FONT_CLEAR, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_BOLD, ID_CHAR_BOLD, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_ITALIC, ID_CHAR_ITALIC, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_UNDERLINE, ID_CHAR_UNDERLINE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_STRIKETHROUGH, ID_CHAR_STRIKETHROUGH, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_SUPERSCRIPT, ID_TEXT_SUPERSCRIPT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_CHARACTER_SUBSCRIPT, ID_TEXT_SUBSCRIPT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_LIST_BULLETS, ID_PARA_INSERT_BULLET, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_INDENT_LEFT, ID_PARA_INCREASEINDENT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_INDENT_RIGHT, ID_PARA_DECREASEINDENT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_MARKER_FILLED, ID_PARA_SHOWMARKS, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_ALIGN_LEFT, ID_PARA_LEFT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_ALIGN_CENTER, ID_PARA_CENTER, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_ALIGN_RIGHT, ID_PARA_RIGHT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_ALIGN_JUSTIFIED, ID_PARA_JUSTIFY, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PARAGRAPH_SPACING, ID_PARA_LINESPACING, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_FIND, ID_EDIT_FIND, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_REPLACE, ID_EDIT_REPLACE, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_POINTER, ID_EDIT_SELECT_ALL, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_INSERT_PICTURE_FILLED, ID_INSERT_PIC, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_INSERT_SHAPES_FILLED, ID_INSERT_OBJECT, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_OVERLAYS_CALENDAR_SELECTION_DAY_ADD, ID_INSERT_DATETIME, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_INSERT_CLIPART_FILLED, ID_INSERT_PAINT_DRAWING, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_TEXT_WRAPPING, ID_VIEW_WORD_WRAP, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PAGE_SIZE, ID_VIEW_MEASUREMENTS, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_VIEW_PAGE_100PERCENT, ID_VIEW_HUNDRED_PERC, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_ZOOM_IN, ID_VIEW_ZOOMIN, nWidth); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_ZOOM_OUT, ID_VIEW_ZOOMOUT, nWidth); // Disabled icons nWidth = XTP_DPI_X(16); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_DOCUMENT, ID_FILE_NEW, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_OPEN_FILLED, ID_FILE_OPEN, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_SAVE_FILLED, ID_FILE_SAVE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_COMMAND_REDO_2, ID_EDIT_REDO, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PRINTER, ID_FILE_PRINT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PRINTER, ID_FILE_QUICK_PRINT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_EXIT, ID_APP_EXIT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_BUTTON_HELP, ID_APP_ABOUT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CLIPBOARD_CUT, ID_EDIT_CUT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CLIPBOARD_COPY, ID_EDIT_COPY, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CLIPBOARD_PASTE_BLANK, ID_EDIT_PASTE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_SIZE_INCREASE, ID_FONT_GROW, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_SIZE_DECREASE, ID_FONT_SHRINK, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_ERASER, ID_FONT_CLEAR, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_BOLD, ID_CHAR_BOLD, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_ITALIC, ID_CHAR_ITALIC, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_UNDERLINE, ID_CHAR_UNDERLINE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_STRIKETHROUGH, ID_CHAR_STRIKETHROUGH, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_SUPERSCRIPT, ID_TEXT_SUPERSCRIPT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_CHARACTER_SUBSCRIPT, ID_TEXT_SUBSCRIPT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_LIST_BULLETS, ID_PARA_INSERT_BULLET, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_INDENT_LEFT, ID_PARA_INCREASEINDENT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_INDENT_RIGHT, ID_PARA_DECREASEINDENT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_MARKER_FILLED, ID_PARA_SHOWMARKS, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_ALIGN_LEFT, ID_PARA_LEFT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_ALIGN_CENTER, ID_PARA_CENTER, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_ALIGN_RIGHT, ID_PARA_RIGHT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_ALIGN_JUSTIFIED, ID_PARA_JUSTIFY, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PARAGRAPH_SPACING, ID_PARA_LINESPACING, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_FIND, ID_EDIT_FIND, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_REPLACE, ID_EDIT_REPLACE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_POINTER, ID_EDIT_SELECT_ALL, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_INSERT_PICTURE_FILLED, ID_INSERT_PIC, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_INSERT_SHAPES_FILLED, ID_INSERT_OBJECT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_OVERLAYS_CALENDAR_SELECTION_DAY_ADD, ID_INSERT_DATETIME, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_INSERT_CLIPART_FILLED, ID_INSERT_PAINT_DRAWING, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_TEXT_WRAPPING, ID_VIEW_WORD_WRAP, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PAGE_SIZE, ID_VIEW_MEASUREMENTS, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_VIEW_PAGE_100PERCENT, ID_VIEW_HUNDRED_PERC, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_ZOOM_IN, ID_VIEW_ZOOMIN, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_ZOOM_OUT, ID_VIEW_ZOOMOUT, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_DOCUMENT, ID_FILE_NEW, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_OPEN_FILLED, ID_FILE_OPEN, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_SAVE_FILLED, ID_FILE_SAVE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_COMMAND_REDO_2, ID_EDIT_REDO, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PRINTER, ID_FILE_PRINT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PRINTER, ID_FILE_QUICK_PRINT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_EXIT, ID_APP_EXIT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_BUTTON_HELP, ID_APP_ABOUT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CLIPBOARD_CUT, ID_EDIT_CUT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CLIPBOARD_COPY, ID_EDIT_COPY, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CLIPBOARD_PASTE_BLANK, ID_EDIT_PASTE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_SIZE_INCREASE, ID_FONT_GROW, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_SIZE_DECREASE, ID_FONT_SHRINK, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_ERASER, ID_FONT_CLEAR, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_BOLD, ID_CHAR_BOLD, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_ITALIC, ID_CHAR_ITALIC, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_UNDERLINE, ID_CHAR_UNDERLINE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_STRIKETHROUGH, ID_CHAR_STRIKETHROUGH, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_SUPERSCRIPT, ID_TEXT_SUPERSCRIPT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_CHARACTER_SUBSCRIPT, ID_TEXT_SUBSCRIPT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_LIST_BULLETS, ID_PARA_INSERT_BULLET, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_INDENT_LEFT, ID_PARA_INCREASEINDENT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_INDENT_RIGHT, ID_PARA_DECREASEINDENT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_MARKER_FILLED, ID_PARA_SHOWMARKS, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_ALIGN_LEFT, ID_PARA_LEFT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_ALIGN_CENTER, ID_PARA_CENTER, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_ALIGN_RIGHT, ID_PARA_RIGHT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_ALIGN_JUSTIFIED, ID_PARA_JUSTIFY, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PARAGRAPH_SPACING, ID_PARA_LINESPACING, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_FIND, ID_EDIT_FIND, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_REPLACE, ID_EDIT_REPLACE, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_POINTER, ID_EDIT_SELECT_ALL, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_INSERT_PICTURE_FILLED, ID_INSERT_PIC, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_INSERT_SHAPES_FILLED, ID_INSERT_OBJECT, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_OVERLAYS_CALENDAR_SELECTION_DAY_ADD, ID_INSERT_DATETIME, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_INSERT_CLIPART_FILLED, ID_INSERT_PAINT_DRAWING, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_TEXT_WRAPPING, ID_VIEW_WORD_WRAP, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PAGE_SIZE, ID_VIEW_MEASUREMENTS, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_VIEW_PAGE_100PERCENT, ID_VIEW_HUNDRED_PERC, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_ZOOM_IN, ID_VIEW_ZOOMIN, nWidth, xtpImageDisabled); pImgMgr->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_ZOOM_OUT, ID_VIEW_ZOOMOUT, nWidth, xtpImageDisabled); UINT uiGroupFont[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ID_TEXT_COLOR, ID_TEXT_HIGHLIGHTCOLOR }; pCommandBars->GetImageManager()->SetIcons(ID_GROUP_FONT, uiGroupFont, _countof(uiGroupFont), CSize(16, 16)); } void CMainFrame::LoadIcons() { CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->GetImageManager()->SetIcons(IDR_MAINFRAME1, IDB_TOOLBAR_ALPHA); pCommandBars->GetImageManager()->SetIcons(IDB_FORMATBAR, IDB_FORMATBAR_ALPHA); pCommandBars->GetImageManager()->SetIcons(IDR_SMALLICONS); pCommandBars->GetImageManager()->SetIcons(IDR_LARGEICONS); pCommandBars->GetImageManager()->SetIcons(IDR_LAYOUTTABLARGE); pCommandBars->GetImageManager()->SetIcons(IDR_LAYOUTTABSMALL); UINT uiGroups[] = { ID_GROUP_CLIPBOARD, IDB_GROUP_FONT, ID_GROUP_PARAGRAPH, ID_GROUP_FIND }; pCommandBars->GetImageManager()->SetIcons(IDB_BITMAPS_GROUPS, uiGroups, _countof(uiGroups), CSize(16, 16)); UINT uiRibbonItemsLarge[] = { ID_FILE_NEW, ID_FILE_OPEN, ID_FILE_SAVE, ID_FILE_SAVE_AS, ID_FILE_SAVE_AS_RICH_TXT, ID_FILE_SAVE_AS_OPEN_XML, ID_FILE_SAVE_AS_OPEN_DOC_TXT, ID_FILE_SAVE_AS_PLAIN_TXT_DOC, ID_FILE_PRINT, ID_FILE_QUICK_PRINT, ID_PAGE_SETUP, ID_FILE_PRINT_PREVIEW, ID_SEND_IN_EMAIL, ID_APP_ABOUT, ID_APP_EXIT, ID_EDIT_PASTE, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_INSERT_PIC, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_INSERT_PAINT_DRAWING, ID_INSERT_DATETIME, ID_INSERT_OBJECT, ID_EDITING_FIND, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_VIEW_ZOOM, ID_VIEW_ZOOMIN, ID_VIEW_ZOOMOUT, ID_VIEW_HUNDRED_PERC, ID_DUMMY_ICON, ID_DUMMY_ICON }; pCommandBars->GetImageManager()->SetIcons(IDB_PNG_WORDPAD_LARGE, uiRibbonItemsLarge, _countof(uiRibbonItemsLarge), CSize(32, 32)); UINT uiRibbonItemsSmall[] = { ID_FILE_NEW, ID_FILE_OPEN, ID_FILE_SAVE, ID_FILE_SAVE_AS, ID_FILE_SAVE_AS_RICH_TXT, ID_FILE_SAVE_AS_OPEN_XML, ID_FILE_SAVE_AS_OPEN_DOC_TXT, ID_FILE_SAVE_AS_PLAIN_TXT_DOC, ID_FILE_PRINT, ID_FILE_QUICK_PRINT, ID_PAGE_SETUP, ID_FILE_PRINT_PREVIEW, ID_FILEPREPARE, ID_FILE_ABOUT, ID_SEND_IN_EMAIL, ID_APP_EXIT, ID_EDIT_PASTE_SPECIAL, ID_HOME_CUT, ID_HOME_COPY, ID_UNDO, ID_REDO, ID_REFRESH, ID_FONT_COLOR, ID_PARA_DECREASEINDENT, ID_PARA_INCREASEINDENT, ID_PARA_INSERT_BULLET, ID_PARA_LINESPACING, ID_PARA_LEFT, ID_PARA_ALIGN_CENTER, ID_PARA_ALIGN_RIGHT, ID_PARA_JUSTIFY, ID_PARA_SHOWMARKS, ID_DUMMY_ICON, ID_CHANGE_PIC, ID_RESIZE_PIC, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_EDITING_FIND, ID_EDITING_REPLACE, ID_EDITING_SELECT_ALL, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_DUMMY_ICON, ID_VIEW_WORD_WRAP, ID_VIEW_MEASUREMENTS }; pCommandBars->GetImageManager()->SetIcons(IDB_PNG_WORDPAD_SMALL, uiRibbonItemsSmall, _countof(uiRibbonItemsSmall), CSize(16, 16)); UINT uiGroupFont[] = { ID_FONT_GROW, ID_FONT_SHRINK, ID_FONT_CLEAR, ID_CHAR_BOLD, ID_CHAR_ITALIC, ID_CHAR_UNDERLINE, ID_CHAR_STRIKETHROUGH, ID_TEXT_SUBSCRIPT, ID_TEXT_SUPERSCRIPT, ID_TEXT_CHANGECASE, ID_TEXT_COLOR, ID_TEXT_HIGHLIGHTCOLOR }; pCommandBars->GetImageManager()->SetIcons(ID_GROUP_FONT, uiGroupFont, _countof(uiGroupFont), CSize(16, 16)); pCommandBars->GetImageManager()->SetIcons(IDR_PNG_MAIN_BTN, 0, 0, CSize(16, 32)); UINT uCommand = { IDR_PNG_MAIN_BTN }; pCommandBars->GetImageManager()->SetIcons(IDR_PNG_MAIN_BTN, &uCommand, 1, CSize(32, 32), xtpImageNormal); } BOOL CMainFrame::CreateMiniToolBar() { CXTPCommandBars* pCommandBars = GetCommandBars(); CXTPMiniToolBar* pMiniToolBar = CXTPMiniToolBar::CreateMiniToolBar(pCommandBars); pMiniToolBar->SetBarID(IDR_MENU_MINITOOLBAR); pMiniToolBar->SetTitle(_T("MiniBar")); CXTPControlComboBox* pComboFont = new CXTPControlFontComboBox(); pMiniToolBar->GetControls()->Add(pComboFont, ID_COMBO_FONT); pComboFont->SetDropDownListStyle(); pComboFont->EnableAutoComplete(); pComboFont->SetWidth(XTP_DPI_X(64)); pComboFont = new CXTPControlSizeComboBox(); pMiniToolBar->GetControls()->Add(pComboFont, ID_COMBO_SIZE); pComboFont->SetDropDownListStyle(); pComboFont->SetWidth(XTP_DPI_X(45)); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_FONT_GROW); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_FONT_SHRINK); pMiniToolBar->GetControls()->Add(xtpControlButtonPopup, ID_STYLES_CHANGE); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_CHAR_BOLD); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_CHAR_ITALIC); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_PARA_LEFT); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_PARA_CENTER); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_PARA_RIGHT); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_PARA_INCREASEINDENT); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_PARA_DECREASEINDENT); pMiniToolBar->GetControls()->Add(xtpControlButton, ID_INSERT_BULLET); pCommandBars->GetContextMenus()->Add(pMiniToolBar); pMiniToolBar->SetWidth(XTP_DPI_X(23) * 7); // Add Simple context menu CMenu mnu; mnu.LoadMenu(IDR_MENU_CONTEXT); pCommandBars->GetContextMenus()->Add(IDR_MENU_CONTEXT, _T("Context Menu"), mnu.GetSubMenu(0)); return TRUE; } void CMainFrame::CreateGalleries() { CXTPControlGalleryItem* pItem; m_pItemsFontTextColor = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_FONTTEXTCOLOR); m_pItemsFontTextColor->SetItemSize(CSize(17, 17)); pItem = m_pItemsFontTextColor->AddLabel(0); pItem->SetCaption(_T("Theme Colors")); CGalleryItemFontColor::AddThemeColors(m_pItemsFontTextColor, 0); pItem = m_pItemsFontTextColor->AddLabel(0); pItem->SetCaption(_T("Standard Colors")); CGalleryItemFontColor::AddStandardColors(m_pItemsFontTextColor); m_pItemsFontBackColor = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_FONTBACKCOLOR); m_pItemsFontBackColor->SetItemSize(CSize(30, 30)); CGalleryItemFontColor::AddStandardBackColors(m_pItemsFontBackColor); m_pItemsFontFace = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_FONTFACE); m_pItemsFontFace->SetItemSize(CSize(0, 26)); CGalleryItemFontFace::AddFontItems(m_pItemsFontFace); m_pItemsFontSize = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_FONTSIZE); m_pItemsFontSize->SetItemSize(CSize(0, 17)); m_pItemsFontSize->AddItem(_T("8")); m_pItemsFontSize->AddItem(_T("9")); m_pItemsFontSize->AddItem(_T("10")); m_pItemsFontSize->AddItem(_T("11")); m_pItemsFontSize->AddItem(_T("12")); m_pItemsFontSize->AddItem(_T("14")); m_pItemsFontSize->AddItem(_T("16")); m_pItemsFontSize->AddItem(_T("18")); m_pItemsFontSize->AddItem(_T("20")); m_pItemsFontSize->AddItem(_T("22")); m_pItemsFontSize->AddItem(_T("24")); m_pItemsFontSize->AddItem(_T("26")); m_pItemsFontSize->AddItem(_T("28")); m_pItemsFontSize->AddItem(_T("36")); m_pItemsFontSize->AddItem(_T("48")); m_pItemsFontSize->AddItem(_T("72")); m_pItemsUndo = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_EDIT_UNDO); m_pItemsUndo->SetItemSize(CSize(0, 21)); m_pItemsUndo->ClipItems(FALSE); } BOOL CMainFrame::CreateRibbonBar() { CXTPCommandBars* pCommandBars = GetCommandBars(); if (!pCommandBars) { return FALSE; } CMenu menu; menu.LoadMenu(IDR_MENU_RIBBON); SetMenu(NULL); CXTPRibbonBar* pRibbonBar = (CXTPRibbonBar*)pCommandBars->Add(_T("The Ribbon"), xtpBarTop, RUNTIME_CLASS(CXTPRibbonBar)); if (!pRibbonBar) { return FALSE; } pRibbonBar->EnableDocking(0); pCommandBars->GetCommandBarsOptions()->bShowKeyboardTips = TRUE; CXTPControlPopup* pControlFile = (CXTPControlPopup*)pRibbonBar->AddSystemButton( IDR_MENU_RIBBON); if (pControlFile) { pControlFile->SetCaption(_T("&File")); pControlFile->SetStyle(xtpButtonIcon); pControlFile->SetIconId(IDR_PNG_MAIN_BTN); pControlFile->SetCommandBar(menu.GetSubMenu(0)); pControlFile->GetCommandBar()->SetIconSize(CSize(32, 32)); } CXTPRibbonTab* pTabHome = pRibbonBar->AddTab(ID_TAB_HOME); if (pTabHome) { CXTPRibbonGroup* pGroupClipborad = pTabHome->AddGroup(ID_GROUP_CLIPBOARD); if (pGroupClipborad) { pGroupClipborad->ShowOptionButton(); pGroupClipborad->SetIconId(IDI_GROUP_BUTTONPOPUP); pGroupClipborad->GetControlGroupOption()->SetID(ID_GROUP_CLIPBOARD_OPTION); pGroupClipborad->SetControlsCentering(); CXTPControlPopup* pControlPaste = (CXTPControlPopup*)pGroupClipborad->Add(xtpControlSplitButtonPopup, ID_EDIT_PASTE); if (pControlPaste) { pControlPaste->SetIconSize(CSize(32, 32)); pControlPaste->SetStyle(xtpButtonIconAndCaptionBelow); pControlPaste->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_EDIT_PASTE); pControlPaste->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_EDIT_PASTE_SPECIAL); } CXTPControl* pControlCut = pGroupClipborad->Add(xtpControlButton, ID_EDIT_CUT); pControlCut->SetKeyboardTip(_T("X")); pGroupClipborad->Add(xtpControlButton, ID_EDIT_COPY); pControlPaste->SetKeyboardTip(_T("V")); } CXTPRibbonGroup* pGroupFont = pTabHome->AddGroup(ID_GROUP_FONT); if (pGroupFont) { pGroupFont->SetControlsGrouping(); pGroupFont->ShowOptionButton(); pGroupFont->GetControlGroupOption()->SetID(ID_GROUP_FONT_OPTION); CXTPControlFontComboBox* pComboFont = new CXTPControlFontComboBox(); if (pComboFont) { pGroupFont->Add(pComboFont, ID_COMBO_FONT); pComboFont->SetDropDownListStyle(); pComboFont->EnableAutoComplete(); pComboFont->SetWidth(XTP_DPI_X(130)); CXTPControlSizeComboBox* pCombSize = new CXTPControlSizeComboBox(); if (pCombSize) { pCombSize->SetDropDownListStyle(); pGroupFont->Add(pCombSize, ID_COMBO_SIZE); } } CXTPControl* pControl = pGroupFont->Add(xtpControlButton, ID_FONT_GROW); if (pControl) pControl->SetBeginGroup(FALSE); pGroupFont->Add(xtpControlButton, ID_FONT_SHRINK); pGroupFont->Add(xtpControlButton, ID_CHAR_BOLD)->SetBeginGroup(TRUE); pGroupFont->Add(xtpControlButton, ID_CHAR_ITALIC); pGroupFont->Add(xtpControlSplitButtonPopup, ID_CHAR_UNDERLINE); pGroupFont->Add(xtpControlButton, ID_CHAR_STRIKETHROUGH); pGroupFont->Add(xtpControlButton, ID_TEXT_SUBSCRIPT); pGroupFont->Add(xtpControlButton, ID_TEXT_SUPERSCRIPT); CXTPControlPopupColor* pHightlightColor = (CXTPControlPopupColor*)pGroupFont->Add( new CXTPControlPopupColor(), ID_TEXT_HIGHLIGHTCOLOR); if (pHightlightColor) { pHightlightColor->SetBeginGroup(TRUE); CXTPPopupBar* pColorBar = CXTPPopupBar::CreatePopupBar(GetCommandBars()); if (pColorBar) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); if (pControlGallery) { pControlGallery->SetControlSize(CSize(150, 100)); pControlGallery->ShowLabels(TRUE); pControlGallery->ShowScrollBar(FALSE); pControlGallery->SetItems(m_pItemsFontBackColor); pColorBar->GetControls()->Add(pControlGallery, ID_GALLERY_FONTBACKCOLOR); } pColorBar->GetControls()->Add(new CXTPControlButton(), ID_BACKCOLOR_NOCOLOR); pHightlightColor->SetCommandBar(pColorBar); pColorBar->InternalRelease(); } } CXTPControlPopupColor* pTextColor = (CXTPControlPopupColor*)pGroupFont->Add(new CXTPControlPopupColor(), ID_TEXT_COLOR); if (pTextColor) { CXTPPopupBar* pColorBar = CXTPPopupBar::CreatePopupBar(GetCommandBars()); if (pColorBar) { pColorBar->GetControls()->Add(new CXTPControlButton(), XTP_IDS_AUTOMATIC); CXTPControlGallery* pControlGallery = new CXTPControlGallery(); if (pControlGallery) { pControlGallery->SetControlSize(CSize(171, 145)); pControlGallery->ShowLabels(TRUE); pControlGallery->ShowScrollBar(FALSE); pControlGallery->SetItems(m_pItemsFontTextColor); pColorBar->GetControls()->Add(pControlGallery, ID_GALLERY_FONTTEXTCOLOR); } pColorBar->GetControls()->Add(new CXTPControlButton(), XTP_IDS_MORE_COLORS); pTextColor->SetCommandBar(pColorBar); pColorBar->EnableCustomization(FALSE); pColorBar->InternalRelease(); } } } CXTPRibbonGroup* pGroupParagraph = pTabHome->AddGroup(ID_GROUP_PARAGRAPH); if (pGroupParagraph) { pGroupParagraph->SetControlsGrouping(); pGroupParagraph->ShowOptionButton(); pGroupParagraph->GetControlGroupOption()->SetID(ID_GROUP_PARAGRAPH_OPTION); pGroupParagraph->Add(xtpControlButton, ID_PARA_DECREASEINDENT)->SetBeginGroup(TRUE); pGroupParagraph->Add(xtpControlButton, ID_PARA_INCREASEINDENT); pGroupParagraph->Add(xtpControlSplitButtonPopup, ID_PARA_INSERT_BULLET) ->SetBeginGroup(TRUE); pGroupParagraph->Add(xtpControlButtonPopup, ID_PARA_LINESPACING)->SetBeginGroup(TRUE); pGroupParagraph->Add(xtpControlButton, ID_PARA_LEFT)->SetBeginGroup(TRUE); pGroupParagraph->Add(xtpControlButton, ID_PARA_CENTER); pGroupParagraph->Add(xtpControlButton, ID_PARA_RIGHT); pGroupParagraph->Add(xtpControlButton, ID_PARA_JUSTIFY); pGroupParagraph->Add(xtpControlButton, ID_PARA_SHOWMARKS)->SetBeginGroup(TRUE); } CXTPRibbonGroup* pGroupStyles = pTabHome->AddGroup(ID_GROUP_INSERT); if (pGroupStyles) { pGroupStyles->SetControlsCentering(TRUE); CXTPControlPopup* pControlInsetPic = (CXTPControlPopup*)pGroupStyles->Add(xtpControlSplitButtonPopup, ID_INSERT_PIC); if (pControlInsetPic) { pControlInsetPic->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_INSERT_PIC); pControlInsetPic->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_CHANGE_PIC); pControlInsetPic->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_RESIZE_PIC); } pGroupStyles->Add(xtpControlButton, ID_INSERT_PAINT_DRAWING); pGroupStyles->Add(xtpControlButton, ID_INSERT_DATETIME); pGroupStyles->Add(xtpControlButton, ID_INSERT_OBJECT); } CXTPRibbonGroup* pGroupFind = pTabHome->AddGroup(ID_GROUP_EDITING); if (pGroupFind) { pGroupFind->Add(xtpControlButton, ID_EDIT_FIND); pGroupFind->Add(xtpControlButton, ID_EDIT_REPLACE); pGroupFind->Add(xtpControlButton, ID_EDIT_SELECT_ALL); } } CXTPRibbonTab* pTabView = pRibbonBar->AddTab(ID_TAB_VIEW); if (pTabView) { CXTPRibbonGroup* pGroupZoom = pTabView->AddGroup(ID_GROUP_ZOOM); if (pGroupZoom) { pGroupZoom->Add(xtpControlButton, ID_VIEW_ZOOMIN); pGroupZoom->Add(xtpControlButton, ID_VIEW_ZOOMOUT); pGroupZoom->Add(xtpControlButton, ID_VIEW_HUNDRED_PERC); } CXTPRibbonGroup* pGroupShowHide = pTabView->AddGroup(ID_GROUP_SHOWHIDE); if (pGroupShowHide) { pGroupShowHide->Add(xtpControlCheckBox, ID_VIEW_RULER); pGroupShowHide->Add(xtpControlCheckBox, ID_VIEW_STATUS_BAR); } CXTPRibbonGroup* pSettings = (CXTPRibbonGroup*)pTabView->AddGroup(ID_GROUP_SETTINGS); CXTPControlPopup* pControlWordWrap = (CXTPControlPopup*)pSettings->Add(xtpControlSplitButtonPopup, ID_VIEW_WORD_WRAP); if (pControlWordWrap) { pControlWordWrap->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_VIEW_WORD_WRAP_NO); pControlWordWrap->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_VIEW_WORD_WRAP_WINDOW); pControlWordWrap->GetCommandBar()->GetControls()->Add(xtpControlButton, ID_VIEW_WORD_WRAP_RULER); } CXTPControlPopup* pControlMeasurementUnits = (CXTPControlPopup*)pSettings->Add(xtpControlSplitButtonPopup, ID_VIEW_MEASUREMENTS); if (pControlMeasurementUnits) { pControlMeasurementUnits->GetCommandBar()->GetControls()->Add(xtpControlButton, IDS_INCHES); pControlMeasurementUnits->GetCommandBar()->GetControls()->Add(xtpControlButton, IDS_CENTIMETERS); pControlMeasurementUnits->GetCommandBar()->GetControls()->Add(xtpControlButton, IDS_POINTS); pControlMeasurementUnits->GetCommandBar()->GetControls()->Add(xtpControlButton, IDS_PICAS); } } CXTPControlPopup* pControlOptions = (CXTPControlPopup*)pRibbonBar->GetControls()->Add(xtpControlPopup, -1); if (pControlOptions) { pControlOptions->SetFlags(xtpFlagRightAlign); CMenu mnuOptions; mnuOptions.LoadMenu(IDR_MENU_OPTIONS); pControlOptions->SetCommandBar(mnuOptions.GetSubMenu(0)); pControlOptions->SetCaption(_T("Options")); } CXTPControl* pControlAbout = pRibbonBar->GetControls()->Add(xtpControlButton, ID_APP_ABOUT); if (pControlAbout) pControlAbout->SetFlags(xtpFlagRightAlign); pRibbonBar->GetQuickAccessControls() ->Add(xtpControlButton, ID_FILE_NEW) ->SetHideFlag(xtpHideCustomize, TRUE); pRibbonBar->GetQuickAccessControls() ->Add(xtpControlButton, ID_FILE_OPEN) ->SetHideFlag(xtpHideCustomize, TRUE); pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_SAVE); pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_EDIT_UNDO); pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_EDIT_REDO); pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_QUICK_PRINT); CMenu menuQuickStyles; menuQuickStyles.LoadMenu(ID_STYLES_QUICKSTYLES); CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars()); if (pPopupBar) { pPopupBar->LoadMenu(menuQuickStyles.GetSubMenu(0)); pPopupBar->EnableAnimation(); pPopupBar->InternalRelease(); pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars()); pPopupBar->SetShowGripper(FALSE); CXTPControlStatic* pControlListBoxInfo = (CXTPControlStatic*)pPopupBar->GetControls()->Add( new CXTPControlStatic(), ID_EDIT_UNDO); if (pControlListBoxInfo) { pControlListBoxInfo->SetWidth(XTP_DPI_X(120)); pControlListBoxInfo->SetFlags(xtpFlagSkipFocus); } pPopupBar->InternalRelease(); } pRibbonBar->GetQuickAccessControls()->CreateOriginalControls(); pRibbonBar->SetCloseable(FALSE); CXTPCommandBarsFrameHook::m_bAllowDwm = FALSE; pRibbonBar->EnableFrameTheme(); return TRUE; } int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl) { if (lpCreateControl->nID == ID_GALLERY_STYLESET) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); pControlGallery->SetControlSize(CSize(200, 22 * 7 + 2)); pControlGallery->SetResizable(); pControlGallery->ShowLabels(TRUE); pControlGallery->SetItems(m_pItemsStyleSet); lpCreateControl->pControl = pControlGallery; return TRUE; } if (lpCreateControl->nID == ID_GALLERY_COLORS) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); pControlGallery->SetControlSize(CSize(200, 20 * 9 + 2)); pControlGallery->ShowLabels(TRUE); pControlGallery->SetItems(m_pItemsThemeColors); lpCreateControl->pControl = pControlGallery; return TRUE; } if (lpCreateControl->nID == ID_GALLERY_FONTBACKCOLOR) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); pControlGallery->SetControlSize(CSize(30 * 5, 30 * 3 + 2)); pControlGallery->ShowScrollBar(FALSE); pControlGallery->SetItems(m_pItemsFontBackColor); lpCreateControl->pControl = pControlGallery; return TRUE; } if (lpCreateControl->nID == ID_GALLERY_FONTS) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); pControlGallery->SetControlSize(CSize(250, 60 * 5 + 2 + 20)); pControlGallery->ShowLabels(TRUE); pControlGallery->SetItems(m_pItemsThemeFonts); lpCreateControl->pCommandBar->EnableAnimation(); lpCreateControl->pControl = pControlGallery; return TRUE; } if (lpCreateControl->nID == ID_FILE_RECENTDOCUMENTS) { lpCreateControl->pControl = new CXTPRibbonControlSystemRecentFileList(); return TRUE; } if (lpCreateControl->nID == ID_CONTENTS_TABLE) { lpCreateControl->controlType = xtpControlButtonPopup; return TRUE; } if (lpCreateControl->nID >= ID_OPTIONS_FONT_SYSTEM && lpCreateControl->nID <= ID_OPTIONS_FONT_EXTRALARGE) { lpCreateControl->controlType = xtpControlRadioButton; return TRUE; } if (lpCreateControl->nID == ID_FOOTNOTES_NEXT) { lpCreateControl->controlType = xtpControlSplitButtonPopup; return TRUE; } if (lpCreateControl->nID == ID_FILE_PRINT && lpCreateControl->nIndex == 5 && m_bIsRibbon) { CXTPControlPopup* pControl = CXTPControlPopup::CreateControlPopup( xtpControlSplitButtonPopup); CMenu menu; menu.LoadMenu(IDR_MENU_PRINT); CXTPRibbonSystemPopupBarPage* pPopupBar = new CXTPRibbonSystemPopupBarPage(); pPopupBar->SetCommandBars(GetCommandBars()); pPopupBar->LoadMenu(menu.GetSubMenu(0)); CXTPControl* pControlLabel = pPopupBar->GetControls()->Add(xtpControlLabel, ID_FILE_PRINT_LABEL, NULL, 0); pControlLabel->SetWidth(XTP_DPI_X(296)); pControlLabel->SetItemDefault(TRUE); pControlLabel->SetStyle(xtpButtonCaption); pPopupBar->SetShowGripper(FALSE); pPopupBar->SetDefaultButtonStyle(xtpButtonCaptionAndDescription); pPopupBar->SetIconSize(CSize(32, 32)); pControl->SetCommandBar(pPopupBar); pPopupBar->InternalRelease(); lpCreateControl->pControl = pControl; return TRUE; } if (lpCreateControl->nID == ID_FILE_SAVE_AS && lpCreateControl->nIndex == 3 && m_bIsRibbon) { CXTPControlPopup* pControl = CXTPControlPopup::CreateControlPopup( xtpControlSplitButtonPopup); CMenu menu; menu.LoadMenu(IDR_MENU_RIBBON_SAVEAS); CXTPRibbonSystemPopupBarPage* pPopupBar = new CXTPRibbonSystemPopupBarPage(); pPopupBar->SetCommandBars(GetCommandBars()); pPopupBar->LoadMenu(menu.GetSubMenu(0)); CXTPControl* pControlLabel = pPopupBar->GetControls()->Add(xtpControlLabel, ID_FILE_SAVE_AS, NULL, 0); pControlLabel->SetWidth(XTP_DPI_X(296)); pControlLabel->SetItemDefault(TRUE); pControlLabel->SetStyle(xtpButtonCaption); pPopupBar->SetShowGripper(FALSE); pPopupBar->SetDefaultButtonStyle(xtpButtonCaptionAndDescription); pPopupBar->SetIconSize(CSize(32, 32)); pControl->SetCommandBar(pPopupBar); pPopupBar->InternalRelease(); lpCreateControl->pControl = pControl; return TRUE; } if (lpCreateControl->nID == ID_FILE_SEND) { CXTPControlPopup* pControl = CXTPControlPopup::CreateControlPopup(xtpControlButtonPopup); CMenu menu; menu.LoadMenu(IDR_MENU_SEND); CXTPRibbonSystemPopupBarPage* pPopupBar = new CXTPRibbonSystemPopupBarPage(); pPopupBar->SetCommandBars(GetCommandBars()); pPopupBar->LoadMenu(menu.GetSubMenu(0)); CXTPControl* pControlLabel = pPopupBar->GetControls()->Add(xtpControlLabel, ID_FILE_SEND_LABEL, NULL, 0); pControlLabel->SetWidth(XTP_DPI_X(296)); pControlLabel->SetItemDefault(TRUE); pControlLabel->SetStyle(xtpButtonCaption); pPopupBar->SetShowGripper(FALSE); pPopupBar->SetDefaultButtonStyle(xtpButtonCaptionAndDescription); pPopupBar->SetIconSize(CSize(32, 32)); pControl->SetCommandBar(pPopupBar); pPopupBar->InternalRelease(); pControl->SetFlags(xtpFlagManualUpdate); lpCreateControl->pControl = pControl; return TRUE; } CXTPToolBar* pToolBar = lpCreateControl->bToolBar ? DYNAMIC_DOWNCAST(CXTPToolBar, lpCreateControl->pCommandBar) : NULL; if (lpCreateControl->nID == ID_COMBO_FONT && pToolBar && pToolBar->GetBarID() == IDB_FORMATBAR) { CXTPControlComboBox* pComboFont = new CXTPControlFontComboBox(); pComboFont->SetDropDownListStyle(); lpCreateControl->pControl = pComboFont; return TRUE; } if (lpCreateControl->nID == ID_BDR_NONE && pToolBar) { CXTPControlPopup* pPopup = CXTPControlPopup::CreateControlPopup(xtpControlSplitButtonPopup); CXTPPopupToolBar* pPopupBar = CXTPPopupToolBar::CreatePopupToolBar(GetCommandBars()); pPopupBar->LoadToolBar(IDR_BORDERS); pPopupBar->SetWidth(XTP_DPI_X(23) * 5 + XTP_DPI_X(6)); pPopupBar->SetTearOffPopup(_T("Borders"), IDR_BORDERS, XTP_DPI_X(23) * 5 + XTP_DPI_X(6)); pPopup->SetCommandBar(pPopupBar); pPopupBar->InternalRelease(); lpCreateControl->pControl = pPopup; return TRUE; } if (lpCreateControl->nID == ID_COMBO_SIZE && pToolBar && pToolBar->GetBarID() == IDB_FORMATBAR) { CXTPControlComboBox* pComboSize = new CXTPControlSizeComboBox(); pComboSize->SetDropDownListStyle(); lpCreateControl->pControl = pComboSize; return TRUE; } if (lpCreateControl->nID == ID_BUTTON_TEXT && pToolBar && pToolBar->GetBarID() == IDB_FORMATBAR) { CXTPControlPopupColor* pPopupColor = new CXTPControlPopupColor(); CXTPPopupBar* pColorBar = (CXTPPopupBar*)CXTPPopupToolBar::CreateObject(); pColorBar->GetControls()->Add(new CXTPControlButtonColor(), XTP_IDS_AUTOMATIC); pColorBar->GetControls()->Add(new CXTPControlColorSelector(), ID_SELECTOR_TEXT); pColorBar->GetControls()->Add(new CXTPControlButtonColor(), XTP_IDS_MORE_COLORS); pPopupColor->SetCommandBar(pColorBar); pColorBar->SetTearOffPopup(_T("Text Color"), IDR_COLORTEXT_POPUP, 0); pColorBar->EnableCustomization(FALSE); pColorBar->InternalRelease(); lpCreateControl->pControl = pPopupColor; return TRUE; } if (lpCreateControl->nID == ID_EDIT_UNDO && pToolBar) { CXTPControlPopup* pButtonUndo = CXTPControlPopup::CreateControlPopup( xtpControlSplitButtonPopup); CXTPPopupToolBar* pUndoBar = CXTPPopupToolBar::CreatePopupToolBar(GetCommandBars()); pUndoBar->EnableCustomization(FALSE); pUndoBar->SetBorders(XTP_DPI(CRect(2, 2, 2, 2))); pUndoBar->DisableShadow(); CXTPControlListBox* pControlListBox = (CXTPControlListBox*)pUndoBar->GetControls()->Add( new CXTPControlListBox(), ID_EDIT_UNDO); pControlListBox->SetWidth(XTP_DPI_X(140)); pControlListBox->SetLinesMinMax(1, 6); pControlListBox->SetMultiplSel(TRUE); CXTPControlStatic* pControlListBoxInfo = (CXTPControlStatic*)pUndoBar->GetControls()->Add(new CXTPControlStatic(), ID_EDIT_UNDO); pControlListBoxInfo->SetWidth(XTP_DPI_X(140)); pButtonUndo->SetCommandBar(pUndoBar); pUndoBar->InternalRelease(); lpCreateControl->pControl = pButtonUndo; return TRUE; } return FALSE; } BOOL CMainFrame::CreateToolBars() { XTPImageManager()->SetMaskColor(RGB(0, 255, 0)); CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars) { CXTPToolBar* pStandardBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop); if (!pStandardBar || !pStandardBar->LoadToolBar(IDR_MAINFRAME1)) { TRACE0("Failed to create toolbar\n"); return FALSE; } CXTPToolBar* pFormatBar = (CXTPToolBar*)pCommandBars->Add(_T("Formating"), xtpBarTop); if (!pFormatBar || !pFormatBar->LoadToolBar(IDB_FORMATBAR)) { TRACE0("Failed to create toolbar\n"); return FALSE; } DockRightOf(pFormatBar, pStandardBar); // Create Context Menu CMenu menuText; menuText.LoadMenu(IDR_TEXT_POPUP); CMenu* pMenuPopup = menuText.GetSubMenu(0); if (pMenuPopup) { menuText.RemoveMenu(0, MF_BYPOSITION); if (!GetSystemMetrics(SM_PENWINDOWS)) { // delete pen specific stuff // remove Insert Keystrokes pMenuPopup->DeleteMenu(ID_PEN_LENS, MF_BYCOMMAND); int nIndex = pMenuPopup->GetMenuItemCount() - 1; // index of last item // remove Edit Text... pMenuPopup->DeleteMenu(nIndex, MF_BYPOSITION); // remove separator pMenuPopup->DeleteMenu(nIndex - 1, MF_BYPOSITION); } pCommandBars->GetContextMenus()->Add(IDR_TEXT_POPUP, _T("Context Menu"), pMenuPopup); } } return TRUE; } BOOL CMainFrame::CreateRulerBar() { if (!m_wndRulerBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_HIDE_INPLACE, ID_VIEW_RULER)) { TRACE0("Failed to create ruler\n"); return FALSE; } return TRUE; } BOOL CMainFrame::CreateStatusBar() { if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators) / sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return FALSE; } return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame Operations HICON CMainFrame::GetIcon(int nDocType) { switch (nDocType) { case RD_WINWORD6: case RD_WORDPAD: case RD_EMBEDDED: case RD_RICHTEXT: return m_hIconDoc; case RD_TEXT: case RD_OEMTEXT: return m_hIconText; case RD_WRITE: return m_hIconWrite; } return m_hIconDoc; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers void CMainFrame::OnFontChange() { // m_wndFormatBar.SendMessage(CWordPadApp::m_nPrinterChangedMsg); } void CMainFrame::OnDevModeChange(LPTSTR lpDeviceName) { theApp.NotifyPrinterChanged(); CFrameWnd::OnDevModeChange(lpDeviceName); // sends message to descendants } void CMainFrame::OnSysColorChange() { CFrameWnd::OnSysColorChange(); m_wndRulerBar.SendMessage(WM_SYSCOLORCHANGE); } void CMainFrame::ActivateFrame(int nCmdShow) { CFrameWnd::ActivateFrame(nCmdShow); // make sure and display the toolbar, ruler, etc while loading a document. OnIdleUpdateCmdUI(); UpdateWindow(); } void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx, cy); theApp.m_bMaximized = (nType == SIZE_MAXIMIZED); if (nType == SIZE_RESTORED) GetWindowRect(theApp.m_rectInitialFrame); } LRESULT CMainFrame::OnBarState(WPARAM wParam, LPARAM lParam) { if (lParam == -1) return 0L; _ASSERTE(lParam != RD_EMBEDDED); if (wParam == 0) { // CDockState& ds = theApp.GetDockState(lParam); // ds.Clear(); // empty out the dock state // GetDockState(ds); } else { if (IsTextType((int)lParam)) { // in text mode hide the ruler and format bar so that it is the default CWnd* pBar = GetControlBar(ID_VIEW_RULER); if (pBar != NULL) pBar->ShowWindow(SW_HIDE); } HICON hIcon = GetIcon((int)lParam); SendMessage(WM_SETICON, TRUE, (LPARAM)hIcon); // SetDockState(theApp.GetDockState(lParam)); } return 0L; } void CMainFrame::OnMove(int x, int y) { CFrameWnd::OnMove(x, y); WINDOWPLACEMENT wp; wp.length = sizeof(wp); GetWindowPlacement(&wp); theApp.m_rectInitialFrame = wp.rcNormalPosition; CView* pView = GetActiveView(); if (pView != NULL) pView->SendMessage(WM_MOVE); } LRESULT CMainFrame::OnOpenMsg(WPARAM, LPARAM lParam) { TCHAR szAtomName[256]; szAtomName[0] = NULL; GlobalGetAtomName((ATOM)lParam, szAtomName, 256); CWordPadDoc* pDoc = (CWordPadDoc*)GetActiveDocument(); if (szAtomName[0] != NULL && pDoc != NULL) { if (lstrcmpi(szAtomName, pDoc->GetPathName()) == 0) return TRUE; } return FALSE; } void CMainFrame::OnHelpFinder() { theApp.WinHelp(0, HELP_FINDER); } void CMainFrame::OnDropFiles(HDROP hDropInfo) { TCHAR szFileName[_MAX_PATH]; ::DragQueryFile(hDropInfo, 0, szFileName, _MAX_PATH); ::DragFinish(hDropInfo); theApp.OpenDocumentFile(szFileName); } void CMainFrame::OnCharColor() { /*CColorMenu colorMenu; CRect rc; int index = m_wndFormatBar.CommandToIndex(ID_CHAR_COLOR); m_wndFormatBar.GetItemRect(index, &rc); m_wndFormatBar.ClientToScreen(rc); colorMenu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,rc.left,rc.bottom, this);*/ } BOOL CMainFrame::OnQueryNewPalette() { CView* pView = GetActiveView(); if (pView != NULL) return (BOOL)pView->SendMessage(WM_QUERYNEWPALETTE); return FALSE; } void CMainFrame::OnPaletteChanged(CWnd* pFocusWnd) { CView* pView = GetActiveView(); if (pView != NULL) pView->SendMessage(WM_PALETTECHANGED, (WPARAM)pFocusWnd->GetSafeHwnd()); } int CMainFrame::OnCreateCommandBar(LPCREATEBARSTRUCT lpCreatePopup) { if (lpCreatePopup->bTearOffBar && lpCreatePopup->nID == IDR_COLORTEXT_POPUP) { CXTPToolBar* pToolBar = DYNAMIC_DOWNCAST(CXTPToolBar, lpCreatePopup->pCommandBar); _ASSERTE(pToolBar); // Prevent docking. pToolBar->EnableDocking(xtpFlagFloating); // Prevent customization pToolBar->EnableCustomization(FALSE); return TRUE; } return FALSE; } void CMainFrame::OnCustomize() { CXTPCustomizeSheet cs(GetCommandBars()); CXTPCustomizeOptionsPage pageOptions(&cs); cs.AddPage(&pageOptions); CXTPCustomizeCommandsPage* pCommands = cs.GetCommandsPage(); pCommands->AddCategories(IDR_MAINFRAME); pCommands->GetControls(_T("File"))->Add(xtpControlButton, ID_FILE_OPEN, _T(""), 1); pCommands->InsertAllCommandsCategory(); pCommands->InsertBuiltInMenus(IDR_MAINFRAME); pCommands->InsertNewMenuCategory(); cs.DoModal(); } void CMainFrame::OnClose() { SaveCommandBars(_T("CommandBars2")); CFrameWnd::OnClose(); } void CMainFrame::SwitchBorders(DWORD dwState) { if (m_dwBorders & dwState) m_dwBorders &= ~dwState; else m_dwBorders |= dwState; } void CMainFrame::OnBorders(UINT nID) { switch (nID) { case ID_BDR_TOP: SwitchBorders(borderTop); break; case ID_BDR_LEFT: SwitchBorders(borderLeft); break; case ID_BDR_RIGHT: SwitchBorders(borderRight); break; case ID_BDR_BOTTOM: SwitchBorders(borderBottom); break; case ID_BDR_NONE: m_dwBorders = 0; break; case ID_BDR_OUTSIDE: SwitchBorders(borderOutside); break; case ID_BDR_ALL: SwitchBorders(borderAll); break; case ID_BDR_INSIDE_VERT: SwitchBorders(borderInsideVert); break; case ID_BDR_INSIDE_HORZ: SwitchBorders(borderInsideHorz); break; case ID_BDR_INSIDE: SwitchBorders(borderInside); break; } } void CMainFrame::OnUpdateBorders(CCmdUI* pCmdUI) { switch (pCmdUI->m_nID) { case ID_BDR_TOP: pCmdUI->SetCheck(m_dwBorders & borderTop ? TRUE : FALSE); break; case ID_BDR_LEFT: pCmdUI->SetCheck(m_dwBorders & borderLeft ? TRUE : FALSE); break; case ID_BDR_RIGHT: pCmdUI->SetCheck(m_dwBorders & borderRight ? TRUE : FALSE); break; case ID_BDR_BOTTOM: pCmdUI->SetCheck(m_dwBorders & borderBottom ? TRUE : FALSE); break; case ID_BDR_OUTSIDE: pCmdUI->SetCheck((m_dwBorders & borderOutside) == borderOutside ? TRUE : FALSE); break; case ID_BDR_ALL: pCmdUI->SetCheck((m_dwBorders & borderAll) == borderAll ? TRUE : FALSE); break; case ID_BDR_INSIDE_VERT: pCmdUI->SetCheck(m_dwBorders & borderInsideVert ? TRUE : FALSE); break; case ID_BDR_INSIDE_HORZ: pCmdUI->SetCheck(m_dwBorders & borderInsideHorz ? TRUE : FALSE); break; case ID_BDR_INSIDE: pCmdUI->SetCheck((m_dwBorders & borderInside) == borderInside ? TRUE : FALSE); break; } } void CMainFrame::OnUpdateGalleryThemeColors(CCmdUI* pCmdUI) { CXTPControlGallery* pGallery = DYNAMIC_DOWNCAST(CXTPControlGallery, CXTPControl::FromUI(pCmdUI)); if (pGallery) { pGallery->SetCheckedItem(m_nThemeColors); } pCmdUI->Enable(TRUE); } void CMainFrame::OnGalleryThemeColors(NMHDR* pNMHDR, LRESULT* pResult) { NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR; CXTPControlGallery* pGallery = DYNAMIC_DOWNCAST(CXTPControlGallery, tagNMCONTROL->pControl); if (pGallery) { CXTPControlGalleryItem* pItem = pGallery->GetItem(pGallery->GetSelectedItem()); if (pItem) { m_nThemeColors = pItem->GetID(); m_pItemsFontTextColor->RemoveAll(); pItem = m_pItemsFontTextColor->AddLabel(0); pItem->SetCaption(_T("Theme Colors")); CGalleryItemFontColor::AddThemeColors(m_pItemsFontTextColor, m_nThemeColors); pItem = m_pItemsFontTextColor->AddLabel(0); pItem->SetCaption(_T("Standard Colors")); CGalleryItemFontColor::AddStandardColors(m_pItemsFontTextColor); } *pResult = TRUE; // Handled } } void CMainFrame::OnMeasurements(UINT nItem) { m_nMeasurements = nItem; } void CMainFrame::OnUpdateMeasurements(CCmdUI* pCmdUI) { pCmdUI->SetCheck(pCmdUI->m_nID == m_nMeasurements ? 1 : 0); } void CMainFrame::OnWordWrap(UINT nItem) { m_nWordWrap = nItem; } void CMainFrame::OnUpdateWordWrap(CCmdUI* pCmdUI) { pCmdUI->SetCheck(pCmdUI->m_nID == m_nWordWrap ? 1 : 0); } void CMainFrame::OnEmptyCommand(UINT) { REPORT_NOT_IMPLEMENTED(); } void CMainFrame::OnEmptyCommand() { REPORT_NOT_IMPLEMENTED(); } void CMainFrame::OnThemeDialog() { m_dlgTheme.ShowWindow(SW_SHOW); } void CMainFrame::OnFrameTheme() { ShowWindow(SW_NORMAL); CXTPRibbonBar* pRibbonBar = (CXTPRibbonBar*)GetCommandBars()->GetAt(0); CXTPWindowRect rc(this); rc.top += (m_bEnableFrameTheme ? -1 : +1) * GetSystemMetrics(SM_CYCAPTION); MoveWindow(rc); m_bEnableFrameTheme = !m_bEnableFrameTheme; pRibbonBar->EnableFrameTheme(m_bEnableFrameTheme); } void CMainFrame::OnUpdateFrameTheme(CCmdUI* pCmdUI) { CXTPRibbonBar* pRibbonBar = (CXTPRibbonBar*)GetCommandBars()->GetAt(0); pCmdUI->SetCheck(pRibbonBar->IsFrameThemeEnabled() ? TRUE : 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); } RecalcLayout(FALSE); } void CMainFrame::OnUpdateOptionsRighttoleft(CCmdUI* pCmdUI) { if (XTPSystemVersion()->IsLayoutRTLSupported()) { pCmdUI->SetCheck(GetExStyle() & WS_EX_LAYOUTRTL ? TRUE : FALSE); } else { pCmdUI->Enable(FALSE); } } void CMainFrame::CreateSystemMenuPopup(CXTPCommandBars* pCommandBars) { CXTPRibbonBar* pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, pCommandBars->GetMenuBar()); if (pRibbonBar) { CXTPRibbonControlSystemButton* pControlFile = pRibbonBar->GetSystemButton(); if (pControlFile) { CMenu menu; menu.LoadMenu(IDR_MAINFRAME); CXTPPopupBar* pCommandBar = new CXTPRibbonSystemPopupBar(); if (pCommandBar) { pCommandBar->SetCommandBars(pCommandBars); pControlFile->SetCommandBar(pCommandBar); pCommandBar->InternalRelease(); pCommandBar->LoadMenu(menu.GetSubMenu(0)); pCommandBar->SetIconSize(CSize(36, 36)); } } } } void CMainFrame::CreateBackstage(CXTPCommandBars* pCommandBars) { ASSERT_VALID(pCommandBars); CXTPRibbonBackstageView* pView = CXTPRibbonBackstageView::CreateBackstageView(pCommandBars); if (pView) { pView->AddCommand(ID_FILE_OPEN); pView->AddCommand(ID_FILE_SAVE); pView->AddCommand(ID_FILE_SAVE_AS); if (!m_pageInfo.GetSafeHwnd()) m_pageInfo.Create(CBackstagePageInfo::IDD, this); if (!m_pageHelp.GetSafeHwnd()) m_pageHelp.Create(CBackstagePageHelp::IDD, this); if (!m_pageSave.GetSafeHwnd()) m_pageSave.Create(CBackstagePageSave::IDD, this); if (!m_pageDisabled.GetSafeHwnd()) { m_pageDisabled.Create(CXTPRibbonBackstagePageRecent::IDD, this); m_pageDisabled.SetUseShellIcon( FALSE); // TRUE to improve performance but use generic shell icons. } if (!m_pagePrint.GetSafeHwnd()) m_pagePrint.Create(CXTPRibbonBackstagePagePrint::IDD, this); CXTPRibbonBackstageTab* pTabInfo = pView->AddTab(&m_pageInfo, ID_BACKSTAGE_INFO); if (pTabInfo) { pTabInfo->SetFlags(xtpFlagManualUpdate); // No Need update with Update handler pTabInfo->SetControlPaneMinSize(XTP_DPI(CSize(650, 400))); } CXTPRibbonBackstageTab* pTabDisabled = pView->AddTab(&m_pageDisabled, ID_BACKSTAGE_DISABLED); if (pTabDisabled) { pTabDisabled->SetFlags(xtpFlagManualUpdate); // No Need update with Update handler pTabDisabled->SetEnabled(FALSE); } CXTPRibbonBackstageTab* pTabPrint = pView->AddTab(&m_pagePrint, ID_BACKSTAGE_PRINT); if (pTabPrint) pTabPrint->SetFlags(xtpFlagManualUpdate); // No Need update with Update handler CXTPRibbonBackstageTab* pTabSaveSend = pView->AddTab(&m_pageSave, ID_BACKSTAGE_SAVESEND); if (pTabSaveSend) pTabSaveSend->SetFlags(xtpFlagManualUpdate); // No Need update with Update handler CXTPRibbonBackstageTab* pTabHelp = pView->AddTab(&m_pageHelp, ID_BACKSTAGE_HELP); if (pTabHelp) { pTabHelp->SetFlags(xtpFlagManualUpdate); // No Need update with Update handler pTabHelp->SetIconId(ID_APP_ABOUT); } pView->AddMenuSeparator(); pView->AddCommand(ID_APP_EXIT); if (pTabInfo) pTabInfo->SetItemDefault(TRUE); CXTPRibbonBar* pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, pCommandBars->GetMenuBar()); if (pRibbonBar) { CXTPRibbonControlSystemButton* pButton = pRibbonBar->GetSystemButton(); if (pButton) { pButton->SetCommandBar(pView); } } XTPPaintTheme nPaintTheme = pCommandBars->GetPaintManager()->GetCurrentTheme(); if (((nPaintTheme == xtpThemeOffice2013) || (nPaintTheme == xtpThemeOffice2016) || nPaintTheme == xtpThemeVisualStudio2015 || nPaintTheme == xtpThemeVisualStudio2017 || nPaintTheme == xtpThemeVisualStudio2019 || nPaintTheme == xtpThemeVisualStudio2022) && m_bNewBackstage) pView->SetBackstageStyle(xtpRibbonBackstageOffice2016Style); else pView->SetBackstageStyle(xtpRibbonBackstageOffice2010Style); pView->InternalRelease(); } SetBackstageTheme(); } void CMainFrame::SetBackstageTheme() { XTPPaintTheme nPaintTheme = GetCommandBars()->GetPaintManager()->GetCurrentTheme(); XTPControlTheme nTheme = xtpControlThemeResource; switch (nPaintTheme) { case xtpThemeOffice2013: nTheme = xtpControlThemeOffice2013; break; case xtpThemeVisualStudio2015: nTheme = xtpControlThemeVisualStudio2015; break; case xtpThemeVisualStudio2017: nTheme = xtpControlThemeVisualStudio2017; break; case xtpThemeVisualStudio2019: nTheme = xtpControlThemeVisualStudio2019; break; case xtpThemeVisualStudio2022: nTheme = xtpControlThemeVisualStudio2022; break; default: nTheme = xtpControlThemeResource; } CXTPRibbonBar* pRibbonBar = (CXTPRibbonBar*)GetCommandBars()->GetMenuBar(); if (pRibbonBar) { CXTPRibbonBackstageView* pView = DYNAMIC_DOWNCAST( CXTPRibbonBackstageView, pRibbonBar->GetSystemButton()->GetCommandBar()); if (pView) { pView->SetTheme(nPaintTheme); if (nTheme == xtpControlThemeResource) { pView->SetBackstageStyle(xtpRibbonBackstageOffice2010Style); } else { if (m_bNewBackstage) pView->SetBackstageStyle(xtpRibbonBackstageOffice2016Style); } } if (m_pageInfo.GetSafeHwnd()) { m_pageInfo.SetTheme(nTheme); } if (m_pageHelp.GetSafeHwnd()) { m_pageHelp.SetTheme(nTheme); } if (m_pageSave.GetSafeHwnd()) { m_pageSave.SetTheme(nTheme); } if (m_pageDisabled.GetSafeHwnd()) { m_pageDisabled.SetTheme(nTheme); } if (m_pagePrint.GetSafeHwnd()) { m_pagePrint.SetTheme(nTheme); } } } void CMainFrame::SetTheme() { CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars) { _ASSERTE(pCommandBars->GetPaintManager()); _ASSERTE(pCommandBars->GetCommandBarsOptions()); // _ASSERTE(pCommandBars->GetToolTipContext()); pCommandBars->SetAllCaps(FALSE); pCommandBars->GetPaintManager()->m_bAutoResizeIcons = TRUE; pCommandBars->GetPaintManager()->RefreshMetrics(); CXTPRibbonBar* pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, pCommandBars->GetMenuBar()); if (pRibbonBar) { if (m_nTheme == xtpThemeDlgOffice2007 && (m_nThemeColor == xtpThemeColor2007Blue || m_nThemeColor == xtpThemeColor2007Silver || m_nThemeColor == xtpThemeColor2007Black || m_nThemeColor == xtpThemeColor2007Aqua || m_nThemeColor == xtpThemeColor2007System)) { CXTPRibbonControlSystemButton* pSysButton = pRibbonBar->GetSystemButton(); if (pSysButton) { pSysButton->SetStyle(xtpButtonAutomatic); } CreateSystemMenuPopup(pCommandBars); } else { CXTPRibbonControlSystemButton* pSysButton = pRibbonBar->GetSystemButton(); if (pSysButton) { pSysButton->SetStyle(xtpButtonCaption); } CreateBackstage(pCommandBars); } } } } void CMainFrame::SetThemeOffice2013(XTPPaintTheme paintTheme) { CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars) { _ASSERTE(pCommandBars->GetPaintManager()); _ASSERTE(pCommandBars->GetCommandBarsOptions()); // _ASSERTE(pCommandBars->GetToolTipContext()); pCommandBars->SetAllCaps(paintTheme == xtpThemeVisualStudio2015 || paintTheme == xtpThemeVisualStudio2017 || paintTheme == xtpThemeVisualStudio2019 || paintTheme == xtpThemeVisualStudio2022 ? FALSE : TRUE); pCommandBars->GetPaintManager()->m_bAutoResizeIcons = TRUE; pCommandBars->GetPaintManager()->RefreshMetrics(); CXTPRibbonBar* pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, pCommandBars->GetMenuBar()); if (pRibbonBar) { CXTPRibbonControlSystemButton* pSysButton = pRibbonBar->GetSystemButton(); if (pSysButton) { pSysButton->SetStyle(xtpButtonCaption); } } CreateBackstage(pCommandBars); } } void CMainFrame::SetThemeOffice2016(XTPPaintTheme paintTheme) { SetThemeOffice2013(paintTheme); } void CMainFrame::SetThemeVisualStudio2015(XTPPaintTheme paintTheme) { SetThemeOffice2013(paintTheme); } void CMainFrame::SetThemeVisualStudio2017(XTPPaintTheme paintTheme) { SetThemeOffice2013(paintTheme); } void CMainFrame::SetThemeVisualStudio2019(XTPPaintTheme paintTheme) { SetThemeOffice2013(paintTheme); } void CMainFrame::SetThemeVisualStudio2022(XTPPaintTheme paintTheme) { SetThemeOffice2013(paintTheme); } void CMainFrame::SetCommandBarsTheme(XTPPaintTheme paintTheme, LPCTSTR lpszINI /*=NULL*/) { if (lpszINI != NULL) { XTPThemeDLL()->SetHandle(lpszINI); XTPPaintManager()->SetTheme(paintTheme); GetCommandBars()->SetTheme(paintTheme); } else { _ASSERTE(FALSE); } } LRESULT CMainFrame::OnThemeChanged(WPARAM wParam, LPARAM lParam) { THEME_COLOR* pThemeColor = reinterpret_cast(lParam); m_nTheme = (XTPThemeDlg)pThemeColor->nTheme; m_nThemeColor = pThemeColor->nColor; m_nThemeAccent = pThemeColor->nAccent; m_nThemeBack = pThemeColor->nBack; XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, static_cast(pThemeColor->nAccent)); XTPGetApplication()->SetAmbientProperty(xtpApplicationUseSystemAccentColor, static_cast(pThemeColor->bUseSystemAccent)); m_bIsRibbon = TRUE; GetCommandBars()->GetImageManager()->RemoveAll(); switch (m_nTheme) { case xtpThemeDlgNativeWindows: m_bIsRibbon = FALSE; EnableNormalStyle(); EnableFrameTheme(NULL); XTPPaintManager()->SetTheme(xtpThemeNativeWinXP); GetCommandBars()->SetTheme(xtpThemeNativeWinXP); break; case xtpThemeDlgOffice2000: m_bIsRibbon = FALSE; EnableNormalStyle(); EnableFrameTheme(NULL); XTPPaintManager()->SetTheme(xtpThemeOffice2000); GetCommandBars()->SetTheme(xtpThemeOffice2000); break; case xtpThemeDlgOfficeXP: m_bIsRibbon = FALSE; EnableNormalStyle(); EnableFrameTheme(NULL); XTPPaintManager()->SetTheme(xtpThemeOfficeXP); GetCommandBars()->SetTheme(xtpThemeOfficeXP); break; case xtpThemeDlgOffice2003: m_bIsRibbon = FALSE; EnableNormalStyle(); EnableFrameTheme(NULL); XTPPaintManager()->SetTheme(xtpThemeOffice2003); GetCommandBars()->SetTheme(xtpThemeOffice2003); break; case xtpThemeDlgOffice2007: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2007Blue: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2007Blue); break; case xtpThemeColor2007Silver: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2007Silver); break; case xtpThemeColor2007Black: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2007Black); break; case xtpThemeColor2007Aqua: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2007Aqua); break; case xtpThemeColor2007System: SetCommandBarsTheme(xtpThemeOffice2007System, _T("")); break; } SetTheme(); } break; case xtpThemeDlgOffice2010: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2010Blue: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2010Blue); break; case xtpThemeColor2010Silver: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2010Silver); break; case xtpThemeColor2010Black: SetCommandBarsTheme(xtpThemeRibbon, xtpIniOffice2010Black); break; } SetTheme(); } break; case xtpThemeDlgOffice2013: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2013White: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013Access); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013Excel); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013OneNote); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013Outlook); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013PowerPoint); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013Publisher); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013Word); break; } } break; case xtpThemeColor2013GrayLight: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013AccessGrayLight); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013ExcelGrayLight); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013OneNoteGrayLight); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013OutlookGrayLight); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013PowerPointGrayLight); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013PublisherGrayLight); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013WordGrayLight); break; } } break; case xtpThemeColor2013GrayDark: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013AccessGrayDark); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013ExcelGrayDark); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013OneNoteGrayDark); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013OutlookGrayDark); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013PowerPointGrayDark); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013PublisherGrayDark); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2013, xtpIniOffice2013WordGrayDark); break; } } break; } SetThemeOffice2013(xtpThemeOffice2013); } break; case xtpThemeDlgOffice2016: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2016Black: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016AccessBlack); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelBlack); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteBlack); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookBlack); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointBlack); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherBlack); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016WordBlack); break; } } break; case xtpThemeColor2016White: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016AccessWhite); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelWhite); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteWhite); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookWhite); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointWhite); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherWhite); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016WordWhite); break; } } break; case xtpThemeColor2016Colorful: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016AccessColorful); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelColorful); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteColorful); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookColorful); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointColorful); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherColorful); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016WordColorful); break; } } break; case xtpThemeColor2016GrayDark: { switch (m_nThemeAccent) { case xtpThemeAccentAccess: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016AccessDarkGray); break; case xtpThemeAccentExcel: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelDarkGray); break; case xtpThemeAccentOneNote: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteDarkGray); break; case xtpThemeAccentOutlook: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookDarkGray); break; case xtpThemeAccentPowerPoint: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointDarkGray); break; case xtpThemeAccentPublisher: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherDarkGray); break; case xtpThemeAccentWord: SetCommandBarsTheme(xtpThemeOffice2016, xtpIniOffice2016WordDarkGray); break; } } break; } SetThemeOffice2016(xtpThemeOffice2016); } break; case xtpThemeDlgVisualStudio2015: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2015Blue: SetCommandBarsTheme(xtpThemeVisualStudio2015, xtpIniVisualStudio2015Blue); break; case xtpThemeColor2015Dark: SetCommandBarsTheme(xtpThemeVisualStudio2015, xtpIniVisualStudio2015Dark); break; case xtpThemeColor2015Light: SetCommandBarsTheme(xtpThemeVisualStudio2015, xtpIniVisualStudio2015Light); break; } SetThemeVisualStudio2015(xtpThemeVisualStudio2015); } break; case xtpThemeDlgVisualStudio2017: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2017Blue: SetCommandBarsTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017Blue); break; case xtpThemeColor2017BlueExtra: SetCommandBarsTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017BlueExtra); break; case xtpThemeColor2017Dark: SetCommandBarsTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017Dark); break; case xtpThemeColor2017Light: SetCommandBarsTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017Light); break; } SetThemeVisualStudio2017(xtpThemeVisualStudio2017); } break; case xtpThemeDlgVisualStudio2019: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2019Blue: SetCommandBarsTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019Blue); break; case xtpThemeColor2019BlueExtra: SetCommandBarsTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019BlueExtra); break; case xtpThemeColor2019Dark: SetCommandBarsTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019Dark); break; case xtpThemeColor2019Light: SetCommandBarsTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019Light); break; } SetThemeVisualStudio2019(xtpThemeVisualStudio2019); } break; case xtpThemeDlgVisualStudio2022: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColor2022Blue: SetCommandBarsTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022Blue); break; case xtpThemeColor2022BlueExtra: SetCommandBarsTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022BlueExtra); break; case xtpThemeColor2022Dark: SetCommandBarsTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022Dark); break; case xtpThemeColor2022Light: SetCommandBarsTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022Light); break; } SetThemeVisualStudio2022(xtpThemeVisualStudio2022); } break; case xtpThemeDlgNativeWindows10: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColorWindows10Dark: XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, static_cast( pThemeColor->nAccent)); SetCommandBarsTheme(xtpThemeNativeWindows10, xtpIniWindows10Dark); break; case xtpThemeColorWindows10Light: XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, static_cast( pThemeColor->nAccent)); SetCommandBarsTheme(xtpThemeNativeWindows10, xtpIniWindows10Light); break; } SetThemeVisualStudio2015(xtpThemeNativeWindows10); } break; case xtpThemeDlgNativeWindows11: { EnableRibbonStyle(); switch (m_nThemeColor) { case xtpThemeColorWindows11Dark: SetCommandBarsTheme(xtpThemeNativeWindows11, xtpIniWindows11Dark); break; case xtpThemeColorWindows11Light: SetCommandBarsTheme(xtpThemeNativeWindows11, xtpIniWindows11Light); break; } SetThemeVisualStudio2015(xtpThemeNativeWindows11); } break; } return 0; } LRESULT CMainFrame::OnColorizationColorChanged(WPARAM /*wParam*/, LPARAM /*lParam*/) { XTPGetApplication()->TriggerAmbientPropertyUpdate(xtpApplicationAccentColor); RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_FRAME); return Default(); }