DISTRHO Plugin Framework
 All Classes Functions Variables Enumerations Enumerator Groups Pages
Base.hpp
1 /*
2  * DISTRHO Plugin Framework (DPF)
3  * Copyright (C) 2012-2019 Filipe Coelho <falktx@falktx.com>
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any purpose with
6  * or without fee is hereby granted, provided that the above copyright notice and this
7  * permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
10  * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
11  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
13  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef DGL_BASE_HPP_INCLUDED
18 #define DGL_BASE_HPP_INCLUDED
19 
20 #include "../distrho/extra/LeakDetector.hpp"
21 #include "../distrho/extra/ScopedPointer.hpp"
22 
23 // -----------------------------------------------------------------------
24 // Define namespace
25 
26 #ifndef DGL_NAMESPACE
27 # define DGL_NAMESPACE DGL
28 #endif
29 
30 #define START_NAMESPACE_DGL namespace DGL_NAMESPACE {
31 #define END_NAMESPACE_DGL }
32 #define USE_NAMESPACE_DGL using namespace DGL_NAMESPACE;
33 
34 START_NAMESPACE_DGL
35 
36 // -----------------------------------------------------------------------
37 // Base DGL enums
38 
39 /**
40  Convenience symbols for ASCII control characters.
41  */
42 enum Char {
43  kCharBackspace = 0x08,
44  kCharEscape = 0x1B,
45  kCharDelete = 0x7F
46 };
47 
48 /**
49  Keyboard modifier flags.
50  */
51 enum Modifier {
52  kModifierShift = 1 << 0, /**< Shift key */
53  kModifierControl = 1 << 1, /**< Control key */
54  kModifierAlt = 1 << 2, /**< Alt/Option key */
55  kModifierSuper = 1 << 3 /**< Mod4/Command/Windows key */
56 };
57 
58 /**
59  Special (non-Unicode) keyboard keys.
60  */
61 enum Key {
62  kKeyF1 = 1,
63  kKeyF2,
64  kKeyF3,
65  kKeyF4,
66  kKeyF5,
67  kKeyF6,
68  kKeyF7,
69  kKeyF8,
70  kKeyF9,
71  kKeyF10,
72  kKeyF11,
73  kKeyF12,
74  kKeyLeft,
75  kKeyUp,
76  kKeyRight,
77  kKeyDown,
78  kKeyPageUp,
79  kKeyPageDown,
80  kKeyHome,
81  kKeyEnd,
82  kKeyInsert,
83  kKeyShift,
84  kKeyControl,
85  kKeyAlt,
86  kKeySuper
87 };
88 
89 // -----------------------------------------------------------------------
90 // Base DGL classes
91 
92 /**
93  Graphics context, definition depends on build type.
94  */
95 struct GraphicsContext;
96 
97 /**
98  Idle callback.
99  */
101 {
102 public:
103  virtual ~IdleCallback() {}
104  virtual void idleCallback() = 0;
105 };
106 
107 // -----------------------------------------------------------------------
108 
109 END_NAMESPACE_DGL
110 
111 #ifndef DONT_SET_USING_DGL_NAMESPACE
112  // If your code uses a lot of DGL classes, then this will obviously save you
113  // a lot of typing, but can be disabled by setting DONT_SET_USING_DGL_NAMESPACE.
114  using namespace DGL_NAMESPACE;
115 #endif
116 
117 // -----------------------------------------------------------------------
118 
119 #endif // DGL_BASE_HPP_INCLUDED
Definition: Cairo.hpp:31
Definition: Base.hpp:100