Minsky
minsky::SVGRenderer Class Reference

#include <SVGItem.h>

Collaboration diagram for minsky::SVGRenderer:
Collaboration graph

Public Member Functions

 SVGRenderer ()
 
 SVGRenderer (const std::string &resource)
 
 SVGRenderer (const SVGRenderer &)=delete
 
void operator= (const SVGRenderer &)=delete
 
 ~SVGRenderer ()
 
void setResource (const std::string &resource)
 initialise object from an SVG file More...
 
void render (cairo_t *) const
 
double width () const
 
double height () const
 

Private Member Functions

 CLASSDESC_ACCESS (SVGRenderer)
 

Private Attributes

classdesc::Exclude< RsvgHandle * > svg
 
double m_width
 
double m_height
 

Detailed Description

Definition at line 29 of file SVGItem.h.

Constructor & Destructor Documentation

◆ SVGRenderer() [1/3]

minsky::SVGRenderer::SVGRenderer ( )
inline

Definition at line 35 of file SVGItem.h.

35 {}

◆ SVGRenderer() [2/3]

minsky::SVGRenderer::SVGRenderer ( const std::string &  resource)
inline

Definition at line 36 of file SVGItem.h.

References setResource().

36 {setResource(resource);}
void setResource(const std::string &resource)
initialise object from an SVG file
Definition: SVGItem.cc:57
Here is the call graph for this function:

◆ SVGRenderer() [3/3]

minsky::SVGRenderer::SVGRenderer ( const SVGRenderer )
delete

◆ ~SVGRenderer()

minsky::SVGRenderer::~SVGRenderer ( )

Definition at line 76 of file SVGItem.cc.

77  {
78  if (svg)
79  /*rsvg_handle_free*/ g_object_unref(svg);
80  }
classdesc::Exclude< RsvgHandle * > svg
Definition: SVGItem.h:31

Member Function Documentation

◆ CLASSDESC_ACCESS()

minsky::SVGRenderer::CLASSDESC_ACCESS ( SVGRenderer  )
private

◆ height()

double minsky::SVGRenderer::height ( ) const
inline

Definition at line 45 of file SVGItem.h.

References m_height.

Referenced by minsky::Lock::draw(), minsky::Ravel::draw(), and minsky::Operation< minsky::OperationType::integrate >::iconDraw().

45 {return m_height;}
Here is the caller graph for this function:

◆ operator=()

void minsky::SVGRenderer::operator= ( const SVGRenderer )
delete

◆ render()

void minsky::SVGRenderer::render ( cairo_t *  cairo) const

Definition at line 82 of file SVGItem.cc.

Referenced by minsky::Lock::draw(), minsky::Ravel::draw(), and minsky::Operation< minsky::OperationType::integrate >::iconDraw().

83  {
84  if (svg)
85  rsvg_handle_render_cairo(svg,cairo);
86  }
classdesc::Exclude< RsvgHandle * > svg
Definition: SVGItem.h:31
Here is the caller graph for this function:

◆ setResource()

void minsky::SVGRenderer::setResource ( const std::string &  resource)

initialise object from an SVG file

Definition at line 57 of file SVGItem.cc.

Referenced by minsky::Minsky::setGodleyIconResource(), minsky::Minsky::setGroupIconResource(), minsky::Minsky::setLockIconResource(), minsky::Minsky::setRavelIconResource(), and SVGRenderer().

58  {
59  if (svg) /*rsvg_handle_free*/ g_object_unref(svg);
60  GError* err=nullptr;
61  svg=rsvg_handle_new_from_file(resource.c_str(),&err);
62  if (err)
63  {
64  std::string msg="SVGRenderer failed to initialise: ";
65  msg+=err->message;
66  g_error_free(err);
67  throw runtime_error(msg);
68  }
69  RsvgDimensionData dims;
70  rsvg_handle_get_dimensions(svg, &dims);
71  m_width=dims.width;
72  m_height=dims.height;
73  }
classdesc::Exclude< RsvgHandle * > svg
Definition: SVGItem.h:31
Here is the caller graph for this function:

◆ width()

double minsky::SVGRenderer::width ( ) const
inline

Definition at line 44 of file SVGItem.h.

References m_width.

Referenced by minsky::Lock::draw(), and minsky::Ravel::draw().

44 {return m_width;}
Here is the caller graph for this function:

Member Data Documentation

◆ m_height

double minsky::SVGRenderer::m_height
private

Definition at line 33 of file SVGItem.h.

Referenced by height().

◆ m_width

double minsky::SVGRenderer::m_width
private

Definition at line 33 of file SVGItem.h.

Referenced by width().

◆ svg

classdesc::Exclude<RsvgHandle*> minsky::SVGRenderer::svg
private

Definition at line 31 of file SVGItem.h.


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