summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti <silenio>2002-05-02 23:05:07 +0000
committerSilenio Quarti <silenio>2002-05-02 23:05:07 +0000
commit79158ffb988037d9b3e74646df484646a9027ed7 (patch)
tree8f116237d44d6ef5366f26dc20f115e45f0df8e2
parent69bc14267fe19febde184663a8df2b4c6b3cf10c (diff)
downloadeclipse.platform.swt-79158ffb988037d9b3e74646df484646a9027ed7.tar.gz
eclipse.platform.swt-79158ffb988037d9b3e74646df484646a9027ed7.tar.xz
eclipse.platform.swt-79158ffb988037d9b3e74646df484646a9027ed7.zip
*** empty log message ***
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java38
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java29
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java35
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java9
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java6
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java6
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java9
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java21
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java17
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java13
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java27
16 files changed, 140 insertions, 100 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index e753e98ee3..4d2027dba3 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -13,6 +13,7 @@ package org.eclipse.swt.internal.gtk;
* this distribution shall govern.
*/
+import org.eclipse.swt.internal.Converter;
import org.eclipse.swt.internal.Library;
public class OS {
@@ -195,6 +196,43 @@ public class OS {
public static final int PANGO_STYLE_OBLIQUE = 0x1;
public static final int PANGO_WEIGHT_BOLD = 0x2bc;
public static final int PANGO_WEIGHT_NORMAL = 0x190;
+
+ /* Signals */
+ public static final byte[] activate = signal("activate");
+ public static final byte[] button_press_event = signal("button_press_event");
+ public static final byte[] button_release_event = signal("button_release_event");
+ public static final byte[] changed = signal("changed");
+ public static final byte[] clicked = signal("clicked");
+ public static final byte[] configure_event = signal("configure_event");
+ public static final byte[] delete_event = signal("delete_event");
+ public static final byte[] delete_text = signal("delete_text");
+ public static final byte[] enter_notify_event = signal("enter_notify_event");
+ public static final byte[] event_after = signal("event_after");
+ public static final byte[] expose_event = signal("expose_event");
+ public static final byte[] focus_in_event = signal("focus_in_event");
+ public static final byte[] focus_out_event = signal("focus_out_event");
+ public static final byte[] insert_text = signal("insert_text");
+ public static final byte[] key_press_event = signal("key_press_event");
+ public static final byte[] key_release_event = signal("key_release_event");
+ public static final byte[] leave_notify_event = signal("leave_notify_event");
+ public static final byte[] map_event = signal("map_event");
+ public static final byte[] motion_notify_event = signal("motion_notify_event");
+ public static final byte[] popup_menu = signal("popup_menu");
+ public static final byte[] select_child = signal("select_child");
+ public static final byte[] select_row = signal("select_row");
+ public static final byte[] size_allocate = signal("size_allocate");
+ public static final byte[] switch_page = signal("switch_page");
+ public static final byte[] tree_collapse = signal("tree_collapse");
+ public static final byte[] tree_expand = signal("tree_expand");
+ public static final byte[] tree_select_row = signal("tree_select_row");
+ public static final byte[] tree_unselect_row = signal("tree_unselect_row");
+ public static final byte[] unselect_row = signal("unselect_row");
+ public static final byte[] unmap_event = signal("unmap_event");
+ public static final byte[] value_changed = signal("value_changed");
+
+static byte[] signal (String name) {
+ return Converter.wcsToMbcs(null, name, true);
+}
/* Object private fields accessors */
public static final native int GTK_CLIST_CLIST_WINDOW(int clist);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
index a348aa0958..202e289f16 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
@@ -315,7 +315,9 @@ public String getText () {
void hookEvents () {
super.hookEvents();
- signal_connect (handle, "clicked", SWT.Selection, 2);
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ OS.gtk_signal_connect (handle, OS.clicked, windowProc2, SWT.Selection);
}
int processSelection (int int0, int int1, int int2) {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java
index d2b557f319..8f51d734be 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java
@@ -313,10 +313,13 @@ int fontHandle () {
void hookEvents () {
// TO DO - expose, enter/exit, focus in/out
super.hookEvents ();
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ int windowProc3 = display.windowProc3;
// TO DO - fix multiple selection events for one user action
- signal_connect (listHandle, "select_child", SWT.Selection, 3);
- signal_connect_after (entryHandle, "changed", SWT.Modify, 2);
- signal_connect (entryHandle, "activate", SWT.DefaultSelection, 2);
+ OS.gtk_signal_connect (listHandle, OS.select_child, windowProc3, SWT.Selection);
+ OS.gtk_signal_connect_after (entryHandle, OS.changed, windowProc2, SWT.Modify);
+ OS.gtk_signal_connect (entryHandle, OS.activate, windowProc2, SWT.DefaultSelection);
int mask =
OS.GDK_POINTER_MOTION_MASK |
OS.GDK_BUTTON_PRESS_MASK | OS.GDK_BUTTON_RELEASE_MASK |
@@ -326,16 +329,16 @@ void hookEvents () {
for (int i=0; i<handles.length; i++) {
int handle = handles [i];
OS.gtk_widget_add_events (handle, mask);
- signal_connect (handle, "button_press_event", SWT.MouseDown, 3);
- signal_connect (handle, "button_release_event", SWT.MouseUp, 3);
- signal_connect (handle, "key_press_event", SWT.KeyDown, 3);
- signal_connect (handle, "key_release_event", SWT.KeyUp, 3);
- signal_connect (handle, "motion_notify_event", SWT.MouseMove, 3);
- signal_connect_after (handle, "button_press_event", -SWT.MouseDown, 3);
- signal_connect_after (handle, "button_release_event", -SWT.MouseUp, 3);
- signal_connect_after (handle, "key_press_event", -SWT.KeyDown, 3);
- signal_connect_after (handle, "key_release_event", -SWT.KeyUp, 3);
- signal_connect_after (handle, "motion_notify_event", -SWT.MouseMove, 3);
+ OS.gtk_signal_connect (handle, OS.button_press_event, windowProc3, SWT.MouseDown);
+ OS.gtk_signal_connect (handle, OS.button_release_event, windowProc3, SWT.MouseUp);
+ OS.gtk_signal_connect (handle, OS.key_press_event, windowProc3, SWT.KeyDown);
+ OS.gtk_signal_connect (handle, OS.key_release_event, windowProc3, SWT.KeyUp);
+ OS.gtk_signal_connect (handle, OS.motion_notify_event, windowProc3, SWT.MouseMove);
+ OS.gtk_signal_connect_after (handle, OS.button_press_event, windowProc3, -SWT.MouseDown);
+ OS.gtk_signal_connect_after (handle, OS.button_release_event, windowProc3, -SWT.MouseUp);
+ OS.gtk_signal_connect_after (handle, OS.key_press_event, windowProc3, -SWT.KeyDown);
+ OS.gtk_signal_connect_after (handle, OS.key_release_event, windowProc3, -SWT.KeyUp);
+ OS.gtk_signal_connect_after (handle, OS.motion_notify_event, windowProc3, -SWT.MouseMove);
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
index a68c078bd4..717b94a299 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
@@ -113,22 +113,25 @@ void hookEvents () {
OS.GDK_KEY_PRESS_MASK | OS.GDK_KEY_RELEASE_MASK |
OS.GDK_FOCUS_CHANGE_MASK;
OS.gtk_widget_add_events (eventHandle, mask);
- signal_connect (eventHandle, "popup_menu", SWT.Show, 2);
- signal_connect (eventHandle, "button_press_event", SWT.MouseDown, 3);
- signal_connect (eventHandle, "button_release_event", SWT.MouseUp, 3);
- signal_connect (eventHandle, "key_press_event", SWT.KeyDown, 3);
- signal_connect (eventHandle, "key_release_event", SWT.KeyUp, 3);
- signal_connect (eventHandle, "motion_notify_event", SWT.MouseMove, 3);
- signal_connect_after (eventHandle, "button_press_event", -SWT.MouseDown, 3);
- signal_connect_after (eventHandle, "button_release_event", -SWT.MouseUp, 3);
- signal_connect_after (eventHandle, "key_press_event", -SWT.KeyDown, 3);
- signal_connect_after (eventHandle, "key_release_event", -SWT.KeyUp, 3);
- signal_connect_after (eventHandle, "motion_notify_event", -SWT.MouseMove, 3);
- signal_connect_after (eventHandle, "enter_notify_event", SWT.MouseEnter, 3);
- signal_connect_after (eventHandle, "leave_notify_event", SWT.MouseExit, 3);
- signal_connect_after (eventHandle, "focus_in_event", SWT.FocusIn, 3);
- signal_connect_after (eventHandle, "focus_out_event", SWT.FocusOut, 3);
- signal_connect_after (eventHandle, "expose_event", SWT.Paint, 3);
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ int windowProc3 = display.windowProc3;
+ OS.gtk_signal_connect (eventHandle, OS.popup_menu, windowProc2, SWT.Show);
+ OS.gtk_signal_connect (eventHandle, OS.button_press_event, windowProc3, SWT.MouseDown);
+ OS.gtk_signal_connect (eventHandle, OS.button_release_event, windowProc3, SWT.MouseUp);
+ OS.gtk_signal_connect (eventHandle, OS.key_press_event, windowProc3, SWT.KeyDown);
+ OS.gtk_signal_connect (eventHandle, OS.key_release_event, windowProc3, SWT.KeyUp);
+ OS.gtk_signal_connect (eventHandle, OS.motion_notify_event, windowProc3, SWT.MouseMove);
+ OS.gtk_signal_connect_after (eventHandle, OS.button_press_event, windowProc3, -SWT.MouseDown);
+ OS.gtk_signal_connect_after (eventHandle, OS.button_release_event, windowProc3, -SWT.MouseUp);
+ OS.gtk_signal_connect_after (eventHandle, OS.key_press_event, windowProc3, -SWT.KeyDown);
+ OS.gtk_signal_connect_after (eventHandle, OS.key_release_event, windowProc3, -SWT.KeyUp);
+ OS.gtk_signal_connect_after (eventHandle, OS.motion_notify_event, windowProc3, -SWT.MouseMove);
+ OS.gtk_signal_connect_after (eventHandle, OS.enter_notify_event, windowProc3, SWT.MouseEnter);
+ OS.gtk_signal_connect_after (eventHandle, OS.leave_notify_event, windowProc3, SWT.MouseExit);
+ OS.gtk_signal_connect_after (eventHandle, OS.focus_in_event, windowProc3, SWT.FocusIn);
+ OS.gtk_signal_connect_after (eventHandle, OS.focus_out_event, windowProc3, SWT.FocusOut);
+ OS.gtk_signal_connect_after (eventHandle, OS.expose_event, windowProc3, SWT.Paint);
}
int topHandle() {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java
index b3e2dfa414..f8e2c9669f 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java
@@ -216,9 +216,12 @@ GdkColor defaultForeground () {
void hookEvents () {
//TO DO - get rid of enter/exit for mouse crossing border
super.hookEvents();
- signal_connect (handle, "select_row", SWT.Selection, 5);
- signal_connect (handle, "unselect_row", SWT.Selection, 5);
- signal_connect (handle, "event_after", 0, 3);
+ Display display = getDisplay ();
+ int windowProc3 = display.windowProc3;
+ int windowProc5 = display.windowProc5;
+ OS.gtk_signal_connect (handle, OS.select_row, windowProc5, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.unselect_row, windowProc5, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.event_after, windowProc3, 0);
}
public Point computeSize (int wHint, int hHint, boolean changed) {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java
index aa066a85e1..5d7038cec9 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java
@@ -110,7 +110,6 @@ public MenuItem (Menu parent, int style, int index) {
void addAccelerator (int accel_group) {
if (accel_group == 0) return;
if (accelerator == 0) return;
- byte [] activate = Converter.wcsToMbcs (null, "activate", true);
int mask = 0;
if ((accelerator & SWT.CONTROL) != 0) mask |= OS.GDK_CONTROL_MASK;
if ((accelerator & SWT.ALT) != 0) mask |= OS.GDK_MOD1_MASK;
@@ -122,7 +121,7 @@ void addAccelerator (int accel_group) {
} else {
keysym = wcsToMbcs ((char) keysym);
}
- OS.gtk_widget_add_accelerator (handle, activate, accel_group, keysym, mask, OS.GTK_ACCEL_VISIBLE);
+ OS.gtk_widget_add_accelerator (handle, OS.activate, accel_group, keysym, mask, OS.GTK_ACCEL_VISIBLE);
}
/**
* Adds the listener to the collection of listeners who will
@@ -334,8 +333,7 @@ void hookEvents () {
super.hookEvents ();
Display display = getDisplay ();
int windowProc2 = display.windowProc2;
- byte [] activate_event = Converter.wcsToMbcs (null, "activate", true);
- OS.gtk_signal_connect (handle, activate_event, windowProc2, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.activate, windowProc2, SWT.Selection);
}
/**
* Returns <code>true</code> if the receiver is enabled, and
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
index 912426db83..fada0f1d53 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
@@ -118,10 +118,10 @@ void createHandle (int index) {
void hookEvents () {
super.hookEvents ();
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
int hAdjustment = OS.gtk_range_get_adjustment (handle);
- GtkAdjustment adjustment = new GtkAdjustment ();
- OS.memmove (adjustment, hAdjustment);
- signal_connect (hAdjustment, "value_changed", SWT.Selection, 2);
+ OS.gtk_signal_connect (hAdjustment, OS.value_changed, windowProc2, SWT.Selection);
}
void register () {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
index e18e90cda6..ac9c06574d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
@@ -326,7 +326,9 @@ public boolean getVisible () {
void hookEvents () {
super.hookEvents ();
- signal_connect (handle, "value_changed", SWT.Selection, 2);
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ OS.gtk_signal_connect (handle, OS.value_changed, windowProc2, SWT.Selection);
}
/**
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
index d142eb4161..54483e5481 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
@@ -428,12 +428,14 @@ void createHandle (int index) {
void hookEvents () {
super.hookEvents ();
- signal_connect(shellHandle, "map-event", SWT.Deiconify, 3);
- signal_connect(shellHandle, "unmap-event", SWT.Iconify, 3);
- signal_connect(shellHandle, "size-allocate", SWT.Resize, 3);
- signal_connect(shellHandle, "configure-event", SWT.Move, 3);
- signal_connect(shellHandle, "delete-event", SWT.Dispose, 3);
- signal_connect(shellHandle, "event-after", SWT.Activate, 3);
+ Display display = getDisplay ();
+ int windowProc3 = display.windowProc3;
+ OS.gtk_signal_connect (shellHandle, OS.map_event, windowProc3, SWT.Deiconify);
+ OS.gtk_signal_connect (shellHandle, OS.unmap_event, windowProc3, SWT.Iconify);
+ OS.gtk_signal_connect (shellHandle, OS.size_allocate, windowProc3, SWT.Resize);
+ OS.gtk_signal_connect (shellHandle, OS.configure_event, windowProc3, SWT.Move);
+ OS.gtk_signal_connect (shellHandle, OS.delete_event, windowProc3, SWT.Dispose);
+ OS.gtk_signal_connect (shellHandle, OS.event_after, windowProc3, SWT.Activate);
}
void register () {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java
index a7328be873..3f5eabbb79 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java
@@ -160,8 +160,10 @@ void createHandle (int index) {
void hookEvents () {
super.hookEvents ();
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
int hAdjustment = OS.gtk_range_get_adjustment (handle);
- signal_connect (hAdjustment, "value_changed", SWT.Selection, 2);
+ OS.gtk_signal_connect (hAdjustment, OS.value_changed, windowProc2, SWT.Selection);
}
void register () {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
index ea0c0619c3..6d2432b4c2 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
@@ -379,7 +379,9 @@ public int getSelectionIndex () {
void hookEvents () {
super.hookEvents ();
- signal_connect (handle, "switch_page", SWT.Selection, 4);
+ Display display = getDisplay ();
+ int windowProc4 = display.windowProc4;
+ OS.gtk_signal_connect (handle, OS.switch_page, windowProc4, SWT.Selection);
}
/**
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
index 635de1b4d4..1d0eac6df6 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
@@ -852,9 +852,12 @@ public int getTopIndex () {
void hookEvents () {
//TO DO - get rid of enter/exit for mouse crossing border
super.hookEvents ();
- signal_connect (handle, "select_row", SWT.Selection, 5);
- signal_connect (handle, "unselect_row", SWT.Selection, 5);
- signal_connect (handle, "event_after", 0, 3);
+ Display display = getDisplay ();
+ int windowProc3 = display.windowProc3;
+ int windowProc5 = display.windowProc5;
+ OS.gtk_signal_connect (handle, OS.select_row, windowProc5, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.unselect_row, windowProc5, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.event_after, windowProc3, 0);
}
/**
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java
index 4d7e1ae214..889103cdb7 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java
@@ -719,10 +719,14 @@ public int getTopPixel () {
void hookEvents () {
//TO DO - get rid of enter/exit for mouse crossing border
super.hookEvents();
- signal_connect_after (handle, "changed", SWT.Modify, 2);
- signal_connect (handle, "insert-text", SWT.Verify, 5);
- signal_connect (handle, "delete-text", SWT.Verify, 4);
- signal_connect (handle, "activate", SWT.DefaultSelection, 2);
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ int windowProc4 = display.windowProc4;
+ int windowProc5 = display.windowProc5;
+ OS.gtk_signal_connect_after (handle, OS.changed, windowProc2, SWT.Modify);
+ OS.gtk_signal_connect (handle, OS.insert_text, windowProc5, SWT.Verify);
+ OS.gtk_signal_connect (handle, OS.delete_text, windowProc4, SWT.Verify);
+ OS.gtk_signal_connect (handle, OS.activate, windowProc2, SWT.DefaultSelection);
}
/**
@@ -788,8 +792,7 @@ int processVerify (int int0, int int1, int int2) {
if (position [0] == -1) position [0] = OS.gtk_text_get_length (handle);
String newText = verifyText (oldText, position [0], position [0]); //WRONG POSITION
if (newText == null) {
- byte [] insert_text = Converter.wcsToMbcs (null, "insert-text", true);
- OS.gtk_signal_emit_stop_by_name (handle, insert_text);
+ OS.gtk_signal_emit_stop_by_name (handle, OS.insert_text);
return 0;
}
if (newText != oldText) {
@@ -798,8 +801,7 @@ int processVerify (int int0, int int1, int int2) {
OS.gtk_signal_handler_block_by_func (handle, windowProc5, SWT.Verify);
OS.gtk_editable_insert_text (handle, buffer3, buffer3.length, position);
OS.gtk_signal_handler_unblock_by_func (handle, windowProc5, SWT.Verify);
- byte [] insert_text = Converter.wcsToMbcs (null, "insert-text", true);
- OS.gtk_signal_emit_stop_by_name (handle, insert_text);
+ OS.gtk_signal_emit_stop_by_name (handle, OS.insert_text);
return 0;
}
} else {
@@ -813,8 +815,7 @@ int processVerify (int int0, int int1, int int2) {
String oldText = new String (buffer2, 0, buffer2.length);
String newText = verifyText (oldText, int0, int1);
if (newText == null) {
- byte [] delete_text = Converter.wcsToMbcs (null, "delete-text", true);
- OS.gtk_signal_emit_stop_by_name (handle, delete_text);
+ OS.gtk_signal_emit_stop_by_name (handle, OS.delete_text);
return 0;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
index 92d4bfbda0..cf41b90581 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
@@ -421,10 +421,15 @@ public int getWidth () {
void hookEvents () {
super.hookEvents ();
if ((style & SWT.SEPARATOR) != 0) return;
- signal_connect(handle, "clicked", SWT.Selection, 2);
- signal_connect(handle, "enter-notify-event", SWT.MouseEnter, 3);
- signal_connect(handle, "leave-notify-event", SWT.MouseExit, 3);
- if (arrowButtonHandle!=0) signal_connect(arrowButtonHandle, "clicked", SWT.DefaultSelection, 2);
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ int windowProc3 = display.windowProc3;
+ OS.gtk_signal_connect (handle, OS.clicked, windowProc2, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.enter_notify_event, windowProc3, SWT.MouseEnter);
+ OS.gtk_signal_connect (handle, OS.leave_notify_event, windowProc3, SWT.MouseExit);
+ if (arrowButtonHandle != 0) {
+ OS.gtk_signal_connect (arrowButtonHandle, OS.clicked, windowProc2, SWT.DefaultSelection);
+ }
/*
* Feature in GTK.
@@ -441,8 +446,8 @@ void hookEvents () {
OS.GDK_KEY_PRESS_MASK | OS.GDK_KEY_RELEASE_MASK |
OS.GDK_FOCUS_CHANGE_MASK;
OS.gtk_widget_add_events (handle, mask);
- signal_connect (handle, "button_press_event", SWT.MouseDown, 3);
- signal_connect (handle, "button_release_event", SWT.MouseUp, 3);
+ OS.gtk_signal_connect (handle, OS.button_press_event, windowProc3, SWT.MouseDown);
+ OS.gtk_signal_connect (handle, OS.button_release_event, windowProc3, SWT.MouseUp);
}
/**
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
index bf2ee79c13..493376edf6 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
@@ -197,11 +197,14 @@ void createHandle (int index) {
void hookEvents () {
//TO DO - get rid of enter/exit for mouse crossing border
super.hookEvents ();
- signal_connect (handle, "tree_select_row", SWT.Selection, 4);
- signal_connect (handle, "tree_unselect_row", SWT.Selection, 4);
- signal_connect (handle, "tree_expand", SWT.Expand, 3);
- signal_connect (handle, "tree_collapse", SWT.Collapse, 3);
- signal_connect (handle, "event_after", 0, 3);
+ Display display = getDisplay ();
+ int windowProc3 = display.windowProc3;
+ int windowProc4 = display.windowProc4;
+ OS.gtk_signal_connect (handle, OS.tree_select_row, windowProc4, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.tree_unselect_row, windowProc4, SWT.Selection);
+ OS.gtk_signal_connect (handle, OS.tree_expand, windowProc3, SWT.Expand);
+ OS.gtk_signal_connect (handle, OS.tree_collapse, windowProc3, SWT.Collapse);
+ OS.gtk_signal_connect (handle, OS.event_after, windowProc3, 0);
}
int createCheckPixmap(boolean checked) {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
index 7051985cb8..62e11c6c8b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
@@ -892,33 +892,6 @@ public void setData (String key, Object value) {
values = newValues;
}
-void signal_connect (int handle, String eventName, int swtEvent, int numArgs) {
- int proc=0;
- switch (numArgs) {
- case 2: proc=getDisplay().windowProc2; break;
- case 3: proc=getDisplay().windowProc3; break;
- case 4: proc=getDisplay().windowProc4; break;
- case 5: proc=getDisplay().windowProc5; break;
- default: error(SWT.ERROR_INVALID_ARGUMENT);
- }
- /*OS.g_signal_connect (handle, eventName, proc, swtEvent);*/
- byte [] buffer = Converter.wcsToMbcs (null, eventName, true);
- OS.gtk_signal_connect(handle, buffer, proc, swtEvent);
-}
-
-void signal_connect_after (int handle, String eventName, int swtEvent, int numArgs) {
- byte [] buffer = Converter.wcsToMbcs (null, eventName, true);
- int proc=0;
- switch (numArgs) {
- case 2: proc=getDisplay().windowProc2; break;
- case 3: proc=getDisplay().windowProc3; break;
- case 4: proc=getDisplay().windowProc4; break;
- case 5: proc=getDisplay().windowProc5; break;
- default: error(SWT.ERROR_INVALID_ARGUMENT);
- }
- OS.gtk_signal_connect_after (handle, buffer, proc, swtEvent);
-}
-
/**
* Returns a string containing a concise, human-readable
* description of the receiver.