summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2005-03-24 18:17:12 +0000
committerGrant Gayed <ggayed>2005-03-24 18:17:12 +0000
commitaf4cb5d1e0004d3c1f36ed8362af23f7cd388dfd (patch)
tree29eccf7e2d6448f60d3b179e7f010cf083529a69
parente5504ca1a8a80d4ea240a80f80e667e7b05edb6f (diff)
downloadeclipse.platform.swt-af4cb5d1e0004d3c1f36ed8362af23f7cd388dfd.tar.gz
eclipse.platform.swt-af4cb5d1e0004d3c1f36ed8362af23f7cd388dfd.tar.xz
eclipse.platform.swt-af4cb5d1e0004d3c1f36ed8362af23f7cd388dfd.zip
header default selection
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java33
1 files changed, 27 insertions, 6 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
index 21dd2037ee..1f00a2bb1d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
@@ -137,6 +137,7 @@ public Tree (Composite parent, int style) {
header.addListener (SWT.Paint, listener);
header.addListener (SWT.MouseDown, listener);
header.addListener (SWT.MouseUp, listener);
+ header.addListener (SWT.MouseDoubleClick, listener);
header.addListener (SWT.MouseMove, listener);
header.addListener (SWT.MouseExit, listener);
@@ -854,7 +855,12 @@ void handleEvents (Event event) {
case SWT.MouseMove:
headerOnMouseMove (event); break;
case SWT.MouseDoubleClick:
- onMouseDoubleClick (event); break;
+ if (event.widget == header) {
+ headerOnMouseDoubleClick (event);
+ } else {
+ onMouseDoubleClick (event);
+ }
+ break;
case SWT.MouseExit:
headerOnMouseExit (); break;
case SWT.Dispose:
@@ -888,19 +894,34 @@ void handleEvents (Event event) {
break;
}
}
+void headerOnMouseDoubleClick (Event event) {
+ if (!isFocusControl ()) setFocus ();
+ if (columns.length == 0) return;
+ int x = -horizontalOffset;
+ for (int i = 0; i < columns.length; i++) {
+ TreeColumn column = columns [i];
+ x += column.width;
+ if (event.x < x) {
+ Event newEvent = new Event ();
+ newEvent.widget = column;
+ column.postEvent (SWT.DefaultSelection, newEvent);
+ return;
+ }
+ }
+}
void headerOnMouseDown (Event event) {
if (event.button != 1) return;
+ int x = -horizontalOffset;
for (int i = 0; i < columns.length; i++) {
TreeColumn column = columns [i];
- int x = column.getX () + column.width;
- /* if close to a column separator line then begin column resize */
- if (Math.abs (x - event.x) <= TOLLERANCE_COLUMNRESIZE) {
- if (!column.resizable) return;
+ x += column.width;
+ /* if close to a resizable column separator line then begin column resize */
+ if (column.resizable && Math.abs (x - event.x) <= TOLLERANCE_COLUMNRESIZE) {
resizeColumn = column;
resizeColumnX = x;
return;
}
- /* if within column but not near separator line then fire column Selection */
+ /* if within column but not near resizable separator line then fire column Selection */
if (event.x < x) {
Event newEvent = new Event ();
newEvent.widget = column;