1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
|
/*
* python-qwt. Python wrapper for the Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2002 Uwe Rathmann
* Copyright (C) 2015 Gudjon I. Gudjonsson
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Qwt License, Version 1.0
*****************************************************************************/
class QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
enum SelectionType
{
NoSelection = -1,
PointSelection,
RectSelection,
PolygonSelection
};
//! Commands - the output of a state machine
enum Command
{
Begin,
Append,
Move,
Remove,
End
};
QwtPickerMachine( SelectionType type );
virtual ~QwtPickerMachine();
//! Transition
virtual QList<QwtPickerMachine::Command> transition( const QwtEventPattern &, const QEvent * /Transfer/) = 0;
void reset();
int state() const;
void setState( int );
SelectionType selectionType() const;
private:
QwtPickerMachine& operator=(const QwtPickerMachine&);
//SelectionType d_selectionType;
//int d_state;
};
/*!
\brief A state machine for indicating mouse movements
QwtPickerTrackerMachine supports displaying information
corresponding to mouse movements, but is not intended for
selecting anything. Begin/End are related to Enter/Leave events.
*/
class QwtPickerTrackerMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerTrackerMachine();
virtual QList<QwtPickerMachine::Command> transition(
const QwtEventPattern &, const QEvent * /Transfer/);
};
/*!
\brief A state machine for point selections
Pressing QwtEventPattern::MouseSelect1 or
QwtEventPattern::KeySelect1 selects a point.
\sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
*/
class QwtPickerClickPointMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerClickPointMachine();
virtual QList<QwtPickerMachine::Command> transition( const QwtEventPattern &, const QEvent * /Transfer/);
};
/*!
\brief A state machine for point selections
Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1
starts the selection, releasing QwtEventPattern::MouseSelect1 or
a second press of QwtEventPattern::KeySelect1 terminates it.
*/
class QwtPickerDragPointMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerDragPointMachine();
virtual QList<QwtPickerMachine::Command> transition(const QwtEventPattern &, const QEvent * /Transfer/);
};
/*!
\brief A state machine for rectangle selections
Pressing QwtEventPattern::MouseSelect1 starts
the selection, releasing it selects the first point. Pressing it
again selects the second point and terminates the selection.
Pressing QwtEventPattern::KeySelect1 also starts the
selection, a second press selects the first point. A third one selects
the second point and terminates the selection.
\sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
*/
class QwtPickerClickRectMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerClickRectMachine();
virtual QList<QwtPickerMachine::Command> transition(
const QwtEventPattern &, const QEvent * /Transfer/);
};
/*!
\brief A state machine for rectangle selections
Pressing QwtEventPattern::MouseSelect1 selects
the first point, releasing it the second point.
Pressing QwtEventPattern::KeySelect1 also selects the
first point, a second press selects the second point and terminates
the selection.
\sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
*/
class QwtPickerDragRectMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerDragRectMachine();
virtual QList<QwtPickerMachine::Command> transition( const QwtEventPattern &, const QEvent * /Transfer/);
};
/*!
\brief A state machine for line selections
Pressing QwtEventPattern::MouseSelect1 selects
the first point, releasing it the second point.
Pressing QwtEventPattern::KeySelect1 also selects the
first point, a second press selects the second point and terminates
the selection.
A common use case of QwtPickerDragLineMachine are pickers for
distance measurements.
\sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
*/
class QwtPickerDragLineMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerDragLineMachine();
virtual QList<QwtPickerMachine::Command> transition(const QwtEventPattern &, const QEvent * /Transfer/);
};
/*!
\brief A state machine for polygon selections
Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1
starts the selection and selects the first point, or appends a point.
Pressing QwtEventPattern::MouseSelect2 or QwtEventPattern::KeySelect2
appends the last point and terminates the selection.
\sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
*/
class QwtPickerPolygonMachine: QwtPickerMachine
{
%TypeHeaderCode
#include <qwt_picker_machine.h>
%End
public:
QwtPickerPolygonMachine();
virtual QList<QwtPickerMachine::Command> transition( const QwtEventPattern &, const QEvent * /Transfer/);
};
|