1 /* 2 * BSD 3-Clause License 3 * 4 * Copyright (c) 2016, Mango-Engine Team 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions are met: 9 * 10 * * Redistributions of source code must retain the above copyright notice, this 11 * list of conditions and the following disclaimer. 12 * 13 * * Redistributions in binary form must reproduce the above copyright notice, 14 * this list of conditions and the following disclaimer in the documentation 15 * and/or other materials provided with the distribution. 16 * 17 * * Neither the name of the copyright holder nor the names of its 18 * contributors may be used to endorse or promote products derived from 19 * this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 /// Graphics related events 33 module mango_engine.event.graphics; 34 35 import mango_engine.event.core; 36 37 import mango_engine.graphics.window; 38 39 /// Base class for an event related to graphics. 40 abstract class GraphicsEvent : Event { 41 42 } 43 44 /// Base class for an event related to a Window. 45 class WindowEvent : GraphicsEvent { 46 private shared Window _window; 47 48 @property Window window() @trusted nothrow { return cast(Window) this._window; } 49 50 this(Window window) @trusted nothrow { 51 this._window = cast(shared) window; 52 } 53 } 54 55 class WindowShowEvent : WindowEvent { 56 this(Window window) @safe nothrow { 57 super(window); 58 } 59 } 60 61 class WindowHideEvent : WindowEvent { 62 this(Window window) @safe nothrow { 63 super(window); 64 } 65 } 66 67 class WindowTitleChangeEvent : WindowEvent { 68 immutable string name; 69 70 this(in string name, Window window) @safe nothrow { 71 super(window); 72 73 this.name = name; 74 } 75 } 76 77 deprecated("Use InputManager instead") 78 class WindowKeyPressedEvent : WindowEvent { 79 /++ 80 The key which was pressed. The values 81 are found in derelict.glfw3.glfw3. 82 83 For example, the A key's value is 84 GLFW_KEY_A. 85 +/ 86 immutable int key; 87 88 this(in int key, Window window) @safe nothrow { 89 super(window); 90 91 this.key = key; 92 } 93 }