
//**************************************************************************/
// Copyright (c) 2009 Autodesk, Inc.
// All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk license
// agreement provided at the time of installation or download, or which
// otherwise accompanies this software in either electronic or hard copy form.
//
//**************************************************************************/
// DESCRIPTION:
// CREATED: December 2009
//**************************************************************************/

namespace mudbox {

/// \brief TrayAccessor allows plugins to access the trays in the GUI.
///
/// The TrayAccessor class allows the plugins to access the trays in order
/// to add new items such as stamps and stencils. It also allows to register
/// tray menu items that can be used to be informed when the user triggers the
/// action.
class MBDLL_DECL TrayAccessor : public Node
{
	DECLARE_CLASS;
public:
	/// This class is a singleton and only one instance should exist.
	static TrayAccessor* GetInstance();

	// This method adds and select a new item in a tray of the specified type.
	void AddAndSelectTrayItem( const QString itemType, const QString itemName, const QString iconName);

private:
	TrayAccessor() {}

	static TrayAccessor			*s_pThis;
};

}; // end of namespace mudbox
