Source code

Revision control

Copy as Markdown

Other Tools

/* -*- 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