diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java | 103 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java | 174 |
2 files changed, 0 insertions, 277 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java index 92ac09fbcd..b6979e12a8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java @@ -115,12 +115,7 @@ public String getMessage () { * </ul> */ public String open () { - boolean useChooserDialog = OS.GTK_VERSION >= OS.VERSION (2, 4, 10); - if (useChooserDialog) { return openChooserDialog (); - } else { - return openClassicDialog (); - } } String openChooserDialog () { byte [] titleBytes = Converter.wcsToMbcs (null, title, true); @@ -225,104 +220,6 @@ String openChooserDialog () { OS.gtk_widget_destroy (handle); return answer; } -String openClassicDialog () { - byte [] titleBytes = Converter.wcsToMbcs (null, title, true); - int /*long*/ handle = OS.gtk_file_selection_new (titleBytes); - if (parent != null) { - int /*long*/ shellHandle = parent.topHandle (); - OS.gtk_window_set_transient_for (handle, shellHandle); - int /*long*/ pixbufs = OS.gtk_window_get_icon_list (shellHandle); - if (pixbufs != 0) { - OS.gtk_window_set_icon_list (handle, pixbufs); - OS.g_list_free (pixbufs); - } - } - OS.gtk_window_set_modal (handle, true); - String answer = null; - if (filterPath != null) { - String path = filterPath; - if (path.length () > 0 && !path.endsWith (SEPARATOR)) { - path += SEPARATOR; - } - int length = path.length (); - char [] buffer = new char [length + 1]; - path.getChars (0, length, buffer, 0); - int /*long*/ utf8Ptr = OS.g_utf16_to_utf8 (buffer, -1, null, null, null); - int /*long*/ fileNamePtr = OS.g_filename_from_utf8 (utf8Ptr, -1, null, null, null); - OS.gtk_file_selection_set_filename (handle, fileNamePtr); - OS.g_free (utf8Ptr); - OS.g_free (fileNamePtr); - } - GtkFileSelection selection = new GtkFileSelection (); - OS.memmove (selection, handle); - OS.gtk_file_selection_hide_fileop_buttons (handle); - int /*long*/ fileListParent = OS.gtk_widget_get_parent (selection.file_list); - OS.gtk_widget_hide (selection.file_list); - OS.gtk_widget_hide (fileListParent); - if (message.length () > 0) { - byte [] buffer = Converter.wcsToMbcs (null, message, true); - int /*long*/ labelHandle = OS.gtk_label_new (buffer); - OS.gtk_label_set_line_wrap (labelHandle, true); - OS.gtk_misc_set_alignment (labelHandle, 0.0f, 0.0f); - OS.gtk_container_add (selection.main_vbox, labelHandle); - OS.gtk_box_set_child_packing ( - selection.main_vbox, labelHandle, false, false, 0, OS.GTK_PACK_START); - OS.gtk_widget_show (labelHandle); - } - Display display = parent != null ? parent.getDisplay (): Display.getCurrent (); - display.addIdleProc (); - Dialog oldModal = null; - if (OS.gtk_window_get_modal (handle)) { - oldModal = display.getModalDialog (); - display.setModalDialog (this); - } - int signalId = 0; - int /*long*/ hookId = 0; - if ((style & SWT.RIGHT_TO_LEFT) != 0) { - signalId = OS.g_signal_lookup (OS.map, OS.GTK_TYPE_WIDGET()); - hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0); - } - int response = OS.gtk_dialog_run (handle); - /* - * This call to gdk_threads_leave() is a temporary work around - * to avoid deadlocks when gdk_threads_init() is called by native - * code outside of SWT (i.e AWT, etc). It ensures that the current - * thread leaves the GTK lock acquired by the function above. - */ - OS.gdk_threads_leave(); - if ((style & SWT.RIGHT_TO_LEFT) != 0) { - OS.g_signal_remove_emission_hook (signalId, hookId); - } - if (OS.gtk_window_get_modal (handle)) { - display.setModalDialog (oldModal); - } - if (response == OS.GTK_RESPONSE_OK) { - int /*long*/ fileNamePtr = OS.gtk_file_selection_get_filename (handle); - int /*long*/ utf8Ptr = OS.g_filename_to_utf8 (fileNamePtr, -1, null, null, null); - if (utf8Ptr != 0) { - int /*long*/ [] items_written = new int /*long*/ [1]; - int /*long*/ utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null); - if (utf16Ptr != 0) { - int length = (int)/*64*/items_written [0]; - char [] buffer = new char [length]; - OS.memmove (buffer, utf16Ptr, length * 2); - String osAnswer = new String (buffer); - if (osAnswer != null) { - /* remove trailing separator, unless root directory */ - if (!osAnswer.equals (SEPARATOR) && osAnswer.endsWith (SEPARATOR)) { - osAnswer = osAnswer.substring (0, osAnswer.length () - 1); - } - answer = filterPath = osAnswer; - } - OS.g_free (utf16Ptr); - } - OS.g_free (utf8Ptr); - } - } - display.removeIdleProc (); - OS.gtk_widget_destroy (handle); - return answer; -} /** * Sets the path that the dialog will use to filter * the directories it shows to the argument, which may diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java index c20f9c59d1..0a0c755a20 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java @@ -215,91 +215,6 @@ String computeResultChooserDialog () { return fullPath; } -String computeResultClassicDialog () { - filterIndex = -1; - GtkFileSelection selection = new GtkFileSelection (); - OS.memmove (selection, handle); - int /*long*/ entry = selection.selection_entry; - int /*long*/ entryText = OS.gtk_entry_get_text (entry); - int entryLength = OS.strlen (entryText); - if (entryLength == 0) { - int /*long*/ fileList = selection.file_list; - int /*long*/ listSelection = OS.gtk_tree_view_get_selection (fileList); - int /*long*/[] model = new int /*long*/[1]; - int /*long*/ selectedList = OS.gtk_tree_selection_get_selected_rows (listSelection, model); - if (selectedList == 0) return null; - int listLength = OS.g_list_length (selectedList); - if (listLength == 0) { - OS.g_list_free (selectedList); - return null; - } - int /*long*/ path = OS.g_list_nth_data (selectedList, 0); - int /*long*/ [] ptr = new int /*long*/[1]; - int /*long*/ iter = OS.g_malloc (OS.GtkTreeIter_sizeof ()); - if (OS.gtk_tree_model_get_iter (model [0], iter, path)) { - OS.gtk_tree_model_get (model [0], iter, 0, ptr, -1); - } - OS.g_free (iter); - for (int i = 0; i < listLength; i++) { - OS.gtk_tree_path_free (OS.g_list_nth_data (selectedList, i)); - } - OS.g_list_free (selectedList); - if (ptr [0] == 0) return null; - int length = OS.strlen (ptr [0]); - byte [] buffer = new byte [length]; - OS.memmove (buffer, ptr [0], length); - OS.g_free (ptr [0]); - OS.gtk_entry_set_text (entry, buffer); - } - - int /*long*/ fileNamePtr = OS.gtk_file_selection_get_filename (handle); - int /*long*/ utf8Ptr = OS.g_filename_to_utf8 (fileNamePtr, -1, null, null, null); - int /*long*/ [] items_written = new int /*long*/ [1]; - int /*long*/ utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null); - entryLength = (int)/*64*/items_written [0]; - char [] buffer = new char [entryLength]; - OS.memmove (buffer, utf16Ptr, entryLength * 2); - String osAnswer = new String (buffer); - OS.g_free (utf16Ptr); - OS.g_free (utf8Ptr); - - int separatorIndex = osAnswer.lastIndexOf (SEPARATOR); - if (separatorIndex+1 == osAnswer.length ()) return null; - - String answer = fullPath = osAnswer; - fileName = fullPath.substring (separatorIndex+1); - filterPath = fullPath.substring (0, separatorIndex); - if ((style & SWT.MULTI) == 0) { - fileNames = new String[] {fileName}; - } else { - int /*long*/ namesPtr = OS.gtk_file_selection_get_selections (handle); - int /*long*/ namesPtr1 = namesPtr; - int /*long*/ [] namePtr = new int /*long*/ [1]; - OS.memmove (namePtr, namesPtr1, OS.PTR_SIZEOF); - int length = 0; - while (namePtr[0] != 0) { - length++; - namesPtr1+=OS.PTR_SIZEOF; - OS.memmove(namePtr, namesPtr1, OS.PTR_SIZEOF); - } - fileNames = new String [length]; - namePtr = new int /*long*/ [length]; - OS.memmove (namePtr, namesPtr, length * OS.PTR_SIZEOF); - for (int i = 0; i < length; i++) { - utf8Ptr = OS.g_filename_to_utf8 (namePtr [i], -1, null, null, null); - items_written = new int /*long*/ [1]; - utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null); - buffer = new char [(int)/*64*/items_written [0]]; - OS.memmove (buffer, utf16Ptr, items_written [0] * 2); - String name = new String (buffer); - fileNames [i] = name.substring (name.lastIndexOf (SEPARATOR) + 1); - OS.g_free (utf16Ptr); - OS.g_free (utf8Ptr); - } - OS.g_strfreev (namesPtr); - } - return answer; -} /** * Returns the path of the first file that was * selected in the dialog relative to the filter path, or an @@ -393,12 +308,7 @@ public boolean getOverwrite () { * </ul> */ public String open () { - boolean useChooserDialog = OS.GTK_VERSION >= OS.VERSION (2, 4, 10); - if (useChooserDialog) { return openChooserDialog (); - } else { - return openClassicDialog (); - } } String openChooserDialog () { byte [] titleBytes = Converter.wcsToMbcs (null, title, true); @@ -461,55 +371,6 @@ String openChooserDialog () { OS.gtk_widget_destroy (handle); return answer; } -String openClassicDialog () { - byte [] titleBytes = Converter.wcsToMbcs (null, title, true); - handle = OS.gtk_file_selection_new (titleBytes); - if (parent != null) { - int /*long*/ shellHandle = parent.topHandle (); - OS.gtk_window_set_transient_for (handle, shellHandle); - int /*long*/ pixbufs = OS.gtk_window_get_icon_list (shellHandle); - if (pixbufs != 0) { - OS.gtk_window_set_icon_list (handle, pixbufs); - OS.g_list_free (pixbufs); - } - } - OS.gtk_window_set_modal (handle, true); - presetClassicDialog (); - Display display = parent != null ? parent.getDisplay (): Display.getCurrent (); - display.addIdleProc (); - String answer = null; - Dialog oldModal = null; - if (OS.gtk_window_get_modal (handle)) { - oldModal = display.getModalDialog (); - display.setModalDialog (this); - } - int signalId = 0; - int /*long*/ hookId = 0; - if ((style & SWT.RIGHT_TO_LEFT) != 0) { - signalId = OS.g_signal_lookup (OS.map, OS.GTK_TYPE_WIDGET()); - hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0); - } - int response = OS.gtk_dialog_run (handle); - /* - * This call to gdk_threads_leave() is a temporary work around - * to avoid deadlocks when gdk_threads_init() is called by native - * code outside of SWT (i.e AWT, etc). It ensures that the current - * thread leaves the GTK lock acquired by the function above. - */ - OS.gdk_threads_leave(); - if ((style & SWT.RIGHT_TO_LEFT) != 0) { - OS.g_signal_remove_emission_hook (signalId, hookId); - } - if (OS.gtk_window_get_modal (handle)) { - display.setModalDialog (oldModal); - } - if (response == OS.GTK_RESPONSE_OK) { - answer = computeResultClassicDialog (); - } - display.removeIdleProc (); - OS.gtk_widget_destroy (handle); - return answer; -} void presetChooserDialog () { /* MULTI is only valid if the native dialog's action is Open */ if ((style & (SWT.SAVE | SWT.MULTI)) == SWT.MULTI) { @@ -619,41 +480,6 @@ void presetChooserDialog () { fullPath = null; fileNames = new String [0]; } -void presetClassicDialog () { - OS.gtk_file_selection_set_select_multiple(handle, (style & SWT.MULTI) != 0); - - /* Calculate the fully-specified file name and convert to bytes */ - StringBuffer stringBuffer = new StringBuffer (); - if (filterPath == null) { - filterPath = ""; - } else { - if (filterPath.length () > 0) { - stringBuffer.append (filterPath); - if (filterPath.charAt (filterPath.length () - 1) != SEPARATOR) { - stringBuffer.append (SEPARATOR); - } - } - } - if (fileName == null) { - fileName = ""; - } else { - stringBuffer.append (fileName); - } - fullPath = stringBuffer.toString (); - int length = fullPath.length (); - char [] buffer = new char [length + 1]; - fullPath.getChars (0, length, buffer, 0); - int /*long*/ utf8Ptr = OS.g_utf16_to_utf8 (buffer, -1, null, null, null); - int /*long*/ fileNamePtr = OS.g_filename_from_utf8 (utf8Ptr, -1, null, null, null); - OS.gtk_file_selection_set_filename (handle, fileNamePtr); - OS.g_free (utf8Ptr); - OS.g_free (fileNamePtr); - - if (filterNames == null) filterNames = new String [0]; - if (filterExtensions == null) filterExtensions = new String [0]; - fullPath = null; - fileNames = new String [0]; -} /** * Set the initial filename which the dialog will * select by default when opened to the argument, |