kwave  18.07.70
Kwave::MouseMark Class Reference

#include <MouseMark.h>

Collaboration diagram for Kwave::MouseMark:
Collaboration graph

Public Member Functions

 MouseMark ()
 
virtual ~MouseMark ()
 
void set (sample_index_t l, sample_index_t r)
 
void update (sample_index_t x)
 
void grep (sample_index_t x)
 
sample_index_t left () const
 
sample_index_t right () const
 
sample_index_t length () const
 

Private Attributes

sample_index_t m_initial
 
sample_index_t m_last
 

Detailed Description

Simple class that can be used whenever the user selects something with the mouse.

Definition at line 31 of file MouseMark.h.

Constructor & Destructor Documentation

◆ MouseMark()

Kwave::MouseMark::MouseMark ( )

Constructor

Definition at line 25 of file MouseMark.cpp.

26  :m_initial(0), m_last(0)
27 {
28 }
sample_index_t m_initial
Definition: MouseMark.h:83
sample_index_t m_last
Definition: MouseMark.h:86

◆ ~MouseMark()

Kwave::MouseMark::~MouseMark ( )
virtual

Destructor

Definition at line 31 of file MouseMark.cpp.

32 {
33 }

Member Function Documentation

◆ grep()

void Kwave::MouseMark::grep ( sample_index_t  x)

Re-enters the selection process at a new position. The last position will be set to the left or the right margin, depending on which side is nearer.

Definition at line 55 of file MouseMark.cpp.

References m_initial, and m_last.

Referenced by Kwave::SignalView::mousePressEvent(), and Kwave::SelectionBorderItem::SelectionBorderItem().

56 {
57  const sample_index_t d_last =
58  (x > m_last) ? (x - m_last) : (m_last - x);
59  const sample_index_t d_first =
60  (x > m_initial) ? (x - m_initial) : (m_initial - x);
61  if (d_last > d_first)
62  m_initial = m_last;
63  m_last = x;
64 }
sample_index_t m_initial
Definition: MouseMark.h:83
quint64 sample_index_t
Definition: Sample.h:28
sample_index_t m_last
Definition: MouseMark.h:86
Here is the caller graph for this function:

◆ left()

sample_index_t Kwave::MouseMark::left ( ) const

Returns the left border of the selection.

Definition at line 43 of file MouseMark.cpp.

References m_initial, and m_last.

Referenced by length(), Kwave::SignalView::mousePressEvent(), Kwave::SelectionBorderItem::moveTo(), and Kwave::SelectionBorderItem::toolTip().

44 {
45  return qMin(m_initial, m_last);
46 }
sample_index_t m_initial
Definition: MouseMark.h:83
sample_index_t m_last
Definition: MouseMark.h:86
Here is the caller graph for this function:

◆ length()

sample_index_t Kwave::MouseMark::length ( ) const
inline

Returns the length of the selection

Definition at line 77 of file MouseMark.h.

References left(), and right().

Referenced by Kwave::SignalView::mousePressEvent(), and Kwave::SelectionBorderItem::moveTo().

77  {
78  return right() - left() + 1;
79  }
sample_index_t right() const
Definition: MouseMark.cpp:49
sample_index_t left() const
Definition: MouseMark.cpp:43
Here is the call graph for this function:
Here is the caller graph for this function:

◆ right()

sample_index_t Kwave::MouseMark::right ( ) const

Returns the right border of the selection.

Definition at line 49 of file MouseMark.cpp.

References m_initial, and m_last.

Referenced by length(), and Kwave::SelectionBorderItem::toolTip().

50 {
51  return qMax(m_initial, m_last);
52 }
sample_index_t m_initial
Definition: MouseMark.h:83
sample_index_t m_last
Definition: MouseMark.h:86
Here is the caller graph for this function:

◆ set()

void Kwave::MouseMark::set ( sample_index_t  l,
sample_index_t  r 
)

Sets the selection to a new range.

Parameters
lstart position
rend position

Definition at line 36 of file MouseMark.cpp.

References m_initial, and m_last.

Referenced by Kwave::SignalView::mousePressEvent(), Kwave::SignalView::mouseReleaseEvent(), and Kwave::SelectionBorderItem::SelectionBorderItem().

37 {
38  m_initial = l;
39  m_last = r;
40 }
sample_index_t m_initial
Definition: MouseMark.h:83
sample_index_t m_last
Definition: MouseMark.h:86
Here is the caller graph for this function:

◆ update()

void Kwave::MouseMark::update ( sample_index_t  x)

Update the last known position of the mouse. This should be used for continuous update of the selection during mouse movement.

Parameters
xnew last position

Definition at line 67 of file MouseMark.cpp.

References m_last.

Referenced by Kwave::SelectionBorderItem::moveTo().

68 {
69  m_last = x;
70 }
sample_index_t m_last
Definition: MouseMark.h:86
Here is the caller graph for this function:

Member Data Documentation

◆ m_initial

sample_index_t Kwave::MouseMark::m_initial
private

initial position of the mouse

Definition at line 83 of file MouseMark.h.

Referenced by grep(), left(), right(), and set().

◆ m_last

sample_index_t Kwave::MouseMark::m_last
private

last known position of the mouse

Definition at line 86 of file MouseMark.h.

Referenced by grep(), left(), right(), set(), and update().


The documentation for this class was generated from the following files: