95 lines
3.6 KiB
C++
Executable File
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
|