blob: 099e084d9a6292f761fb97a943c3c0cff957b56a [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Utility process interface exposed to the browser process on OS_WIN, for
// calling OS_WIN task pinning and file open/save dialog API.
module chrome.mojom;
import "mojo/common/file_path.mojom";
import "mojo/common/string16.mojom";
interface ShellHandler {
// Returns the pinned state of the current executable.
IsPinnedToTaskbar() => (bool succeeded, bool is_pinned_to_taskbar);
// Calls OS_WIN ::GetOpenFileName() with parameters:
// |owner| HWND to use as the parent of the modal dialog.
// |flags| OFN_* flags to use with OPENFILENAME.
// |filters| constrains the user's file type selections.
// |initial_directory| initial directory to be displayed.
// |initial_filename| file name initially selected.
//
// Returns the list of selected |files| from |directory|. On cancelation
// or failure, |files| will be empty.
[Sync]
CallGetOpenFileName(uint32 owner,
uint32 flags,
FileExtensionFilters filters,
mojo.common.mojom.FilePath initial_directory,
mojo.common.mojom.FilePath initial_filename) =>
(mojo.common.mojom.FilePath directory,
array<mojo.common.mojom.FilePath> files);
// Calls OS_WIN ::GetSaveFileName() with parameters:
// |owner| HWND to use as the parent of the modal dialog.
// |flags| OFN_* flags to use with OPENFILENAME.
// |filters| constrains the user's file type selections.
// |one_based_filter_index| index of the selected filter in |filters|.
// |initial_directory| initial directory to be displayed.
// |suggested_filename| save file name to suggest.
// |default_extension| file extension to use if the user doesn't type one.
//
// Returns the save file |path| selected, and the |filter_index| of the
// filter selected, by the user. On cancelation or failure, |path| will
// be empty.
[Sync]
CallGetSaveFileName(uint32 owner,
uint32 flags,
FileExtensionFilters filters,
uint32 one_based_filter_index,
mojo.common.mojom.FilePath initial_directory,
mojo.common.mojom.FilePath suggested_filename,
mojo.common.mojom.String16 default_extension) =>
(mojo.common.mojom.FilePath path,
uint32 filter_index);
};
[Native]
struct FileExtensionFilters;