Initial release
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
// 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
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cviewcontainer.h"
|
||||
#include "iviewlistener.h"
|
||||
#include "iscalefactorchangedlistener.h"
|
||||
|
||||
namespace VSTGUI {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// CShadowViewContainer Declaration
|
||||
//! @brief a view container which draws a shadow for it's subviews
|
||||
/// @ingroup containerviews
|
||||
/// @ingroup new_in_4_1
|
||||
//-----------------------------------------------------------------------------
|
||||
class CShadowViewContainer : public CViewContainer,
|
||||
public IScaleFactorChangedListener,
|
||||
public ViewContainerListenerAdapter
|
||||
{
|
||||
public:
|
||||
explicit CShadowViewContainer (const CRect& size);
|
||||
CShadowViewContainer (const CShadowViewContainer& copy);
|
||||
~CShadowViewContainer () noexcept override;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/// @name CShadowViewContainer Methods
|
||||
//-----------------------------------------------------------------------------
|
||||
//@{
|
||||
virtual void setShadowOffset (const CPoint& offset);
|
||||
const CPoint& getShadowOffset () const { return shadowOffset; }
|
||||
|
||||
virtual void setShadowIntensity (float intensity);
|
||||
float getShadowIntensity () const { return shadowIntensity; }
|
||||
|
||||
virtual void setShadowBlurSize (double size);
|
||||
double getShadowBlurSize () const { return shadowBlurSize; }
|
||||
|
||||
void invalidateShadow ();
|
||||
//@}
|
||||
|
||||
// override
|
||||
bool removed (CView* parent) override;
|
||||
bool attached (CView* parent) override;
|
||||
void drawRect (CDrawContext* pContext, const CRect& updateRect) override;
|
||||
void drawBackgroundRect (CDrawContext* pContext, const CRect& _updateRect) override;
|
||||
void setViewSize (const CRect& rect, bool invalid = true) override;
|
||||
CMessageResult notify (CBaseObject* sender, IdStringPtr message) override;
|
||||
|
||||
void onScaleFactorChanged (CFrame* frame, double newScaleFactor) override;
|
||||
|
||||
CLASS_METHODS(CShadowViewContainer, CViewContainer)
|
||||
protected:
|
||||
void viewContainerViewAdded (CViewContainer* container, CView* view) override;
|
||||
void viewContainerViewRemoved (CViewContainer* container, CView* view) override;
|
||||
void viewContainerViewZOrderChanged (CViewContainer* container, CView* view) override;
|
||||
|
||||
void beforeDelete () override;
|
||||
|
||||
bool dontDrawBackground;
|
||||
CPoint shadowOffset;
|
||||
float shadowIntensity;
|
||||
double shadowBlurSize;
|
||||
double scaleFactorUsed;
|
||||
};
|
||||
|
||||
} // VSTGUI
|
||||
Reference in New Issue
Block a user