Scroom 0.14-48-ga0fee447
Loading...
Searching...
No Matches
measure.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 <optional>
11
13#include <scroom/point.hh>
14#include <scroom/utilities.hh>
16
18 : public ToolStateListener
19 , public PostRenderer
20 , public SelectionListener
21 , virtual public Scroom::Utils::Base
22{
23public:
24 using Ptr = std::shared_ptr<MeasureHandler>;
25
26private:
27 std::optional<Selection> selection;
28 bool enabled{false};
29
30public:
31 static Ptr create();
32
34 // PostRenderer
35
36 void render(ViewInterface::Ptr const& vi, cairo_t* cr, Scroom::Utils::Rectangle<double> presentationArea, int zoom) override;
37
39 // SelectionListener
40
44
46 // ToolStateListener
47
48 void onEnable() override;
49 void onDisable() override;
50
52
53private:
54 virtual void displayMeasurement(const ViewInterface::Ptr& view);
55 virtual void drawCross(cairo_t* cr, Scroom::Utils::Point<double> p);
56};
57
60 , public ViewObserver
61 , virtual public Scroom::Utils::Base
62{
63public:
64 using Ptr = std::shared_ptr<Measure>;
65
66private:
67 Measure() = default;
68
69public:
70 static Ptr create();
71
72public:
74 // PluginInformationInterface
75
76 std::string getPluginName() override;
77 std::string getPluginVersion() override;
79
81 // ViewObserver
82
84
86};
Definition measure.hh:22
std::optional< Selection > selection
Definition measure.hh:27
void onSelectionUpdate(Selection s, ViewInterface::Ptr view) override
Definition measure.cc:98
void onEnable() override
Definition measure.cc:155
void onSelectionEnd(Selection s, ViewInterface::Ptr view) override
Definition measure.cc:107
static Ptr create()
Definition measure.cc:64
virtual void drawCross(cairo_t *cr, Scroom::Utils::Point< double > p)
Definition measure.cc:83
void onSelectionStart(Selection p, ViewInterface::Ptr view) override
Definition measure.cc:96
virtual void displayMeasurement(const ViewInterface::Ptr &view)
Definition measure.cc:66
void render(ViewInterface::Ptr const &vi, cairo_t *cr, Scroom::Utils::Rectangle< double > presentationArea, int zoom) override
Definition measure.cc:120
void onDisable() override
Definition measure.cc:149
bool enabled
Definition measure.hh:28
std::shared_ptr< MeasureHandler > Ptr
Definition measure.hh:24
Definition measure.hh:62
static Ptr create()
Definition measure.cc:30
std::shared_ptr< Measure > Ptr
Definition measure.hh:64
Scroom::Bookkeeping::Token viewAdded(ViewInterface::Ptr v) override
Definition measure.cc:49
Measure()=default
void registerCapabilities(ScroomPluginInterface::Ptr host) override
Definition measure.cc:40
std::string getPluginName() override
Definition measure.cc:36
std::string getPluginVersion() override
Definition measure.cc:38
Definition plugininformationinterface.hh:18
Definition viewinterface.hh:79
std::shared_ptr< ScroomPluginInterface > Ptr
Definition scroominterface.hh:101
Definition bookkeeping.hh:50
Definition utilities.hh:34
Definition point.hh:28
Definition rectangle.hh:29
Definition viewinterface.hh:116
Definition viewinterface.hh:162
std::shared_ptr< ViewInterface > Ptr
Definition viewinterface.hh:193
Definition scroominterface.hh:90
PresentationInterfaceStub::Ptr const p
Definition determine-size-test.cc:172
ViewInterface::Ptr const vi
Definition pipette-tests.cc:186
const auto view
Definition pipette-tests.cc:227
Definition viewinterface.hh:37
BitmapSurface::Ptr const s
Definition transformpresentation_test.cc:70
cairo_t * cr
Definition transformpresentation_test.cc:72