summaryrefslogtreecommitdiffstats
path: root/src/snap-enums.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/snap-enums.h')
-rw-r--r--src/snap-enums.h111
1 files changed, 64 insertions, 47 deletions
diff --git a/src/snap-enums.h b/src/snap-enums.h
index aa5db9328..df1324001 100644
--- a/src/snap-enums.h
+++ b/src/snap-enums.h
@@ -1,83 +1,100 @@
#ifndef SNAPENUMS_H_
#define SNAPENUMS_H_
-
-/**
- * \file snap-enums.h
- * \brief enumerations of snap source types and snap target types
- *
+/*
* Authors:
* Diederik van Lierop <mail@diedenrezi.nl>
*
- * Copyright (C) 2010 Authors
+ * Copyright (C) 2010 - 2011 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
namespace Inkscape {
-enum SnapTargetType {
- SNAPTARGET_UNDEFINED = 0,
- SNAPTARGET_GRID,
- SNAPTARGET_GRID_INTERSECTION,
- SNAPTARGET_GUIDE,
- SNAPTARGET_GUIDE_INTERSECTION,
- SNAPTARGET_GUIDE_ORIGIN,
- SNAPTARGET_GRID_GUIDE_INTERSECTION,
- SNAPTARGET_NODE_SMOOTH,
- SNAPTARGET_NODE_CUSP,
- SNAPTARGET_LINE_MIDPOINT,
- SNAPTARGET_OBJECT_MIDPOINT,
- SNAPTARGET_ROTATION_CENTER,
- SNAPTARGET_HANDLE,
- SNAPTARGET_PATH,
- SNAPTARGET_PATH_INTERSECTION,
- SNAPTARGET_BBOX_CORNER,
- SNAPTARGET_BBOX_EDGE,
- SNAPTARGET_BBOX_EDGE_MIDPOINT,
- SNAPTARGET_BBOX_MIDPOINT,
- SNAPTARGET_PAGE_BORDER,
- SNAPTARGET_PAGE_CORNER,
- SNAPTARGET_CONVEX_HULL_CORNER,
- SNAPTARGET_ELLIPSE_QUADRANT_POINT,
- SNAPTARGET_CENTER, // of ellipse
- SNAPTARGET_CORNER, // of image or of rectangle
- SNAPTARGET_TEXT_BASELINE,
- SNAPTARGET_CONSTRAINED_ANGLE,
- SNAPTARGET_CONSTRAINT
-};
-
+/**
+ * enumerations of snap source types and snap target types.
+ */
enum SnapSourceType {
SNAPSOURCE_UNDEFINED = 0,
//-------------------------------------------------------------------
// Bbox points can be located at the edge of the stroke (for visual bboxes); they will therefore not snap
// to nodes because these are always located at the center of the stroke
- SNAPSOURCE_BBOX_CATEGORY = 256, // will be used as a flag and must therefore be a power of two
+ SNAPSOURCE_BBOX_CATEGORY = 16, // will be used as a flag and must therefore be a power of two. Also,
+ // must be larger than the largest number of targets in a single group
SNAPSOURCE_BBOX_CORNER,
SNAPSOURCE_BBOX_MIDPOINT,
SNAPSOURCE_BBOX_EDGE_MIDPOINT,
//-------------------------------------------------------------------
// For the same reason, nodes will not snap to bbox points
- SNAPSOURCE_NODE_CATEGORY = 512, // will be used as a flag and must therefore be a power of two
+ SNAPSOURCE_NODE_CATEGORY = 32, // will be used as a flag and must therefore be a power of two
SNAPSOURCE_NODE_SMOOTH, // Symmetrical nodes are also considered to be smooth; there's no dedicated type for symm. nodes
SNAPSOURCE_NODE_CUSP,
SNAPSOURCE_LINE_MIDPOINT,
SNAPSOURCE_PATH_INTERSECTION,
- SNAPSOURCE_CORNER, // of image or of rectangle
+ SNAPSOURCE_RECT_CORNER, // of a rectangle, so at the center of the stroke
SNAPSOURCE_CONVEX_HULL_CORNER,
SNAPSOURCE_ELLIPSE_QUADRANT_POINT,
SNAPSOURCE_NODE_HANDLE, // eg. nodes in the path editor, handles of stars or rectangles, etc. (tied to a stroke)
- SNAPSOURCE_OBJECT_MIDPOINT, // midpoint of rectangles, polygon, etc.
//-------------------------------------------------------------------
- // Other points (e.g. guides, gradient knots) will snap to both bounding boxes and nodes
- SNAPSOURCE_OTHER_CATEGORY = 1024, // will be used as a flag and must therefore be a power of two
- SNAPSOURCE_ROTATION_CENTER,
- SNAPSOURCE_CENTER, // of ellipse
+ // Other points (e.g. guides) will snap to both bounding boxes and nodes
+ SNAPSOURCE_DATUMS_CATEGORY = 64, // will be used as a flag and must therefore be a power of two
SNAPSOURCE_GUIDE,
SNAPSOURCE_GUIDE_ORIGIN,
- SNAPSOURCE_TEXT_BASELINE,
- SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient of a connector (ie not being tied to a stroke)
+ //-------------------------------------------------------------------
+ // Other points (e.g. gradient knots, image corners) will snap to both bounding boxes and nodes
+ SNAPSOURCE_OTHERS_CATEGORY = 128, // will be used as a flag and must therefore be a power of two
+ SNAPSOURCE_ROTATION_CENTER,
+ SNAPSOURCE_OBJECT_MIDPOINT, // midpoint of rectangles, ellipses, polygon, etc.
+ SNAPSOURCE_IMG_CORNER,
+ SNAPSOURCE_TEXT_ANCHOR,
+ SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient or of a connector (ie not being tied to a stroke)
SNAPSOURCE_GRID_PITCH, // eg. when pasting or alt-dragging in the selector tool; not realy a snap source
};
+enum SnapTargetType {
+ SNAPTARGET_UNDEFINED = 0,
+ //-------------------------------------------------------------------
+ SNAPTARGET_BBOX_CATEGORY = 16, // will be used as a flag and must therefore be a power of two. Also,
+ // must be larger than the largest number of targets in a single group
+ // i.e > 15 because that's the number of targets in the "others" group
+ SNAPTARGET_BBOX_CORNER,
+ SNAPTARGET_BBOX_EDGE,
+ SNAPTARGET_BBOX_EDGE_MIDPOINT,
+ SNAPTARGET_BBOX_MIDPOINT,
+ //-------------------------------------------------------------------
+ SNAPTARGET_NODE_CATEGORY = 32, // will be used as a flag and must therefore be a power of two
+ SNAPTARGET_NODE_SMOOTH,
+ SNAPTARGET_NODE_CUSP,
+ SNAPTARGET_LINE_MIDPOINT,
+ SNAPTARGET_PATH,
+ SNAPTARGET_PATH_INTERSECTION,
+ SNAPTARGET_PATH_GUIDE_INTERSECTION,
+ SNAPTARGET_PATH_CLIP,
+ SNAPTARGET_PATH_MASK,
+ SNAPTARGET_ELLIPSE_QUADRANT_POINT, // this corner is at the center of the stroke
+ SNAPTARGET_RECT_CORNER, // of a rectangle, so this corner is at the center of the stroke
+ //-------------------------------------------------------------------
+ SNAPTARGET_DATUMS_CATEGORY = 64, // will be used as a flag and must therefore be a power of two
+ SNAPTARGET_GRID,
+ SNAPTARGET_GRID_INTERSECTION,
+ SNAPTARGET_GUIDE,
+ SNAPTARGET_GUIDE_INTERSECTION,
+ SNAPTARGET_GUIDE_ORIGIN,
+ SNAPTARGET_GRID_GUIDE_INTERSECTION,
+ SNAPTARGET_PAGE_BORDER,
+ SNAPTARGET_PAGE_CORNER,
+ //-------------------------------------------------------------------
+ SNAPTARGET_OTHERS_CATEGORY = 128, // will be used as a flag and must therefore be a power of two
+ SNAPTARGET_OBJECT_MIDPOINT,
+ SNAPTARGET_IMG_CORNER,
+ SNAPTARGET_ROTATION_CENTER,
+ SNAPTARGET_TEXT_ANCHOR,
+ SNAPTARGET_TEXT_BASELINE,
+ SNAPTARGET_CONSTRAINED_ANGLE,
+ SNAPTARGET_CONSTRAINT,
+ //-------------------------------------------------------------------
+ SNAPTARGET_MAX_ENUM_VALUE
+};
+
}
#endif /* SNAPENUMS_H_ */