Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti2009-10-30 21:03:03 +0000
committerSilenio Quarti2009-10-30 21:03:03 +0000
commita386b34974ff95c2fe14c65dc0c14c2a8bf66acc (patch)
treed5eb8413fa39aae9ab4d3082ea1f6531f4d42a2a
parent85a1eb94257512c6e5d3679bd238a8ab7221ad5a (diff)
downloadeclipse.platform.swt-a386b34974ff95c2fe14c65dc0c14c2a8bf66acc.tar.gz
eclipse.platform.swt-a386b34974ff95c2fe14c65dc0c14c2a8bf66acc.tar.xz
eclipse.platform.swt-a386b34974ff95c2fe14c65dc0c14c2a8bf66acc.zip
BugÊ277323 - Save dialog does not show filter extensions (back port to 3.5.2)
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/FileDialog.java45
1 files changed, 23 insertions, 22 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/FileDialog.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/FileDialog.java
index 532f14a233..7b4b4d2931 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/FileDialog.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/FileDialog.java
@@ -237,7 +237,6 @@ int filterProc (int theItem, int infoPtr, int callBackUD, int filterMode) {
}
}
}
- return 0;
}
}
}
@@ -295,31 +294,33 @@ public String open () {
int extensions = 0;
Callback filterCallback = null, eventCallback = null;
int [] outDialog = new int [1];
- if ((style & SWT.SAVE) != 0) {
- if (!overwrite) options.optionFlags |= OS.kNavDontConfirmReplacement;
- OS.NavCreatePutFileDialog (options, 0, 0, 0, 0, outDialog);
- } else {
- if ((style & SWT.MULTI) != 0) options.optionFlags |= OS.kNavAllowMultipleFiles;
- int filterProc = 0, eventProc = 0;
- if (filterExtensions != null && filterExtensions.length != 0) {
- extensions = options.popupExtension = OS.CFArrayCreateMutable (OS.kCFAllocatorDefault, filterExtensions.length, 0);
- for (int i = 0; i < filterExtensions.length; i++) {
- String str = filterExtensions [i];
- if (filterNames != null && filterNames.length > i) {
- str = filterNames [i];
- }
- char [] chars = new char [str.length ()];
- str.getChars (0, chars.length, chars, 0);
- int ptr = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length);
- if (ptr != 0) OS.CFArrayAppendValue (extensions, ptr);
- }
+ int filterProc = 0, eventProc = 0;
+ if (filterExtensions != null && filterExtensions.length != 0) {
+ extensions = options.popupExtension = OS.CFArrayCreateMutable (OS.kCFAllocatorDefault, filterExtensions.length, 0);
+ for (int i = 0; i < filterExtensions.length; i++) {
+ String str = filterExtensions [i];
+ if (filterNames != null && filterNames.length > i) {
+ str = filterNames [i];
+ }
+ char [] chars = new char [str.length ()];
+ str.getChars (0, chars.length, chars, 0);
+ int ptr = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length);
+ if (ptr != 0) OS.CFArrayAppendValue (extensions, ptr);
+ }
+ if ((style & SWT.SAVE) == 0) {
filterCallback = new Callback (this, "filterProc", 4);
filterProc = filterCallback.getAddress();
if (filterProc == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
- eventCallback = new Callback (this, "eventProc", 3);
- eventProc = eventCallback.getAddress();
- if (eventProc == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
}
+ eventCallback = new Callback (this, "eventProc", 3);
+ eventProc = eventCallback.getAddress();
+ if (eventProc == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+ }
+ if ((style & SWT.SAVE) != 0) {
+ if (!overwrite) options.optionFlags |= OS.kNavDontConfirmReplacement;
+ OS.NavCreatePutFileDialog (options, 0, 0, eventProc, 0, outDialog);
+ } else {
+ if ((style & SWT.MULTI) != 0) options.optionFlags |= OS.kNavAllowMultipleFiles;
OS.NavCreateGetFileDialog(options, 0, eventProc, 0, filterProc, 0, outDialog);
}
if (outDialog [0] != 0) {

Back to the top