snap-enums.h revision 195e5fada891025f6d2f260e915ac209e0c0a5d0
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop#ifndef SNAPENUMS_H_
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop#define SNAPENUMS_H_
36d9047104b5881ca587a71ade77b1f21d083bc4Jon A. Cruz
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop/**
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * \file snap-enums.h
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop * \brief enumerations of snap source types and snap target types
d262df351f32b4f6bb9964ca9ff04bb3e37b968fDiederik 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
36d9047104b5881ca587a71ade77b1f21d083bc4Jon A. Cruz */
36d9047104b5881ca587a71ade77b1f21d083bc4Jon A. Cruz
36d9047104b5881ca587a71ade77b1f21d083bc4Jon A. Cruznamespace Inkscape {
d262df351f32b4f6bb9964ca9ff04bb3e37b968fDiederik van Lierop
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lieropenum SnapTargetType {
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_UNDEFINED = 0,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_GRID,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_GRID_INTERSECTION,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_GUIDE,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_GUIDE_INTERSECTION,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_GUIDE_ORIGIN,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_GRID_GUIDE_INTERSECTION,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_NODE_SMOOTH,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_NODE_CUSP,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_LINE_MIDPOINT,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_OBJECT_MIDPOINT,
ae73b82cf10057153a43afdcb1f3a22deac18ea2Diederik van Lierop SNAPTARGET_ROTATION_CENTER,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_HANDLE,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_PATH,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_PATH_INTERSECTION,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_BBOX_CORNER,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_BBOX_EDGE,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_BBOX_EDGE_MIDPOINT,
e0762361898748e8a6943d30ef1b5b070d4498a1Diederik van Lierop SNAPTARGET_BBOX_MIDPOINT,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_PAGE_BORDER,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_PAGE_CORNER,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_CONVEX_HULL_CORNER,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_ELLIPSE_QUADRANT_POINT,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_CENTER, // of ellipse
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_CORNER, // of image or of rectangle
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPTARGET_TEXT_BASELINE,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPTARGET_CONSTRAINED_ANGLE,
f200d31b8a03050faa7243929bbd5698db488399Diederik van Lierop SNAPTARGET_CONSTRAINT
c60180049420944fe78f7d8b2ca1df28cba163fdDiederik van Lierop};
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lieropenum SnapSourceType {
c60180049420944fe78f7d8b2ca1df28cba163fdDiederik van Lierop SNAPSOURCE_UNDEFINED = 0,
195e5fada891025f6d2f260e915ac209e0c0a5d0Diederik 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
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_BBOX_CATEGORY = 256, // will be used as a flag and must therefore be a power of two
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_BBOX_CORNER,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_BBOX_MIDPOINT,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_BBOX_EDGE_MIDPOINT,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop //-------------------------------------------------------------------
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop // For the same reason, nodes will not snap to bbox points
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_NODE_CATEGORY = 512, // will be used as a flag and must therefore be a power of two
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_NODE_SMOOTH,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_NODE_CUSP,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_LINE_MIDPOINT,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_PATH_INTERSECTION,
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_CORNER, // of image or of rectangle
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_CONVEX_HULL_CORNER,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_ELLIPSE_QUADRANT_POINT,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_NODE_HANDLE, // eg. nodes in the path editor, handles of stars or rectangles, etc. (tied to a stroke)
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop //-------------------------------------------------------------------
d262df351f32b4f6bb9964ca9ff04bb3e37b968fDiederik van Lierop // Other points (e.g. guides, gradient knots) will snap to both bounding boxes and nodes
d262df351f32b4f6bb9964ca9ff04bb3e37b968fDiederik van Lierop SNAPSOURCE_OTHER_CATEGORY = 1024, // will be used as a flag and must therefore be a power of two
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_OBJECT_MIDPOINT,
dc29d5aae9784dc2344623e55b5f921e0d7cf488Diederik van Lierop SNAPSOURCE_ROTATION_CENTER,
c5092eaf8e981b95b529f01316e546d7c3219754Diederik van Lierop SNAPSOURCE_CENTER, // of ellipse
c5092eaf8e981b95b529f01316e546d7c3219754Diederik van Lierop SNAPSOURCE_GUIDE,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPSOURCE_GUIDE_ORIGIN,
45d2569e428fc3733725b5e64e313e48c2a9d989Diederik van Lierop SNAPSOURCE_TEXT_BASELINE,
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient of a connector (ie not being tied to a stroke)
727eeb2592befe925906eb7605e9ed770697162bDiederik van Lierop SNAPSOURCE_GRID_PITCH, // eg. when pasting or alt-dragging in the selector tool; not realy a snap source
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop};
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop
fd3a244193c841a6594268b784dd537ea46f6916Diederik van Lierop}
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop#endif /* SNAPENUMS_H_ */
72cd517ebd6730a0b8b1b71bdb267ffe9f1d94ffDiederik van Lierop