Mercurial > projects > dwt-addons
annotate dwtx/novocode/ishell/InternalShell.d @ 188:e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 26 Oct 2008 14:54:39 +0100 |
parents | |
children | 71ca5bcf2307 |
rev | line source |
---|---|
188
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 /******************************************************************************* |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 * Copyright (c) 2005 Stefan Zeiger and others. |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 * http://www.novocode.com/legal/epl-v10.html |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 * |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 * Contributors: |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 * Stefan Zeiger (szeiger@novocode.com) - initial API and implementation |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 *******************************************************************************/ |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
11 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 module dwtx.novocode.ishell.InternalShell; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 import dwt.DWT; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 import dwt.DWTException; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 import dwt.graphics.Image; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 import dwt.graphics.Point; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 import dwt.graphics.Rectangle; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 import dwt.layout.FormAttachment; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 import dwt.layout.FormData; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 import dwt.layout.FormLayout; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import dwt.widgets.Composite; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import dwt.widgets.Control; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import dwt.widgets.Event; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 import dwt.widgets.Listener; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 import dwt.widgets.Menu; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 import dwtx.novocode.SizeBorder; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 import dwtx.novocode.SizeGrip; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 import dwtx.novocode.ishell.DesktopForm; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 import dwtx.novocode.ishell.internal.TitleBar; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 import dwtx.novocode.ishell.internal.TitleBarButton; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 alias char[] String; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 /** |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 * An internal shell which can be placed on a DesktopForm. |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 * <p> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 * <dl> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 * <dt><b>Styles:</b></dt> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 * <dd>RESIZE, CLOSE, MAX, ON_TOP, TOOL, NO_RADIO_GROUP</dd> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * <dt><b>Events:</b></dt> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * <dd>(none)</dd> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 * </dl> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 * </p> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 * |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 * @author Stefan Zeiger (szeiger@novocode.com) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 * @since Jan 21, 2005 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 * @version $Id: InternalShell.java 344 2005-07-09 22:37:51 +0000 (Sat, 09 Jul 2005) szeiger $ |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 */ |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 // [TODO] Support styles NO_TRIM, BORDER, TITLE |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 // [TODO] Separate "minimized" from "not visible" |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 class InternalShell : Composite |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 private static const int BORDER_SIZE = 4; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 private Composite contentPane; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 private TitleBar titleBar; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 private SizeGrip sizeGrip; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 private SizeBorder sizeBorder; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 private int minWidth = 112; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 private int minHeight; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 private DesktopForm desktop; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 private bool maximized; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 private Rectangle pluralizedBounds; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 private int titleHeight; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 private int style; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
71 private TitleBarButton closeButton, maxButton, minButton; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 Control focusControl; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 this(DesktopForm parent, int style) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 super(parent, checkStyle(style)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 this.desktop = parent; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 this.style = style; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 setBackground(getDisplay().getSystemColor(DWT.COLOR_WIDGET_BACKGROUND)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 FormLayout layout = new FormLayout(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 setLayout(layout); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 FormData fd; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 titleBar = new TitleBar(this, style & (DWT.CLOSE | DWT.RESIZE | DWT.MAX | DWT.TOOL | DWT.MIN)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 titleHeight = titleBar.computeSize(DWT.DEFAULT, DWT.DEFAULT, true).y; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 Control leftButton = null; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
90 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
91 if((style & (DWT.CLOSE | DWT.MAX | DWT.MIN)) !is 0) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
92 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
93 closeButton = new TitleBarButton(this, DWT.CLOSE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 if((style & DWT.CLOSE) is 0) closeButton.setEnabled(false); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 closeButton.addListener(DWT.Selection, dgListener(&closeListener)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 fd = new FormData(titleHeight, titleHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 if(leftButton !is null) fd.right = new FormAttachment(leftButton); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 else fd.right = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 fd.top = new FormAttachment(0, BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 closeButton.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 leftButton = closeButton; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 if((style & (DWT.MAX|DWT.MIN)) !is 0) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 maxButton = new TitleBarButton(this, DWT.MAX); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 if((style & DWT.MAX) is 0) maxButton.setEnabled(false); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
107 maxButton.addListener(DWT.Selection, dgListener(&maximizeListener)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
108 fd = new FormData(titleHeight, titleHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 if(leftButton !is null) fd.right = new FormAttachment(leftButton); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 else fd.right = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
111 fd.top = new FormAttachment(0, BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
112 maxButton.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
113 leftButton = maxButton; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
114 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
115 minButton = new TitleBarButton(this, DWT.MIN); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
116 if((style & DWT.MIN) is 0) minButton.setEnabled(false); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 minButton.addListener(DWT.Selection, dgListener(&minimizeListener)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 fd = new FormData(titleHeight, titleHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 if(leftButton !is null) fd.right = new FormAttachment(leftButton); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 else fd.right = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 fd.top = new FormAttachment(0, BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 minButton.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
123 leftButton = minButton; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
124 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
125 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
126 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
127 fd = new FormData(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 fd.left = new FormAttachment(0, BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 if(leftButton !is null) fd.right = new FormAttachment(leftButton); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
130 else fd.right = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 fd.top = new FormAttachment(0, BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
132 titleBar.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
133 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
134 contentPane = new Composite(this, DWT.NONE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
135 fd = new FormData(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 fd.left = new FormAttachment(0, BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
137 fd.right = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
138 fd.top = new FormAttachment(titleBar, 1); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
139 fd.bottom = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 contentPane.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
142 sizeBorder = new SizeBorder(this, this, DWT.BORDER); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 sizeBorder.setBorderWidth(BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
144 fd = new FormData(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 fd.left = new FormAttachment(0); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 fd.right = new FormAttachment(100); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 fd.top = new FormAttachment(0); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 fd.bottom = new FormAttachment(100); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
149 sizeBorder.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
150 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
151 minHeight = titleHeight + 2*BORDER_SIZE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 sizeBorder.setMinimumShellSize(minWidth, minHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
153 sizeBorder.setCornerSize(titleHeight + BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
154 if((style & DWT.RESIZE) is 0) sizeBorder.setEnabled(false); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
155 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
156 setSize(320, 240); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
157 setVisible(false); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
158 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
159 desktop.manage(this); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
160 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
161 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
162 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
163 private void closeListener(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
164 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
165 close(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
166 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
167 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
168 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
169 private void maximizeListener(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
170 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
171 setMaximized(!maximized); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
172 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
173 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 private void minimizeListener(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
176 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 setMinimized(true); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
179 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 private static int checkStyle(int style) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
182 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
183 int mask = DWT.NO_RADIO_GROUP; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 style &= mask; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 return style; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
186 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
187 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
188 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
189 public int getStyle() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
190 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
191 return style; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
192 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
193 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
194 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
195 public Composite getContentPane() { return contentPane; } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
196 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
197 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
198 public void setText(String s) { titleBar.setText(s); } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
199 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 public String getText() { return titleBar.getText(); } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
203 public void setCustomMenu(Menu menu) { titleBar.setMenu(menu); } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
204 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
205 public Menu getCustomMenu() { return titleBar.getMenu(); } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
207 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
208 public void setImage(Image image) { titleBar.setImage(image); } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
209 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
210 public Image getImage() { return titleBar.getImage(); } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
211 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
212 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
213 public void createSizeGrip(int style) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
214 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
215 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 if(sizeGrip !is null) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 throw new DWTException("SizeGrip was already created"); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 if((this.style & DWT.RESIZE) is 0) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 throw new DWTException("Cannot create SizeGrip for InternalShell without style RESIZE"); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 sizeGrip = new SizeGrip(this, this, style); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 sizeGrip.setBackground(contentPane.getBackground()); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 sizeGrip.moveAbove(contentPane); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 FormData fd = new FormData(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 fd.right = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
225 fd.bottom = new FormAttachment(100, -BORDER_SIZE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
226 sizeGrip.setLayoutData(fd); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
227 sizeGrip.setMinimumShellSize(minWidth, minHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 if(isVisible()) layout(true); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
231 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
232 public Point computeSize(int wHint, int hHint, bool changed) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
233 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
234 Point p = super.computeSize(wHint, hHint, changed); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 if(p.x < minWidth) p.x = minWidth; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
236 if(p.y < minHeight) p.y = minHeight; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
237 return p; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
239 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 public void setSize(int width, int height) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
242 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 if(width < minWidth) width = minWidth; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 if(height < minHeight) height = minHeight; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
245 super.setSize(width, height); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
246 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
247 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
248 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 public void setBounds(int x, int y, int width, int height) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
250 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
251 if(width < minWidth) width = minWidth; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
252 if(height < minHeight) height = minHeight; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
253 super.setBounds(x, y, width, height); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
254 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
255 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
256 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
257 public void setMinimumSize(int width, int height) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
258 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
259 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
260 minWidth = width; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
261 minHeight = height; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
262 sizeGrip.setMinimumShellSize(minWidth, minHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
263 sizeBorder.setMinimumShellSize(minWidth, minHeight); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
264 Point size = getSize(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
265 if(size.x < minWidth || size.y < minHeight) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
266 setSize(Math.max(minWidth, size.x), Math.max(minHeight, size.y)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
267 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
268 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
269 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
270 public void close() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
271 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
272 Event event = new Event(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
273 notifyListeners(DWT.Close, event); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
274 if(event.doit && !isDisposed()) dispose(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
275 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
276 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
277 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
278 public void open() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
279 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
280 desktop.activate(this); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
281 setVisible(true); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
282 setFocus(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
283 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
284 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
285 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
286 public void setVisible(bool visible) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
287 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
288 if(!visible) desktop.shellVisibilityChanged(this, false); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
289 super.setVisible(visible); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
290 if(visible) desktop.shellVisibilityChanged(this, true); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
291 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
292 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
293 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
294 public void setActive() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
295 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
296 desktop.activate(this); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
297 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
298 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
299 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
300 public void setMaximized(bool maximized) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
301 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
302 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
303 if(this.maximized is maximized) return; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
304 setMaximizedWithoutNotification(maximized); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
305 desktop.shellMaximizedOrRestored(this, maximized); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
306 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
307 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
308 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
309 public void setMinimized(bool minimized) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
310 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
311 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
312 bool wasMaximized = maximized; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
313 setVisible(!minimized); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
314 maximized = wasMaximized; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
315 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
316 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
317 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
318 public bool getMinimized() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
319 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
320 return getVisible(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
321 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
322 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
323 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
324 void setMaximizedWithoutNotification(bool maximized) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
325 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
326 if(this.maximized is maximized) return; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
327 this.maximized = maximized; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
328 if(maximized) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
329 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
330 pluralizedBounds = getBounds(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
331 desktopResized(desktop.getClientArea()); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
332 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
333 else |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
334 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
335 setBounds(pluralizedBounds.x,pluralizedBounds.y,pluralizedBounds.width,pluralizedBounds.height); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
336 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
337 // Note: This method may be called in a Dispose event for this object |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
338 if(sizeGrip !is null && !sizeGrip.isDisposed()) sizeGrip.setVisible(!maximized); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
339 if(!sizeBorder.isDisposed()) sizeBorder.setEnabled(!maximized && (style & DWT.RESIZE) !is 0); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
340 if(maxButton !is null && !maxButton.isDisposed()) maxButton.redraw(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
341 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
342 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
343 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
344 public bool getMaximized() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
345 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
346 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
347 return maximized; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
348 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
349 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
350 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
351 void redrawDecorationsAfterActivityChange() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
352 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
353 // Note: This method may be called in a Dispose event for this object |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
354 if(!titleBar.isDisposed()) titleBar.redraw(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
355 if(closeButton !is null && !closeButton.isDisposed()) closeButton.redraw(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 if(maxButton !is null && !maxButton.isDisposed()) maxButton.redraw(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
357 if(minButton !is null && !minButton.isDisposed()) minButton.redraw(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
358 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
359 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
360 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
361 void desktopResized(Rectangle deskCA) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
362 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 if(maximized) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
364 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 int hideTitle = desktop.getShowMaximizedTitle() ? 0 : (titleHeight+1); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
366 setBounds(deskCA.x - BORDER_SIZE, |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 deskCA.y - BORDER_SIZE - hideTitle, |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
368 deskCA.width + 2*BORDER_SIZE, |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
369 deskCA.height + 2*BORDER_SIZE + hideTitle); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
370 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
371 else forceVisibleLocation(deskCA); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
372 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
373 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
374 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
375 public bool setFocus() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
376 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
377 if(focusControl !is null && focusControl !is this && !focusControl.isDisposed()) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 return focusControl.setFocus(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
379 return super.setFocus(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
383 public bool isActiveShell() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
384 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
385 return desktop.getActiveShell() is this; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
386 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
387 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
388 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
389 private void forceVisibleLocation(Rectangle deskCA) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 Point p = getLocation(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 Point minGrabSize = titleBar.getMinGrabSize(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
393 int x = p.x, y = p.y; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 int minX = minGrabSize.x + BORDER_SIZE, minY = minGrabSize.y + BORDER_SIZE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 x = Math.min(Math.max(x, deskCA.x+minY), deskCA.x+deskCA.width-minX); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 y = Math.min(Math.max(y, deskCA.y+minY), deskCA.y+deskCA.height-minY); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 if(x != p.x || y != p.y) setLocation(x, y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 } |