1 /* 2 * Copyright (c) 2022 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 I_POINTER_DRAWING_MANAGER_H 17 #define I_POINTER_DRAWING_MANAGER_H 18 19 #include "pointer_style.h" 20 #include "window_info.h" 21 #include "delegate_interface.h" 22 23 namespace OHOS { 24 namespace MMI { 25 class IPointerDrawingManager { 26 public: 27 IPointerDrawingManager() = default; 28 virtual ~IPointerDrawingManager() = default; 29 30 static IPointerDrawingManager* GetInstance(); DrawPointer(int32_t displayId,int32_t physicalX,int32_t physicalY,const PointerStyle pointerStyle,Direction direction)31 virtual void DrawPointer(int32_t displayId, int32_t physicalX, int32_t physicalY, 32 const PointerStyle pointerStyle, Direction direction) {} UpdateDisplayInfo(const DisplayInfo & displayInfo)33 virtual void UpdateDisplayInfo(const DisplayInfo& displayInfo) {} OnDisplayInfo(const DisplayGroupInfo & displayGroupInfo)34 virtual void OnDisplayInfo(const DisplayGroupInfo& displayGroupInfo) {} OnWindowInfo(const WinInfo & info)35 virtual void OnWindowInfo(const WinInfo &info) {} Init()36 virtual bool Init() 37 { 38 return true; 39 } DeletePointerVisible(int32_t pid)40 virtual void DeletePointerVisible(int32_t pid) {} SetPointerVisible(int32_t pid,bool visible,int32_t priority,bool isHap)41 virtual int32_t SetPointerVisible(int32_t pid, bool visible, int32_t priority, bool isHap) 42 { 43 return 0; 44 } GetPointerVisible(int32_t pid)45 virtual bool GetPointerVisible(int32_t pid) 46 { 47 return true; 48 } SetPointerColor(int32_t color)49 virtual int32_t SetPointerColor(int32_t color) 50 { 51 return 0; 52 } GetPointerColor()53 virtual int32_t GetPointerColor() 54 { 55 return 0; 56 } 57 virtual int32_t SetPointerStyle(int32_t pid, int32_t windowId, PointerStyle pointerStyle, 58 bool isUiExtension = false) 59 { 60 return 0; 61 } ClearWindowPointerStyle(int32_t pid,int32_t windowId)62 virtual int32_t ClearWindowPointerStyle(int32_t pid, int32_t windowId) 63 { 64 return 0; 65 } 66 virtual int32_t GetPointerStyle(int32_t pid, int32_t windowId, PointerStyle &pointerStyle, 67 bool isUiExtension = false) 68 { 69 return 0; 70 } DrawPointerStyle(const PointerStyle & pointerStyle)71 virtual void DrawPointerStyle(const PointerStyle& pointerStyle) {} IsPointerVisible()72 virtual bool IsPointerVisible() 73 { 74 return false; 75 } SetPointerLocation(int32_t x,int32_t y,int32_t displayId)76 virtual void SetPointerLocation(int32_t x, int32_t y, int32_t displayId) {} SetMouseDisplayState(bool state)77 virtual void SetMouseDisplayState(bool state) {} GetMouseDisplayState()78 virtual bool GetMouseDisplayState() const 79 { 80 return false; 81 } SetCustomCursor(void * pixelMap,int32_t pid,int32_t windowId,int32_t focusX,int32_t focusY)82 virtual int32_t SetCustomCursor(void* pixelMap, int32_t pid, int32_t windowId, int32_t focusX, int32_t focusY) 83 { 84 return 0; 85 } SetCustomCursor(int32_t pid,int32_t windowId,CustomCursor cursor,CursorOptions options)86 virtual int32_t SetCustomCursor(int32_t pid, int32_t windowId, CustomCursor cursor, CursorOptions options) 87 { 88 return 0; 89 } SetMouseIcon(int32_t pid,int32_t windowId,void * pixelMap)90 virtual int32_t SetMouseIcon(int32_t pid, int32_t windowId, void* pixelMap) 91 { 92 return 0; 93 } SetMouseHotSpot(int32_t pid,int32_t windowId,int32_t hotSpotX,int32_t hotSpotY)94 virtual int32_t SetMouseHotSpot(int32_t pid, int32_t windowId, int32_t hotSpotX, int32_t hotSpotY) 95 { 96 return 0; 97 } SetPointerSize(int32_t size)98 virtual int32_t SetPointerSize(int32_t size) 99 { 100 return 0; 101 } GetPointerSize()102 virtual int32_t GetPointerSize() 103 { 104 return 0; 105 } GetPointerImageSize(int32_t & width,int32_t & height)106 virtual void GetPointerImageSize(int32_t &width, int32_t &height) 107 { 108 return; 109 } 110 111 virtual int32_t GetCursorSurfaceId(uint64_t &surfaceId); 112 GetLastMouseStyle()113 virtual PointerStyle GetLastMouseStyle() 114 { 115 return {}; 116 } GetIconStyle(const MOUSE_ICON mouseStyle)117 virtual IconStyle GetIconStyle(const MOUSE_ICON mouseStyle) 118 { 119 return {}; 120 } GetMouseIconPath()121 virtual const std::map<MOUSE_ICON, IconStyle>& GetMouseIconPath() 122 { 123 static std::map<MOUSE_ICON, IconStyle> emptyMap; 124 return emptyMap; 125 } SwitchPointerStyle()126 virtual int32_t SwitchPointerStyle() 127 { 128 return 0; 129 } DrawMovePointer(int32_t displayId,int32_t physicalX,int32_t physicalY)130 virtual void DrawMovePointer(int32_t displayId, int32_t physicalX, int32_t physicalY) {} Dump(int32_t fd,const std::vector<std::string> & args)131 virtual void Dump(int32_t fd, const std::vector<std::string> &args) {} InitPointerCallback()132 virtual void InitPointerCallback() {} InitScreenInfo()133 virtual void InitScreenInfo() {} EnableHardwareCursorStats(int32_t pid,bool enable)134 virtual int32_t EnableHardwareCursorStats(int32_t pid, bool enable) 135 { 136 return 0; 137 } GetHardwareCursorStats(int32_t pid,uint32_t & frameCount,uint32_t & vsyncCount)138 virtual int32_t GetHardwareCursorStats(int32_t pid, uint32_t &frameCount, uint32_t &vsyncCount) 139 { 140 return 0; 141 } 142 #ifdef OHOS_BUILD_ENABLE_MAGICCURSOR GetPointerSnapshot(void * pixelMapPtr)143 virtual int32_t GetPointerSnapshot(void *pixelMapPtr) 144 { 145 return 0; 146 } 147 #endif // OHOS_BUILD_ENABLE_MAGICCURSOR ForceClearPointerVisiableStatus()148 virtual void ForceClearPointerVisiableStatus() {} InitPointerObserver()149 virtual void InitPointerObserver() {} OnSessionLost(int32_t pid)150 virtual void OnSessionLost(int32_t pid) {} SkipPointerLayer(bool isSkip)151 virtual int32_t SkipPointerLayer(bool isSkip) 152 { 153 return 0; 154 } SetDelegateProxy(std::shared_ptr<DelegateInterface> proxy)155 virtual void SetDelegateProxy(std::shared_ptr<DelegateInterface> proxy) {} DestroyPointerWindow()156 virtual void DestroyPointerWindow() {} DrawScreenCenterPointer(const PointerStyle & pointerStyle)157 virtual void DrawScreenCenterPointer(const PointerStyle &pointerStyle) {} SubscribeScreenModeChange()158 virtual void SubscribeScreenModeChange() {} UpdateMouseLayer(const PointerStyle & pointerStyle,int32_t displayId,int32_t physicalX,int32_t physicalY)159 virtual int32_t UpdateMouseLayer(const PointerStyle& pointerStyle, 160 int32_t displayId, int32_t physicalX, int32_t physicalY) 161 { 162 return 0; 163 } DrawNewDpiPointer()164 virtual int32_t DrawNewDpiPointer() 165 { 166 return 0; 167 } 168 #ifdef OHOS_BUILD_ENABLE_HARDWARE_CURSOR IsSupported()169 virtual bool IsSupported() 170 { 171 return false; 172 } 173 #endif // OHOS_BUILD_ENABLE_HARDWARE_CURSOR 174 }; 175 } // namespace MMI 176 } // namespace OHOS 177 #endif // I_POINTER_DRAWING_MANAGER_H 178