www.pudn.com > vc开发的精美界面.zip > BCGCommandManager.h
//******************************************************************************* // COPYRIGHT NOTES // --------------- // This source code is a part of BCGControlBar library. // You may use, compile or redistribute it as part of your application // for free. You cannot redistribute it as a part of a software development // library without the agreement of the author. If the sources are // distributed along with the application, you should leave the original // copyright notes in the source code without any changes. // This code can be used WITHOUT ANY WARRANTIES on your own risk. // // For the latest updates to this library, check my site: // http://welcome.to/bcgsoft // // Stas Levin//******************************************************************************* #if !defined(AFX_BCGCOMMANDMANAGER_H__C089C790_8038_11D3_A9E7_005056800000__INCLUDED_) #define AFX_BCGCOMMANDMANAGER_H__C089C790_8038_11D3_A9E7_005056800000__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 /** * This class is responsible for: * - knowledge about all commands * - images for all commands * - command categories * - default toolbars */ #include "bcgcontrolbar.h" #include "BCGToolBarImages.h" #include "BCGToolbarButton.h" #include "CmdUsageCount.h" class CBCGCommandManager; BCGCONTROLBARDLLEXPORT CBCGCommandManager* GetCmdMgr(); #define CMD_MGR (*GetCmdMgr()) #ifndef _NO_BCG_LEGACY_ class BCGCONTROLBARDLLEXPORT CImageHash { public: static UINT GetImageOfCommand(UINT nID, BOOL bUser = false); }; #endif class BCGCONTROLBARDLLEXPORT CBCGCommandManager { friend class _STATIC_CREATOR_; protected: CBCGCommandManager(); public: virtual ~CBCGCommandManager(); //---------------------------------------------------------------- // Set toolbar buttons image resources. // You should use SINGLE CBCGToolBarImages for ALL your toolbars! //---------------------------------------------------------------- BOOL SetUserImages (CBCGToolBarImages* pUserImages); //------------------------------ // Clear all images except user: //------------------------------ void ResetAllImages(); BOOL LoadBitmap (UINT uiResID, UINT uiColdResID = 0, UINT uiMenuResID = 0, BOOL bLocked = FALSE, UINT uiDisabledResID = 0, UINT uiMenuDisabledResID = 0); BOOL LoadToolBar (UINT uiResID, UINT uiColdResID = 0, UINT uiMenuResID = 0, BOOL bLocked = FALSE, UINT uiDisabledResID = 0, UINT uiMenuDisabledResID = 0); BOOL IsLastCommandFromButton (CBCGToolbarButton* pButton); BOOL AddToolBarForImageCollection (UINT uiResID); void SetNonPermittedCommands (CList & lstCommands); BOOL IsCommandPermitted (UINT uiCmd) { return m_lstUnpermittedCommands.Find (uiCmd) == NULL; } void SetBasicCommands (CList & lstCommands); BOOL IsBasicCommand (UINT uiCmd) { return m_lstBasicCommands.Find (uiCmd) != NULL; } BOOL IsCommandRarelyUsed (UINT uiCmd); void AddCommandUsage (UINT uiCommand) { m_UsageCount.AddCmd (uiCommand); } CBCGToolBarImages* GetImages () { return &m_Images; } CBCGToolBarImages* GetUserImages () { return m_pUserImages; } int GetDefaultImage (UINT uiID) { int iImage; if (m_DefaultImages.Lookup (uiID, iImage)) { return iImage; } return -1; } /* virtual BOOL LoadState (LPCTSTR lpszProfileName = NULL, int nIndex = -1, UINT uiID = (UINT) -1); virtual BOOL SaveState (LPCTSTR lpszProfileName = NULL, int nIndex = -1, UINT uiID = (UINT) -1); virtual BOOL RemoveStateFromRegistry (LPCTSTR lpszProfileName = NULL, int nIndex = -1, UINT uiID = (UINT) -1); virtual BOOL RestoreOriginalstate (); */ // Image functions void SetCmdImage (UINT uiCmd, int iImage, BOOL bUserImage); int GetCmdImage (UINT uiCmd, BOOL bUserImage) const; void ClearCmdImage (UINT uiCmd); void ClearAllCmdImages (); protected: CMap m_CommandIndex; CMap m_CommandIndexUser; CMap m_DefaultImages; CCmdUsageCount m_UsageCount; UINT m_iImagesOffset; CList m_lstUnpermittedCommands; CList m_lstBasicCommands; // Image store CBCGToolBarImages m_Images; // Shared toolbar images CBCGToolBarImages m_ColdImages; // Shared toolbar "cold" images CBCGToolBarImages m_DisabledImages; // Shared disabled images CBCGToolBarImages m_ImagesBig; // Shared toolbar images CBCGToolBarImages m_ColdImagesBig; // Shared toolbar "cold" images CBCGToolBarImages m_DisabledImagesBig; // Shared disabled images CBCGToolBarImages* m_pUserImages; // Shared user-defined images CBCGToolBarImages* m_pUserImagesBig; // Shared user-defined images CBCGToolBarImages m_MenuImages; // Shared menu images CBCGToolBarImages m_DisabledMenuImages; // Shared disabled menu images }; #endif // !defined(AFX_BCGCOMMANDMANAGER_H__C089C790_8038_11D3_A9E7_005056800000__INCLUDED_)