Scroom 0.14-48-ga0fee447
Loading...
Searching...
No Matches
transformpresentation.hh
Go to the documentation of this file.
1/*
2 * Scroom - Generic viewer for 2D data
3 * Copyright (C) 2009-2026 Kees-Jan Dijkzeul
4 *
5 * SPDX-License-Identifier: LGPL-2.1
6 */
7
8#pragma once
9
10#include <memory>
11
15#include <scroom/point.hh>
17#include <scroom/rectangle.hh>
19
21{
22private:
24
25public:
26 using Ptr = std::shared_ptr<TransformationData>;
27
28 static Ptr create(Scroom::Utils::Point<double> aspectRatio_);
29 static Ptr create();
30
31 void setAspectRatio(double x, double y);
33 [[nodiscard]] Scroom::Utils::Point<double> getAspectRatio() const;
34
35private:
38};
39
40namespace Detail
41{
42 class ViewData : public ViewInterface
43 {
44 public:
45 using Ptr = std::shared_ptr<ViewData>;
46
47 public:
49 int zoom{0};
52
53 public:
54 [[nodiscard]] ViewInterface::Ptr parent() const;
56
57 // ViewInterface
58 void invalidate() override;
60 void addSideWidget(std::string title, GtkWidget* w) override;
61 void removeSideWidget(GtkWidget* w) override;
62 void addToToolbar(GtkToolItem* ti) override;
63 void removeFromToolbar(GtkToolItem* ti) override;
65 void registerPostRenderer(PostRenderer::Ptr ptr) override;
66 void setStatusMessage(const std::string& string) override;
67 std::shared_ptr<PresentationInterface> getCurrentPresentation() override;
68 void addToolButton(GtkToggleButton* button, ToolStateListener::Ptr ptr) override;
69
70 private:
71 explicit ViewData(ViewInterface::WeakPtr parent_);
72 };
73
74} // namespace Detail
75
78 , public Colormappable
81{
82public:
83 using Ptr = std::shared_ptr<TransformPresentation>;
84
85private:
92
93private:
95
96public:
98
99 // Viewable
100 void open(ViewInterface::WeakPtr vi) override;
101 void close(ViewInterface::WeakPtr vi) override;
102
103 // PresentationInterface
105 void redraw(ViewInterface::Ptr const& vi, cairo_t* cr, Scroom::Utils::Rectangle<double> presentationArea, int zoom) override;
106 bool getProperty(const std::string& name, std::string& value) override;
107 bool isPropertyDefined(const std::string& name) override;
108 std::string getTitle() override;
110
111 // PipetteViewInterface
113
114 // Colormappable
115 void setColormap(Colormap::Ptr colormap) override;
117 int getNumberOfColors() override;
118 Color getMonochromeColor() override;
119 void setMonochromeColor(const Color& c) override;
120 void setTransparentBackground() override;
121 void disableTransparentBackground() override;
122 bool getTransparentBackground() override;
123 void showMetadata(GtkWindow* parent) override;
124};
125
const uint8_t value
Definition blob-tests.cc:114
Definition color.hh:37
std::shared_ptr< Colormap > Ptr
Definition colormappable.hh:29
Definition colormappable.hh:112
std::shared_ptr< Colormappable > Ptr
Definition colormappable.hh:114
Definition transformpresentation.hh:43
static ViewData::Ptr create(const ViewInterface::WeakPtr &parent)
Definition transformpresentation.cc:203
void addSideWidget(std::string title, GtkWidget *w) override
Definition transformpresentation.cc:194
void registerSelectionListener(SelectionListener::Ptr ptr) override
Definition transformpresentation.cc:198
void addToToolbar(GtkToolItem *ti) override
Definition transformpresentation.cc:196
void removeFromToolbar(GtkToolItem *ti) override
Definition transformpresentation.cc:197
ProgressInterface::Ptr getProgressInterface() override
Definition transformpresentation.cc:193
ViewInterface::Ptr parent() const
Definition transformpresentation.cc:185
ViewInterface::WeakPtr weakParent
Definition transformpresentation.hh:51
void registerPostRenderer(PostRenderer::Ptr ptr) override
Definition transformpresentation.cc:199
void invalidate() override
Definition transformpresentation.cc:187
Scroom::Utils::Rectangle< double > presentationArea
Definition transformpresentation.hh:48
int zoom
Definition transformpresentation.hh:49
void addToolButton(GtkToggleButton *button, ToolStateListener::Ptr ptr) override
Definition transformpresentation.cc:202
void removeSideWidget(GtkWidget *w) override
Definition transformpresentation.cc:195
std::shared_ptr< PresentationInterface > getCurrentPresentation() override
Definition transformpresentation.cc:201
Scroom::Bitmap::BitmapSurface::Ptr image
Definition transformpresentation.hh:50
void setStatusMessage(const std::string &string) override
Definition transformpresentation.cc:200
std::shared_ptr< ViewData > Ptr
Definition transformpresentation.hh:45
std::vector< std::pair< std::string, double > > PipetteColor
Definition pipettelayeroperations.hh:25
Definition pipetteviewinterface.hh:19
std::shared_ptr< PostRenderer > Ptr
Definition viewinterface.hh:81
Definition presentationinterface.hh:130
std::shared_ptr< PresentationInterface > Ptr
Definition presentationinterface.hh:73
std::shared_ptr< ProgressInterface > Ptr
Definition progressinterface.hh:20
std::shared_ptr< BitmapSurface > Ptr
Definition bitmap-helpers.hh:25
std::shared_ptr< const Context > ConstPtr
Definition context.hh:27
Definition point.hh:28
Definition rectangle.hh:29
std::shared_ptr< RecursiveContext > Ptr
Definition context.hh:47
std::shared_ptr< SelectionListener > Ptr
Definition viewinterface.hh:118
Definition showmetadatainterface.hh:18
std::shared_ptr< ShowMetadataInterface > Ptr
Definition showmetadatainterface.hh:20
std::shared_ptr< ToolStateListener > Ptr
Definition viewinterface.hh:164
Definition transformpresentation.hh:81
static Ptr create(PresentationInterface::Ptr const &presentation, TransformationData::Ptr const &transformationData)
Definition transformpresentation.cc:70
Colormap::Ptr getOriginalColormap() override
Definition transformpresentation.cc:146
Color getMonochromeColor() override
Definition transformpresentation.cc:150
std::shared_ptr< TransformPresentation > Ptr
Definition transformpresentation.hh:83
ShowMetadataInterface::Ptr showMetaDataInterface
Definition transformpresentation.hh:89
bool getTransparentBackground() override
Definition transformpresentation.cc:158
std::string getTitle() override
Definition transformpresentation.cc:142
Scroom::Utils::Context::ConstPtr getContext() const override
Definition transformpresentation.cc:176
bool isPropertyDefined(const std::string &name) override
Definition transformpresentation.cc:140
PresentationInterface::Ptr presentation
Definition transformpresentation.hh:87
void disableTransparentBackground() override
Definition transformpresentation.cc:156
void setMonochromeColor(const Color &c) override
Definition transformpresentation.cc:152
void setTransparentBackground() override
Definition transformpresentation.cc:154
int getNumberOfColors() override
Definition transformpresentation.cc:148
bool getProperty(const std::string &name, std::string &value) override
Definition transformpresentation.cc:135
void open(ViewInterface::WeakPtr vi) override
Definition transformpresentation.cc:80
PipetteLayerOperations::PipetteColor getPixelAverages(Scroom::Utils::Rectangle< double > area) override
Definition transformpresentation.cc:169
void showMetadata(GtkWindow *parent) override
Definition transformpresentation.cc:160
void close(ViewInterface::WeakPtr vi) override
Definition transformpresentation.cc:90
void redraw(ViewInterface::Ptr const &vi, cairo_t *cr, Scroom::Utils::Rectangle< double > presentationArea, int zoom) override
Definition transformpresentation.cc:99
Scroom::Utils::RecursiveContext::Ptr context
Definition transformpresentation.hh:91
void setColormap(Colormap::Ptr colormap) override
Definition transformpresentation.cc:144
Scroom::Utils::WeakKeyMap< ViewInterface::WeakPtr, Detail::ViewData::Ptr > viewData
Definition transformpresentation.hh:90
Colormappable::Ptr colormappable
Definition transformpresentation.hh:88
TransformationData::Ptr transformationData
Definition transformpresentation.hh:86
Scroom::Utils::Rectangle< double > getRect() override
Definition transformpresentation.cc:75
Definition transformpresentation.hh:21
TransformationData()
Definition transformpresentation.cc:19
Scroom::Utils::Point< double > aspectRatio
Definition transformpresentation.hh:23
std::shared_ptr< TransformationData > Ptr
Definition transformpresentation.hh:26
static Ptr create()
Definition transformpresentation.cc:29
void setAspectRatio(double x, double y)
Definition transformpresentation.cc:36
Scroom::Utils::Point< double > getAspectRatio() const
Definition transformpresentation.cc:39
Definition viewinterface.hh:191
std::weak_ptr< ViewInterface > WeakPtr
Definition viewinterface.hh:194
std::shared_ptr< ViewInterface > Ptr
Definition viewinterface.hh:193
Colormap::Ptr const colormap
Definition colormaphelpers_test.cc:55
std::pair< GSourceFunc, gpointer > const w
Definition gtkhelper-tests.cc:42
Definition color.hh:26
std::map< K, V, std::owner_less< K > > WeakKeyMap
Definition utilities.hh:118
ViewInterface::Ptr const vi
Definition pipette-tests.cc:186
Semaphore c(0)
Scroom::Utils::Point< double > getAspectRatio(const PresentationInterface::Ptr &presentation)
Definition transformpresentation.cc:162
cairo_t * cr
Definition transformpresentation_test.cc:72