Scroom  0.14
view.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 <cmath>
11 #include <cstdlib>
12 #include <map>
13 #include <optional>
14 #include <string>
15 #include <vector>
16 
17 #include <gdk/gdk.h>
18 #include <gtk/gtk.h>
19 
20 #include <cairo.h>
21 
24 #include <scroom/stuff.hh>
25 #include <scroom/utilities.hh>
26 #include <scroom/viewinterface.hh>
27 
28 #include "progressbarmanager.hh"
29 #include "ruler.hh"
30 #include "sidebarmanager.hh"
31 
34 class TweakRulers;
35 class ITweakSelection;
36 
45 template <typename T>
46 class Freezable
47 {
48 public:
49  using value_type = T;
50  using Me = Freezable<T>;
51 
52  Freezable() = default;
53 
54  explicit Freezable(value_type v)
55  : value(std::move(v))
56  {
57  }
58 
59  [[nodiscard]] const value_type& get() const { return value; }
60 
61  bool set(value_type v)
62  {
63  if(!locked)
64  {
65  value = std::move(v);
66  }
67  return locked;
68  }
69 
70  void lock() { locked++; }
71 
72  void unlock()
73  {
74  require(locked > 0);
75  locked--;
76  }
77  [[nodiscard]] bool is_locked() const { return locked; }
78 
79  operator const value_type&() const { return value; } // NOLINT(hicpp-explicit-conversions)
81  {
82  set(std::move(v));
83  return *this;
84  }
85  const value_type* operator*() const { return &value; }
86  const value_type* operator->() const { return &value; }
87  Me& operator+=(value_type v) { return operator=(value + v); }
88  Me& operator-=(value_type v) { return operator=(value - v); }
89 
90 private:
92  unsigned locked{0};
93 };
94 
95 class View
96  : public ViewInterface
97  , virtual public Scroom::Utils::Base
98 {
99 public:
100  using Ptr = boost::shared_ptr<View>;
101 
102 private:
103  GtkBuilder* scroomXml;
106  GtkWindow* window;
107  GtkWidget* menubar;
108  GtkWidget* drawingArea;
111  GtkScrollbar* vscrollbar;
112  GtkScrollbar* hscrollbar;
113  GtkAdjustment* vscrollbaradjustment;
114  GtkAdjustment* hscrollbaradjustment;
115  GtkDrawingArea* hruler_area;
116  GtkDrawingArea* vruler_area;
119 
120  GtkComboBox* zoomBox;
121  GtkListStore* zoomItems;
122  GtkProgressBar* progressBar;
123  GtkStatusbar* statusBar;
124  GtkToolbar* toolBar;
125  GtkToolItem* toolBarSeparator;
126  GtkEntry* xTextBox;
127  GtkEntry* yTextBox;
128  GtkWidget* statusArea;
129  GtkWidget* toolbarArea;
130  unsigned toolBarCount;
132  int zoom{0};
134  std::optional<Selection> selection;
135  std::vector<SelectionListener::Ptr> selectionListeners;
136  std::vector<PostRenderer::Ptr> postRenderers;
137  std::map<GtkToggleButton*, ToolStateListener::Ptr> tools;
139  boost::shared_ptr<TweakPresentationPosition> tweakPresentationPosition;
140  boost::shared_ptr<TweakPositionTextBox> tweakPositionTextBox;
141  boost::shared_ptr<TweakRulers> tweakRulers;
142  std::map<std::string, boost::shared_ptr<ITweakSelection>> tweakSelection;
143 
144  gint modifiermove{0};
146 
148 
149  std::map<PresentationInterface::WeakPtr, GtkWidget*> presentations;
150 
151 private:
153  {
157  };
158 
159 private:
160  explicit View(GtkBuilder* scroomXml);
161 
162 public:
163  static Ptr create(GtkBuilder* scroomXml, const PresentationInterface::Ptr& presentation);
164 
165  ~View() override;
166  View(const View&) = delete;
167  View(View&&) = delete;
168  View operator=(const View&) = delete;
169  View operator=(View&&) = delete;
170 
171  void redraw(cairo_t* cr);
172  void hide();
173  bool hasPresentation();
175  void clearPresentation();
176 
177  static void updateScrollbar(GtkAdjustment* adj,
178  int zoom,
179  double value,
180  double presentationStart,
181  double presentationSize,
182  double windowSize);
183  void updateScrollbars();
184  void updateZoom();
185  void updateRulers();
186  void updateTextbox();
187  void toolButtonToggled(GtkToggleButton* button);
188 
190  // Scroom events
191 
192  void on_newPresentationInterfaces_update(const std::map<NewPresentationInterface::Ptr, std::string>& newPresentationInterfaces);
195  void on_configure();
197  void on_zoombox_changed();
198  void on_textbox_value_changed(GtkEditable* editable);
199  void on_scrollbar_value_changed(GtkAdjustment* adjustment);
200  void on_scrollwheel(GdkEventScroll* event);
201  void on_buttonPress(GdkEventButton* event);
202  void on_buttonRelease(GdkEventButton* event);
203  void on_motion_notify(GdkEventMotion* event);
204  void setFullScreen();
205  void unsetFullScreen();
206 
208  // ViewInterface
209 
210  void invalidate() override;
212  void addSideWidget(std::string title, GtkWidget* w) override;
213  void removeSideWidget(GtkWidget* w) override;
214  void addToToolbar(GtkToolItem* ti) override;
215  void removeFromToolbar(GtkToolItem* ti) override;
216  void registerSelectionListener(SelectionListener::Ptr listener) override;
217  void registerPostRenderer(PostRenderer::Ptr renderer) override;
218  void setStatusMessage(const std::string& message) override;
220  void addToolButton(GtkToggleButton* /*button*/, ToolStateListener::Ptr /*callback*/) override;
221 
223  // Helpers
224 
225 private:
229  void updateNewWindowMenu();
230  void on_zoombox_changed(int newzoom, const Scroom::Utils::Point<double>& mousePos);
231  void updateXY(const Scroom::Utils::Point<double>& newPos, const LocationChangeCause& source);
232 };
TweakPresentationPosition::setAspectRatio
void setAspectRatio(Point aspectRatio_)
Definition: view.cc:71
TweakPresentationPosition::TweakPresentationPosition
TweakPresentationPosition(Point aspectRatio_)
Definition: view.cc:74
View::unsetFullScreen
void unsetFullScreen()
Definition: view.cc:808
View::on_window_size_changed
void on_window_size_changed(const Scroom::Utils::Point< int > &newSize)
Definition: view.cc:634
View::create
static Ptr create(GtkBuilder *scroomXml, const PresentationInterface::Ptr &presentation)
Definition: view.cc:347
View::addSideWidget
void addSideWidget(std::string title, GtkWidget *w) override
Definition: view.cc:822
View::tools
std::map< GtkToggleButton *, ToolStateListener::Ptr > tools
Definition: view.hh:137
View::yTextBox
GtkEntry * yTextBox
Definition: view.hh:127
find_or_create_scroom
void find_or_create_scroom(const PresentationInterface::Ptr &presentation)
Definition: callbacks.cc:481
Scroom::Utils::Rectangle::x
value_type x() const
Definition: rectangle.hh:125
assertions.hh
View::vscrollbaradjustment
GtkAdjustment * vscrollbaradjustment
Definition: view.hh:113
TweakSelection::setAspectRatio
void setAspectRatio(Point aspectRatio_) override
Definition: view.cc:195
sidebarmanager.hh
View::removeSideWidget
void removeSideWidget(GtkWidget *w) override
Definition: view.cc:824
View::setFullScreen
void setFullScreen()
Definition: view.cc:801
View::toolbarArea
GtkWidget * toolbarArea
Definition: view.hh:129
Corner::TOP_LEFT
@ TOP_LEFT
Freezable::is_locked
bool is_locked() const
Definition: view.hh:77
TweakPositionTextBox::parse
Point parse(std::string_view x, std::string_view y, Scroom::Utils::Point< int > drawingAreaSize, int zoom) const
Definition: view.cc:245
zoomfactor
static const std::array< const char *, 36 > zoomfactor
Definition: view.cc:39
View::updateXY
void updateXY(const Scroom::Utils::Point< double > &newPos, const LocationChangeCause &source)
Definition: view.cc:987
Scroom::Utils::Rectangle::width
value_type width() const
Definition: rectangle.hh:129
Freezable::Freezable
Freezable(value_type v)
Definition: view.hh:54
View::statusBarContextId
int statusBarContextId
Definition: view.hh:131
View::getProgressInterface
ProgressInterface::Ptr getProgressInterface() override
Definition: view.cc:820
PluginManager::Ptr
boost::shared_ptr< PluginManager > Ptr
Definition: pluginmanager.hh:44
TweakPositionTextBox
Definition: view.cc:237
View::on_buttonPress
void on_buttonPress(GdkEventButton *event)
Definition: view.cc:730
View::selectionListeners
std::vector< SelectionListener::Ptr > selectionListeners
Definition: view.hh:135
View::clearPresentation
void clearPresentation()
Definition: view.cc:396
SidebarManager::addSideWidget
void addSideWidget(const std::string &title, GtkWidget *w)
Definition: sidebarmanager.cc:21
Scroom
Definition: assertions.hh:14
TweakGridSelection::create
static Ptr create(Point aspectRatio_)
Definition: view.cc:210
presentationinterface.hh
View::hruler
Ruler::Ptr hruler
Definition: view.hh:118
format_stuff.hh
View::drawingAreaSize
Scroom::Utils::Point< int > drawingAreaSize
Definition: view.hh:109
progressbarmanager.hh
Scroom::Utils::roundCorners
Rectangle< double > roundCorners(Rectangle< double > r)
Definition: rectangle.hh:345
utilities.hh
SidebarManager::removeSideWidget
void removeSideWidget(GtkWidget *w)
Definition: sidebarmanager.cc:35
TweakRulers::aspectRatio
Point aspectRatio
Definition: view.cc:106
View::on_presentation_destroyed
void on_presentation_destroyed()
Definition: view.cc:615
Corner::BOTTOM_RIGHT
@ BOTTOM_RIGHT
View::redraw
void redraw(cairo_t *cr)
Definition: view.cc:366
View::hide
void hide()
Definition: view.cc:392
View::position
Freezable< Scroom::Utils::Point< double > > position
Definition: view.hh:133
View::addToolButton
void addToolButton(GtkToggleButton *, ToolStateListener::Ptr) override
Definition: view.cc:867
View::tweakedPosition
Scroom::Utils::Point< double > tweakedPosition() const
Definition: view.cc:1012
ProgressInterface::Ptr
boost::shared_ptr< ProgressInterface > Ptr
Definition: progressinterface.hh:20
toRectangle
Scroom::Utils::Rectangle< double > toRectangle(Selection s)
Definition: view.cc:162
View::statusBar
GtkStatusbar * statusBar
Definition: view.hh:123
View::tweakRulers
boost::shared_ptr< TweakRulers > tweakRulers
Definition: view.hh:141
View::toolBar
GtkToolbar * toolBar
Definition: view.hh:124
View::hruler_area
GtkDrawingArea * hruler_area
Definition: view.hh:115
on_new_activate
void on_new_activate(GtkMenuItem *, gpointer user_data)
Definition: callbacks.cc:88
View
Definition: view.hh:95
Selection
Definition: viewinterface.hh:38
SelectionType::PIXEL
const std::string PIXEL("PixelSelection")
View::toolBarCount
unsigned toolBarCount
Definition: view.hh:130
Scroom::Utils::make_rect
Rectangle< T > make_rect(T x, T y, T width, T height)
Definition: rectangle.hh:284
View::updateTextbox
void updateTextbox()
Definition: view.cc:488
require
#define require(expr)
Definition: assertions.hh:28
Freezable::operator+=
Me & operator+=(value_type v)
Definition: view.hh:87
SelectionType::DEFAULT
const std::string DEFAULT(GRID)
Scroom::Utils::Point::x
value_type x
Definition: point.hh:111
View::window
GtkWindow * window
Definition: view.hh:106
on_newWindow_activate
static void on_newWindow_activate(GtkMenuItem *, gpointer user_data)
Definition: view.cc:280
Freezable::operator*
const value_type * operator*() const
Definition: view.hh:85
TweakPixelSelection::tweakSelection
Rectangle tweakSelection(Rectangle selection) const override
Definition: view.cc:226
Scroom::Utils::make_point
Point< T > make_point(T x, T y)
Definition: point.hh:116
View::on_motion_notify
void on_motion_notify(GdkEventMotion *event)
Definition: view.cc:775
Scroom::GtkHelpers::sync_on_ui_thread
void sync_on_ui_thread(T f)
Definition: gtk-helpers.hh:59
View::zoomItems
GtkListStore * zoomItems
Definition: view.hh:121
PresentationInterface::WeakPtr
boost::weak_ptr< PresentationInterface > WeakPtr
Definition: presentationinterface.hh:75
Freezable::operator->
const value_type * operator->() const
Definition: view.hh:86
View::presentationRect
Scroom::Utils::Rectangle< double > presentationRect
Definition: view.hh:110
View::~View
~View() override
Definition: view.cc:360
ITweakSelection::setAspectRatio
virtual void setAspectRatio(Point aspectRatio_)=0
View::on_presentation_created
void on_presentation_created(const PresentationInterface::Ptr &p)
Definition: view.cc:609
View::tweakSelection
std::map< std::string, boost::shared_ptr< ITweakSelection > > tweakSelection
Definition: view.hh:142
TweakPresentationPosition::Ptr
boost::shared_ptr< TweakPresentationPosition > Ptr
Definition: view.cc:61
Ruler::VERTICAL
@ VERTICAL
Definition: ruler.hh:23
View::addToToolbar
void addToToolbar(GtkToolItem *ti) override
Definition: view.cc:826
Corner
Corner
Definition: view.cc:109
View::updateScrollbars
void updateScrollbars()
Definition: view.cc:470
View::presentations
std::map< PresentationInterface::WeakPtr, GtkWidget * > presentations
Definition: view.hh:149
TweakSelection::tweakSelection
virtual Rectangle tweakSelection(Rectangle selection) const =0
SelectionListener::Ptr
boost::shared_ptr< SelectionListener > Ptr
Definition: viewinterface.hh:118
View::SCROLLBAR
@ SCROLLBAR
Definition: view.hh:154
Scroom::Utils::Point::to
Point< U > to() const
Definition: point.hh:103
View::vscrollbar
GtkScrollbar * vscrollbar
Definition: view.hh:111
SelectionType::GRID
const std::string GRID("GridSelection")
View::xTextBox
GtkEntry * xTextBox
Definition: view.hh:126
View::invalidate
void invalidate() override
Definition: view.cc:818
eventToPoint
static Scroom::Utils::Point< double > eventToPoint(GdkEventButton *event)
Helpers.
Definition: view.cc:275
View::selection
std::optional< Selection > selection
Definition: view.hh:134
TweakGridSelection
Definition: view.cc:207
View::drawingArea
GtkWidget * drawingArea
Definition: view.hh:108
drawingArea
static GtkWidget * drawingArea
Definition: measure-framerate-callbacks.cc:18
on_configure
static gboolean on_configure(GtkWidget *, GdkEventConfigure *, gpointer)
Definition: measure-framerate-callbacks.cc:23
View::updateZoom
void updateZoom()
Definition: view.cc:507
TweakPositionTextBox::setAspectRatio
void setAspectRatio(Point aspectRatio_)
Definition: view.cc:260
Freezable::unlock
void unlock()
Definition: view.hh:72
TweakPositionTextBox::aspectRatio
Point aspectRatio
Definition: view.cc:269
View::cachedPoint
Scroom::Utils::Point< double > cachedPoint
Definition: view.hh:145
View::getCurrentPresentation
PresentationInterface::Ptr getCurrentPresentation() override
Definition: view.cc:863
View::updateRulers
void updateRulers()
Definition: view.cc:549
TweakRulers::TweakRulers
TweakRulers(Point aspectRatio_)
Definition: view.cc:100
PresentationInterface::Ptr
boost::shared_ptr< PresentationInterface > Ptr
Definition: presentationinterface.hh:74
Ruler::create
static Ptr create(Orientation orientation, GtkWidget *drawArea)
Definition: ruler.cc:12
View::removeFromToolbar
void removeFromToolbar(GtkToolItem *ti) override
Definition: view.cc:841
MaxZoom
static const int MaxZoom
Definition: view.cc:46
Freezable
Definition: view.hh:46
View::on_buttonRelease
void on_buttonRelease(GdkEventButton *event)
Definition: view.cc:752
corner_getter
std::function< Scroom::Utils::Point< double >Scroom::Utils::Rectangle< double >)> corner_getter(Corner c)
Definition: view.cc:118
TweakSelection::aspectRatio
Point aspectRatio
Definition: view.cc:204
Corner::TOP_RIGHT
@ TOP_RIGHT
View::updateNewWindowMenu
void updateNewWindowMenu()
Definition: view.cc:907
Freezable::value
value_type value
Definition: view.hh:91
round_to_multiple_of
T round_to_multiple_of(T value, T factor)
Definition: rounding.hh:32
View::on_configure
void on_configure()
Definition: view.cc:617
TweakSelection::tweakSelection
Selection tweakSelection(Selection selection) const override
Definition: view.cc:181
View::registerPostRenderer
void registerPostRenderer(PostRenderer::Ptr renderer) override
Definition: view.cc:855
Scroom::Utils::Base
Definition: utilities.hh:30
Selection::start
Point start
Definition: viewinterface.hh:44
View::on_scrollwheel
void on_scrollwheel(GdkEventScroll *event)
Definition: view.cc:646
TweakPixelSelection
Definition: view.cc:221
view.hh
View::scroomXml
GtkBuilder * scroomXml
Definition: view.hh:103
ProgressBarManager::Ptr
boost::shared_ptr< ProgressBarManager > Ptr
Definition: progressbarmanager.hh:17
View::on_newPresentationInterfaces_update
void on_newPresentationInterfaces_update(const std::map< NewPresentationInterface::Ptr, std::string > &newPresentationInterfaces)
Definition: view.cc:581
View::on_zoombox_changed
void on_zoombox_changed()
Definition: view.cc:671
callbacks.hh
stuff.hh
TweakPositionTextBox::Ptr
boost::shared_ptr< TweakPositionTextBox > Ptr
Definition: view.cc:240
View::TEXTBOX
@ TEXTBOX
Definition: view.hh:155
Scroom::Utils::make_rect_from_start_end
Rectangle< T > make_rect_from_start_end(Point< T > start, Point< T > end)
Definition: rectangle.hh:296
TweakRulers
Definition: view.cc:83
ITweakSelection::Ptr
boost::shared_ptr< ITweakSelection > Ptr
Definition: view.cc:167
View::aspectRatio
Scroom::Utils::Point< double > aspectRatio
Definition: view.hh:138
TweakRulers::create
static Ptr create(Point aspectRatio_)
Definition: view.cc:89
View::setStatusMessage
void setStatusMessage(const std::string &message) override
Definition: view.cc:857
COLUMN_ZOOM
@ COLUMN_ZOOM
Definition: view.cc:51
scroominterface.hh
viewinterface.hh
TweakPixelSelection::create
static Ptr create(Point aspectRatio_)
Definition: view.cc:224
PluginManager::getInstance
static PluginManager::Ptr getInstance()
Definition: pluginmanager.cc:330
View::LocationChangeCause
LocationChangeCause
Definition: view.hh:152
TweakSelection
Definition: view.cc:174
View::statusArea
GtkWidget * statusArea
Definition: view.hh:128
View::updateScrollbar
static void updateScrollbar(GtkAdjustment *adj, int zoom, double value, double presentationStart, double presentationSize, double windowSize)
Definition: view.cc:449
Freezable::lock
void lock()
Definition: view.hh:70
View::presentation
PresentationInterface::Ptr presentation
Definition: view.hh:104
View::View
View(GtkBuilder *scroomXml)
Definition: view.cc:292
TweakPresentationPosition
Tweakers.
Definition: view.cc:58
pixelSizeFromZoom
double pixelSizeFromZoom(int zoom)
Definition: cairo-helpers.cc:112
Interface
Definition: interface.hh:10
TweakPositionTextBox::create
static Ptr create(Point aspectRatio_)
Definition: view.cc:243
View::vruler
Ruler::Ptr vruler
Definition: view.hh:117
TweakPresentationPosition::aspectRatio
Point aspectRatio
Definition: view.cc:80
Scroom::Utils::Rectangle::height
value_type height() const
Definition: rectangle.hh:131
View::hscrollbaradjustment
GtkAdjustment * hscrollbaradjustment
Definition: view.hh:114
TweakPresentationPosition::tweakPosition
Point tweakPosition(Point currentPosition, Scroom::Utils::Point< int >, int zoom) const
Definition: view.cc:66
View::on_scrollbar_value_changed
void on_scrollbar_value_changed(GtkAdjustment *adjustment)
Definition: view.cc:714
TweakSelection::TweakSelection
TweakSelection(Point aspectRatio_)
Definition: view.cc:198
Freezable::operator-=
Me & operator-=(value_type v)
Definition: view.hh:88
find_opposed_corner
Corner find_opposed_corner(Corner c)
Definition: view.cc:146
TweakPositionTextBox::TweakPositionTextBox
TweakPositionTextBox(Point aspectRatio_)
Definition: view.cc:263
View::registerSelectionListener
void registerSelectionListener(SelectionListener::Ptr listener) override
Definition: view.cc:853
ITweakSelection::tweakSelection
virtual Selection tweakSelection(Selection selection) const =0
View::progressBar
GtkProgressBar * progressBar
Definition: view.hh:122
N_COLUMNS
@ N_COLUMNS
Definition: view.cc:52
View::OTHER
@ OTHER
Definition: view.hh:156
ITweakSelection
Definition: view.cc:164
Freezable::Freezable
Freezable()=default
View::Ptr
boost::shared_ptr< View > Ptr
Definition: view.hh:100
View::toolBarSeparator
GtkToolItem * toolBarSeparator
Definition: view.hh:125
View::operator=
View operator=(const View &)=delete
Scroom::Utils::Rectangle::y
value_type y() const
Definition: rectangle.hh:127
Freezable::locked
unsigned locked
Definition: view.hh:92
View::windowPointToPresentationPoint
Scroom::Utils::Point< double > windowPointToPresentationPoint(Scroom::Utils::Point< double > wp) const
Definition: view.cc:897
Ruler::Ptr
boost::shared_ptr< Ruler > Ptr
Definition: ruler.hh:18
pluginManager
static PluginManager::Ptr pluginManager
Definition: pluginmanager.cc:29
Scroom::Utils::center
T center(Segment< T > s)
Definition: linearsegment.hh:246
View::tweakPositionTextBox
boost::shared_ptr< TweakPositionTextBox > tweakPositionTextBox
Definition: view.hh:140
View::menubar
GtkWidget * menubar
Definition: view.hh:107
find_closest_corner
Corner find_closest_corner(Scroom::Utils::Point< double > p, Scroom::Utils::Rectangle< double > r)
Definition: view.cc:134
tool_button_toggled
static void tool_button_toggled(GtkToggleButton *button, gpointer data)
Definition: view.cc:865
pluginmanager.hh
Scroom::Utils::Rectangle< double >
Ruler::HORIZONTAL
@ HORIZONTAL
Definition: ruler.hh:22
View::progressBarManager
ProgressBarManager::Ptr progressBarManager
Definition: view.hh:147
View::on_textbox_value_changed
void on_textbox_value_changed(GtkEditable *editable)
Definition: view.cc:700
Scroom::Utils::roundOutward
Segment< double > roundOutward(Segment< double > s)
Definition: linearsegment.hh:240
View::hasPresentation
bool hasPresentation()
Definition: view.cc:394
Freezable::operator=
Me & operator=(value_type v)
Definition: view.hh:80
View::zoom
int zoom
Definition: view.hh:132
Freezable::set
bool set(value_type v)
Definition: view.hh:61
View::setPresentation
void setPresentation(PresentationInterface::Ptr presentation)
Definition: view.cc:401
cairo-helpers.hh
View::tweakPresentationPosition
boost::shared_ptr< TweakPresentationPosition > tweakPresentationPosition
Definition: view.hh:139
View::vruler_area
GtkDrawingArea * vruler_area
Definition: view.hh:116
ToolStateListener::Ptr
boost::shared_ptr< ToolStateListener > Ptr
Definition: viewinterface.hh:164
ViewInterface
Definition: viewinterface.hh:190
ruler.hh
View::hscrollbar
GtkScrollbar * hscrollbar
Definition: view.hh:112
create
void create(NewPresentationInterface *interface)
Definition: loader.cc:175
defect
#define defect()
Definition: assertions.hh:40
Scroom::Utils::Point::y
value_type y
Definition: point.hh:112
G_VALUE_INIT
#define G_VALUE_INIT
Definition: view.cc:28
View::zoomBox
GtkComboBox * zoomBox
Definition: view.hh:120
View::postRenderers
std::vector< PostRenderer::Ptr > postRenderers
Definition: view.hh:136
Freezable::get
const value_type & get() const
Definition: view.hh:59
TweakGridSelection::tweakSelection
Rectangle tweakSelection(Rectangle selection) const override
Definition: view.cc:212
Selection::end
Point end
Definition: viewinterface.hh:45
TweakRulers::Ptr
boost::shared_ptr< TweakRulers > Ptr
Definition: view.cc:86
TweakPositionTextBox::display
std::pair< std::string, std::string > display(Point position, Scroom::Utils::Point< int > drawingAreaSize, int zoom) const
Definition: view.cc:253
View::toolButtonToggled
void toolButtonToggled(GtkToggleButton *button)
Definition: view.cc:560
SidebarManager
Definition: sidebarmanager.hh:15
COLUMN_TEXT
@ COLUMN_TEXT
Definition: view.cc:50
rounding.hh
View::sidebarManager
SidebarManager sidebarManager
Definition: view.hh:105
TweakRulers::tweakRulers
Scroom::Utils::Rectangle< double > tweakRulers(Point currentPosition, Scroom::Utils::Point< int > drawingAreaSize, int zoom) const
Definition: view.cc:92
TweakRulers::setAspectRatio
void setAspectRatio(Point aspectRatio_)
Definition: view.cc:97
Corner::BOTTOM_LEFT
@ BOTTOM_LEFT
TweakPresentationPosition::create
static Ptr create(Point aspectRatio_)
Definition: view.cc:64
ProgressBarManager::create
static Ptr create(GtkProgressBar *progressBar=nullptr)
Definition: progressbarmanager.cc:115
View::presentationPointToWindowPoint
Scroom::Utils::Point< double > presentationPointToWindowPoint(Scroom::Utils::Point< double > presentationpoint) const
Definition: view.cc:902
Scroom::Utils::Point< double >
PostRenderer::Ptr
boost::shared_ptr< PostRenderer > Ptr
Definition: viewinterface.hh:83
View::modifiermove
gint modifiermove
Definition: view.hh:144
on_newPresentationInterfaces_update
void on_newPresentationInterfaces_update(const std::map< NewPresentationInterface::Ptr, std::string > &newPresentationInterfaces)
Definition: callbacks.cc:615