Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/javax/swing/DesktopManager.java
38829 views
1
/*
2
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package javax.swing;
27
28
/** DesktopManager objects are owned by a JDesktopPane object. They are responsible
29
* for implementing L&F specific behaviors for the JDesktopPane. JInternalFrame
30
* implementations should delegate specific behaviors to the DesktopManager. For
31
* instance, if a JInternalFrame was asked to iconify, it should try:
32
* <PRE>
33
* getDesktopPane().getDesktopManager().iconifyFrame(frame);
34
* </PRE>
35
* This delegation allows each L&amp;F to provide custom behaviors for desktop-specific
36
* actions. (For example, how and where the internal frame's icon would appear.)
37
* <p>This class provides a policy for the various JInternalFrame methods, it is not
38
* meant to be called directly rather the various JInternalFrame methods will call
39
* into the DesktopManager.</p>
40
*
41
* @see JDesktopPane
42
* @see JInternalFrame
43
* @see JInternalFrame.JDesktopIcon
44
*
45
* @author David Kloba
46
*/
47
public interface DesktopManager
48
{
49
/** If possible, display this frame in an appropriate location.
50
* Normally, this is not called, as the creator of the JInternalFrame
51
* will add the frame to the appropriate parent.
52
*/
53
void openFrame(JInternalFrame f);
54
55
/** Generally, this call should remove the frame from it's parent. */
56
void closeFrame(JInternalFrame f);
57
58
/** Generally, the frame should be resized to match it's parents bounds. */
59
void maximizeFrame(JInternalFrame f);
60
/** Generally, this indicates that the frame should be restored to it's
61
* size and position prior to a maximizeFrame() call.
62
*/
63
void minimizeFrame(JInternalFrame f);
64
/** Generally, remove this frame from it's parent and add an iconic representation. */
65
void iconifyFrame(JInternalFrame f);
66
/** Generally, remove any iconic representation that is present and restore the
67
* frame to it's original size and location.
68
*/
69
void deiconifyFrame(JInternalFrame f);
70
71
/**
72
* Generally, indicate that this frame has focus. This is usually called after
73
* the JInternalFrame's IS_SELECTED_PROPERTY has been set to true.
74
*/
75
void activateFrame(JInternalFrame f);
76
77
/**
78
* Generally, indicate that this frame has lost focus. This is usually called
79
* after the JInternalFrame's IS_SELECTED_PROPERTY has been set to false.
80
*/
81
void deactivateFrame(JInternalFrame f);
82
83
/** This method is normally called when the user has indicated that
84
* they will begin dragging a component around. This method should be called
85
* prior to any dragFrame() calls to allow the DesktopManager to prepare any
86
* necessary state. Normally <b>f</b> will be a JInternalFrame.
87
*/
88
void beginDraggingFrame(JComponent f);
89
90
/** The user has moved the frame. Calls to this method will be preceded by calls
91
* to beginDraggingFrame().
92
* Normally <b>f</b> will be a JInternalFrame.
93
*/
94
void dragFrame(JComponent f, int newX, int newY);
95
/** This method signals the end of the dragging session. Any state maintained by
96
* the DesktopManager can be removed here. Normally <b>f</b> will be a JInternalFrame.
97
*/
98
void endDraggingFrame(JComponent f);
99
100
/** This methods is normally called when the user has indicated that
101
* they will begin resizing the frame. This method should be called
102
* prior to any resizeFrame() calls to allow the DesktopManager to prepare any
103
* necessary state. Normally <b>f</b> will be a JInternalFrame.
104
*/
105
void beginResizingFrame(JComponent f, int direction);
106
/** The user has resized the component. Calls to this method will be preceded by calls
107
* to beginResizingFrame().
108
* Normally <b>f</b> will be a JInternalFrame.
109
*/
110
void resizeFrame(JComponent f, int newX, int newY, int newWidth, int newHeight);
111
/** This method signals the end of the resize session. Any state maintained by
112
* the DesktopManager can be removed here. Normally <b>f</b> will be a JInternalFrame.
113
*/
114
void endResizingFrame(JComponent f);
115
116
/** This is a primitive reshape method.*/
117
void setBoundsForFrame(JComponent f, int newX, int newY, int newWidth, int newHeight);
118
}
119
120