summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DateTime.java81
1 files changed, 40 insertions, 41 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DateTime.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DateTime.java
index 0790957d09..86fbd53bb7 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DateTime.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DateTime.java
@@ -150,11 +150,11 @@ void createSpinText (boolean dropDown) { // FOR SPINNER
});
createDropDownButton();
createPopupShell(-1, -1, -1);
- setSpinText(dateTimeString);
+ setText(dateTimeString);
} else { /*SWT.TIME and SWT.DATE */
if (dateTimeString != null) {
- setSpinText(dateTimeString);
- selectSpinField(0); // set focus on first field
+ setText(dateTimeString);
+ selectField(0); // set focus on first field
}
}
}
@@ -1409,13 +1409,12 @@ boolean onTextVerify(int key) {
int length = end - start;
char keyChar = (char) key;
String newText =""+ keyChar;
- System.out.println(newText);
if (fieldName == Calendar.AM_PM) {
String[] ampm = formatSymbols.getAmPmStrings();
if (newText.equalsIgnoreCase(ampm[Calendar.AM].substring(0, 1)) || newText.equalsIgnoreCase(ampm[Calendar.AM])) {
- setSpinTextField(fieldName, Calendar.AM, true, false);
+ setTextField(fieldName, Calendar.AM, true, false);
} else if (newText.equalsIgnoreCase(ampm[Calendar.PM].substring(0, 1)) || newText.equalsIgnoreCase(ampm[Calendar.PM])) {
- setSpinTextField(fieldName, Calendar.PM, true, false);
+ setTextField(fieldName, Calendar.PM, true, false);
}
return false;
}
@@ -1441,9 +1440,9 @@ boolean onTextVerify(int key) {
return false;
}
if (first && newValue == 0 && length > 1) {
- setSpinTextField(fieldName, newValue, false, false);
+ setTextField(fieldName, newValue, false, false);
} else if (min <= newValue && newValue <= max) {
- setSpinTextField(fieldName, newValue, characterCount == 0, characterCount == 0);
+ setTextField(fieldName, newValue, characterCount == 0, characterCount == 0);
} else {
if (newTextLength >= length) {
newText = newText.substring(newTextLength - length + 1);
@@ -1451,7 +1450,7 @@ boolean onTextVerify(int key) {
if (newValue != -1) {
characterCount = length - 1;
if (min <= newValue && newValue <= max) {
- setSpinTextField(fieldName, newValue, characterCount == 0, true);
+ setTextField(fieldName, newValue, characterCount == 0, true);
}
}
}
@@ -1462,7 +1461,7 @@ boolean onTextVerify(int key) {
String getSpinText (int start, int end) {
checkWidget ();
if (!(start <= end && 0 <= end)) return "";
- String str = getSpinText ();
+ String str = getText ();
int length = str.length ();
end = Math.min (end, length - 1);
if (start > end) return "";
@@ -1496,7 +1495,7 @@ void updateControl() {
if (((style & SWT.CALENDAR) == 0) && handle != 0) {
String string = getFormattedString(style);
ignoreVerify = true;
- setSpinText(string);
+ setText(string);
ignoreVerify = false;
}
redraw();
@@ -1566,8 +1565,8 @@ void createSpinHandle () {
* Calculates appropriate width of GtkEntry and
* adds Date/Time string to the Date/Time Spinner
*/
-void setSpinText (String text) {
- if ((style & SWT.DROP_DOWN) == 0 ) {
+void setText (String text) {
+ if ((style & SWT.DROP_DOWN) == 0 ) { // Drop down button implemention is not based on GtkSpinButton
OS.gtk_spin_button_set_numeric (handle, false);
}
if (text != null){
@@ -1590,8 +1589,8 @@ long /*int*/ gtk_key_press_event (long /*int*/ widget, long /*int*/ event) {
Only drop_down should be hooked to keys, thus when spinner is used up is not called twice
on key_press and on gtk_output*/
if((style & SWT.DROP_DOWN) != 0) {
- incrementSpinField(+1);
- commitCurrentSpinField();
+ incrementField(+1);
+ commitCurrentField();
}
break;
case OS.GDK_Down:
@@ -1599,29 +1598,29 @@ long /*int*/ gtk_key_press_event (long /*int*/ widget, long /*int*/ event) {
Only drop_down should be hooked to keys, thus when spinner is used up is not called twice
on key_press and on gtk_output*/
if((style & SWT.DROP_DOWN) != 0) {
- incrementSpinField(-1);
- commitCurrentSpinField();
+ incrementField(-1);
+ commitCurrentField();
}
break;
case SWT.KEYPAD_DIVIDE:
case OS.GDK_Right:
- selectSpinField((currentField + 1) % fieldCount);
+ selectField((currentField + 1) % fieldCount);
sendEvent(SWT.Traverse);
break;
case OS.GDK_Left:
int index = currentField - 1;
- selectSpinField(index < 0 ? fieldCount - 1 : index);
+ selectField(index < 0 ? fieldCount - 1 : index);
sendEvent(SWT.Traverse);
break;
case OS.GDK_Home:
/* Set the value of the current field to its minimum */
fieldName = fieldNames[currentField];
- setSpinTextField(fieldName, calendar.getActualMinimum(fieldName), true, true);
+ setTextField(fieldName, calendar.getActualMinimum(fieldName), true, true);
break;
case OS.GDK_End:
/* Set the value of the current field to its maximum */
fieldName = fieldNames[currentField];
- setSpinTextField(fieldName, calendar.getActualMaximum(fieldName), true, true);
+ setTextField(fieldName, calendar.getActualMaximum(fieldName), true, true);
break;
default:
if (!onTextVerify(key))
@@ -1632,17 +1631,17 @@ long /*int*/ gtk_key_press_event (long /*int*/ widget, long /*int*/ event) {
return result;
}
-void commitCurrentSpinField() {
+void commitCurrentField() {
if (characterCount > 0) {
characterCount = 0;
int fieldName = fieldNames[currentField];
int start = fieldIndices[currentField].x;
int end = fieldIndices[currentField].y;
- String value = getSpinText(getSpinText(),start, end - 1);
+ String value = getText(getText(),start, end - 1);
int s = value.lastIndexOf(' ');
if (s != -1) value = value.substring(s + 1);
int newValue = unformattedIntValue(fieldName, value, characterCount == 0, calendar.getActualMaximum(fieldName));
- if (newValue != -1) setSpinTextField(fieldName, newValue, true, true);
+ if (newValue != -1) setTextField(fieldName, newValue, true, true);
}
}
/** returns selected text **/
@@ -1672,7 +1671,7 @@ Point getSelection () {
* <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
* </ul>
*/
-String getSpinText () {
+String getText () {
checkWidget();
if (handle != 0) {
long /*int*/ str = OS.gtk_entry_get_text (handle);
@@ -1689,7 +1688,7 @@ String getSpinText () {
* returns GtkEntry starting from index and ending with index
* provided by the user
*/
-String getSpinText (String str,int start, int end) {
+String getText (String str,int start, int end) {
checkWidget ();
if (!(start <= end && 0 <= end)) return "";
int length = str.length ();
@@ -1714,9 +1713,9 @@ void setSelection (int start, int end) {
}
-void selectSpinField(int index) {
+void selectField(int index) {
if (index != currentField) {
- commitCurrentSpinField();
+ commitCurrentField();
}
final int start = fieldIndices[index].x;
final int end = fieldIndices[index].y;
@@ -1726,7 +1725,7 @@ void selectSpinField(int index) {
display.asyncExec(new Runnable() {
public void run() {
if (handle != 0) {
- String value = getSpinText(getSpinText(),start, end - 1);
+ String value = getText(getText(),start, end - 1);
int s = value.lastIndexOf(' ');
if (s == -1) s = start;
else s = start + s + 1;
@@ -1736,7 +1735,7 @@ void selectSpinField(int index) {
});
}
-void setSpinTextField(int fieldName, int value, boolean commit, boolean adjust) {
+void setTextField(int fieldName, int value, boolean commit, boolean adjust) {
if (commit) {
int max = calendar.getActualMaximum(fieldName);
int min = calendar.getActualMinimum(fieldName);
@@ -1774,11 +1773,11 @@ void setSpinTextField(int fieldName, int value, boolean commit, boolean adjust)
ignoreVerify = true;
insert(newValue);
ignoreVerify = false;
- selectSpinField(currentField);
+ selectField(currentField);
if (commit) setField(fieldName, value);
}
-void incrementSpinField(int amount) {
+void incrementField(int amount) {
int fieldName = fieldNames[currentField];
int value = calendar.get(fieldName);
if (fieldName == Calendar.HOUR) {
@@ -1787,11 +1786,11 @@ void incrementSpinField(int amount) {
if ((value == max && amount == 1) || (value == min && amount == -1)) {
int temp = currentField;
currentField = getFieldIndex(Calendar.AM_PM);
- setSpinTextField(Calendar.AM_PM, (calendar.get(Calendar.AM_PM) + 1) % 2, true, true);
+ setTextField(Calendar.AM_PM, (calendar.get(Calendar.AM_PM) + 1) % 2, true, true);
currentField = temp;
}
}
- setSpinTextField(fieldName, value + amount, true, true);
+ setTextField(fieldName, value + amount, true, true);
}
long /*int*/ gtk_button_press_event (long /*int*/ widget, long /*int*/ event) {
@@ -1799,7 +1798,7 @@ long /*int*/ gtk_button_press_event (long /*int*/ widget, long /*int*/ event) {
GdkEventButton gdkEvent = new GdkEventButton ();
OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
if (gdkEvent.type == OS.GDK_BUTTON_PRESS && gdkEvent.button == 1) {
- onSpinTextMouseClick(gdkEvent);
+ onTextMouseClick(gdkEvent);
return gtk_button_press_event(widget, event, false);
}
}
@@ -1816,12 +1815,12 @@ long /*int*/ gtk_output (long /*int*/ widget) {
int arrowType = getArrow(widget);
switch (arrowType) {
case SWT.ARROW_UP:
- commitCurrentSpinField();
- incrementSpinField(+1);
+ commitCurrentField();
+ incrementField(+1);
break;
case SWT.ARROW_DOWN:
- commitCurrentSpinField();
- incrementSpinField(-1);
+ commitCurrentField();
+ incrementField(-1);
break;
}
return 1;
@@ -1838,7 +1837,7 @@ void insert (String string) {
OS.gtk_editable_set_position (handle, start [0]);
}
-void onSpinTextMouseClick(GdkEventButton event) {
+void onTextMouseClick(GdkEventButton event) {
Point sel = getSelection();
for (int i = 0; i < fieldCount; i++) {
if (sel.x >= fieldIndices[i].x && sel.x <= fieldIndices[i].y) {
@@ -1846,7 +1845,7 @@ void onSpinTextMouseClick(GdkEventButton event) {
break;
}
}
- selectSpinField(currentField);
+ selectField(currentField);
}
void hideDateTime () {