| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Private API for trusted extensions/apps to do desk related operations. |
| [platforms=("chromeos"), |
| implemented_in="chrome/browser/chromeos/extensions/wm/wm_desks_private_api.h"] |
| namespace wmDesksPrivate { |
| enum SavedDeskType { |
| // Desk saved for regular desk template. |
| kTemplate, |
| |
| // Desk saved for Save & Recall. |
| kSaveAndRecall, |
| |
| // Unknown desk type. |
| kUnknown |
| }; |
| |
| dictionary RemoveDeskOptions { |
| // Define whether close all windows on the desk and combine them to the |
| // active desk to the left. |
| boolean combineDesks; |
| |
| // Define whether removed desk is retrievable. |
| boolean? allowUndo; |
| }; |
| |
| dictionary Desk { |
| // Unique ID for a desk. |
| DOMString deskUuid; |
| |
| // User readable name of the desk. |
| DOMString deskName; |
| }; |
| |
| dictionary SavedDesk { |
| // Unique ID for a saved desk. |
| DOMString savedDeskUuid; |
| |
| // User readable name of the saved desk. |
| DOMString savedDeskName; |
| |
| // Saved desk type. |
| SavedDeskType savedDeskType; |
| }; |
| |
| // Launch desk options |
| dictionary LaunchOptions { |
| // User readable name of the desk. |
| DOMString? deskName; |
| }; |
| |
| // Window properties |
| dictionary WindowProperties { |
| // If window show up on all desks. |
| boolean allDesks; |
| }; |
| |
| callback DeskIdCallback = void (DOMString deskId); |
| callback VoidCallback = void (); |
| callback GetDeskTemplateJsonCallback = void (DOMString templateJson); |
| callback GetAllDesksCallback = void (Desk[] desks); |
| callback GetSavedDesksCallback = void (SavedDesk[] saveDesks); |
| callback SaveActiveDeskCallback = void (SavedDesk desk); |
| callback GetDeskByIDCallback = void (Desk desk); |
| |
| interface Functions { |
| // Returns all available previously-saved desks. |
| static void getSavedDesks( |
| GetSavedDesksCallback callback); |
| |
| // Launches a desk, if `templateUuid` is present in the options, launches a |
| // desk template, otherwise launches an empty desk. If `deskName` is present |
| // in the options, using provided name as desk name, otherwise launches with |
| // auto generated name. |
| static void launchDesk( |
| LaunchOptions launchOptions, |
| DeskIdCallback callback); |
| |
| // Gets the template associated with the templateUuid and returns its JSON |
| // representation. Returns an error if either the template could not be |
| // found or the user profile is not valid. |
| static void getDeskTemplateJson( |
| DOMString templateUuid, |
| GetDeskTemplateJsonCallback callback); |
| |
| // Removes a desk as specified in `deskId`. If `combineDesks` of |
| // `RemoveDeskOptions` is present or set to true, remove the desk and |
| // combine windows to the active desk to the left. If `allowUndo` is |
| // present or set to true, prompt the user with a notification allowing for |
| // the desk to be retrieved. Otherwise close all windows on the desk. |
| static void removeDesk( |
| DOMString deskId, |
| optional RemoveDeskOptions removeDeskOptions, |
| optional VoidCallback callback); |
| |
| // Returns all available desks. |
| static void getAllDesks(GetAllDesksCallback callback); |
| |
| // Sets the window properties for window identified by the `windowId`. |
| static void setWindowProperties( |
| long windowId, |
| WindowProperties windowProperties, |
| optional VoidCallback callback); |
| |
| // Saves the current active desk to the library and remove it from the desk |
| // bar. |
| static void saveActiveDesk( |
| SaveActiveDeskCallback callback); |
| |
| // Deletes the saved desk from the library. |
| static void deleteSavedDesk( |
| DOMString savedDeskUuid, |
| optional VoidCallback callback); |
| |
| // Launches a saved desk from the library back to active desk. |
| static void recallSavedDesk( |
| DOMString savedDeskUuid, |
| DeskIdCallback callback); |
| |
| // Retrieves the UUID of the current active desk. |
| static void getActiveDesk(DeskIdCallback callback); |
| |
| // Switches to the target desk. |
| static void switchDesk( |
| DOMString deskUuid, VoidCallback callback); |
| |
| // Retrieves desk by the desk UUID. |
| static void getDeskByID( |
| DOMString deskUuid, GetDeskByIDCallback callback); |
| }; |
| |
| interface Events { |
| // Fires when new desks is added. |
| static void OnDeskAdded(DOMString deskId, boolean fromUndo); |
| |
| // Fires when desk removal is finalized. |
| static void OnDeskRemoved(DOMString deskId); |
| |
| // Fires when desk activation changed. |
| static void OnDeskSwitched(DOMString activated, DOMString deactivated); |
| }; |
| |
| }; |