Mercurial > projects > dwt-addons
annotate dwtx/novocode/SizeBorder.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 | df4e66472aff |
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.SizeBorder; |
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.dwthelper.utils; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 import dwt.dwthelper.Runnable; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 import dwtx.dwtxhelper.Timer; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 import dwtx.dwtxhelper.TimerTask; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 import dwt.DWT; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 import dwt.graphics.Color; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 import dwt.graphics.Cursor; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import dwt.graphics.GC; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import dwt.graphics.Point; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import dwt.graphics.Rectangle; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 import dwt.widgets.Canvas; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 import dwt.widgets.Composite; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 import dwt.widgets.Display; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 import dwt.widgets.Event; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 import dwt.widgets.Listener; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 import dwt.widgets.Shell; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 |
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 * A border for a resizable container. This border control usually fills the |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 * entire container, with a content pane above it (not covering the actual |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 * border area). |
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 * <p>If the style SWT.BORDER ist set, a beveled border (as used on Windows |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 * Classic window decorations) will be drawn. Without this style, no drawing |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 * is done.</p> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 * |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 * @author Stefan Zeiger (szeiger@novocode.com) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * @since Jan 21, 2005 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * @version $Id: SizeBorder.java 321 2005-02-26 15:44:24 +0000 (Sat, 26 Feb 2005) szeiger $ |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 */ |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 class SizeBorder : Canvas |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 private static const long UPDATE_DELAY = 25; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 private static const int AREA_NONE = 0; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 private static const int AREA_N = 1; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 private static const int AREA_S = 2; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 private static const int AREA_E = 4; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 private static const int AREA_W = 8; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 private static const int AREA_NW = 9; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 private static const int AREA_NE = 5; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 private static const int AREA_SE = 6; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 private static const int AREA_SW = 10; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 private Rectangle snapBack; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 private bool cancelled = true; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 private /**volatile*/ long lastUpdate; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 private Timer timer; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 private TimerTask timerTask; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 private Composite resizableParent; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 private Point minSize, mouseDownOffset; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 private int borderWidth = 4, cornerSize = 16; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 private Display display; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 private Cursor cursor, cursorNWSE, cursorNESW, cursorWE, cursorNS; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
71 private int currentArea; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 private Color highlightShadowColor, lightShadowColor, normalShadowColor,darkShadowColor; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 |
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 this(Composite parent, int style) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 this(parent, parent.getShell(), style); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 this(Composite parent, Composite resizableParent, int style) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 super(parent, checkStyle (style)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 this.timer = new Timer(true); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 this.resizableParent = resizableParent; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 this.display = getDisplay(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 cursorNWSE = new Cursor(getDisplay(), DWT.CURSOR_SIZENWSE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 cursorNESW = new Cursor(getDisplay(), DWT.CURSOR_SIZENESW); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
90 cursorWE = new Cursor(getDisplay(), DWT.CURSOR_SIZEWE); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
91 cursorNS = new Cursor(getDisplay(), DWT.CURSOR_SIZENS); |
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 addListener(DWT.Dispose, dgListener(&onDispose)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 if((style & DWT.BORDER) !is 0) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 highlightShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_HIGHLIGHT_SHADOW); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 lightShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_LIGHT_SHADOW); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 normalShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_NORMAL_SHADOW); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 darkShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_DARK_SHADOW); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 addListener(DWT.Paint, dgListener(&onPaint)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 } |
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 addListener(DWT.MouseDown, dgListener(&onMouseDown)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
107 addListener(DWT.MouseMove, dgListener(&onMouseMove)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
108 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 addListener(DWT.MouseUp, dgListener(&onMouseUp)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
111 addListener(DWT.Show, dgListener(&onShow)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
112 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
113 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
114 private void onDispose(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
115 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
116 cursorNWSE.dispose(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 cursorNESW.dispose(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 cursorWE.dispose(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 cursorNS.dispose(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 timer.cancel(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
123 |
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 private void onPaint(Event event) |
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 Rectangle r = getClientArea(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 if(r.width is 0 || r.height is 0) return; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 drawBevelRect(event.gc, r.x, r.y, r.width-1, r.height-1, lightShadowColor, darkShadowColor); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
130 drawBevelRect(event.gc, r.x+1, r.y+1, r.width-3, r.height-3, highlightShadowColor, normalShadowColor); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
132 |
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 private void onMouseDown(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
135 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 if(event.button is 1) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
137 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
138 currentArea = areaAtPoint(event.x, event.y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
139 if(currentArea is AREA_NONE) return; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 if(cast(Shell)resizableParent !is null) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 mouseDownOffset = toDisplay(event.x, event.y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
142 else |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 mouseDownOffset = display.map(/**SizeBorder.this*/getSizeBorder(), resizableParent.getParent(), event.x, event.y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
144 snapBack = resizableParent.getBounds(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 cancelled = false; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 else if(event.button is 3 && (event.stateMask & DWT.BUTTON1) !is 0) // chord click |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
149 if(snapBack !is null) |
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 resizableParent.setBounds(snapBack); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 snapBack = null; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
153 cancelled = true; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
154 } |
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 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
157 |
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 private void onMouseMove(Event event) |
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 if((event.stateMask & DWT.BUTTON1) is 0) updateCursor(areaAtPoint(event.x, event.y)); |
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 if(!cancelled && (event.stateMask & DWT.BUTTON1) !is 0) |
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 if(timerTask !is null) |
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 timerTask.cancel(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
168 timerTask = null; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
169 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
170 long now = System.currentTimeMillis(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
171 if(lastUpdate + UPDATE_DELAY < now) |
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 performResize(event); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 lastUpdate = now; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
176 else |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 timerTask = new class() TimerTask |
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 public void run() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
182 TimerTask executingTask = this; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
183 event.display.asyncExec(new class() Runnable |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 public void run() |
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 if(executingTask !is timerTask) return; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
188 performResize(event); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
189 } |
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 } |
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 timer.schedule(timerTask, UPDATE_DELAY); |
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 } |
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 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
199 private void onMouseUp(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 if(timerTask !is null) |
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 timerTask.cancel(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
204 timerTask = null; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
205 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 if(!cancelled && (event.stateMask & DWT.BUTTON1) !is 0) |
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 performResize(event); |
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 } |
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 private void onShow(Event event) |
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 Point p = toControl(display.getCursorLocation()); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 updateCursor(areaAtPoint(p.x, p.y)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 private SizeBorder getSizeBorder() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 return this; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
225 private static int checkStyle(int style) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
226 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
227 //int mask = DWT.NONE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 //style &= mask; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 style = DWT.NO_FOCUS; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 return style; |
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 |
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 private void performResize(Event event) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
236 // Make sure we stay within the container parent's client area |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
237 Rectangle ca; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 if(cast(Shell)resizableParent !is null) ca = getDisplay().getClientArea(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
239 else ca = getDisplay().map(resizableParent.getParent(), null, resizableParent.getParent().getClientArea()); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 Point caOffset = toControl(ca.x, ca.y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 event.x = Math.max(Math.min(event.x, caOffset.x + ca.width - 1), caOffset.x); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
242 event.y = Math.max(Math.min(event.y, caOffset.y + ca.height - 1), caOffset.y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 // Compute movement relative to position at MouseDown event |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
245 Point movement = (cast(Shell)resizableParent !is null) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
246 ? toDisplay(event.x, event.y) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
247 : display.map(this, resizableParent.getParent(), event.x, event.y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
248 movement.x -= mouseDownOffset.x; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 movement.y -= mouseDownOffset.y; |
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 // Compute new size and position |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
252 int newW = snapBack.width, newH = snapBack.height, newX = snapBack.x, newY = snapBack.y; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
253 if((currentArea & AREA_E) !is 0) newW += movement.x; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
254 else if((currentArea & AREA_W) !is 0) { newW -= movement.x; newX += snapBack.width - newW; } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
255 if((currentArea & AREA_S) !is 0) newH += movement.y; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
256 else if((currentArea & AREA_N) !is 0) { newH -= movement.y; newY += snapBack.height - newH; } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
257 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
258 // Do not go below the container's minimum size |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
259 int minW, minH; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
260 if(minSize !is null) { minW = minSize.x; minH = minSize.y; } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
261 else { minW = 0; minH = 0; } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
262 int maxX = snapBack.x + snapBack.width - minW; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
263 int maxY = snapBack.y + snapBack.height - minH; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
264 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
265 newW = Math.max(minW, newW); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
266 newH = Math.max(minH, newH); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
267 newX = Math.min(maxX, newX); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
268 newY = Math.min(maxY, newY); |
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 resizableParent.setBounds(newX, newY, newW, newH); |
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 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
273 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
274 private void updateCursor(int area) |
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 Cursor c = null; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
277 switch(area) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
278 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
279 case AREA_N: case AREA_S: c = cursorNS; break; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
280 case AREA_W: case AREA_E: c = cursorWE; break; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
281 case AREA_NW: case AREA_SE: c = cursorNWSE; break; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
282 case AREA_NE: case AREA_SW: c = cursorNESW; break; |
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 if(cursor is c) return; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
285 cursor = c; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
286 setCursor(c); |
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 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
289 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
290 private int areaAtPoint(int x, int y) |
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 Point size = getSize(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
293 if(x < borderWidth) // left edge |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
294 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
295 if(y < cornerSize) return AREA_NW; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
296 else if(y >= size.y-cornerSize) return AREA_SW; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
297 else return AREA_W; |
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 else if(x >= size.x-borderWidth) // right edge |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
300 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
301 if(y >= size.y-cornerSize) return AREA_SE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
302 else if(y < cornerSize) return AREA_NE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
303 else return AREA_E; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
304 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
305 else if(y < borderWidth) // top edge |
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 if(x < cornerSize) return AREA_NW; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
308 else if(x >= size.x-cornerSize) return AREA_NE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
309 else return AREA_N; |
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 else if(y >= size.y-borderWidth) // bottom edge |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
312 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
313 if(x >= size.x-cornerSize) return AREA_SE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
314 else if(x < cornerSize) return AREA_SW; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
315 else return AREA_S; |
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 else return AREA_NONE; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
318 } |
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 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
321 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
|
322 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
323 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
324 if(wHint == DWT.DEFAULT) wHint = 0; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
325 if(hHint == DWT.DEFAULT) hHint = 0; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
326 return new Point(wHint, hHint); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
327 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
328 |
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 public bool setFocus() |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
331 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
332 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
333 return false; |
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 |
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 public bool isReparentable () |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
338 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
339 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
340 return false; |
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 /** |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
345 * Set the allowed minimum size for the shell. The SizeGrip will |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
346 * not resize the shell to a smaller size. |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
347 * <p> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
348 * Note: This does <em>not</em> affect other ways of resizing the shell, |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
349 * like using the size controls which are placed on the trimmings by |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
350 * the window manager. |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
351 * </p> |
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 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
354 public void setMinimumShellSize(Point p) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
355 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
357 this.minSize = p; |
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 /** |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
362 * Set the allowed minimum size for the shell. The SizeGrip will |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 * not resize the shell to a smaller size. |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
364 * <p> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 * Note: This does <em>not</em> affect other ways of resizing the shell, |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
366 * like using the size controls which are placed on the trimmings by |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 * the window manager. |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
368 * </p> |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
369 */ |
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 public void setMinimumShellSize(int width, int height) |
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 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
374 this.minSize = new Point(width, height); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
375 } |
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 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 public void setBorderWidth(int width) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
379 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 borderWidth = width; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 Point p = toControl(display.getCursorLocation()); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
383 updateCursor(areaAtPoint(p.x, p.y)); |
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 |
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 public void setCornerSize(int size) |
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 checkWidget(); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 cornerSize = size; |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 Point p = toControl(display.getCursorLocation()); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 updateCursor(areaAtPoint(p.x, p.y)); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
393 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 private static void drawBevelRect(GC gc, int x, int y, int w, int h, Color topleft, Color bottomright) |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 { |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 gc.setForeground(bottomright); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 gc.drawLine(x + w, y, x + w, y + h); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
400 gc.drawLine(x, y + h, x + w, y + h); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
401 |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
402 gc.setForeground(topleft); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
403 gc.drawLine(x, y, x + w - 1, y); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
404 gc.drawLine(x, y, x, y + h - 1); |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
405 } |
e3780acbbf80
Added ported sources from Novocode, thanks to WasserDragoon
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
406 } |