MainFrm.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:27k
- // MainFrm.cpp : implementation of the CMainFrame class
- //
- #include "stdafx.h"
- #include "RibbonControls.h"
- #include "GalleryItems.h"
- #include "MainFrm.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CMainFrame
- IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
- BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
- //{{AFX_MSG_MAP(CMainFrame)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- // DO NOT EDIT what you see in these blocks of generated code !
- ON_WM_CREATE()
- //}}AFX_MSG_MAP
- ON_XTP_CREATECONTROL()
-
- ON_COMMAND(ID_BUTTON_LARGETOGGLEBUTTON, OnToggleButton)
- ON_UPDATE_COMMAND_UI(ID_BUTTON_LARGETOGGLEBUTTON, OnUpdateToggleButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_BUTTON_LARGESIMPLEBUTTON, ID_BUTTON_SMALLSPLITPOPUPBUTTON, OnEnableButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_POPUP_OPTION1, ID_POPUP_OPTION3, OnEnableButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_EDITOR_EDIT, ID_EDITOR_COMBO, OnEnableButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_EDITOR_EXTENDEDEDIT, ID_EDITOR_EXTENDEDCOMBO, OnEnableButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_GALLERY_FONTFACE, ID_EDITOR_POPUP, OnEnableButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_GALLERY_STYLES, ID_GALLERY_TABLE, OnEnableButton)
- ON_UPDATE_COMMAND_UI(ID_GALLERY_COLOR, OnUpdateSelectorText)
- ON_XTP_EXECUTE(ID_GALLERY_COLOR, OnSelectorText)
- ON_UPDATE_COMMAND_UI(ID_GALLERY_UNDO, OnUpdateEditUndo)
- ON_XTP_EXECUTE(ID_GALLERY_UNDO, OnEditUndo)
- ON_COMMAND_RANGE(ID_BUTTON_CHECKBOX1, ID_BUTTON_CHECKBOX3, OnCheckbox)
- ON_COMMAND_RANGE(ID_BUTTON_RADIOBUTTON1, ID_BUTTON_RADIOBUTTON3, OnRadioButton)
- ON_UPDATE_COMMAND_UI_RANGE(ID_BUTTON_CHECKBOX1, ID_BUTTON_CHECKBOX3, OnUpdateCheckbox)
- ON_UPDATE_COMMAND_UI_RANGE(ID_BUTTON_RADIOBUTTON1, ID_BUTTON_RADIOBUTTON3, OnUpdateRadioButton)
- ON_COMMAND(ID_OPTIONS_RIGHTTOLEFT, OnOptionsRighttoleft)
- ON_UPDATE_COMMAND_UI(ID_OPTIONS_RIGHTTOLEFT, OnUpdateOptionsRighttoleft)
-
- ON_COMMAND_RANGE(ID_OPTIONS_STYLEBLUE, ID_OPTIONS_STYLEAQUA, OnOptionsStyle)
- ON_UPDATE_COMMAND_UI_RANGE(ID_OPTIONS_STYLEBLUE, ID_OPTIONS_STYLEAQUA, OnUpdateOptionsStyle)
- END_MESSAGE_MAP()
- static UINT indicators[] =
- {
- ID_SEPARATOR, // status line indicator
- ID_INDICATOR_CAPS,
- ID_INDICATOR_NUM,
- ID_INDICATOR_SCRL,
- };
- /////////////////////////////////////////////////////////////////////////////
- // CMainFrame construction/destruction
- CMainFrame::CMainFrame()
- {
- m_bCheckbox[0] = TRUE;
- m_bCheckbox[1] = FALSE;
- m_bCheckbox[2] = FALSE;
- m_nRadioButton = 1;
- m_bToggleButton = FALSE;
- m_nRibbonStyle = ID_OPTIONS_STYLEBLUE;
- m_clr = 0;
-
- }
- CMainFrame::~CMainFrame()
- {
- }
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- XTPPaintManager()->SetTheme(xtpThemeRibbon);
- if (!CreateStatusBar())
- return -1;
- if (!InitCommandBars())
- return -1;
- CXTPCommandBars* pCommandBars = GetCommandBars();
- m_wndStatusBar.SetCommandBars(pCommandBars);
- if (!CreateRibbonBar())
- {
- TRACE0("Failed to create ribbonn");
- return -1;
- }
- CXTPToolTipContext* pToolTipContext = GetCommandBars()->GetToolTipContext();
- pToolTipContext->SetStyle(xtpToolTipOffice2007);
- pToolTipContext->ShowTitleAndDescription();
- pToolTipContext->ShowImage(TRUE, 0);
- pToolTipContext->SetMargin(CRect(2, 2, 2, 2));
- pToolTipContext->SetMaxTipWidth(180);
- pToolTipContext->SetFont(pCommandBars->GetPaintManager()->GetIconFont());
- pToolTipContext->SetDelayTime(TTDT_INITIAL, 900);
- pCommandBars->GetCommandBarsOptions()->bShowKeyboardTips = TRUE;
- return 0;
- }
- BOOL CMainFrame::CreateStatusBar()
- {
- if (!m_wndStatusBar.Create(this))
- {
- TRACE0("Failed to create status barn");
- return FALSE; // fail to create
- }
- m_wndStatusBar.AddIndicator(0);
- m_wndStatusBar.AddIndicator(ID_INDICATOR_CAPS);
- m_wndStatusBar.AddIndicator(ID_INDICATOR_NUM);
- m_wndStatusBar.AddIndicator(ID_INDICATOR_SCRL);
- return TRUE;
- }
- BOOL CMainFrame::CreateRibbonBar()
- {
- CXTPCommandBars* pCommandBars = GetCommandBars();
- CMenu menu;
- menu.Attach(::GetMenu(m_hWnd));
- SetMenu(NULL);
- CXTPRibbonBar* pRibbonBar = (CXTPRibbonBar*)pCommandBars->Add(_T("The Ribbon"), xtpBarTop, RUNTIME_CLASS(CXTPRibbonBar));
- if (!pRibbonBar)
- {
- return FALSE;
- }
- pRibbonBar->EnableDocking(0);
- CXTPControlPopup* pControlFile = (CXTPControlPopup*)pRibbonBar->AddSystemButton(ID_MENU_FILE);
- pControlFile->SetCommandBar(menu.GetSubMenu(0));
- pControlFile->GetCommandBar()->SetIconSize(CSize(32, 32));
- pCommandBars->GetImageManager()->SetIcons(ID_MENU_FILE);
- pControlFile->SetCaption(_T("&File"));
-
- pControlFile->SetIconId(IDB_GEAR);
- UINT uCommand = {IDB_GEAR};
- pCommandBars->GetImageManager()->SetIcons(IDB_GEAR, &uCommand, 1, CSize(0, 0), xtpImageNormal);
-
- CXTPRibbonTab* pTabHome = pRibbonBar->AddTab(ID_TAB_BUTTONS);
- // Large Buttons
- if (pTabHome)
- {
- CXTPControl* pControl;
- CXTPRibbonGroup* pGroup = pTabHome->AddGroup(ID_GROUP_LARGEBUTTONS);
- pGroup->ShowOptionButton();
- pControl = pGroup->Add(xtpControlButton, ID_BUTTON_LARGESIMPLEBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaptionBelow);
- pControl = pGroup->Add(xtpControlButton, ID_BUTTON_LARGETOGGLEBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaptionBelow);
- pControl = pGroup->Add(xtpControlButtonPopup, ID_BUTTON_LARGEPOPUPBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaptionBelow);
- pControl = pGroup->Add(xtpControlSplitButtonPopup, ID_BUTTON_LARGESPLITPOPUPBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaptionBelow);
- UINT nIDs[] = {ID_BUTTON_LARGESIMPLEBUTTON, ID_BUTTON_LARGEPOPUPBUTTON, ID_BUTTON_LARGESPLITPOPUPBUTTON, ID_BUTTON_LARGETOGGLEBUTTON};
- pCommandBars->GetImageManager()->SetIcons(ID_GROUP_LARGEBUTTONS, nIDs, 4, CSize(32, 32), xtpImageNormal);
- pCommandBars->GetImageManager()->SetIcons(ID_GROUP_SMALLBUTTONS, nIDs, 4, CSize(16, 16), xtpImageNormal);
- }
- // Small Buttons
- if (pTabHome)
- {
- CXTPControl* pControl;
- CXTPRibbonGroup* pGroup = pTabHome->AddGroup(ID_GROUP_SMALLBUTTONS);
- pControl = pGroup->Add(xtpControlButton, ID_BUTTON_SMALLSIMPLEBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaption);
- pControl = pGroup->Add(xtpControlPopup, ID_BUTTON_SMALLPOPUPBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaption);
- pControl = pGroup->Add(xtpControlSplitButtonPopup, ID_BUTTON_SMALLSPLITPOPUPBUTTON);
- pControl->SetStyle(xtpButtonIconAndCaption);
- pControl = pGroup->Add(xtpControlButton, ID_BUTTON_SMALLSIMPLEBUTTON);
- pControl->SetStyle(xtpButtonIcon);
- pControl = pGroup->Add(xtpControlPopup, ID_BUTTON_SMALLPOPUPBUTTON);
- pControl->SetStyle(xtpButtonIcon);
- pControl = pGroup->Add(xtpControlSplitButtonPopup, ID_BUTTON_SMALLSPLITPOPUPBUTTON);
- pControl->SetStyle(xtpButtonIcon);
- UINT nIDs[] = {ID_BUTTON_SMALLSIMPLEBUTTON, ID_BUTTON_SMALLPOPUPBUTTON, ID_BUTTON_SMALLSPLITPOPUPBUTTON};
- pCommandBars->GetImageManager()->SetIcons(ID_GROUP_SMALLBUTTONS, nIDs, 3, CSize(16, 16), xtpImageNormal);
- }
- // CheckBoxes and Radio Buttons
- if (pTabHome)
- {
- CXTPRibbonGroup* pGroup = pTabHome->AddGroup(ID_GROUP_CHECKBOXES);
- CXTPControl* pControl;
- pControl = pGroup->Add(xtpControlCheckBox, ID_BUTTON_CHECKBOX1);
- pControl = pGroup->Add(xtpControlCheckBox, ID_BUTTON_CHECKBOX2);
- pControl = pGroup->Add(xtpControlCheckBox, ID_BUTTON_CHECKBOX3);
- pControl = pGroup->Add(xtpControlRadioButton, ID_BUTTON_RADIOBUTTON1);
- pControl->SetBeginGroup(TRUE);
- pControl = pGroup->Add(xtpControlRadioButton, ID_BUTTON_RADIOBUTTON2);
- pControl = pGroup->Add(xtpControlRadioButton, ID_BUTTON_RADIOBUTTON3);
- }
- if (pTabHome)
- {
- CXTPRibbonGroup* pGroup = pTabHome->AddGroup(ID_GROUP_GROUP);
- pGroup->SetControlsGrouping(TRUE);
- pGroup->SetControlsCentering(TRUE);
- pGroup->LoadToolBar(IDR_MAINFRAME);
- }
- CXTPRibbonTab* pTabEditors = pRibbonBar->AddTab(ID_TAB_EDITORS);
- // Standard Editors
- if (pTabEditors)
- {
- CXTPRibbonGroup* pGroup = pTabEditors->AddGroup(ID_GROUP_STANDARDEDITORS);
- CXTPControlEdit* pControlEdit = (CXTPControlEdit*)pGroup->Add(xtpControlEdit, ID_EDITOR_EDIT);
- pControlEdit->SetEditText("Edit");
- //pControlEdit->ShowSpinButtons(TRUE);
- pControlEdit->SetWidth(150);
- pControlEdit->SetStyle(xtpButtonIcon);
- CXTPControlComboBox* pControlCombo = (CXTPControlComboBox*)pGroup->Add(xtpControlComboBox, ID_EDITOR_COMBO);
-
- pControlCombo->GetCommandBar()->SetCommandBars(pCommandBars);
- pControlCombo->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
- pControlCombo->SetWidth(150);
- pControlCombo->SetStyle(xtpButtonIcon);
- pControlCombo->SetDropDownListStyle();
- pControlCombo->SetEditText(_T("ComboBox"));
- pControlCombo->AddString(_T("Item 1"));
- pControlCombo->AddString(_T("Item 2"));
- pControlCombo = (CXTPControlComboBox*)pGroup->Add(xtpControlComboBox, ID_EDITOR_COMBO);
- pControlCombo->GetCommandBar()->SetCommandBars(pCommandBars);
- pControlCombo->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
- pControlCombo->SetWidth(150);
- pControlCombo->SetStyle(xtpButtonIcon);
- pControlCombo->AddString(_T("ComboBox"));
- pControlCombo->AddString(_T("Item 1"));
- pControlCombo->AddString(_T("Item 2"));
- pControlCombo->SetCurSel(0);
- }
- // Extended Editors
- if (pTabEditors)
- {
- CXTPRibbonGroup* pGroup = pTabEditors->AddGroup(ID_GROUP_EXTENDEDEDITORS);
- CXTPControlEdit* pControlEdit = (CXTPControlEdit*)pGroup->Add(xtpControlEdit, ID_EDITOR_EXTENDEDEDIT);
- pControlEdit->SetEditText("0");
- pControlEdit->ShowSpinButtons(TRUE);
- pControlEdit->SetWidth(150);
- pControlEdit->SetStyle(xtpButtonIconAndCaption);
- CXTPControlComboBox* pControlCombo = (CXTPControlComboBox*)pGroup->Add(xtpControlComboBox, ID_EDITOR_EXTENDEDCOMBO);
-
- pControlCombo->GetCommandBar()->SetCommandBars(pCommandBars);
- pControlCombo->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
- pControlCombo->SetWidth(150);
- pControlCombo->SetStyle(xtpButtonIconAndCaption);
- pControlCombo->SetDropDownListStyle();
- pControlCombo->SetEditText(_T("ComboBox"));
- pControlCombo->AddString(_T("Item 1"));
- pControlCombo->AddString(_T("Item 2"));
- pControlCombo = (CXTPControlComboBox*)pGroup->Add(xtpControlComboBox, ID_EDITOR_EXTENDEDCOMBO);
- pControlCombo->GetCommandBar()->SetCommandBars(pCommandBars);
- pControlCombo->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
- pControlCombo->SetWidth(150);
- pControlCombo->SetStyle(xtpButtonIconAndCaption);
- pControlCombo->AddString(_T("ComboBox"));
- pControlCombo->AddString(_T("Item 1"));
- pControlCombo->AddString(_T("Item 2"));
- pControlCombo->SetCurSel(0);
- UINT nIDs[] = {ID_EDITOR_EXTENDEDEDIT, ID_EDITOR_EXTENDEDCOMBO};
- pCommandBars->GetImageManager()->SetIcons(ID_GROUP_EXTENDEDEDITORS, nIDs, 2, CSize(16, 16), xtpImageNormal);
- }
- // Gallery Editors
- {
- CXTPRibbonGroup* pGroup = pTabEditors->AddGroup(ID_GROUP_GALLERY);
-
- CXTPControlGalleryItems* m_pItemsFontFace = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_FONTFACE);
- m_pItemsFontFace->SetItemSize(CSize(0, 26));
- CGalleryItemFontFace::AddFontItems(m_pItemsFontFace);
- CXTPControlComboBox* pComboFont = new CXTPControlComboBox();
- pGroup->Add(pComboFont, ID_GALLERY_FONTFACE);
-
- pComboFont->SetDropDownListStyle();
- pComboFont->EnableAutoComplete();
- pComboFont->SetWidth(150);
-
- CXTPPopupBar* pPopupBarGallery = CXTPControlComboBoxGalleryPopupBar::CreateComboBoxGalleryPopupBar(pCommandBars);
-
- pComboFont->SetCommandBar(pPopupBarGallery);
-
- CXTPControlGallery* pControlGallery = new CXTPControlGallery();
- pControlGallery->SetControlSize(CSize(290, 508));
- pControlGallery->SetResizable(FALSE, TRUE);
- pControlGallery->ShowLabels(TRUE);
- pControlGallery->SetItems(m_pItemsFontFace);
-
- pPopupBarGallery->GetControls()->Add(pControlGallery, ID_GALLERY_FONTFACE);
-
- pPopupBarGallery->InternalRelease();
-
-
- CXTPControlComboBox* pComboPopup = new CXTPControlComboBox();
- pComboPopup->SetWidth(150);
- pGroup->Add(pComboPopup, ID_EDITOR_POPUP);
- CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(pCommandBars);
- pPopupBar->SetWidth(150);
-
- pComboPopup->SetCommandBar(pPopupBar);
- CMenu menu;
- menu.LoadMenu(IDR_MENU_OPTIONS);
- pPopupBar->LoadMenu(menu.GetSubMenu(0));
- pPopupBar->InternalRelease();
- }
- CXTPRibbonTab* pTabGallery = pRibbonBar->AddTab(ID_TAB_GALLERIES);
- // Create Gallery Items
- {
- m_pItemsStyles = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_STYLES);
-
- m_pItemsStyles->GetImageManager()->SetMaskColor(0xFF00FF);
- m_pItemsStyles->GetImageManager()->SetIcons(ID_GALLERY_STYLES, 0, 0, CSize(64, 48));
- m_pItemsStyles->GetImageManager()->SetMaskColor(COLORREF_NULL); // Default TopLeft Pixel.
-
- m_pItemsStyles->SetItemSize(CSize(72, 56));
-
- for (int nStyle = 0; nStyle < 16; nStyle++)
- m_pItemsStyles->AddItem(nStyle, nStyle);
- m_pItemsTable = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_TABLE);
- m_pItemsTable->ClipItems(FALSE); //Redraw all Items if selection changed
- m_pItemsTable->SetItemSize(CSize(19, 19));
-
- CXTPControlGalleryItem* pItem = m_pItemsTable->AddItem(new CGalleryItemTableLabel());
- int nItem;
- for (nItem = 0; nItem < 10 * 8; nItem++)
- m_pItemsTable->AddItem(new CGalleryItemTable(nItem));
- m_pItemsFontTextColor = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_COLOR);
- 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_pItemsUndo = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_GALLERY_UNDO);
- m_pItemsUndo->SetItemSize(CSize(0, 21));
- m_pItemsUndo->ClipItems(FALSE);
- }
- // Create Popup Gallery
- if (pTabGallery)
- {
- CXTPRibbonGroup* pGroup = pTabGallery->AddGroup(ID_GROUP_POPUP);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlPopup* pControl = (CXTPControlPopup*)pGroup->Add(xtpControlButtonPopup, ID_GALLERY_STYLES);
-
- CMenu menu;
- menu.LoadMenu(ID_STYLES_QUICKSTYLES);
-
- CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars());
- pPopupBar->LoadMenu(menu.GetSubMenu(0));
-
- pControl->SetCommandBar(pPopupBar);
- pPopupBar->InternalRelease();
- pControl = (CXTPControlPopup*)pGroup->Add(xtpControlButtonPopup, ID_GALLERY_TABLE);
- CXTPControlGallery* pControlGallery = new CXTPControlGallery();
- pControlGallery->SetControlSize(CSize(190, 175));
- pControlGallery->ShowLabels(TRUE);
- pControlGallery->ShowScrollBar(FALSE);
- pControlGallery->SetItems(m_pItemsTable);
- pControl->GetCommandBar()->GetControls()->Add(pControlGallery);
- pControl = (CXTPControlPopup*)pGroup->Add(xtpControlButtonPopup, ID_GALLERY_COLOR);
- pControlGallery = new CXTPControlGallery();
- pControlGallery->SetControlSize(CSize(171, 145));
- pControlGallery->ShowLabels(TRUE);
- pControlGallery->ShowScrollBar(FALSE);
- pControlGallery->SetItems(m_pItemsFontTextColor);
- pControl->GetCommandBar()->GetControls()->Add(pControlGallery);
- CXTPControlPopup* pControlUndo = (CXTPControlPopup*)pGroup->Add(xtpControlSplitButtonPopup, ID_GALLERY_UNDO);
- pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars());
- pPopupBar->SetShowGripper(FALSE);
-
- pControlUndo->SetCommandBar(pPopupBar);
-
- pControlGallery = new CControlGalleryUndo();
- pControlGallery->SetItems(m_pItemsUndo);
- pControlGallery->SetWidth(120);
- pControlGallery->ShowScrollBar(FALSE);
- pPopupBar->GetControls()->Add(pControlGallery, ID_GALLERY_UNDO);
-
- CXTPControlStatic* pControlListBoxInfo = (CXTPControlStatic*)pPopupBar->GetControls()->Add(new CXTPControlStatic(), ID_GALLERY_UNDO);
- pControlListBoxInfo->SetWidth(120);
- pControlListBoxInfo->SetFlags(xtpFlagSkipFocus);
-
- pPopupBar->InternalRelease();
-
- UINT nIDs[] = {ID_GALLERY_STYLES, ID_GALLERY_TABLE, ID_GALLERY_COLOR, ID_GALLERY_UNDO};
- pCommandBars->GetImageManager()->SetIcons(ID_GROUP_INLINE, nIDs, 4, CSize(32, 32), xtpImageNormal);
- }
- // Create Inline Gallery
- if (pTabGallery)
- {
- CXTPRibbonGroup* pGroup = pTabGallery->AddGroup(ID_GROUP_INLINE);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlGallery* pControlGallery = new CXTPControlGallery();
- pControlGallery->SetControlSize(CSize(171 + 19, 60));
- pControlGallery->ShowLabels(FALSE);
- pControlGallery->ShowScrollBar(TRUE);
- pControlGallery->ShowBorders(TRUE);
- pControlGallery->SetItems(m_pItemsFontTextColor);
- pGroup->Add(pControlGallery, ID_GALLERY_STYLES);
- pControlGallery = new CXTPControlGallery();
- pControlGallery->SetBeginGroup(TRUE);
- pControlGallery->SetControlSize(CSize(235, 60));
- pControlGallery->SetResizable();
- pControlGallery->SetItemsMargin(0, 1, 0, 1);
- pControlGallery->ShowLabels(FALSE);
- pControlGallery->ShowBorders(TRUE);
- pControlGallery->SetItems(m_pItemsStyles);
-
-
- CMenu menu;
- menu.LoadMenu(ID_STYLES_QUICKSTYLES);
-
- CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars());
- pPopupBar->LoadMenu(menu.GetSubMenu(0));
-
- pControlGallery->SetCommandBar(pPopupBar);
- pPopupBar->InternalRelease();
-
- pGroup->Add(pControlGallery, ID_GALLERY_STYLES);
- }
- CXTPRibbonTab* pTabMisc = pRibbonBar->AddTab(ID_TAB_MISC);
- if (pTabMisc)
- {
- CXTPRibbonGroup* pGroup = pTabMisc->AddGroup(ID_GROUP_LABEL);
- pGroup->SetControlsCentering(TRUE);
- CXTPControl* pControl = pGroup->Add(xtpControlLabel, 0);
- pControl->SetCaption(_T("Label Text 1"));
- pControl->SetStyle(xtpButtonCaption);
-
- pControl = pGroup->Add(xtpControlLabel, 0);
- pControl->SetCaption(_T("Label Text 2"));
- pControl->SetStyle(xtpButtonCaption);
- pControl = pGroup->Add(xtpControlLabel, 0);
- pControl->SetCaption(_T("Label Text 3"));
- pControl->SetStyle(xtpButtonCaption);
- #ifdef _XTP_INCLUDE_MARKUP
- CXTPControlMarkupLabel* pLabel = new CXTPControlMarkupLabel();
- pGroup->Add(pLabel, 0);
- pLabel->SetBeginGroup(TRUE);
- pLabel->SetCaption(_T("<TextBlock TextAlignment='Center'><Underline>This is</Underline><LineBreak/><Bold>Markup</Bold> <Run Foreground='Red'>Label</Run><LineBreak/><Italic>Control</Italic></TextBlock>"));
- #endif
- }
- if (pTabMisc)
- {
- CXTPRibbonGroup* pGroup = pTabMisc->AddGroup(ID_GROUP_BITMAP);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlBitmap* pLabel = new CXTPControlBitmap();
- pGroup->Add(pLabel, ID_BUTTON_BITMAP);
- UINT nIDs[] = {ID_BUTTON_BITMAP};
- pCommandBars->GetImageManager()->SetIcons(ID_BUTTON_BITMAP, nIDs, 1, CSize(0, 0), xtpImageNormal);
- }
- if (pTabMisc)
- {
- CXTPRibbonGroup* pGroup = pTabMisc->AddGroup(ID_GROUP_HYPERLINK);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlHyperlink* pLabel = new CXTPControlHyperlink();
- pLabel->SetFlags(xtpFlagManualUpdate);
- pGroup->Add(pLabel, ID_BUTTON_URLLINK);
- pLabel = new CXTPControlHyperlink();
- pLabel->SetFlags(xtpFlagManualUpdate);
- pGroup->Add(pLabel, ID_BUTTON_EMAILLINK);
- }
-
- if (pTabMisc)
- {
- CXTPRibbonGroup* pGroup = pTabMisc->AddGroup(ID_GROUP_PROGRESS);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlProgress* pControl = (CXTPControlProgress*)pGroup->Add(new CXTPControlProgress(), 0);
- pControl->SetPos(30);
- pControl->SetFlags(xtpFlagNoMovable | xtpFlagSkipFocus);
- }
- if (pTabMisc)
- {
- CXTPRibbonGroup* pGroup = pTabMisc->AddGroup(ID_GROUP_SCROLLBAR);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlScrollBar* pControl = (CXTPControlScrollBar*)pGroup->Add(new CXTPControlScrollBar(), 0);
- pControl->SetFlags(xtpFlagNoMovable | xtpFlagSkipFocus);
- pControl->SetPos(30);
- pControl->SetWidth(100);
- }
- if (pTabMisc)
- {
- CXTPRibbonGroup* pGroup = pTabMisc->AddGroup(ID_GROUP_SLIDER);
- pGroup->SetControlsCentering(TRUE);
- CXTPControlScrollBar* pControl = (CXTPControlScrollBar*)pGroup->Add(new CXTPControlScrollBar(), 0);
- pControl->SetScrollBarStyle(xtpScrollStyleSlider);
- pControl->SetPos(30);
- pControl->SetFlags(xtpFlagNoMovable | xtpFlagSkipFocus);
- pControl->SetWidth(100);
- }
- // Options
- {
- CXTPControlPopup* pControlOptions = (CXTPControlPopup*)pRibbonBar->GetControls()->Add(xtpControlPopup, -1);
- 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);
- pControlAbout->SetFlags(xtpFlagRightAlign);
- pCommandBars->GetImageManager()->SetIcons(IDR_MAINFRAME);
- }
- // Quick Access
- {
- pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_NEW);
- pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_OPEN)->SetHideFlag(xtpHideCustomize, TRUE);
- pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_SAVE);
-
- pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_PRINT);
- pRibbonBar->GetQuickAccessControls()->CreateOriginalControls();
- }
- pRibbonBar->SetCloseable(FALSE);
- pRibbonBar->EnableFrameTheme();
- return TRUE;
- }
- BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- if( !CFrameWnd::PreCreateWindow(cs) )
- return FALSE;
- // TODO: Modify the Window class or styles here by modifying
- // the CREATESTRUCT cs
- cs.cx = 730;
- cs.cy = 600;
- cs.lpszClass = _T("XTPMainFrame");
- CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass,
- CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME));
- cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
- return TRUE;
- }
- /////////////////////////////////////////////////////////////////////////////
- // CMainFrame diagnostics
- #ifdef _DEBUG
- void CMainFrame::AssertValid() const
- {
- CFrameWnd::AssertValid();
- }
- void CMainFrame::Dump(CDumpContext& dc) const
- {
- CFrameWnd::Dump(dc);
- }
- #endif //_DEBUG
- /////////////////////////////////////////////////////////////////////////////
- // CMainFrame message handlers
- int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
- {
- if (lpCreateControl->nID == ID_FILE_RECENTDOCUMENTS)
- {
- lpCreateControl->pControl = new CXTPRibbonControlSystemRecentFileList();
- return TRUE;
- }
- if (lpCreateControl->nID == ID_APP_EXIT || lpCreateControl->nID == ID_APP_OPTIONS)
- {
- lpCreateControl->pControl = new CXTPRibbonControlSystemPopupBarButton();
- return TRUE;
- }
- if (lpCreateControl->nID == ID_GALLERY_STYLES)
- {
-
- CXTPControlGallery* pControlGallery = new CXTPControlGallery();
- pControlGallery->SetResizable();
- pControlGallery->SetControlSize(CSize(235 + 72, 56 * 3));
- pControlGallery->SetItems(m_pItemsStyles);
-
- lpCreateControl->pControl = pControlGallery;
- return TRUE;
- }
- return FALSE;
- }
- void CMainFrame::OnEnableButton(CCmdUI* pCmdUI)
- {
- pCmdUI->Enable();
- }
- void CMainFrame::OnCheckbox(UINT nID)
- {
- m_bCheckbox[nID - ID_BUTTON_CHECKBOX1] ^= 1;
- }
- void CMainFrame::OnRadioButton(UINT nID)
- {
- m_nRadioButton = nID - ID_BUTTON_RADIOBUTTON1;
- }
- void CMainFrame::OnUpdateCheckbox(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_bCheckbox[(int)pCmdUI->m_nID - ID_BUTTON_CHECKBOX1]);
- }
- void CMainFrame::OnUpdateRadioButton(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck((int)pCmdUI->m_nID - ID_BUTTON_RADIOBUTTON1 == m_nRadioButton);
- }
- void CMainFrame::OnToggleButton()
- {
- m_bToggleButton ^= 1;
- }
- void CMainFrame::OnUpdateToggleButton(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_bToggleButton);
- }
- 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::OnUpdateOptionsStyle(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(pCmdUI->m_nID == m_nRibbonStyle ? 1 : 0);
- }
- void CMainFrame::OnOptionsStyle(UINT nStyle)
- {
- HMODULE hModule = AfxGetInstanceHandle();
- LPCTSTR lpszIniFile = 0;
- switch (nStyle)
- {
- case ID_OPTIONS_STYLEBLUE:
- lpszIniFile = _T("OFFICE2007BLUE.INI"); break;
- case ID_OPTIONS_STYLEBLACK:
- lpszIniFile = _T("OFFICE2007BLACK.INI"); break;
- case ID_OPTIONS_STYLEAQUA:
- lpszIniFile = _T("OFFICE2007AQUA.INI"); break;
- case ID_OPTIONS_STYLESILVER:
- lpszIniFile = _T("OFFICE2007SILVER.INI"); break;
- }
- ((CXTPOffice2007Theme*)GetCommandBars()->GetPaintManager())->SetImageHandle(hModule, lpszIniFile);
- GetCommandBars()->GetImageManager()->RefreshAll();
- GetCommandBars()->RedrawCommandBars();
- SendMessage(WM_NCPAINT);
- RedrawWindow(0, 0, RDW_ALLCHILDREN|RDW_INVALIDATE);
- m_nRibbonStyle = nStyle;
- }
- void CMainFrame::OnUpdateEditUndo(CCmdUI* pCmd)
- {
- CXTPControlGallery* pControlUndo = DYNAMIC_DOWNCAST(CXTPControlGallery, CXTPControl::FromUI(pCmd));
- if (pControlUndo)
- {
- pCmd->Enable(TRUE);
- CXTPControlGalleryItems* pItems = pControlUndo->GetItems();
- pItems->RemoveAll();
- int nCount = RAND_S() % 20 + 3;
- for (int i = 0; i < nCount; i++)
- {
- CString str;
- str.Format(_T("Undo String %i"), i + 1);
- pItems->AddItem(new CGalleryItemUndo(str), i);
- }
- pControlUndo->OnSelectedItemChanged();
- pControlUndo->SetHeight(pItems->GetItemSize().cy * nCount + 2);
- }
- else
- {
- pCmd->Enable();
- }
- }
- void CMainFrame::OnEditUndo(NMHDR* pNMHDR, LRESULT* pResult)
- {
- CXTPControlGallery* pControlUndo = DYNAMIC_DOWNCAST(CXTPControlGallery, ((NMXTPCONTROL*)pNMHDR)->pControl);
- if (pControlUndo)
- {
- CString str;
- str.Format(_T("Undo last %i actions"), pControlUndo->GetSelectedItem() + 1);
- AfxMessageBox(str);
- }
- *pResult = 1; // Handled;
- }
- void CMainFrame::OnUpdateSelectorText(CCmdUI* pCmdUI)
- {
- CXTPControlGallery* pControl = DYNAMIC_DOWNCAST(CXTPControlGallery, CXTPControl::FromUI(pCmdUI));
- if (pControl)
- {
- pControl->SetCheckedItem(m_clr);
- }
- pCmdUI->Enable(TRUE);
- }
- void CMainFrame::OnSelectorText(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
- CXTPControlGallery* pControl = DYNAMIC_DOWNCAST(CXTPControlGallery, tagNMCONTROL->pControl);
-
- if (pControl)
- {
- CXTPControlGalleryItem* pItem = pControl->GetItem(pControl->GetSelectedItem());
- if (pItem)
- {
- m_clr = (COLORREF)pItem->GetID();
- }
- *pResult = TRUE; // Handled
- }
- *pResult = 1;
- }