snap-enums.h revision dc29d5aae9784dc2344623e55b5f921e0d7cf488
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop#ifndef SNAPENUMS_H_
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop#define SNAPENUMS_H_
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop/**
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * \file snap-enums.h
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * \brief enumerations of snap source types and snap target types
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop *
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * Authors:
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * Diederik van Lierop <mail@diedenrezi.nl>
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop *
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * Copyright (C) 2010 Authors
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop *
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * Released under GNU GPL, read the file 'COPYING' for more information
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop */
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lieropnamespace Inkscape {
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lieropenum SnapSourceType {
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_UNDEFINED = 0,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop //-------------------------------------------------------------------
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop // Bbox points can be located at the edge of the stroke (for visual bboxes); they will therefore not snap
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop // to nodes because these are always located at the center of the stroke
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_BBOX_CATEGORY = 16, // will be used as a flag and must therefore be a power of two. Also,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop // must be larger than the largest number of targets in a single group
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_BBOX_CORNER,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_BBOX_MIDPOINT,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_BBOX_EDGE_MIDPOINT,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop //-------------------------------------------------------------------
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop // For the same reason, nodes will not snap to bbox points
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_NODE_CATEGORY = 32, // will be used as a flag and must therefore be a power of two
ae73b82cf10057153a43afdcb1f3a22deac18ea2Diederik van Lierop SNAPSOURCE_NODE_SMOOTH, // Symmetrical nodes are also considered to be smooth; there's no dedicated type for symm. nodes
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_NODE_CUSP,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_LINE_MIDPOINT,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_PATH_INTERSECTION,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPSOURCE_RECT_CORNER, // of a rectangle, so at the center of the stroke
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_CONVEX_HULL_CORNER,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_ELLIPSE_QUADRANT_POINT,
e0762361898748e8a6943d30ef1b5b070d4498a1Diederik van Lierop SNAPSOURCE_NODE_HANDLE, // eg. nodes in the path editor, handles of stars or rectangles, etc. (tied to a stroke)
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop //-------------------------------------------------------------------
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop // Other points (e.g. guides) will snap to both bounding boxes and nodes
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_DATUMS_CATEGORY = 64, // will be used as a flag and must therefore be a power of two
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_GUIDE,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_GUIDE_ORIGIN,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop //-------------------------------------------------------------------
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop // Other points (e.g. gradient knots, image corners) will snap to both bounding boxes and nodes
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPSOURCE_OTHERS_CATEGORY = 128, // will be used as a flag and must therefore be a power of two
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPSOURCE_ROTATION_CENTER,
c60180049420944fe78f7d8b2ca1df28cba163fdDiederik van Lierop SNAPSOURCE_OBJECT_MIDPOINT, // midpoint of rectangles, ellipses, polygon, etc.
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPSOURCE_IMG_CORNER,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_TEXT_ANCHOR,
c60180049420944fe78f7d8b2ca1df28cba163fdDiederik van Lierop SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient or of a connector (ie not being tied to a stroke)
195e5fada891025f6d2f260e915ac209e0c0a5d0Diederik van Lierop SNAPSOURCE_GRID_PITCH, // eg. when pasting or alt-dragging in the selector tool; not realy a snap source
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop};
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lieropenum SnapTargetType {
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_UNDEFINED = 0,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop //-------------------------------------------------------------------
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_BBOX_CATEGORY = 16, // will be used as a flag and must therefore be a power of two. Also,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop // must be larger than the largest number of targets in a single group
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop // i.e > 15 because that's the number of targets in the "others" group
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_BBOX_CORNER,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_BBOX_EDGE,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_BBOX_EDGE_MIDPOINT,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_BBOX_MIDPOINT,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop //-------------------------------------------------------------------
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_NODE_CATEGORY = 32, // will be used as a flag and must therefore be a power of two
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_NODE_SMOOTH,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_NODE_CUSP,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_LINE_MIDPOINT,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_PATH,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_PATH_INTERSECTION,
dc29d5aae9784dc2344623e55b5f921e0d7cf488Diederik van Lierop SNAPTARGET_PATH_GUIDE_INTERSECTION,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_ELLIPSE_QUADRANT_POINT, // this corner is at the center of the stroke
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_RECT_CORNER, // of a rectangle, so this corner is at the center of the stroke
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop //-------------------------------------------------------------------
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_DATUMS_CATEGORY = 64, // will be used as a flag and must therefore be a power of two
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_GRID,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_GRID_INTERSECTION,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_GUIDE,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_GUIDE_INTERSECTION,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_GUIDE_ORIGIN,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_GRID_GUIDE_INTERSECTION,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_PAGE_BORDER,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_PAGE_CORNER,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop //-------------------------------------------------------------------
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_OTHERS_CATEGORY = 128, // will be used as a flag and must therefore be a power of two
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_OBJECT_MIDPOINT,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_IMG_CORNER,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_ROTATION_CENTER,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_TEXT_ANCHOR,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_TEXT_BASELINE,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPTARGET_CONSTRAINED_ANGLE,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_CONSTRAINT,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop //-------------------------------------------------------------------
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_MAX_ENUM_VALUE
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop};
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop}
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop#endif /* SNAPENUMS_H_ */