/********************************************************************** *< FILE: MaxIcon.h DESCRIPTION: Max Icon and Icon Table definitions CREATED BY: Scott Morrison HISTORY: Created 15 March, 2000, *> Copyright (c) 2000, All Rights Reserved. **********************************************************************/ #ifndef __ICONMAN__ #define __ICONMAN__ // A MaxIcon is an abstract class that represents an icon image for // toolbar buttons, icons in list boxes, etc. The class is based // on Win32 ImageLists. MaxIcons must provide an image list and // index into the list for both large (24x24) and small (16x15) icons. #include "object.h" #include "iColorMan.h" class ICustButton; class MaxIcon : public InterfaceServer { public: // Get the image list for the size of icons that the user has chose virtual HIMAGELIST GetDefaultImageList() = 0; // Get the image list for small icons virtual HIMAGELIST GetSmallImageList() = 0; // Get the image list for large icons virtual HIMAGELIST GetLargeImageList() = 0; // Get the index into the image list for the small version of this // particular icon. virtual int GetSmallImageIndex(bool enabledVersion = true, COLORREF backgroundColor = GetCustSysColor( COLOR_BTNFACE) ) = 0; // Get the index into the image list for the large version of this // particular icon. virtual int GetLargeImageIndex(bool enabledVersion = true, COLORREF backgroundColor = GetCustSysColor( COLOR_BTNFACE) ) = 0; // Get the index into the image list for the default version of this // particular icon. int GetDefaultImageIndex(bool enabledVersion = true, COLORREF backgroundColor = GetCustSysColor( COLOR_BTNFACE) ); // returns true if the icons has an alpha mask that needs to be blended // with the background color. virtual bool UsesAlphaMask() = 0; }; // This implementation of MaxIcon is for the icon images that are stored // as ".bmp" files in MAX's UI directory. This is used by the macroScript // facility in MAXSrcipt to specify icons. See the documentation for // "macroScript" for the exact meaning of the filename and index. class MaxBmpFileIcon: public MaxIcon { public: CoreExport MaxBmpFileIcon(TCHAR* pFilePrefix, int index); CoreExport MaxBmpFileIcon(SClass_ID sid, Class_ID cid); CoreExport HIMAGELIST GetDefaultImageList(); CoreExport HIMAGELIST GetSmallImageList(); CoreExport HIMAGELIST GetLargeImageList(); CoreExport int GetSmallImageIndex(bool enabledVersion = true, COLORREF backgroundColor = GetCustSysColor( COLOR_BTNFACE) ); CoreExport int GetLargeImageIndex(bool enabledVersion = true, COLORREF backgroundColor = GetCustSysColor( COLOR_BTNFACE) ); CoreExport bool UsesAlphaMask(); CoreExport TSTR& GetFilePrefix() { return mFilePrefix; } CoreExport int GetIndex() { return mIndex; } private: int mIndex; TSTR mFilePrefix; }; CoreExport HIMAGELIST GetIconManDefaultImageList(); CoreExport HIMAGELIST GetIconManSmallImageList(); CoreExport HIMAGELIST GetIconManLargeImageList(); CoreExport BOOL LoadMAXFileIcon(TCHAR* pFile, HIMAGELIST hImageList, ColorId color, BOOL disabled); #endif