LibreOffice Module svx (master) 1
|
#include <svx/svdpntv.hxx>
#include <svx/svdhlpln.hxx>
#include <svx/svxdllapi.h>
#include <tools/degree.hxx>
#include <o3tl/typed_flags_set.hxx>
Go to the source code of this file.
Classes | |
struct | o3tl::typed_flags< SdrSnap > |
class | SdrSnapView |
Namespaces | |
namespace | o3tl |
Enumerations | |
enum class | SdrSnap { NOTSNAPPED = 0x00 , XSNAPPED = 0x01 , YSNAPPED = 0x02 } |
Definition: More... | |
enum class | SdrCrookMode { Rotate , Slant , Stretch } |
|
strong |
Enumerator | |
---|---|
Rotate | |
Slant | |
Stretch |
Definition at line 83 of file svdsnpv.hxx.
|
strong |
Definition:
Basically, we only catch visible elements (borders, helper lines, connectors), with the exception of the grid. Likewise, we can only catch visible elements (i.e. connectors). We only catch on the grid, if nothing else is close by (magnetic behaviour).
The cursor which is used during creation of objects, while dragging polygon points etc. (i.e. the mouse cursor) is always caught on all enabled catch alternatives (max 6).
This is different, when moving selected objects. Instead of one mouse cursor, there are four alternatives, which can be caught at the selected objects:
As the first and second case exclude each other (the second is a refinement of the first one) three alternatives remain, which are independent from each other. For 6 possible values for the caught ones, we would end up with max. 18 different possible combinations!
Therefore, we introduce the following simplifications:
Only max. 2*5+1 = 11 combinations remain for MoveDrag: 1-3. enclosing frame on grid/border/helper lines
We test for all of these possible 11 combinations in the MouseMove event in the DragMove and those with the least need of correction are carried out.
In the Resize() etc. methods we only catch the logically enclosing frame of the highlighted objects. Return value for SnapPos() method
Enumerator | |
---|---|
NOTSNAPPED | |
XSNAPPED | |
YSNAPPED |
Definition at line 71 of file svdsnpv.hxx.