BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ModelView::MouseMoveReporter::MouseMoveReporterImpl Struct Reference
Collaboration diagram for ModelView::MouseMoveReporter::MouseMoveReporterImpl:
[legend]

Public Member Functions

 MouseMoveReporterImpl (MouseMoveReporter *reporter, QCustomPlot *custom_plot, callback_t callback)
 
bool axesRangeContains (double xpos, double ypos) const
 
double pixelToXaxisCoord (double pixel) const
 
double pixelToYaxisCoord (double pixel) const
 
void set_connected ()
 

Public Attributes

callback_t callback
 
QCustomPlot * custom_plot {nullptr}
 
MouseMoveReporterreporter {nullptr}
 

Detailed Description

Definition at line 23 of file mousemovereporter.cpp.

Constructor & Destructor Documentation

◆ MouseMoveReporterImpl()

ModelView::MouseMoveReporter::MouseMoveReporterImpl::MouseMoveReporterImpl ( MouseMoveReporter reporter,
QCustomPlot *  custom_plot,
callback_t  callback 
)
inline

Definition at line 27 of file mousemovereporter.cpp.

30  {
31  if (!custom_plot)
32  throw std::runtime_error("MouseMoveReporter: not initialized custom plot.");
33 
34  custom_plot->setMouseTracking(true);
35  set_connected();
36  }

References ModelView::MouseMoveReporter::MouseMoveReporterImpl::custom_plot, and ModelView::MouseMoveReporter::MouseMoveReporterImpl::set_connected().

Here is the call graph for this function:

Member Function Documentation

◆ axesRangeContains()

bool ModelView::MouseMoveReporter::MouseMoveReporterImpl::axesRangeContains ( double  xpos,
double  ypos 
) const
inline

Definition at line 54 of file mousemovereporter.cpp.

55  {
56  return custom_plot->xAxis->range().contains(xpos)
57  && custom_plot->yAxis->range().contains(ypos);
58  }

References ModelView::MouseMoveReporter::MouseMoveReporterImpl::custom_plot.

Referenced by ModelView::MouseMoveReporter::MouseMoveReporterImpl::set_connected().

◆ pixelToXaxisCoord()

double ModelView::MouseMoveReporter::MouseMoveReporterImpl::pixelToXaxisCoord ( double  pixel) const
inline

◆ pixelToYaxisCoord()

double ModelView::MouseMoveReporter::MouseMoveReporterImpl::pixelToYaxisCoord ( double  pixel) const
inline

◆ set_connected()

void ModelView::MouseMoveReporter::MouseMoveReporterImpl::set_connected ( )
inline

Definition at line 38 of file mousemovereporter.cpp.

39  {
40  auto on_mouse_move = [this](QMouseEvent* event) {
41  double x = pixelToXaxisCoord(event->pos().x());
42  double y = pixelToYaxisCoord(event->pos().y());
43  if (callback)
44  callback({x, y, axesRangeContains(x, y)});
45  };
46 
47  QObject::connect(custom_plot, &QCustomPlot::mouseMove, on_mouse_move);
48  }
bool axesRangeContains(double xpos, double ypos) const

References ModelView::MouseMoveReporter::MouseMoveReporterImpl::axesRangeContains(), ModelView::MouseMoveReporter::MouseMoveReporterImpl::callback, ModelView::MouseMoveReporter::MouseMoveReporterImpl::custom_plot, ModelView::MouseMoveReporter::MouseMoveReporterImpl::pixelToXaxisCoord(), and ModelView::MouseMoveReporter::MouseMoveReporterImpl::pixelToYaxisCoord().

Referenced by ModelView::MouseMoveReporter::MouseMoveReporterImpl::MouseMoveReporterImpl().

Here is the call graph for this function:

Member Data Documentation

◆ callback

callback_t ModelView::MouseMoveReporter::MouseMoveReporterImpl::callback

◆ custom_plot

◆ reporter

MouseMoveReporter* ModelView::MouseMoveReporter::MouseMoveReporterImpl::reporter {nullptr}

Definition at line 24 of file mousemovereporter.cpp.


The documentation for this struct was generated from the following file: