1 // SPDX-License-Identifier: GPL-2.0-or-later
2 #ifndef SEEN_CANVAS_ITEM_ENUMS_H
3 #define SEEN_CANVAS_ITEM_ENUMS_H
4 
5 /**
6  * Enums for CanvasControlItem's.
7  */
8 
9 /*
10  * Author:
11  *   Tavmjong Bah
12  *
13  * Copyright (C) 2020 Tavmjong Bah
14  */
15 
16 namespace Inkscape {
17 
18 enum CanvasItemColor {
19     CANVAS_ITEM_PRIMARY,
20     CANVAS_ITEM_SECONDARY,
21     CANVAS_ITEM_TERTIARY
22 };
23 
24 enum CanvasItemCtrlShape {
25     CANVAS_ITEM_CTRL_SHAPE_SQUARE,
26     CANVAS_ITEM_CTRL_SHAPE_DIAMOND,
27     CANVAS_ITEM_CTRL_SHAPE_CIRCLE,
28     CANVAS_ITEM_CTRL_SHAPE_TRIANGLE,
29     CANVAS_ITEM_CTRL_SHAPE_CROSS,
30     CANVAS_ITEM_CTRL_SHAPE_PLUS,
31     CANVAS_ITEM_CTRL_SHAPE_PIVOT,  // Fancy "plus"
32     CANVAS_ITEM_CTRL_SHAPE_DARROW, // Double headed arrow.
33     CANVAS_ITEM_CTRL_SHAPE_SARROW, // Double headed arrow, rotated (skew).
34     CANVAS_ITEM_CTRL_SHAPE_CARROW, // Double headed curved arrow.
35     CANVAS_ITEM_CTRL_SHAPE_SALIGN, // Side alignment.
36     CANVAS_ITEM_CTRL_SHAPE_CALIGN, // Corner alignment.
37     CANVAS_ITEM_CTRL_SHAPE_MALIGN, // Center (middle) alignment.
38     CANVAS_ITEM_CTRL_SHAPE_BITMAP,
39     CANVAS_ITEM_CTRL_SHAPE_IMAGE
40 };
41 
42 // Applies to control points.
43 enum CanvasItemCtrlType {
44     CANVAS_ITEM_CTRL_TYPE_DEFAULT,
45     CANVAS_ITEM_CTRL_TYPE_ADJ_HANDLE, // Stretch & Scale
46     CANVAS_ITEM_CTRL_TYPE_ADJ_SKEW,
47     CANVAS_ITEM_CTRL_TYPE_ADJ_ROTATE,
48     CANVAS_ITEM_CTRL_TYPE_ADJ_CENTER,
49     CANVAS_ITEM_CTRL_TYPE_ADJ_SALIGN,
50     CANVAS_ITEM_CTRL_TYPE_ADJ_CALIGN,
51     CANVAS_ITEM_CTRL_TYPE_ADJ_MALIGN,
52     CANVAS_ITEM_CTRL_TYPE_ANCHOR,
53     CANVAS_ITEM_CTRL_TYPE_POINT,
54     CANVAS_ITEM_CTRL_TYPE_ROTATE,
55     CANVAS_ITEM_CTRL_TYPE_CENTER,
56     CANVAS_ITEM_CTRL_TYPE_SIZER,
57     CANVAS_ITEM_CTRL_TYPE_SHAPER,
58     CANVAS_ITEM_CTRL_TYPE_LPE,
59     CANVAS_ITEM_CTRL_TYPE_NODE_AUTO,
60     CANVAS_ITEM_CTRL_TYPE_NODE_CUSP,
61     CANVAS_ITEM_CTRL_TYPE_NODE_SMOOTH,
62     CANVAS_ITEM_CTRL_TYPE_NODE_SYMETRICAL,
63     CANVAS_ITEM_CTRL_TYPE_INVISIPOINT
64 };
65 
66 enum CanvasItemCtrlMode {
67     CANVAS_ITEM_CTRL_MODE_COLOR,
68     CANVAS_ITEM_CTRL_MODE_XOR
69 };
70 
71 enum CanvasItemTextAnchor {
72     CANVAS_ITEM_TEXT_ANCHOR_CENTER,
73     CANVAS_ITEM_TEXT_ANCHOR_TOP,
74     CANVAS_ITEM_TEXT_ANCHOR_BOTTOM,
75     CANVAS_ITEM_TEXT_ANCHOR_LEFT,
76     CANVAS_ITEM_TEXT_ANCHOR_RIGHT,
77     CANVAS_ITEM_TEXT_ANCHOR_ZERO,
78     CANVAS_ITEM_TEXT_ANCHOR_MANUAL
79 };
80 
81 } // namespace Inkscape
82 
83 #endif // SEEN_CANVAS_ITEM_ENUMS_H
84 
85 /*
86   Local Variables:
87   mode:c++
88   c-file-style:"stroustrup"
89   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
90   indent-tabs-mode:nil
91   fill-column:99
92   End:
93 */
94 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
95