Initial release

This commit is contained in:
civ
2026-08-16 18:24:52 +07:00
commit 876886a39a
13244 changed files with 2353959 additions and 0 deletions
@@ -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