You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
252 lines
9.8 KiB
C
252 lines
9.8 KiB
C
2 years ago
|
// XTPCustomizeSheet.h : interface for the CXTPCustomizeSheet class.
|
||
|
//
|
||
|
// This file is a part of the XTREME COMMANDBARS MFC class library.
|
||
|
// (c)1998-2012 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
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
#if !defined(__XTPCUSTOMIZESHEET_H__)
|
||
|
#define __XTPCUSTOMIZESHEET_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
|
||
|
class CXTPCommandBars;
|
||
|
class CXTPCustomizeToolbarsPage;
|
||
|
class CXTPCustomizeCommandsPage;
|
||
|
class CXTPImageManager;
|
||
|
class CXTPPropertyPage;
|
||
|
class CXTPPopupBar;
|
||
|
class CXTPControl;
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPCustomizeSheet is a CPropertySheet derived class. It represents
|
||
|
// the Customize dialog.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPCustomizeSheet : public CXTPPropertySheet
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPCustomizeSheet object
|
||
|
// Parameters:
|
||
|
// pCommandBars - Points to a CXTPCommandBars object
|
||
|
// iSelectPage - Page initially selected.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCustomizeSheet(CXTPCommandBars* pCommandBars, UINT iSelectPage = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPCustomizeSheet object, handles cleanup and deallocation.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPCustomizeSheet();
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to get a pointer to the context menu that
|
||
|
// is displayed in customization mode when a user right-clicks
|
||
|
// on a control.
|
||
|
// Returns:
|
||
|
// Retrieves the context menu.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPPopupBar* GetContextMenu() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves collection of custom icons that can be selected for
|
||
|
// a control during customization mode. Custom icons are displayed
|
||
|
// in the "Change Button Image" popup of the context menu that is
|
||
|
// displayed when a user right-clicks on a control.
|
||
|
// Remarks:
|
||
|
// Icons must be numbered from 1. When adding icons, the numbering
|
||
|
// must start with 1 and increment by 1 for each icon added. So the
|
||
|
// numbering would look like this: 1, 2, 3, 4, ...N.
|
||
|
//
|
||
|
// The toolkit provide 42 "built-in" icons that you can choose from
|
||
|
// and they are automatically displayed in the "Change Button Icon"
|
||
|
// popup menu if you do not remove them. If you do not remove the
|
||
|
// "built-in" icons that are provided with the toolkit then you should
|
||
|
// start your numbering at 43. If you start at 1 and you did not
|
||
|
// remove the "bulilt-in" icons, then you will overwrite some of
|
||
|
// the "built-in" icons. So you would number your icons
|
||
|
// 43, 44, 45, ...N. So you could even keep some of the "built-in"
|
||
|
// icons and overwrite the ones you don't need with your own
|
||
|
// custom icons.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPImageManager* GetCustomIcons() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: lpszText - Text in message box.
|
||
|
// nType - Specifies the contents and behavior of the dialog box.
|
||
|
// Summary: Displays a message box.
|
||
|
// Returns: If the function succeeds, the return value specified the
|
||
|
// button that was selected.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int MessageBox(LPCTSTR lpszText, UINT nType = MB_OK);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to retrieve the current customized control.
|
||
|
// Returns:
|
||
|
// A pointer to a CXTPControl object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPControl* GetDragControl() const;
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the Commands PropertyPage
|
||
|
// Returns:
|
||
|
// A pointer to a CXTPCustomizeCommandsPage object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCustomizeCommandsPage* GetCommandsPage() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the Toolbars PropertyPage
|
||
|
// Returns:
|
||
|
// A pointer to a CXTPCustomizeCommandsPage object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCustomizeToolbarsPage* GetToolbarsPage() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the parent Command Bars class
|
||
|
// Returns:
|
||
|
// A pointer to a CXTPCommandBars object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCommandBars* GetCommandBars() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to show customize dialog.
|
||
|
//-----------------------------------------------------------------------
|
||
|
INT_PTR DoModal();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method shows the context menu for toolbars
|
||
|
// Parameters:
|
||
|
// point - Position of the menu to show
|
||
|
//-----------------------------------------------------------------------
|
||
|
void ContextMenu(CPoint point);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Adds the supplied page with the rightmost tab in the property sheet.
|
||
|
// Parameters:
|
||
|
// pPage - Points to the page to be added to the property sheet. Cannot be NULL.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void AddPage(CXTPPropertyPage* pPage, int nIndex = -1);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
|
||
|
//{{AFX_VIRTUAL(CXTPCustomizeSheet)
|
||
|
BOOL OnInitDialog();
|
||
|
BOOL PreTranslateMessage(MSG* pMsg);
|
||
|
BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
//{{AFX_MSG(CXTPCustomizeSheet)
|
||
|
afx_msg void OnCustomizeDefaultStyle();
|
||
|
afx_msg void OnCustomizeImageAndText();
|
||
|
afx_msg void OnCustomizeTextOnly();
|
||
|
afx_msg void OnCustomizeBeginGroup();
|
||
|
afx_msg void OnCustomizeDelete();
|
||
|
afx_msg void OnCustomizeCopyImage();
|
||
|
afx_msg void OnCustomizePasteImage();
|
||
|
afx_msg void OnCustomizeResetImage();
|
||
|
afx_msg void OnCustomizeEditImage();
|
||
|
afx_msg void OnCustomizeReset();
|
||
|
afx_msg LRESULT OnCustomizeName(WPARAM wParam, LPARAM lParam);
|
||
|
afx_msg void OnUpdateCustomizeDefaultStyle(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeImageAndText(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeTextOnly(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeBeginGroup(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeName(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeCopyImage(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizePasteImage(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeResetImage(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeReset(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateCustomizeEditImage(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
||
|
afx_msg void OnInitCommandsPopup(CXTPPopupBar* pPopupBar);
|
||
|
afx_msg void OnGrabFocus();
|
||
|
//}}AFX_MSG
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
private:
|
||
|
BOOL FilterMouse(WPARAM wParam, LPARAM lParam);
|
||
|
BOOL FilterKey(WPARAM wParam, LPARAM lParam);
|
||
|
BOOL FilterMessage(WPARAM wParam, LPARAM lParam);
|
||
|
void CreateContextMenu();
|
||
|
BOOL IsAllowChangeStyle(CXTPControl* pControl) const;
|
||
|
virtual BOOL CreateClient();
|
||
|
|
||
|
public:
|
||
|
BOOL m_bHookMainFrame;
|
||
|
protected:
|
||
|
CXTPCustomizeToolbarsPage* m_pPageToolBars; // Toolbar page.
|
||
|
CXTPCustomizeCommandsPage* m_pPageCommands; // Commands page.
|
||
|
CWnd* m_pWndParent; // Parent window.
|
||
|
CXTPCommandBars* m_pCommandBars; // Customized comamndBars.
|
||
|
CXTPPopupBar* m_pContextMenu; // Context menu that is displayed in customization mode when a
|
||
|
// user right-clicks on a control.
|
||
|
CXTPImageManager* m_pCustomIcons; // Icons displayed in the "Change Button Image" popup of the
|
||
|
// context menu that is displayed when a user right-clicks on a control.
|
||
|
|
||
|
private:
|
||
|
DECLARE_DYNAMIC(CXTPCustomizeSheet)
|
||
|
|
||
|
class CCustomizeButton;
|
||
|
class CCustomizeEdit;
|
||
|
};
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
AFX_INLINE CXTPCustomizeCommandsPage* CXTPCustomizeSheet::GetCommandsPage() const {
|
||
|
return m_pPageCommands;
|
||
|
}
|
||
|
AFX_INLINE CXTPCustomizeToolbarsPage* CXTPCustomizeSheet::GetToolbarsPage() const {
|
||
|
return m_pPageToolBars;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE CXTPCommandBars* CXTPCustomizeSheet::GetCommandBars() const {
|
||
|
return m_pCommandBars;
|
||
|
}
|
||
|
AFX_INLINE CXTPPopupBar* CXTPCustomizeSheet::GetContextMenu() const {
|
||
|
return m_pContextMenu;
|
||
|
}
|
||
|
AFX_INLINE CXTPImageManager* CXTPCustomizeSheet::GetCustomIcons() const {
|
||
|
return m_pCustomIcons;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
#endif // #if !defined(__XTPCUSTOMIZESHEET_H__)
|