diff options
author | Silenio Quarti <silenio> | 2002-05-02 23:05:07 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2002-05-02 23:05:07 +0000 |
commit | 79158ffb988037d9b3e74646df484646a9027ed7 (patch) | |
tree | 8f116237d44d6ef5366f26dc20f115e45f0df8e2 | |
parent | 69bc14267fe19febde184663a8df2b4c6b3cf10c (diff) | |
download | eclipse.platform.swt-79158ffb988037d9b3e74646df484646a9027ed7.tar.gz eclipse.platform.swt-79158ffb988037d9b3e74646df484646a9027ed7.tar.xz eclipse.platform.swt-79158ffb988037d9b3e74646df484646a9027ed7.zip |
*** empty log message ***
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. |