Mercurial > projects > dwt2
comparison org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CCombo.d @ 120:536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
===D2===
* added [Try]Immutable/Const/Shared templates to work with differenses in D1/D2 instead of version statements
used these templates to work with strict type storage rules of dmd-2.053
* com.ibm.icu now also compilable with D2, but not tested yet
* small fixes
Snippet288 - shared data is in TLS
===Phobos===
* fixed critical bugs in Phobos implemention
completely incorrect segfault prone fromStringz (Linux's port ruthless killer)
terrible, incorrect StringBuffer realization (StyledText killer)
* fixed small bugs as well
Snippet72 - misprint in the snippet
* implemented missed functionality for Phobos
ByteArrayOutputStream implemented (image loading available)
formatting correctly works for all DWT's cases
As a result, folowing snippets now works with Phobos (Snippet### - what is fixed):
Snippet24, 42, 111, 115, 130, 235, 276 - bad string formatting
Snippet48, 282 - crash on image loading
Snippet163, 189, 211, 213, 217, 218, 222 - crash on copy/cut in StyledText
Snippet244 - hang-up
===Tango===
* few changes for the latest Tango trunc-r5661
* few small performance improvments
===General===
* implMissing-s for only one version changed to implMissingInTango/InPhobos
* incorrect calls to Format in toString-s fixed
* fixed loading \uXXXX characters in ResourceBundle
* added good UTF-8 support for StyledText, TextLayout (Win32) and friends
UTF functions revised and tested. It is now in java.nonstandard.*Utf modules
StyledText and TextLayout (Win32) modules revised for UTF-8 support
* removed small diferences in most identical files in *.swt.* folders
*.swt.internal.image, *.swt.events and *.swt.custom are identical in Win32/Linux32
now 179 of 576 (~31%) files in *.swt.* folders are fully identical
* Win32: snippets now have right subsystem, pretty icons and native system style controls
* small fixes in snippets
Snippet44 - it's not Snippet44
Snippet212 - functions work with different images and offsets arrays
Win32: Snippet282 - crash on close if the button has an image
Snippet293 - setGrayed is commented
and others
Win32: As a result, folowing snippets now works
Snippet68 - color doesn't change
Snippet163, 189, 211, 213, 217, 218, 222 - UTF-8 issues (see above)
Snippet193 - no tabel headers
author | Denis Shelomovskij <verylonglogin.reg@gmail.com> |
---|---|
date | Sat, 09 Jul 2011 15:50:20 +0300 |
parents | 2847134a5fc0 |
children |
comparison
equal
deleted
inserted
replaced
119:d00e8db0a568 | 120:536e43f63c81 |
---|---|
46 import org.eclipse.swt.widgets.Text; | 46 import org.eclipse.swt.widgets.Text; |
47 import org.eclipse.swt.widgets.TypedListener; | 47 import org.eclipse.swt.widgets.TypedListener; |
48 import org.eclipse.swt.widgets.Widget; | 48 import org.eclipse.swt.widgets.Widget; |
49 | 49 |
50 import java.lang.all; | 50 import java.lang.all; |
51 import java.lang.Runnable; | 51 import java.nonstandard.UnsafeUtf; |
52 | 52 |
53 /** | 53 /** |
54 * The CCombo class represents a selectable user interface object | 54 * The CCombo class represents a selectable user interface object |
55 * that combines a text field and a list and issues notification | 55 * that combines a text field and a list and issues notification |
56 * when an item is selected from the list. | 56 * when an item is selected from the list. |
575 /* | 575 /* |
576 * Return the lowercase of the first non-'&' character following | 576 * Return the lowercase of the first non-'&' character following |
577 * an '&' character in the given string. If there are no '&' | 577 * an '&' character in the given string. If there are no '&' |
578 * characters in the given string, return '\0'. | 578 * characters in the given string, return '\0'. |
579 */ | 579 */ |
580 dchar _findMnemonic (String string) { | 580 dchar _findMnemonic (String str) { |
581 if (string is null) return '\0'; | 581 if (str is null) return '\0'; |
582 int index = 0; | 582 int index = 0; |
583 int length = string.length; | 583 int length = str.length; |
584 do { | 584 do { |
585 while (index < length && string[index] !is '&') index++; | 585 while (index < length && str[index] !is '&') index++; |
586 if (++index >= length) return '\0'; | 586 if (++index >= length) return '\0'; |
587 dchar c = string[index..$].firstCodePoint(); | 587 if (str[index] !is '&') return Character.toLowerCase( str.dcharAt(index) ); |
588 if (c !is '&') { | |
589 return Character.toLowerCase(c); | |
590 } | |
591 index++; | 588 index++; |
592 } while (index < length); | 589 } while (index < length); |
593 return '\0'; | 590 return '\0'; |
594 } | 591 } |
595 /* | 592 /* |
1160 * it again. To prevent the popup from showing again, we will let the selection | 1157 * it again. To prevent the popup from showing again, we will let the selection |
1161 * event of the arrow button hide the popup. | 1158 * event of the arrow button hide the popup. |
1162 * In Windows, hiding the popup during the deactivate causes the deactivate | 1159 * In Windows, hiding the popup during the deactivate causes the deactivate |
1163 * to be called twice and the selection event to be disappear. | 1160 * to be called twice and the selection event to be disappear. |
1164 */ | 1161 */ |
1165 if (!"carbon".equals(SWT.getPlatform())) { | 1162 if ("carbon" != (SWT.getPlatform())) { |
1166 Point point = arrow.toControl(getDisplay().getCursorLocation()); | 1163 Point point = arrow.toControl(getDisplay().getCursorLocation()); |
1167 Point size = arrow.getSize(); | 1164 Point size = arrow.getSize(); |
1168 Rectangle rect = new Rectangle(0, 0, size.x, size.y); | 1165 Rectangle rect = new Rectangle(0, 0, size.x, size.y); |
1169 if (!rect.contains(point)) dropDown (false); | 1166 if (!rect.contains(point)) dropDown (false); |
1170 } else { | 1167 } else { |