1 /* 2 * Xournal++ 3 * 4 * Enum definition used for tools 5 * 6 * @author Xournal++ Team 7 * https://github.com/xournalpp/xournalpp 8 * 9 * @license GNU GPLv2 or later 10 */ 11 12 #pragma once 13 14 #include <string> 15 #include <vector> 16 17 #include "XournalType.h" 18 19 /** 20 * @brief Buttons that can have a configuration attached to them 21 * Used for ButtonConfig and ToolHandler 22 * 23 */ 24 enum Button { 25 BUTTON_ERASER, 26 BUTTON_MOUSE_MIDDLE, 27 BUTTON_MOUSE_RIGHT, 28 BUTTON_TOUCH, 29 BUTTON_DEFAULT, 30 BUTTON_STYLUS_ONE, 31 BUTTON_STYLUS_TWO, 32 BUTTON_COUNT 33 }; 34 35 enum AttributeType { 36 ATTRIBUTE_TYPE_NONE, 37 ATTRIBUTE_TYPE_STRING, 38 ATTRIBUTE_TYPE_INT, 39 ATTRIBUTE_TYPE_DOUBLE, 40 ATTRIBUTE_TYPE_INT_HEX, 41 ATTRIBUTE_TYPE_BOOLEAN, 42 }; 43 44 // use this as a bit flag 45 enum ScrollbarHideType { 46 SCROLLBAR_HIDE_NONE = 0, 47 SCROLLBAR_HIDE_HORIZONTAL = 1 << 1, 48 SCROLLBAR_HIDE_VERTICAL = 1 << 2, 49 SCROLLBAR_HIDE_BOTH = SCROLLBAR_HIDE_HORIZONTAL | SCROLLBAR_HIDE_VERTICAL 50 }; 51 52 /** 53 * The user-selectable device types 54 */ 55 enum class InputDeviceTypeOption { 56 Disabled = 0, 57 Mouse = 1, 58 Pen = 2, 59 Eraser = 3, 60 Touchscreen = 4, 61 MouseKeyboardCombo = 5, 62 }; 63 64 enum StylusCursorType { 65 STYLUS_CURSOR_NONE = 0, 66 STYLUS_CURSOR_DOT = 1, 67 STYLUS_CURSOR_BIG = 2, 68 }; 69 70 constexpr auto buttonToString(Button button) -> const char* { 71 switch (button) { 72 case BUTTON_ERASER: 73 return "eraser"; 74 case BUTTON_MOUSE_MIDDLE: 75 return "middle"; 76 case BUTTON_MOUSE_RIGHT: 77 return "right"; 78 case BUTTON_TOUCH: 79 return "touch"; 80 case BUTTON_DEFAULT: 81 return "default"; 82 case BUTTON_STYLUS_ONE: 83 return "stylus"; 84 case BUTTON_STYLUS_TWO: 85 return "stylus2"; 86 default: 87 return "unknown"; 88 } 89 } 90 91 constexpr auto stylusCursorTypeToString(StylusCursorType stylusCursorType) -> const char* { 92 switch (stylusCursorType) { 93 case STYLUS_CURSOR_NONE: 94 return "none"; 95 case STYLUS_CURSOR_DOT: 96 return "dot"; 97 case STYLUS_CURSOR_BIG: 98 return "big"; 99 default: 100 return "unknown"; 101 } 102 } 103 104 StylusCursorType stylusCursorTypeFromString(const string& stylusCursorTypeStr); 105