summaryrefslogtreecommitdiffstats
path: root/widget/windows/filedialog/PWinFileDialog.ipdl
blob: 812db7e103b4940c3a2cf768562ad9fc85e3501f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* -*- 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 {

[ChildProc=Utility]
protocol PWinFileDialog {

child:
  // Exactly one Show function should be called per instance. Further calls will
  // result in IPC failure.
  //
  // Each will return `Nothing` iff the operation was canceled by the user.

  async ShowFileDialog(WindowsHandle parentHwnd, FileDialogType type, Command[] commands)
    returns (Results? results);
  async ShowFolderDialog(WindowsHandle parentHwnd, Command[] commands)
    returns (nsString? path);
};

}  // namespace filedialog
}  // namespace widget
}  // namespace mozilla