43 lines
1.3 KiB
Text
43 lines
1.3 KiB
Text
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set sw=2 ts=8 et ft=ipdl : */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
include WinFileDialogCommandsDefn;
|
|
using mozilla::WindowsHandle from "mozilla/ipc/IPCTypes.h";
|
|
using mozilla::widget::filedialog::FileDialogType from "mozilla/widget/filedialog/WinFileDialogCommands.h";
|
|
|
|
namespace mozilla {
|
|
namespace widget {
|
|
namespace filedialog {
|
|
|
|
union FileResult {
|
|
Results?;
|
|
RemoteError;
|
|
};
|
|
|
|
union FolderResult {
|
|
nsString?;
|
|
RemoteError;
|
|
};
|
|
|
|
[ChildProc=Utility]
|
|
protocol PWinFileDialog {
|
|
|
|
child:
|
|
// Exactly one Show function should be called per instance. Further calls will
|
|
// result in IPC failure.
|
|
//
|
|
// Each will return `Ok(Nothing)` if the operation was canceled by the user,
|
|
// or `Err(...)` if the operation actually failed.
|
|
|
|
async ShowFileDialog(WindowsHandle parentHwnd, FileDialogType type, Command[] commands)
|
|
returns (FileResult result);
|
|
async ShowFolderDialog(WindowsHandle parentHwnd, Command[] commands)
|
|
returns (FolderResult result);
|
|
};
|
|
|
|
} // namespace filedialog
|
|
} // namespace widget
|
|
} // namespace mozilla
|