summaryrefslogtreecommitdiffstats
path: root/bundles
diff options
context:
space:
mode:
authorFelipe Heidrich <Felipe_Heidrich@ca.ibm.com>2012-02-24 14:19:18 -0500
committerFelipe Heidrich <Felipe_Heidrich@ca.ibm.com>2012-02-24 14:19:18 -0500
commitbaeb2750ab3cd98721ca3f9c69fc2805adaf6cf2 (patch)
treea0b30073fa8e6ba6e678da10264e550cc37878f4 /bundles
parentbda61fcf4d94db1af2718e1a5f14c99c4ec12c81 (diff)
downloadeclipse.platform.swt-baeb2750ab3cd98721ca3f9c69fc2805adaf6cf2.tar.gz
eclipse.platform.swt-baeb2750ab3cd98721ca3f9c69fc2805adaf6cf2.tar.xz
eclipse.platform.swt-baeb2750ab3cd98721ca3f9c69fc2805adaf6cf2.zip
review bug230854, changes to API, fix code to handle surrogates in linux, other fixes
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.swt/.settings/.api_filters8
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java3
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Text.java12
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentEvent.java24
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentListener.java5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/TypedListener.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java53
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Text.java23
11 files changed, 96 insertions, 70 deletions
diff --git a/bundles/org.eclipse.swt/.settings/.api_filters b/bundles/org.eclipse.swt/.settings/.api_filters
index 49f59bb74e..b3d357d894 100644
--- a/bundles/org.eclipse.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.swt/.settings/.api_filters
@@ -630,6 +630,14 @@
</message_arguments>
</filter>
</resource>
+<resource path="Eclipse SWT/common/org/eclipse/swt/events/SegmentListener.java" type="org.eclipse.swt.events.SegmentListener">
+<filter id="576720909">
+<message_arguments>
+<message_argument value="SWTEventListener"/>
+<message_argument value="SegmentListener"/>
+</message_arguments>
+</filter>
+</resource>
<resource path="Eclipse SWT/common/org/eclipse/swt/events/SelectionListener.java" type="org.eclipse.swt.events.SelectionListener">
<filter id="576720909">
<message_arguments>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java
index 47e655a880..b688cb6368 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java
@@ -60,7 +60,7 @@ import org.eclipse.swt.events.*;
* </pre>
*
* <p>
- * The segments and segementsChars fields can be used together to obtain different
+ * The segments and segmentsChars fields can be used together to obtain different
* types of bidi reordering and text display. The application can use these two fields
* to insert Unicode Control Characters in specific offsets in the line, the character
* at segmentsChars[i] is inserted at the offset specified by segments[i]. When both fields
@@ -75,21 +75,9 @@ import org.eclipse.swt.events.*;
*/
public class BidiSegmentEvent extends SegmentEvent {
- /**
- * line start offset
- */
- public int lineOffset;
-
- /**
- * line text
- */
- public String lineText;
-
- static final long serialVersionUID = 3257846571587547957L;
+ static final long serialVersionUID = -3712986188155944253L;
BidiSegmentEvent(StyledTextEvent e) {
super(e);
- lineOffset = e.detail;
- lineText = e.text;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java
index e1d9770623..1e7e196fc3 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java
@@ -26,8 +26,8 @@ public interface BidiSegmentListener extends SWTEventListener {
* The following event fields are used:<ul>
* <li>event.lineOffset line start offset (input)</li>
* <li>event.lineText line text (input)</li>
- * <li>event.segments text segments that should be reordered
- * separately. (output)</li>
+ * <li>event.segments text segments that should be reordered separately (output)</li>
+ * <li>event.segmentsChars characters that should be inserted (output)</li>
* </ul>
*
* @param event the given event
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java
index 98ee4ef27e..435fa651c1 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java
@@ -29,9 +29,6 @@ class StyledTextEvent extends Event {
int[] tabStops;
// used by LineBackgroundEvent
Color lineBackground;
- // used by BidiSegmentEvent
- int[] segments;
- char[] segmentsChars;
// used by TextChangedEvent
int replaceCharCount;
int newCharCount;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Text.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Text.java
index 27e5184e07..89e448a148 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Text.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Text.java
@@ -190,6 +190,12 @@ public void addModifyListener (ModifyListener listener) {
addListener (SWT.Modify, typedListener);
}
+public void addSegmentListener (SegmentListener listener) {
+ checkWidget ();
+ if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
+ addListener (SWT.Segments, new TypedListener (listener));
+}
+
/**
* Adds the listener to the collection of listeners who will
* be notified when the control is selected by the user, by sending
@@ -1457,6 +1463,12 @@ public void removeModifyListener (ModifyListener listener) {
eventTable.unhook (SWT.Modify, listener);
}
+public void removeSegmentListener (SegmentListener listener) {
+ checkWidget ();
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ eventTable.unhook (SWT.Segments, listener);
+}
+
/**
* Removes the listener from the collection of listeners who will
* be notified when the control is selected by the user.
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
index 16c287e1f6..ca2a46a3fd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
@@ -749,7 +749,7 @@ public class SWT {
public static final int Gesture = 48;
/**
- * The get segments event type (value is 49).
+ * The segments event type (value is 49).
*
* <p>
* This event is sent when text content has been changed.
@@ -764,7 +764,7 @@ public class SWT {
*
* @since 3.8
*/
- public static final int GetSegments = 49;
+ public static final int Segments = 49;
/* Event Details */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentEvent.java b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentEvent.java
index 9cdc0ca1a3..99d1b0f312 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentEvent.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentEvent.java
@@ -70,26 +70,32 @@ import org.eclipse.swt.widgets.Event;
*/
public class SegmentEvent extends TypedEvent {
- /**
- * Text with respect to which segments are calculated
+
+ /**
+ * The start offset of the <code>lineText</code> relative to text (always zero for single line widget)
*/
- public String text;
+ public int lineOffset;
+
+ /**
+ * Text used to calculate the segments
+ */
+ public String lineText;
/**
- * Text ranges that should be treated as separate segments (e.g. for bidi
- * reordering)
+ * Text ranges that should be treated as separate segments (e.g. for bidi reordering)
*/
public int[] segments;
/**
- * Characters to be used in the segment boundaries (optional)
+ * Characters to be used in the segment boundaries (optional)
*/
public char[] segmentsChars;
- private static final long serialVersionUID = -89306787890624323L;
-
+ static final long serialVersionUID = -2414889726745247762L;
+
public SegmentEvent(Event e) {
super(e);
- text = e.text;
+ lineText = e.text;
+ lineOffset = e.detail;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentListener.java b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentListener.java
index 5fa2be3f81..9b7ec29018 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentListener.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SegmentListener.java
@@ -24,8 +24,9 @@ public interface SegmentListener extends SWTEventListener {
* <p>
* The following event fields are used:<ul>
* <li>event.text text content (input)</li>
- * <li>event.segmentsChars characters that should be inserted</li>
- * <li>event.segments text offsets for segment characters</li></ul>
+ * <li>event.segmentsChars characters that should be inserted (output)</li>
+ * <li>event.segments text offsets for segment characters (output)</li>
+ * </ul>
*
* @param event the given event
* @see SegmentEvent
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/TypedListener.java b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/TypedListener.java
index 373dc389ec..ca560377ca 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/TypedListener.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/TypedListener.java
@@ -149,13 +149,6 @@ public void handleEvent (Event e) {
e.doit = event.doit;
break;
}
- case SWT.GetSegments: {
- SegmentEvent event = new SegmentEvent(e);
- ((SegmentListener) eventListener).getSegments(event);
- e.segments = event.segments;
- e.segmentsChars = event.segmentsChars;
- break;
- }
case SWT.Help: {
((HelpListener) eventListener).helpRequested (new HelpEvent (e));
break;
@@ -241,6 +234,13 @@ public void handleEvent (Event e) {
((ControlListener) eventListener).controlResized(new ControlEvent(e));
break;
}
+ case SWT.Segments: {
+ SegmentEvent event = new SegmentEvent(e);
+ ((SegmentListener) eventListener).getSegments(event);
+ e.segments = event.segments;
+ e.segmentsChars = event.segmentsChars;
+ break;
+ }
case SWT.Selection: {
/* Fields set by Sash */
SelectionEvent event = new SelectionEvent (e);
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 741822eb6c..aa1a2bc350 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
@@ -265,7 +265,7 @@ public void addModifyListener (ModifyListener listener) {
public void addSegmentListener (SegmentListener listener) {
checkWidget ();
if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
- addListener (SWT.GetSegments, new TypedListener (listener));
+ addListener (SWT.Segments, new TypedListener (listener));
}
/**
@@ -361,18 +361,18 @@ public void append (String string) {
int /*long*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
}
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
void applySegments () {
- if (!hooks (SWT.GetSegments) && !filters (SWT.GetSegments)) return;
+ if (!hooks (SWT.Segments) && !filters (SWT.Segments)) return;
Event event = new Event ();
String string = getText ();
event.text = string;
event.segments = segments;
- sendEvent (SWT.GetSegments, event);
+ sendEvent (SWT.Segments, event);
segments = event.segments;
if (segments == null) return;
int nSegments = segments.length;
@@ -397,6 +397,8 @@ void applySegments () {
separator [0] = segmentsChars [i];
}
byte [] buffer = Converter.wcsToMbcs (null, separator, false);
+ int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+ pos = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, pos);
OS.gtk_editable_insert_text (handle, buffer, buffer.length, pos);
}
OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
@@ -405,8 +407,13 @@ void applySegments () {
OS.g_signal_handlers_block_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
OS.g_signal_handlers_block_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, TEXT_BUFFER_INSERT_TEXT);
byte [] pos = new byte [ITER_SIZEOF];
+ byte [] startIter = new byte [ITER_SIZEOF];
+ byte [] endIter = new byte [ITER_SIZEOF];
for (int i = 0; i < nSegments; i++) {
- OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, pos, segments[i] + i);
+ OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+ int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+ OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, pos, (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, segments[i] + i));
+ OS.g_free (ptr);
if (segmentsChars != null && segmentsChars.length > i) {
separator [0] = segmentsChars [i];
}
@@ -427,8 +434,12 @@ void clearSegments (boolean applyText) {
OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
if (applyText) {
OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_TEXT);
+ int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+ int start, end;
for (int i = 0; i < nSegments; i++) {
- OS.gtk_editable_delete_text (handle, segments[i], segments[i] + 1);
+ start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, segments[i]);
+ end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, segments[i] + 1);
+ OS.gtk_editable_delete_text (handle, start, end);
}
OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_TEXT);
}
@@ -439,10 +450,14 @@ void clearSegments (boolean applyText) {
OS.g_signal_handlers_block_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
OS.g_signal_handlers_block_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_RANGE);
byte [] start = new byte [ITER_SIZEOF], end = new byte [ITER_SIZEOF];
+ byte [] startIter = new byte [ITER_SIZEOF], endIter = new byte [ITER_SIZEOF];
for (int i = 0; i < nSegments; i++) {
- OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, start, segments[i]);
- OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, end, segments[i] + 1);
+ OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+ int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+ OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, start, (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, segments[i]));
+ OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, end, (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, segments[i] + 1));
OS.gtk_text_buffer_delete (bufferHandle, start, end);
+ OS.g_free (ptr);
}
OS.g_signal_handlers_unblock_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_RANGE);
OS.g_signal_handlers_unblock_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
@@ -565,7 +580,7 @@ public void copy () {
clearSegments (true);
}
OS.gtk_text_buffer_copy_clipboard (bufferHandle, clipboard);
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
@@ -593,7 +608,7 @@ public void cut () {
clearSegments (true);
}
OS.gtk_text_buffer_cut_clipboard (bufferHandle, clipboard, OS.gtk_text_view_get_editable (handle));
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
@@ -1660,7 +1675,7 @@ int /*long*/ gtk_insert_text (int /*long*/ widget, int /*long*/ new_text, int /*
int /*long*/ gtk_key_press_event (int /*long*/ widget, int /*long*/ event) {
boolean handleSegments = false, segmentsCleared = false;
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
GdkEventKey gdkEvent = new GdkEventKey ();
OS.memmove (gdkEvent, event, GdkEventKey.sizeof);
if (gdkEvent.length > 0 && (gdkEvent.state & (OS.GDK_MOD1_MASK | OS.GDK_CONTROL_MASK)) == 0) {
@@ -1809,7 +1824,7 @@ public void insert (String string) {
int /*long*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
}
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
@@ -1858,7 +1873,7 @@ public void paste () {
clearSegments (true);
}
OS.gtk_text_buffer_paste_clipboard (bufferHandle, clipboard, null, OS.gtk_text_view_get_editable (handle));
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
@@ -1916,7 +1931,7 @@ public void removeModifyListener (ModifyListener listener) {
public void removeSegmentListener (SegmentListener listener) {
checkWidget ();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- eventTable.unhook (SWT.GetSegments, listener);
+ eventTable.unhook (SWT.Segments, listener);
}
/**
@@ -2394,7 +2409,7 @@ void setText (char [] text) {
OS.gtk_entry_set_icon_sensitive (handle, OS.GTK_ENTRY_ICON_SECONDARY, true);
}
}
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
@@ -2553,7 +2568,7 @@ String verifyText (String string, int start, int end) {
}
int /*long*/ windowProc (int /*long*/ handle, int /*long*/ user_data) {
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
switch ((int)/*64*/user_data) {
case BACKSPACE:
case COPY_CLIPBOARD:
@@ -2575,7 +2590,7 @@ int /*long*/ windowProc (int /*long*/ handle, int /*long*/ user_data) {
}
int /*long*/ windowProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ user_data) {
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
switch ((int)/*64*/user_data) {
case DIRECTION_CHANGED: {
if (segments != null) clearSegments (true);
@@ -2588,7 +2603,7 @@ int /*long*/ windowProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ us
}
int /*long*/ windowProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ arg1, int /*long*/ user_data) {
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
switch ((int)/*64*/user_data) {
case DELETE_FROM_CURSOR: {
if (segments != null) clearSegments (true);
@@ -2604,7 +2619,7 @@ int /*long*/ windowProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ ar
}
int /*long*/ windowProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ arg1, int /*long*/ arg2, int /*long*/ user_data) {
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
switch ((int)/*64*/user_data) {
case MOVE_CURSOR: {
if (arg0 == OS.GTK_MOVEMENT_VISUAL_POSITIONS && segments != null) clearSegments (true);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Text.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Text.java
index f7366cf6c1..78b6b271a5 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Text.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Text.java
@@ -61,7 +61,6 @@ public class Text extends Scrollable {
int[] segments;
int clearSegmentsCount = 0;
- // XXX The following two variables are also required for other widgets, move them to some shared space
static final char LTR_MARK = '\u200e';
static final char RTL_MARK = '\u200f';
@@ -343,7 +342,7 @@ public void addModifyListener (ModifyListener listener) {
public void addSegmentListener (SegmentListener listener) {
checkWidget ();
if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
- addListener (SWT.GetSegments, new TypedListener (listener));
+ addListener (SWT.Segments, new TypedListener (listener));
}
/**
@@ -435,7 +434,7 @@ public void append (String string) {
if (string == null) return;
}
OS.SendMessage (handle, OS.EM_SETSEL, length, length);
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
clearSegments (true);
}
TCHAR buffer = new TCHAR (getCodePage (), string, true);
@@ -454,14 +453,14 @@ public void append (String string) {
OS.SendMessage (handle, OS.EM_REPLACESEL, 0, buffer);
ignoreCharacter = false;
OS.SendMessage (handle, OS.EM_SCROLLCARET, 0, 0);
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
void applySegments () {
if (--clearSegmentsCount != 0) return;
- if (!hooks (SWT.GetSegments) && !filters (SWT.GetSegments)) return;
+ if (!hooks (SWT.Segments) && !filters (SWT.Segments)) return;
int length = OS.GetWindowTextLength (handle);
int cp = getCodePage ();
TCHAR buffer = new TCHAR (cp, length + 1);
@@ -471,7 +470,7 @@ void applySegments () {
Event event = new Event ();
event.text = string;
event.segments = segments;
- sendEvent (SWT.GetSegments, event);
+ sendEvent (SWT.Segments, event);
segments = event.segments;
if (segments == null) return;
int nSegments = segments.length;
@@ -1515,7 +1514,7 @@ public void insert (String string) {
string = verifyText (string, start [0], end [0], null);
if (string == null) return;
}
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
clearSegments (true);
}
TCHAR buffer = new TCHAR (getCodePage (), string, true);
@@ -1533,7 +1532,7 @@ public void insert (String string) {
ignoreCharacter = true;
OS.SendMessage (handle, OS.EM_REPLACESEL, 0, buffer);
ignoreCharacter = false;
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
applySegments ();
}
}
@@ -1652,7 +1651,7 @@ public void removeModifyListener (ModifyListener listener) {
public void removeSegmentListener (SegmentListener listener) {
checkWidget ();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- eventTable.unhook (SWT.GetSegments, listener);
+ eventTable.unhook (SWT.Segments, listener);
}
/**
@@ -2242,7 +2241,7 @@ public void setText (String string) {
string = verifyText (string, 0, length, null);
if (string == null) return;
}
- boolean processSegments = segments != null || hooks (SWT.GetSegments) || filters (SWT.GetSegments);
+ boolean processSegments = segments != null || hooks (SWT.Segments) || filters (SWT.Segments);
if (processSegments) clearSegments (false);
int limit = (int)/*64*/OS.SendMessage (handle, OS.EM_GETLIMITTEXT, 0, 0) & 0x7FFFFFFF;
if (string.length () > limit) string = string.substring (0, limit);
@@ -2293,7 +2292,7 @@ public void setTextChars (char[] text) {
text = new char [string.length()];
string.getChars (0, text.length, text, 0);
}
- boolean processSegments = segments != null || hooks (SWT.GetSegments) || filters (SWT.GetSegments);
+ boolean processSegments = segments != null || hooks (SWT.Segments) || filters (SWT.Segments);
if (processSegments) clearSegments (false);
int limit = (int)/*64*/OS.SendMessage (handle, OS.EM_GETLIMITTEXT, 0, 0) & 0x7FFFFFFF;
if (text.length > limit) {
@@ -2536,7 +2535,7 @@ int /*long*/ windowProc () {
int /*long*/ windowProc (int /*long*/ hwnd, int msg, int /*long*/ wParam, int /*long*/ lParam) {
boolean processSegments = false, redraw = false;
int /*long*/ code;
- if (hooks (SWT.GetSegments) || filters (SWT.GetSegments)) {
+ if (hooks (SWT.Segments) || filters (SWT.Segments)) {
switch (msg) {
case OS.EM_UNDO:
case OS.WM_UNDO: