Scroom  0.14
transparentoverlaypresentation.hh
Go to the documentation of this file.
1 /*
2  * Scroom - Generic viewer for 2D data
3  * Copyright (C) 2009-2022 Kees-Jan Dijkzeul
4  *
5  * SPDX-License-Identifier: LGPL-2.1
6  */
7 
8 #pragma once
9 
10 #include <list>
11 #include <map>
12 #include <set>
13 #include <string>
14 
15 #include <cairo.h>
16 
18 #include <scroom/rectangle.hh>
19 #include <scroom/viewinterface.hh>
20 
21 #include "sizedeterminer.hh"
23 
25  : public PresentationBase
26  , public Aggregate
27 {
28 public:
29  using Ptr = boost::shared_ptr<TransparentOverlayPresentation>;
30 
31 private:
32  using ViewDataMap = std::map<ViewInterface::WeakPtr, TransparentOverlayViewInfo::Ptr>;
33 
34 private:
35  std::list<PresentationInterface::Ptr> children;
37 
39 
41 
42 public:
43  static Ptr create();
44 
45  // PresentationInterface ///////////////////////////////////////////////
47  void redraw(ViewInterface::Ptr const& vi, cairo_t* cr, Scroom::Utils::Rectangle<double> presentationArea, int zoom) override;
48  bool getProperty(const std::string& name, std::string& value) override;
49  bool isPropertyDefined(const std::string& name) override;
50  std::string getTitle() override;
51  void viewAdded(ViewInterface::WeakPtr vi) override;
52  void viewRemoved(ViewInterface::WeakPtr vi) override;
53  std::set<ViewInterface::WeakPtr> getViews() override;
54 
55  // Aggregate ///////////////////////////////////////////////////////////
56 
57  void addPresentation(PresentationInterface::Ptr const& p) override;
58 
59 private:
61 };
anonymous_namespace{transparentoverlaypresentation.cc}::ColorComparer::operator()
bool operator()(Color const &left, Color const &right) const
Definition: transparentoverlaypresentation.cc:33
UNUSED
#define UNUSED(x)
Definition: unused.hh:10
TransparentOverlayPresentation::getTitle
std::string getTitle() override
Definition: transparentoverlaypresentation.cc:158
sizedeterminer.hh
anonymous_namespace{transparentoverlaypresentation.cc}::colors
const std::list< Color > colors
Definition: transparentoverlaypresentation.cc:21
MONOCHROME_COLORMAPPABLE_PROPERTY_NAME
const std::string MONOCHROME_COLORMAPPABLE_PROPERTY_NAME
Definition: colormappable.hh:22
presentationinterface.hh
TransparentOverlayPresentation::redraw
void redraw(ViewInterface::Ptr const &vi, cairo_t *cr, Scroom::Utils::Rectangle< double > presentationArea, int zoom) override
Definition: transparentoverlaypresentation.cc:132
ViewInterface::Ptr
boost::shared_ptr< ViewInterface > Ptr
Definition: viewinterface.hh:193
Aggregate
Definition: presentationinterface.hh:144
TransparentOverlayPresentation::sizeDeterminer
SizeDeterminer::Ptr sizeDeterminer
Definition: transparentoverlaypresentation.hh:36
colormappable.hh
Color::alpha
double alpha
Definition: color.hh:39
transparentoverlayviewinfo.hh
Color::blue
double blue
Definition: color.hh:42
TransparentOverlayPresentation::viewAdded
void viewAdded(ViewInterface::WeakPtr vi) override
Definition: transparentoverlaypresentation.cc:104
TransparentOverlayViewInfo::Ptr
boost::shared_ptr< TransparentOverlayViewInfo > Ptr
Definition: transparentoverlayviewinfo.hh:63
TransparentOverlayPresentation::viewData
ViewDataMap viewData
Definition: transparentoverlaypresentation.hh:38
Color::red
double red
Definition: color.hh:40
TransparentOverlayPresentation::getViews
std::set< ViewInterface::WeakPtr > getViews() override
Definition: transparentoverlaypresentation.cc:121
PresentationInterface::Ptr
boost::shared_ptr< PresentationInterface > Ptr
Definition: presentationinterface.hh:74
ViewInterface::WeakPtr
boost::weak_ptr< ViewInterface > WeakPtr
Definition: viewinterface.hh:194
Scroom::Utils::Observable::Ptr
boost::shared_ptr< Observable< T > > Ptr
Definition: observable.hh:75
TransparentOverlayPresentation::TransparentOverlayPresentation
TransparentOverlayPresentation()
Definition: transparentoverlaypresentation.cc:43
doubleFromByte
double doubleFromByte(uint8_t b)
Definition: color.hh:22
TransparentOverlayPresentation::viewRemoved
void viewRemoved(ViewInterface::WeakPtr vi) override
Definition: transparentoverlaypresentation.cc:111
SizeDeterminer
Definition: sizedeterminer.hh:19
TransparentOverlayPresentation::getRect
Scroom::Utils::Rectangle< double > getRect() override
Definition: transparentoverlaypresentation.cc:102
TransparentOverlayPresentation::ViewDataMap
std::map< ViewInterface::WeakPtr, TransparentOverlayViewInfo::Ptr > ViewDataMap
Definition: transparentoverlaypresentation.hh:32
PresentationBase
Definition: presentationinterface.hh:113
TransparentOverlayPresentation::create
static Ptr create()
Definition: transparentoverlaypresentation.cc:41
transparentoverlaypresentation.hh
viewinterface.hh
TransparentOverlayPresentation::addPresentation
void addPresentation(PresentationInterface::Ptr const &p) override
Definition: transparentoverlaypresentation.cc:48
TransparentOverlayViewInfo::create
static Ptr create(const ViewInterface::WeakPtr &vi, SizeDeterminer::Ptr const &sizeDeterminer)
Definition: transparentoverlayviewinfo.cc:130
TransparentOverlayPresentation
Definition: transparentoverlaypresentation.hh:24
SizeDeterminer::Ptr
boost::shared_ptr< SizeDeterminer > Ptr
Definition: sizedeterminer.hh:22
Colormappable::Ptr
boost::shared_ptr< Colormappable > Ptr
Definition: colormappable.hh:116
defect_message
#define defect_message(m)
Definition: assertions.hh:43
TransparentOverlayPresentation::Ptr
boost::shared_ptr< TransparentOverlayPresentation > Ptr
Definition: transparentoverlaypresentation.hh:29
TransparentOverlayPresentation::children
std::list< PresentationInterface::Ptr > children
Definition: transparentoverlaypresentation.hh:35
TransparentOverlayPresentation::setOptimalColor
void setOptimalColor(PresentationInterface::Ptr const &p)
Definition: transparentoverlaypresentation.cc:71
anonymous_namespace{transparentoverlaypresentation.cc}::ColorComparer
Definition: transparentoverlaypresentation.cc:31
TransparentOverlayPresentation::isPropertyDefined
bool isPropertyDefined(const std::string &name) override
Definition: transparentoverlaypresentation.cc:151
unused.hh
TransparentOverlayPresentation::getProperty
bool getProperty(const std::string &name, std::string &value) override
Definition: transparentoverlaypresentation.cc:144
Scroom::Utils::Rectangle< double >
Color
Definition: color.hh:34
rectangle.hh
Color::green
double green
Definition: color.hh:41
create
void create(NewPresentationInterface *interface)
Definition: loader.cc:175