tge/lib/maxsdk70/include/maxicon.h
2017-04-17 06:17:10 -06:00

95 lines
3.6 KiB
C++
Executable File

/**********************************************************************
*<
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