comparison org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/TextTransfer.d @ 52:fa9548cd8d89

[swt lin]
author Frank Benoit <benoit@tionex.de>
date Fri, 27 Mar 2009 20:14:07 +0100
parents f713da8bc051
children
comparison
equal deleted inserted replaced
51:c01d033c633a 52:fa9548cd8d89
75 override public void javaToNative (Object object, TransferData transferData) { 75 override public void javaToNative (Object object, TransferData transferData) {
76 transferData.result = 0; 76 transferData.result = 0;
77 if (!checkText(object) || !isSupportedType(transferData)) { 77 if (!checkText(object) || !isSupportedType(transferData)) {
78 DND.error(DND.ERROR_INVALID_DATA); 78 DND.error(DND.ERROR_INVALID_DATA);
79 } 79 }
80 String string = (cast(ArrayWrapperString)object).array; 80 String string = stringcast(object);
81 char* utf8 = toStringz(string); 81 char* utf8 = toStringz(string);
82 if (transferData.type is cast(void*) COMPOUND_TEXT_ID) { 82 if (transferData.type is cast(void*) COMPOUND_TEXT_ID) {
83 void* encoding; 83 void* encoding;
84 int format; 84 int format;
85 char* ctext; 85 char* ctext;
106 if (transferData.type is cast(void*)STRING_ID) { 106 if (transferData.type is cast(void*)STRING_ID) {
107 auto string_target = OS.gdk_utf8_to_string_target(utf8); 107 auto string_target = OS.gdk_utf8_to_string_target(utf8);
108 if (string_target is null) return; 108 if (string_target is null) return;
109 transferData.type = cast(void*)STRING_ID; 109 transferData.type = cast(void*)STRING_ID;
110 transferData.format = 8; 110 transferData.format = 8;
111 transferData.length = tango.stdc.string.strlen(string_target); 111 transferData.length = OS.strlen(string_target);
112 transferData.pValue = string_target; 112 transferData.pValue = string_target;
113 transferData.result = 1; 113 transferData.result = 1;
114 } 114 }
115 } 115 }
116 116
126 override public Object nativeToJava(TransferData transferData){ 126 override public Object nativeToJava(TransferData transferData){
127 if (!isSupportedType(transferData) || transferData.pValue is null) return null; 127 if (!isSupportedType(transferData) || transferData.pValue is null) return null;
128 char** list; 128 char** list;
129 int count = OS.gdk_text_property_to_utf8_list(transferData.type, transferData.format, transferData.pValue, transferData.length, &list); 129 int count = OS.gdk_text_property_to_utf8_list(transferData.type, transferData.format, transferData.pValue, transferData.length, &list);
130 if (count is 0) return null; 130 if (count is 0) return null;
131 String utf8 = fromStringz( list[0] ).dup; 131 String utf8 = fromStringz( list[0] )._idup();
132 OS.g_strfreev(list); 132 OS.g_strfreev(list);
133 return new ArrayWrapperString( utf8 ); 133 return new ArrayWrapperString( utf8 );
134 } 134 }
135 135
136 override protected int[] getTypeIds() { 136 override protected int[] getTypeIds() {