Add 'src/jexer/' from commit 'cf01c92f5809a0732409e280fb0f32f27393618d'
[fanfix.git] / src / jexer / event / TResizeEvent.java
1 /*
2 * Jexer - Java Text User Interface
3 *
4 * The MIT License (MIT)
5 *
6 * Copyright (C) 2019 Kevin Lamonte
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 * DEALINGS IN THE SOFTWARE.
25 *
26 * @author Kevin Lamonte [kevin.lamonte@gmail.com]
27 * @version 1
28 */
29 package jexer.event;
30
31 /**
32 * This class encapsulates a screen or window resize event.
33 */
34 public class TResizeEvent extends TInputEvent {
35
36 // ------------------------------------------------------------------------
37 // Constants --------------------------------------------------------------
38 // ------------------------------------------------------------------------
39
40 /**
41 * Resize events can be generated for either a total screen resize or a
42 * widget/window resize.
43 */
44 public enum Type {
45 /**
46 * The entire screen size changed.
47 */
48 SCREEN,
49
50 /**
51 * A widget was resized.
52 */
53 WIDGET
54 }
55
56 // ------------------------------------------------------------------------
57 // Variables --------------------------------------------------------------
58 // ------------------------------------------------------------------------
59
60 /**
61 * The type of resize.
62 */
63 private Type type;
64
65 /**
66 * New width.
67 */
68 private int width;
69
70 /**
71 * New height.
72 */
73 private int height;
74
75 // ------------------------------------------------------------------------
76 // Constructors -----------------------------------------------------------
77 // ------------------------------------------------------------------------
78
79 /**
80 * Public contructor.
81 *
82 * @param type the Type of resize, Screen or Widget
83 * @param width the new width
84 * @param height the new height
85 */
86 public TResizeEvent(final Type type, final int width, final int height) {
87 this.type = type;
88 this.width = width;
89 this.height = height;
90 }
91
92 // ------------------------------------------------------------------------
93 // TResizeEvent -----------------------------------------------------------
94 // ------------------------------------------------------------------------
95
96 /**
97 * Get resize type.
98 *
99 * @return SCREEN or WIDGET
100 */
101 public Type getType() {
102 return type;
103 }
104
105 /**
106 * Get the new width.
107 *
108 * @return width
109 */
110 public int getWidth() {
111 return width;
112 }
113
114 /**
115 * Get the new height.
116 *
117 * @return height
118 */
119 public int getHeight() {
120 return height;
121 }
122
123 /**
124 * Make human-readable description of this TResizeEvent.
125 *
126 * @return displayable String
127 */
128 @Override
129 public String toString() {
130 return String.format("Resize: %s width = %d height = %d",
131 type, width, height);
132 }
133
134 }