mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-21 01:24:21 +00:00
Added support for uploading files in the OSX embedded web browser.
This commit is contained in:
parent
f4fa3a420b
commit
b3e7f2b772
1 changed files with 18 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ struct DownloadClickDetectorClass : public ObjCClass <NSObject>
|
|||
decidePolicyForNavigationAction, "v@:@@@@@");
|
||||
addMethod (@selector (webView:didFinishLoadForFrame:), didFinishLoadForFrame, "v@:@@");
|
||||
addMethod (@selector (webView:willCloseFrame:), willCloseFrame, "v@:@@");
|
||||
addMethod (@selector (webView:runOpenPanelForFileButtonWithResultListener:allowMultipleFiles:), runOpenPanel, "v@:@@", @encode (BOOL));
|
||||
|
||||
registerClass();
|
||||
}
|
||||
|
|
@ -66,6 +67,21 @@ private:
|
|||
{
|
||||
getOwner (self)->windowCloseRequest();
|
||||
}
|
||||
|
||||
static void runOpenPanel (id, SEL, WebView*, id<WebOpenPanelResultListener> resultListener, BOOL allowMultipleFiles)
|
||||
{
|
||||
FileChooser chooser (TRANS("Select the file you want to upload..."),
|
||||
File::getSpecialLocation (File::userHomeDirectory), "*");
|
||||
|
||||
if (allowMultipleFiles ? chooser.browseForMultipleFilesToOpen()
|
||||
: chooser.browseForFileToOpen())
|
||||
{
|
||||
const Array<File>& files = chooser.getResults();
|
||||
|
||||
for (int i = 0; i < files.size(); ++i)
|
||||
[resultListener chooseFilename: juceStringToNS (files.getReference(i).getFullPathName())];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#else
|
||||
|
|
@ -146,6 +162,7 @@ public:
|
|||
DownloadClickDetectorClass::setOwner (clickListener, owner);
|
||||
[webView setPolicyDelegate: clickListener];
|
||||
[webView setFrameLoadDelegate: clickListener];
|
||||
[webView setUIDelegate: clickListener];
|
||||
#else
|
||||
webView = [[UIWebView alloc] initWithFrame: CGRectMake (0, 0, 1.0f, 1.0f)];
|
||||
setView (webView);
|
||||
|
|
@ -162,6 +179,7 @@ public:
|
|||
#if JUCE_MAC
|
||||
[webView setPolicyDelegate: nil];
|
||||
[webView setFrameLoadDelegate: nil];
|
||||
[webView setUIDelegate: nil];
|
||||
[clickListener release];
|
||||
#else
|
||||
webView.delegate = nil;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue