1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef INTERFACES_INNERKITS_WMSERVICE_IWINDOW_MANAGER_SERVICE_H 17 #define INTERFACES_INNERKITS_WMSERVICE_IWINDOW_MANAGER_SERVICE_H 18 19 #include <vector> 20 21 #include <display_type.h> 22 #include <promise.h> 23 #include <refbase.h> 24 #include <window_manager_type.h> 25 26 #include "iwindow_change_listener_clazz.h" 27 #include "iwindow_manager_display_listener_clazz.h" 28 29 #include "window_manager_service_type.h" 30 31 namespace OHOS { 32 class IWindowManagerService : public RefBase { 33 public: 34 virtual ~IWindowManagerService() = default; 35 36 virtual GSError GetDisplays(std::vector<struct WMDisplayInfo> &displays) = 0; 37 virtual sptr<PromisePowerStatus> GetDisplayPower(int32_t did) = 0; 38 virtual sptr<PromiseWMError> SetDisplayPower(int32_t did, DispPowerStatus status) = 0; 39 virtual sptr<PromiseBacklight> GetDisplayBacklight(int32_t did) = 0; 40 virtual sptr<PromiseWMError> SetDisplayBacklight(int32_t did, uint32_t level) = 0; 41 virtual sptr<PromiseWMError> SetDisplayMode(WMSDisplayMode modes) = 0; 42 virtual sptr<PromiseWMError> OnWindowListChange(IWindowChangeListenerClazz *listener) = 0; 43 virtual GSError GetDisplayModes(uint32_t &displayModes) = 0; 44 virtual GSError AddDisplayChangeListener(IWindowManagerDisplayListenerClazz *listener) = 0; 45 46 virtual GSError SetDisplayDirection(WMSDisplayDirection direction) = 0; 47 virtual GSError OnDisplayDirectionChange(DisplayDirectionChangeFunc func) = 0; 48 49 virtual sptr<PromiseWMError> SetStatusBarVisibility(bool visibility) = 0; 50 virtual sptr<PromiseWMError> SetNavigationBarVisibility(bool visibility) = 0; 51 52 virtual sptr<PromiseWMSImageInfo> ShotScreen(int32_t did) = 0; 53 virtual sptr<PromiseWMSImageInfo> ShotWindow(int32_t wid) = 0; 54 55 virtual sptr<PromiseWMError> DestroyWindow(int32_t wid) = 0; 56 virtual sptr<PromiseWMError> SwitchTop(int32_t wid) = 0; 57 virtual sptr<PromiseWMError> Show(int32_t wid) = 0; 58 virtual sptr<PromiseWMError> Hide(int32_t wid) = 0; 59 virtual sptr<PromiseWMError> Move(int32_t wid, int32_t x, int32_t y) = 0; 60 virtual sptr<PromiseWMError> Resize(int32_t wid, uint32_t width, uint32_t height) = 0; 61 virtual sptr<PromiseWMError> ScaleTo(int32_t wid, uint32_t width, uint32_t height) = 0; 62 virtual sptr<PromiseWMError> SetWindowType(int32_t wid, WindowType type) = 0; 63 virtual sptr<PromiseWMError> SetWindowMode(int32_t wid, WindowMode mode) = 0; 64 65 virtual sptr<PromiseWMError> CreateVirtualDisplay(int32_t x, int32_t y, int32_t width, int32_t height) = 0; 66 virtual sptr<PromiseWMError> DestroyVirtualDisplay(uint32_t did) = 0; 67 StartRotationAnimation(uint32_t did,int32_t degree)68 virtual GSError StartRotationAnimation(uint32_t did, int32_t degree) 69 { 70 return GSERROR_NOT_SUPPORT; 71 } 72 73 virtual sptr<PromiseWMError> SetSplitMode(SplitMode mode, int32_t x = 0, int32_t y = 0) 74 { 75 return nullptr; 76 } 77 CreateLaunchPage(const std::string & filename)78 virtual GSError CreateLaunchPage(const std::string &filename) 79 { 80 return GSERROR_NOT_SUPPORT; 81 } 82 CancelLaunchPage()83 virtual GSError CancelLaunchPage() 84 { 85 return GSERROR_NOT_SUPPORT; 86 } 87 }; 88 } // namespace OHOS 89 90 #endif // INTERFACES_INNERKITS_WMSERVICE_IWINDOW_MANAGER_SERVICE_H 91