1a3e0fd82Sopenharmony_ci/* 2a3e0fd82Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 3a3e0fd82Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a3e0fd82Sopenharmony_ci * you may not use this file except in compliance with the License. 5a3e0fd82Sopenharmony_ci * You may obtain a copy of the License at 6a3e0fd82Sopenharmony_ci * 7a3e0fd82Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a3e0fd82Sopenharmony_ci * 9a3e0fd82Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a3e0fd82Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a3e0fd82Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a3e0fd82Sopenharmony_ci * See the License for the specific language governing permissions and 13a3e0fd82Sopenharmony_ci * limitations under the License. 14a3e0fd82Sopenharmony_ci */ 15a3e0fd82Sopenharmony_ci 16a3e0fd82Sopenharmony_ci/** 17a3e0fd82Sopenharmony_ci * @addtogroup UI_DFX 18a3e0fd82Sopenharmony_ci * @{ 19a3e0fd82Sopenharmony_ci * 20a3e0fd82Sopenharmony_ci * @brief Provides test and analysis capabilities, such as stimulating input events and viewing information about a 21a3e0fd82Sopenharmony_ci * Document Object Model (DOM) tree. 22a3e0fd82Sopenharmony_ci * 23a3e0fd82Sopenharmony_ci * @since 1.0 24a3e0fd82Sopenharmony_ci * @version 1.0 25a3e0fd82Sopenharmony_ci */ 26a3e0fd82Sopenharmony_ci 27a3e0fd82Sopenharmony_ci/** 28a3e0fd82Sopenharmony_ci * @file ui_screenshot.h 29a3e0fd82Sopenharmony_ci * 30a3e0fd82Sopenharmony_ci * @brief Declares the screenshot function. 31a3e0fd82Sopenharmony_ci * 32a3e0fd82Sopenharmony_ci * @since 1.0 33a3e0fd82Sopenharmony_ci * @version 1.0 34a3e0fd82Sopenharmony_ci */ 35a3e0fd82Sopenharmony_ci#ifndef GRAPHIC_LITE_UI_SCREENSHOT_H 36a3e0fd82Sopenharmony_ci#define GRAPHIC_LITE_UI_SCREENSHOT_H 37a3e0fd82Sopenharmony_ci 38a3e0fd82Sopenharmony_ci#include "graphic_config.h" 39a3e0fd82Sopenharmony_ci 40a3e0fd82Sopenharmony_ci#if ENABLE_DEBUG 41a3e0fd82Sopenharmony_ci#include "gfx_utils/heap_base.h" 42a3e0fd82Sopenharmony_ci 43a3e0fd82Sopenharmony_cinamespace OHOS { 44a3e0fd82Sopenharmony_ci/** 45a3e0fd82Sopenharmony_ci * @brief Provides callback functions for screenshot events. 46a3e0fd82Sopenharmony_ci * 47a3e0fd82Sopenharmony_ci * @since 1.0 48a3e0fd82Sopenharmony_ci * @version 1.0 49a3e0fd82Sopenharmony_ci */ 50a3e0fd82Sopenharmony_ciclass UIScreenshotListener; 51a3e0fd82Sopenharmony_ci 52a3e0fd82Sopenharmony_ci/** 53a3e0fd82Sopenharmony_ci * @brief Provides external screenshot functions. 54a3e0fd82Sopenharmony_ci * 55a3e0fd82Sopenharmony_ci * @since 1.0 56a3e0fd82Sopenharmony_ci * @version 1.0 57a3e0fd82Sopenharmony_ci */ 58a3e0fd82Sopenharmony_ciclass UIScreenshot : public HeapBase { 59a3e0fd82Sopenharmony_cipublic: 60a3e0fd82Sopenharmony_ci /** 61a3e0fd82Sopenharmony_ci * @brief Obtains an instance in singleton pattern. 62a3e0fd82Sopenharmony_ci * 63a3e0fd82Sopenharmony_ci * @return Returns the screenshot function instance. 64a3e0fd82Sopenharmony_ci * @since 1.0 65a3e0fd82Sopenharmony_ci * @version 1.0 66a3e0fd82Sopenharmony_ci */ 67a3e0fd82Sopenharmony_ci static UIScreenshot* GetInstance(); 68a3e0fd82Sopenharmony_ci 69a3e0fd82Sopenharmony_ci /** 70a3e0fd82Sopenharmony_ci * @brief Takes a screenshot and saves it to a file. 71a3e0fd82Sopenharmony_ci * 72a3e0fd82Sopenharmony_ci * @param path Indicates the pointer to the path for storing the screenshot file. 73a3e0fd82Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; returns <b>false</b> otherwise. 74a3e0fd82Sopenharmony_ci * @since 1.0 75a3e0fd82Sopenharmony_ci * @version 1.0 76a3e0fd82Sopenharmony_ci */ 77a3e0fd82Sopenharmony_ci bool ScreenshotToFile(const char* path); 78a3e0fd82Sopenharmony_ci 79a3e0fd82Sopenharmony_ciprivate: 80a3e0fd82Sopenharmony_ci UIScreenshotListener* screenshotListener_; 81a3e0fd82Sopenharmony_ci 82a3e0fd82Sopenharmony_ci UIScreenshot() : screenshotListener_(nullptr) {} 83a3e0fd82Sopenharmony_ci virtual ~UIScreenshot(); 84a3e0fd82Sopenharmony_ci 85a3e0fd82Sopenharmony_ci UIScreenshot(const UIScreenshot&) = delete; 86a3e0fd82Sopenharmony_ci UIScreenshot& operator=(const UIScreenshot&) = delete; 87a3e0fd82Sopenharmony_ci UIScreenshot(UIScreenshot&&) = delete; 88a3e0fd82Sopenharmony_ci UIScreenshot& operator=(UIScreenshot&&) = delete; 89a3e0fd82Sopenharmony_ci}; 90a3e0fd82Sopenharmony_ci} // namespace OHOS 91a3e0fd82Sopenharmony_ci#endif // ENABLE_DEBUG 92a3e0fd82Sopenharmony_ci#endif // GRAPHIC_LITE_UI_SCREENSHOT_H 93