iPlug 2: IGraphics::Structs

Utility structures and classes for IGraphics. More...

Classes

class  IPopupMenu
 A class for setting the contents of a pop up menu. More...
 
class  IBitmap
 User-facing bitmap abstraction that you use to manage bitmap data, independant of draw class/platform. More...
 
struct  ISVG
 User-facing SVG abstraction that you use to manage SVG data ISVG doesn't actually own the image data. More...
 
struct  IColor
 Used to manage color data, independent of draw class/platform. More...
 
struct  IBlend
 Used to manage composite/blend operations, independent of draw class/platform. More...
 
struct  IFillOptions
 Used to manage fill behaviour. More...
 
struct  IStrokeOptions
 Used to manage stroke behaviour for path based drawing back ends. More...
 
struct  IText
 IText is used to manage font and text/text entry style for a piece of text on the UI, independent of draw class/platform. More...
 
struct  IRECT
 Used to manage a rectangular area, independent of draw class/platform. More...
 
struct  IMouseMod
 Used to manage mouse modifiers i.e. More...
 
struct  IMouseInfo
 Used to group mouse coordinates with mouse modifier information. More...
 
struct  IGestureInfo
 Used to describe a particular gesture. More...
 
class  IRECTList
 Used to manage a list of rectangular areas and optimize them for drawing to the screen. More...
 
struct  IMatrix
 Used to store transformation matrices. More...
 
struct  IColorStop
 Used to represent a point/stop in a gradient. More...
 
struct  IPattern
 Used to store pattern information for gradients. More...
 
class  ILayer
 An abstraction that is used to store a temporary raster image/framebuffer. More...
 
struct  IShadow
 Used to specify properties of a drop-shadow to a layer. More...
 
struct  IVColorSpec
 Contains a set of 9 colors used to theme IVControls. More...
 
struct  IVStyle
 A struct encapsulating a set of properties used to configure IVControls. More...
 

Typedefs

using IActionFunction = std::function< void(IControl *)>
 
using IAnimationFunction = std::function< void(IControl *)>
 
using IControlFunction = std::function< void(IControl *)>
 
using ILambdaDrawFunction = std::function< void(ILambdaControl *, IGraphics &, IRECT &)>
 
using IKeyHandlerFunc = std::function< bool(const IKeyPress &key, bool isUp)>
 
using IMsgBoxCompletionHandlerFunc = std::function< void(EMsgBoxResult result)>
 
using IFileDialogCompletionHandlerFunc = std::function< void(const WDL_String &fileName, const WDL_String &path)>
 
using IColorPickerHandlerFunc = std::function< void(const IColor &result)>
 
using IGestureFunc = std::function< void(IControl *, const IGestureInfo &)>
 
using IPopupFunction = std::function< void(IPopupMenu *pMenu)>
 
using IDisplayTickFunc = std::function< void()>
 
using IUIAppearanceChangedFunc = std::function< void(EUIAppearance appearance)>
 
using ITouchID = uintptr_t
 
using MTLTexturePtr = void *
 
using Milliseconds = std::chrono::duration< double, std::chrono::milliseconds::period >
 
using TimePoint = std::chrono::time_point< std::chrono::high_resolution_clock, Milliseconds >
 
using ILayerPtr = std::unique_ptr< ILayer >
 ILayerPtr is a managed pointer for transferring the ownership of layers. More...
 

Functions

void EmptyClickActionFunc (IControl *pCaller)
 A click action function that does nothing. More...
 
void DefaultClickActionFunc (IControl *pCaller)
 A click action function that triggers the default animation function for DEFAULT_ANIMATION_DURATION. More...
 
void DefaultAnimationFunc (IControl *pCaller)
 An animation function that just calls the caller control's OnEndAnimation() method at the end of the animation
More...
 
void SplashClickActionFunc (IControl *pCaller)
 The splash click action function is used by IVControls to start SplashAnimationFunc. More...
 
void SplashAnimationFunc (IControl *pCaller)
 The splash animation function is used by IVControls to animate the splash. More...
 
void ShowBubbleHorizontalActionFunc (IControl *pCaller)
 Use with a param-linked control to popup the bubble control horizontally. More...
 
void ShowBubbleVerticalActionFunc (IControl *pCaller)
 Use with a param-linked control to popup the bubble control vertically. More...
 
const IColor COLOR_TRANSPARENT (0, 0, 0, 0)
 
const IColor COLOR_TRANSLUCENT (10, 0, 0, 0)
 
const IColor COLOR_BLACK (255, 0, 0, 0)
 
const IColor COLOR_BLACK_DROP_SHADOW (128, 0, 0, 0)
 
const IColor COLOR_GRAY (255, 127, 127, 127)
 
const IColor COLOR_LIGHT_GRAY (255, 240, 240, 240)
 
const IColor COLOR_MID_GRAY (255, 200, 200, 200)
 
const IColor COLOR_DARK_GRAY (255, 70, 70, 70)
 
const IColor COLOR_WHITE (255, 255, 255, 255)
 
const IColor COLOR_RED (255, 255, 0, 0)
 
const IColor COLOR_GREEN (255, 0, 255, 0)
 
const IColor COLOR_BLUE (255, 0, 0, 255)
 
const IColor COLOR_YELLOW (255, 255, 255, 0)
 
const IColor COLOR_ORANGE (255, 255, 127, 0)
 
const IColor COLOR_INDIGO (255, 75, 0, 130)
 
const IColor COLOR_VIOLET (255, 148, 0, 211)
 
static IColor GetRainbow (int colorIdx)
 
float BlendWeight (const IBlend *pBlend)
 Helper function to extract the blend weight value from an IBlend ptr if it is valid. More...
 
static const char * TextStyleString (ETextStyle style)
 Helper to get a CString based on ETextStyle. More...
 

Variables

const IColor DEFAULT_GRAPHICS_BGCOLOR = COLOR_GRAY
 
const IColor DEFAULT_BGCOLOR = COLOR_TRANSPARENT
 
const IColor DEFAULT_FGCOLOR = COLOR_MID_GRAY
 
const IColor DEFAULT_PRCOLOR = COLOR_LIGHT_GRAY
 
const IColor DEFAULT_FRCOLOR = COLOR_DARK_GRAY
 
const IColor DEFAULT_HLCOLOR = COLOR_TRANSLUCENT
 
const IColor DEFAULT_SHCOLOR = IColor(60, 0, 0, 0)
 
const IColor DEFAULT_X1COLOR = COLOR_BLACK
 
const IColor DEFAULT_X2COLOR = COLOR_GREEN
 
const IColor DEFAULT_X3COLOR = COLOR_BLUE
 
const IColor DEFAULT_TEXT_FGCOLOR = COLOR_BLACK
 
const IColor DEFAULT_TEXTENTRY_BGCOLOR = COLOR_WHITE
 
const IColor DEFAULT_TEXTENTRY_FGCOLOR = COLOR_BLACK
 
const IBlend BLEND_75 = IBlend(EBlend::Default, 0.75f)
 
const IBlend BLEND_50 = IBlend(EBlend::Default, 0.5f)
 
const IBlend BLEND_25 = IBlend(EBlend::Default, 0.25f)
 
const IBlend BLEND_10 = IBlend(EBlend::Default, 0.1f)
 
const IBlend BLEND_05 = IBlend(EBlend::Default, 0.05f)
 
const IBlend BLEND_01 = IBlend(EBlend::Default, 0.01f)
 
const IBlend BLEND_DST_IN = IBlend(EBlend::DstIn, 1.f)
 
const IBlend BLEND_DST_OVER = IBlend(EBlend::DstOver, 1.f)
 
const IText DEFAULT_TEXT = IText()
 
const IVColorSpec DEFAULT_COLOR_SPEC = IVColorSpec()
 
static constexpr bool DEFAULT_HIDE_CURSOR = true
 
static constexpr bool DEFAULT_SHOW_VALUE = true
 
static constexpr bool DEFAULT_SHOW_LABEL = true
 
static constexpr bool DEFAULT_DRAW_FRAME = true
 
static constexpr bool DEFAULT_DRAW_SHADOWS = true
 
static constexpr bool DEFAULT_EMBOSS = false
 
static constexpr float DEFAULT_ROUNDNESS = 0.f
 
static constexpr float DEFAULT_FRAME_THICKNESS = 1.f
 
static constexpr float DEFAULT_SHADOW_OFFSET = 3.f
 
static constexpr float DEFAULT_WIDGET_FRAC = 1.f
 
static constexpr float DEFAULT_WIDGET_ANGLE = 0.f
 
static constexpr EOrientation DEFAULT_LABEL_ORIENTATION = EOrientation::North
 
const IText DEFAULT_LABEL_TEXT {DEFAULT_TEXT_SIZE + 5.f, EVAlign::Top}
 
const IText DEFAULT_VALUE_TEXT {DEFAULT_TEXT_SIZE, EVAlign::Bottom}
 
const IVStyle DEFAULT_STYLE = IVStyle()
 

Utility structures and classes for IGraphics.


◆ IStrokeOptions

Used to manage stroke behaviour for path based drawing back ends.

Definition at line 589 of file IGraphicsStructs.h.

Class Members
ELineCap mCapOption = ELineCap::Butt
DashOptions mDash
ELineJoin mJoinOption = ELineJoin::Miter
float mMiterLimit = 10.f
bool mPreserve = false

◆ IMouseInfo

Used to group mouse coordinates with mouse modifier information.

Definition at line 1720 of file IGraphicsStructs.h.

Class Members
float dX = 0.0
float dY = 0.0
IMouseMod ms
float x = 0.0
float y = 0.0

◆ IGestureInfo

Used to describe a particular gesture.

Definition at line 1728 of file IGraphicsStructs.h.

Class Members
float angle = 0.f
float scale = 0.f
EGestureState state = EGestureState::Unknown
EGestureType type = EGestureType::Unknown
float velocity = 0.f
float x = 0.f
float y = 0.f

◆ IActionFunction

using IActionFunction = std::function<void(IControl*)>

◆ IAnimationFunction

using IAnimationFunction = std::function<void(IControl*)>

◆ IColorPickerHandlerFunc

using IColorPickerHandlerFunc = std::function<void(const IColor& result)>

◆ IControlFunction

using IControlFunction = std::function<void(IControl*)>

◆ IDisplayTickFunc

using IDisplayTickFunc = std::function<void()>

◆ IFileDialogCompletionHandlerFunc

using IFileDialogCompletionHandlerFunc = std::function<void(const WDL_String& fileName, const WDL_String& path)>

◆ IGestureFunc

◆ IKeyHandlerFunc

using IKeyHandlerFunc = std::function<bool(const IKeyPress& key, bool isUp)>

◆ ILambdaDrawFunction

◆ ILayerPtr

ILayerPtr is a managed pointer for transferring the ownership of layers.

Definition at line 2370 of file IGraphicsStructs.h.

◆ IMsgBoxCompletionHandlerFunc

using IMsgBoxCompletionHandlerFunc = std::function<void(EMsgBoxResult result)>

◆ IPopupFunction

using IPopupFunction = std::function<void(IPopupMenu* pMenu)>

◆ ITouchID

using ITouchID = uintptr_t

◆ IUIAppearanceChangedFunc

using IUIAppearanceChangedFunc = std::function<void(EUIAppearance appearance)>

◆ Milliseconds

using Milliseconds = std::chrono::duration<double, std::chrono::milliseconds::period>

◆ MTLTexturePtr

using MTLTexturePtr = void*

◆ TimePoint

using TimePoint = std::chrono::time_point<std::chrono::high_resolution_clock, Milliseconds>

◆ BlendWeight()

float BlendWeight ( const IBlend pBlend)
inline

◆ DefaultAnimationFunc()

void DefaultAnimationFunc ( IControl pCaller)

◆ DefaultClickActionFunc()

void DefaultClickActionFunc ( IControl pCaller)

◆ EmptyClickActionFunc()

void EmptyClickActionFunc ( IControl pCaller)

A click action function that does nothing.

Definition at line 43 of file IControl.cpp.

◆ GetRainbow()

static IColor GetRainbow ( int  colorIdx)
static

◆ ShowBubbleHorizontalActionFunc()

void ShowBubbleHorizontalActionFunc ( IControl pCaller)

◆ ShowBubbleVerticalActionFunc()

void ShowBubbleVerticalActionFunc ( IControl pCaller)

◆ SplashAnimationFunc()

void SplashAnimationFunc ( IControl pCaller)

◆ SplashClickActionFunc()

void SplashClickActionFunc ( IControl pCaller)

◆ TextStyleString()

static const char * TextStyleString ( ETextStyle  style)
static

◆ BLEND_01

◆ BLEND_05

◆ BLEND_10

◆ BLEND_25

◆ BLEND_50

◆ BLEND_75

◆ BLEND_DST_IN

◆ BLEND_DST_OVER

◆ DEFAULT_BGCOLOR

const IColor DEFAULT_BGCOLOR = COLOR_TRANSPARENT

◆ DEFAULT_COLOR_SPEC

◆ DEFAULT_DRAW_FRAME

constexpr bool DEFAULT_DRAW_FRAME = true

staticconstexpr

◆ DEFAULT_DRAW_SHADOWS

constexpr bool DEFAULT_DRAW_SHADOWS = true

staticconstexpr

◆ DEFAULT_EMBOSS

constexpr bool DEFAULT_EMBOSS = false

staticconstexpr

◆ DEFAULT_FGCOLOR

const IColor DEFAULT_FGCOLOR = COLOR_MID_GRAY

◆ DEFAULT_FRAME_THICKNESS

constexpr float DEFAULT_FRAME_THICKNESS = 1.f

staticconstexpr

◆ DEFAULT_FRCOLOR

const IColor DEFAULT_FRCOLOR = COLOR_DARK_GRAY

◆ DEFAULT_GRAPHICS_BGCOLOR

const IColor DEFAULT_GRAPHICS_BGCOLOR = COLOR_GRAY

◆ DEFAULT_HIDE_CURSOR

constexpr bool DEFAULT_HIDE_CURSOR = true

staticconstexpr

◆ DEFAULT_HLCOLOR

const IColor DEFAULT_HLCOLOR = COLOR_TRANSLUCENT

◆ DEFAULT_LABEL_ORIENTATION

constexpr EOrientation DEFAULT_LABEL_ORIENTATION = EOrientation::North

staticconstexpr

◆ DEFAULT_LABEL_TEXT

const IText DEFAULT_LABEL_TEXT {DEFAULT_TEXT_SIZE + 5.f, EVAlign::Top}

◆ DEFAULT_PRCOLOR

const IColor DEFAULT_PRCOLOR = COLOR_LIGHT_GRAY

◆ DEFAULT_ROUNDNESS

constexpr float DEFAULT_ROUNDNESS = 0.f

staticconstexpr

◆ DEFAULT_SHADOW_OFFSET

constexpr float DEFAULT_SHADOW_OFFSET = 3.f

staticconstexpr

◆ DEFAULT_SHCOLOR

◆ DEFAULT_SHOW_LABEL

constexpr bool DEFAULT_SHOW_LABEL = true

staticconstexpr

◆ DEFAULT_SHOW_VALUE

constexpr bool DEFAULT_SHOW_VALUE = true

staticconstexpr

◆ DEFAULT_STYLE

◆ DEFAULT_TEXT

◆ DEFAULT_TEXT_FGCOLOR

const IColor DEFAULT_TEXT_FGCOLOR = COLOR_BLACK

◆ DEFAULT_TEXTENTRY_BGCOLOR

const IColor DEFAULT_TEXTENTRY_BGCOLOR = COLOR_WHITE

◆ DEFAULT_TEXTENTRY_FGCOLOR

const IColor DEFAULT_TEXTENTRY_FGCOLOR = COLOR_BLACK

◆ DEFAULT_VALUE_TEXT

const IText DEFAULT_VALUE_TEXT {DEFAULT_TEXT_SIZE, EVAlign::Bottom}

◆ DEFAULT_WIDGET_ANGLE

constexpr float DEFAULT_WIDGET_ANGLE = 0.f

staticconstexpr

◆ DEFAULT_WIDGET_FRAC

constexpr float DEFAULT_WIDGET_FRAC = 1.f

staticconstexpr

◆ DEFAULT_X1COLOR

const IColor DEFAULT_X1COLOR = COLOR_BLACK

◆ DEFAULT_X2COLOR

const IColor DEFAULT_X2COLOR = COLOR_GREEN

◆ DEFAULT_X3COLOR

const IColor DEFAULT_X3COLOR = COLOR_BLUE