Krotos Modules 3
Loading...
Searching...
No Matches
krotos::ZoomableComponent Class Reference

Enables zooming of a painted component using special drawing methods. More...

#include <ZoomableComponent.h>

Inheritance diagram for krotos::ZoomableComponent:
krotos::AreaSelectionComp krotos::GrainDisplay krotos::GrainVisualiser krotos::WaveformViewer krotos::WaveformViewerAndEditor

Public Member Functions

 ZoomableComponent ()=default
 
 ~ZoomableComponent () override=default
 
void setHorizontalZoomFactor (float factor)
 
void setHorizontalZoomCenter (float center)
 
void setVerticalZoomFactor (float factor)
 
void setVerticalZoomCenter (float center)
 
void setHorizontalZoomFromRange (const Range< float > xr)
 
void SetTransformToFit (int width, int height)
 
float getHorizontalZoomFactor () const
 
float getHorizontalZoomCenter () const
 
float getVerticalZoomFactor () const
 
float getVerticalZoomCenter () const
 
Range< float > getHorizontalRange () const
 
Range< float > getVerticalRange () const
 

Protected Member Functions

void drawNormalisedZoomedRect (Graphics &g, const Rectangle< float > &rect) const
 
void drawNormalisedZoomedRectLine (Graphics &g, const Rectangle< float > &rect) const
 
void drawZoomedRect (Graphics &g, const Rectangle< float > &rect) const
 
void drawNormalisedZoomedLine (Graphics &g, Line< float > line, float thickness) const
 
void drawZoomedLine (Graphics &g, const Line< float > &line, float thickness) const
 
void drawNormalisedZoomedText (Graphics &g, String text, Rectangle< float > bounds) const
 
void drawNormalisedZoomedPath (Graphics &g, const Path &path, float thickness)
 
void drawZoomedPath (Graphics &g, Path path, float thickness)
 
void drawNormalisedZoomedImage (Graphics &g, Image &image, const Rectangle< float > &bounds, bool fillAlphaChannelWithCurrentBrush=false)
 
void fillNormalisedZoomedEllipse (Graphics &g, const Rectangle< float > &bounds)
 
void drawNormalisedZoomedEllipse (Graphics &g, const Rectangle< float > &bounds)
 
void drawZoomedEllipse (Graphics &g, const Rectangle< float > &bounds)
 

Private Member Functions

void updateTransform ()
 

Private Attributes

float m_hZoom {1.0f}
 
float m_hCenter {0.5f}
 
float m_vZoom {1.0f}
 
float m_vCenter {0.5f}
 
AffineTransform m_transform
 

Detailed Description

Enables zooming of a painted component using special drawing methods.

Constructor & Destructor Documentation

◆ ZoomableComponent()

krotos::ZoomableComponent::ZoomableComponent ( )
default

◆ ~ZoomableComponent()

krotos::ZoomableComponent::~ZoomableComponent ( )
overridedefault

Member Function Documentation

◆ drawNormalisedZoomedEllipse()

void krotos::ZoomableComponent::drawNormalisedZoomedEllipse ( Graphics & g,
const Rectangle< float > & bounds )
protected

◆ drawNormalisedZoomedImage()

void krotos::ZoomableComponent::drawNormalisedZoomedImage ( Graphics & g,
Image & image,
const Rectangle< float > & bounds,
bool fillAlphaChannelWithCurrentBrush = false )
protected

◆ drawNormalisedZoomedLine()

void krotos::ZoomableComponent::drawNormalisedZoomedLine ( Graphics & g,
Line< float > line,
float thickness ) const
protected

◆ drawNormalisedZoomedPath()

void krotos::ZoomableComponent::drawNormalisedZoomedPath ( Graphics & g,
const Path & path,
float thickness )
protected

◆ drawNormalisedZoomedRect()

void krotos::ZoomableComponent::drawNormalisedZoomedRect ( Graphics & g,
const Rectangle< float > & rect ) const
protected

◆ drawNormalisedZoomedRectLine()

void krotos::ZoomableComponent::drawNormalisedZoomedRectLine ( Graphics & g,
const Rectangle< float > & rect ) const
protected

◆ drawNormalisedZoomedText()

void krotos::ZoomableComponent::drawNormalisedZoomedText ( Graphics & g,
String text,
Rectangle< float > bounds ) const
protected

◆ drawZoomedEllipse()

void krotos::ZoomableComponent::drawZoomedEllipse ( Graphics & g,
const Rectangle< float > & bounds )
protected

◆ drawZoomedLine()

void krotos::ZoomableComponent::drawZoomedLine ( Graphics & g,
const Line< float > & line,
float thickness ) const
protected

◆ drawZoomedPath()

void krotos::ZoomableComponent::drawZoomedPath ( Graphics & g,
Path path,
float thickness )
protected

◆ drawZoomedRect()

void krotos::ZoomableComponent::drawZoomedRect ( Graphics & g,
const Rectangle< float > & rect ) const
protected

◆ fillNormalisedZoomedEllipse()

void krotos::ZoomableComponent::fillNormalisedZoomedEllipse ( Graphics & g,
const Rectangle< float > & bounds )
protected

◆ getHorizontalRange()

Range< float > krotos::ZoomableComponent::getHorizontalRange ( ) const

◆ getHorizontalZoomCenter()

float krotos::ZoomableComponent::getHorizontalZoomCenter ( ) const
inline

◆ getHorizontalZoomFactor()

float krotos::ZoomableComponent::getHorizontalZoomFactor ( ) const
inline

◆ getVerticalRange()

Range< float > krotos::ZoomableComponent::getVerticalRange ( ) const

◆ getVerticalZoomCenter()

float krotos::ZoomableComponent::getVerticalZoomCenter ( ) const
inline

◆ getVerticalZoomFactor()

float krotos::ZoomableComponent::getVerticalZoomFactor ( ) const
inline

◆ setHorizontalZoomCenter()

void krotos::ZoomableComponent::setHorizontalZoomCenter ( float center)
inline

◆ setHorizontalZoomFactor()

void krotos::ZoomableComponent::setHorizontalZoomFactor ( float factor)
inline

◆ setHorizontalZoomFromRange()

void krotos::ZoomableComponent::setHorizontalZoomFromRange ( const Range< float > xr)

◆ SetTransformToFit()

void krotos::ZoomableComponent::SetTransformToFit ( int width,
int height )

◆ setVerticalZoomCenter()

void krotos::ZoomableComponent::setVerticalZoomCenter ( float center)
inline

◆ setVerticalZoomFactor()

void krotos::ZoomableComponent::setVerticalZoomFactor ( float factor)
inline

◆ updateTransform()

void krotos::ZoomableComponent::updateTransform ( )
private

Member Data Documentation

◆ m_hCenter

float krotos::ZoomableComponent::m_hCenter {0.5f}
private

◆ m_hZoom

float krotos::ZoomableComponent::m_hZoom {1.0f}
private

◆ m_transform

AffineTransform krotos::ZoomableComponent::m_transform
private

◆ m_vCenter

float krotos::ZoomableComponent::m_vCenter {0.5f}
private

◆ m_vZoom

float krotos::ZoomableComponent::m_vZoom {1.0f}
private

The documentation for this class was generated from the following files: