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 "old_display_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(uint64_t rsId,int32_t physicalX,int32_t physicalY,const PointerStyle pointerStyle,Direction direction)31 virtual void DrawPointer(uint64_t rsId, int32_t physicalX, int32_t physicalY, 32 const PointerStyle pointerStyle, Direction direction) {} UpdateDisplayInfo(const OLD::DisplayInfo & displayInfo)33 virtual void UpdateDisplayInfo(const OLD::DisplayInfo& displayInfo) {} OnDisplayInfo(const OLD::DisplayGroupInfo & displayGroupInfo)34 virtual void OnDisplayInfo(const OLD::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,uint64_t rsId)76 virtual void SetPointerLocation(int32_t x, int32_t y, uint64_t rsId) {} SetMouseDisplayState(bool state)77 virtual void SetMouseDisplayState(bool state) {} GetMouseDisplayState()78 virtual bool GetMouseDisplayState() const 79 { 80 return false; 81 } SetCustomCursor(CursorPixelMap curPixelMap,int32_t pid,int32_t windowId,int32_t focusX,int32_t focusY)82 virtual int32_t SetCustomCursor(CursorPixelMap curPixelMap, 83 int32_t pid, int32_t windowId, int32_t focusX, int32_t focusY) 84 { 85 return 0; 86 } SetCustomCursor(int32_t pid,int32_t windowId,CustomCursor cursor,CursorOptions options)87 virtual int32_t SetCustomCursor(int32_t pid, int32_t windowId, CustomCursor cursor, CursorOptions options) 88 { 89 return 0; 90 } SetMouseIcon(int32_t pid,int32_t windowId,CursorPixelMap curPixelMap)91 virtual int32_t SetMouseIcon(int32_t pid, int32_t windowId, CursorPixelMap curPixelMap) 92 { 93 return 0; 94 } SetMouseHotSpot(int32_t pid,int32_t windowId,int32_t hotSpotX,int32_t hotSpotY)95 virtual int32_t SetMouseHotSpot(int32_t pid, int32_t windowId, int32_t hotSpotX, int32_t hotSpotY) 96 { 97 return 0; 98 } SetPointerSize(int32_t size)99 virtual int32_t SetPointerSize(int32_t size) 100 { 101 return 0; 102 } GetPointerSize()103 virtual int32_t GetPointerSize() 104 { 105 return 0; 106 } GetPointerImageSize(int32_t & width,int32_t & height)107 virtual void GetPointerImageSize(int32_t &width, int32_t &height) 108 { 109 return; 110 } 111 112 virtual int32_t GetCursorSurfaceId(uint64_t &surfaceId); 113 GetLastMouseStyle()114 virtual PointerStyle GetLastMouseStyle() 115 { 116 return {}; 117 } GetIconStyle(const MOUSE_ICON mouseStyle)118 virtual IconStyle GetIconStyle(const MOUSE_ICON mouseStyle) 119 { 120 return {}; 121 } GetMouseIconPath()122 virtual const std::map<MOUSE_ICON, IconStyle>& GetMouseIconPath() 123 { 124 static std::map<MOUSE_ICON, IconStyle> emptyMap; 125 return emptyMap; 126 } SwitchPointerStyle()127 virtual int32_t SwitchPointerStyle() 128 { 129 return 0; 130 } DrawMovePointer(uint64_t rsId,int32_t physicalX,int32_t physicalY)131 virtual void DrawMovePointer(uint64_t rsId, int32_t physicalX, int32_t physicalY) {} Dump(int32_t fd,const std::vector<std::string> & args)132 virtual void Dump(int32_t fd, const std::vector<std::string> &args) {} InitPointerCallback()133 virtual void InitPointerCallback() {} InitScreenInfo()134 virtual void InitScreenInfo() {} EnableHardwareCursorStats(int32_t pid,bool enable)135 virtual int32_t EnableHardwareCursorStats(int32_t pid, bool enable) 136 { 137 return 0; 138 } GetHardwareCursorStats(int32_t pid,uint32_t & frameCount,uint32_t & vsyncCount)139 virtual int32_t GetHardwareCursorStats(int32_t pid, uint32_t &frameCount, uint32_t &vsyncCount) 140 { 141 return 0; 142 } GetCurrentDisplayInfo()143 virtual OLD::DisplayInfo GetCurrentDisplayInfo() 144 { 145 return {}; 146 } 147 #ifdef OHOS_BUILD_ENABLE_MAGICCURSOR GetPointerSnapshot(void * pixelMapPtr)148 virtual int32_t GetPointerSnapshot(void *pixelMapPtr) 149 { 150 return 0; 151 } 152 #endif // OHOS_BUILD_ENABLE_MAGICCURSOR ForceClearPointerVisiableStatus()153 virtual void ForceClearPointerVisiableStatus() {} InitPointerObserver()154 virtual void InitPointerObserver() {} OnSessionLost(int32_t pid)155 virtual void OnSessionLost(int32_t pid) {} SkipPointerLayer(bool isSkip)156 virtual int32_t SkipPointerLayer(bool isSkip) 157 { 158 return 0; 159 } SetDelegateProxy(std::shared_ptr<DelegateInterface> proxy)160 virtual void SetDelegateProxy(std::shared_ptr<DelegateInterface> proxy) {} GetDelegateProxy()161 virtual std::shared_ptr<DelegateInterface> GetDelegateProxy() 162 { 163 return nullptr; 164 } DestroyPointerWindow()165 virtual void DestroyPointerWindow() {} DrawScreenCenterPointer(const PointerStyle & pointerStyle)166 virtual void DrawScreenCenterPointer(const PointerStyle &pointerStyle) {} SubscribeScreenModeChange()167 virtual void SubscribeScreenModeChange() {} RegisterDisplayStatusReceiver()168 virtual void RegisterDisplayStatusReceiver() {} UpdateMouseLayer(const PointerStyle & pointerStyle,int32_t physicalX,int32_t physicalY)169 virtual int32_t UpdateMouseLayer(const PointerStyle& pointerStyle, 170 int32_t physicalX, int32_t physicalY) 171 { 172 return 0; 173 } DrawNewDpiPointer()174 virtual int32_t DrawNewDpiPointer() 175 { 176 return 0; 177 } AttachAllSurfaceNode()178 virtual void AttachAllSurfaceNode() {} DetachAllSurfaceNode()179 virtual void DetachAllSurfaceNode() {} CheckHwcReady()180 virtual int32_t CheckHwcReady() 181 { 182 return 0; 183 } GetHardCursorEnabled()184 virtual bool GetHardCursorEnabled() 185 { 186 return false; 187 } 188 #ifndef OHOS_BUILD_ENABLE_WATCH NotifyPointerEventToRS(int32_t pointAction,int32_t pointCnt)189 virtual void NotifyPointerEventToRS(int32_t pointAction, int32_t pointCnt) {} 190 #endif // OHOS_BUILD_ENABLE_WATCH 191 }; 192 } // namespace MMI 193 } // namespace OHOS 194 #endif // I_POINTER_DRAWING_MANAGER_H 195