// This file is part of VSTGUI. It is subject to the license terms 
// in the LICENSE file found in the top-level directory of this
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE

#ifndef __ifocusdrawing__
#define __ifocusdrawing__

#include "vstguifwd.h"

namespace VSTGUI {

//-----------------------------------------------------------------------------
// IFocusDrawing Declaration
/// @brief Custom focus drawing interface
///	@ingroup new_in_4_0
///
/// @details If focus drawing is enabled custom views can implement this interface to set a custom shape to be drawn if the view is the focus view.
/// @sa CFrame
/// @sa CControl
//-----------------------------------------------------------------------------
class IFocusDrawing
{
public:
	virtual ~IFocusDrawing () noexcept = default;
	/** draw focus before view will be drawn or afterwards */
	virtual bool drawFocusOnTop () = 0;
	/** the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor() */
	virtual bool getFocusPath (CGraphicsPath& outPath) = 0;
};

} // namespace

#endif
