Initial release
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
// 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 "ccontrol.h"
|
||||
#include "icontrollistener.h"
|
||||
#include "../optional.h"
|
||||
|
||||
namespace VSTGUI {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// CSplashScreen Declaration
|
||||
//!
|
||||
/// @ingroup views
|
||||
//-----------------------------------------------------------------------------
|
||||
class CSplashScreen : public CControl, public IControlListener
|
||||
{
|
||||
public:
|
||||
CSplashScreen (const CRect& size, IControlListener* listener, int32_t tag, CBitmap* background, const CRect& toDisplay, const CPoint& offset = CPoint (0, 0));
|
||||
CSplashScreen (const CRect& size, IControlListener* listener, int32_t tag, CView* splashView);
|
||||
CSplashScreen (const CSplashScreen& splashScreen);
|
||||
|
||||
void draw (CDrawContext*) override;
|
||||
bool hitTest (const CPoint& where, const Event& event) override;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/// @name CSplashScreen Methods
|
||||
//-----------------------------------------------------------------------------
|
||||
//@{
|
||||
virtual void unSplash ();
|
||||
|
||||
/** set the area in which the splash will be displayed */
|
||||
virtual void setDisplayArea (const CRect& rect) { toDisplay = rect; }
|
||||
/** get the area in which the splash will be displayed */
|
||||
virtual CRect& getDisplayArea (CRect& rect) const { rect = toDisplay; return rect; }
|
||||
//@}
|
||||
|
||||
CMouseEventResult onMouseDown (CPoint& where, const CButtonState& buttons) override;
|
||||
|
||||
CLASS_METHODS(CSplashScreen, CControl)
|
||||
protected:
|
||||
~CSplashScreen () noexcept override;
|
||||
using CControl::valueChanged;
|
||||
void valueChanged (CControl *pControl) override;
|
||||
|
||||
CRect toDisplay;
|
||||
CRect keepSize;
|
||||
CPoint offset;
|
||||
CView* modalView{nullptr};
|
||||
Optional<ModalViewSessionID> modalViewSessionID;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// CAnimationSplashScreen Declaration
|
||||
/// @brief a splash screen which animates the opening and closing of the splash bitmap
|
||||
/// @ingroup views
|
||||
/// @ingroup new_in_4_0
|
||||
//-----------------------------------------------------------------------------
|
||||
class CAnimationSplashScreen : public CSplashScreen
|
||||
{
|
||||
public:
|
||||
CAnimationSplashScreen (const CRect& size, int32_t tag, CBitmap* background, CBitmap* splashBitmap);
|
||||
CAnimationSplashScreen (const CAnimationSplashScreen& splashScreen) = default;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/// @name CAnimationSplashScreen Methods
|
||||
//-----------------------------------------------------------------------------
|
||||
//@{
|
||||
virtual void setSplashBitmap (CBitmap* bitmap);
|
||||
CBitmap* getSplashBitmap () const;
|
||||
|
||||
virtual void setSplashRect (const CRect& splashRect);
|
||||
const CRect& getSplashRect () const;
|
||||
|
||||
virtual void setAnimationIndex (uint32_t index) { animationIndex = index; }
|
||||
uint32_t getAnimationIndex () const { return animationIndex; }
|
||||
|
||||
virtual void setAnimationTime (uint32_t time) { animationTime = time; }
|
||||
uint32_t getAnimationTime () const { return animationTime; }
|
||||
|
||||
/** create the animation. subclasses can override this to add special animations */
|
||||
virtual bool createAnimation (uint32_t animationIndex, uint32_t animationTime, CView* splashView, bool removeViewAnimation);
|
||||
//@}
|
||||
|
||||
void unSplash () override;
|
||||
void draw (CDrawContext*) override;
|
||||
CMouseEventResult onMouseDown (CPoint& where, const CButtonState& buttons) override;
|
||||
bool sizeToFit () override;
|
||||
|
||||
protected:
|
||||
~CAnimationSplashScreen () noexcept override = default;
|
||||
|
||||
uint32_t animationIndex{0};
|
||||
uint32_t animationTime{500};
|
||||
};
|
||||
|
||||
} // VSTGUI
|
||||
Reference in New Issue
Block a user