17c804472Sopenharmony_ci/* 27c804472Sopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 37c804472Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 47c804472Sopenharmony_ci * you may not use this file except in compliance with the License. 57c804472Sopenharmony_ci * You may obtain a copy of the License at 67c804472Sopenharmony_ci * 77c804472Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 87c804472Sopenharmony_ci * 97c804472Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 107c804472Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 117c804472Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 127c804472Sopenharmony_ci * See the License for the specific language governing permissions and 137c804472Sopenharmony_ci * limitations under the License. 147c804472Sopenharmony_ci */ 157c804472Sopenharmony_ci 167c804472Sopenharmony_ci#ifndef OHOS_ROSEN_WINDOW_H 177c804472Sopenharmony_ci#define OHOS_ROSEN_WINDOW_H 187c804472Sopenharmony_ci 197c804472Sopenharmony_ci#include <refbase.h> 207c804472Sopenharmony_ci#include <iremote_object.h> 217c804472Sopenharmony_ci#include "window_option.h" 227c804472Sopenharmony_ci 237c804472Sopenharmony_cinamespace OHOS::MMI { 247c804472Sopenharmony_ciclass PointerEvent; 257c804472Sopenharmony_ciclass KeyEvent; 267c804472Sopenharmony_ciclass AxisEvent; 277c804472Sopenharmony_ci} 287c804472Sopenharmony_ci 297c804472Sopenharmony_cinamespace OHOS::Ace { 307c804472Sopenharmony_ciclass UIContent; 317c804472Sopenharmony_ciclass ViewportConfig; 327c804472Sopenharmony_ci} 337c804472Sopenharmony_ci 347c804472Sopenharmony_cinamespace OHOS::AbilityRuntime { 357c804472Sopenharmony_ciclass AbilityContext; 367c804472Sopenharmony_ciclass Context; 377c804472Sopenharmony_ci} 387c804472Sopenharmony_ci 397c804472Sopenharmony_cinamespace OHOS { 407c804472Sopenharmony_cinamespace Rosen { 417c804472Sopenharmony_ciusing ContentInfoCallback = std::function<void(std::string contentInfo)>; 427c804472Sopenharmony_ciusing SendRenderDataCallback = bool (*)(const void*, const size_t, const int32_t, const int32_t, const uint64_t); 437c804472Sopenharmony_ci 447c804472Sopenharmony_ciclass IIgnoreViewSafeAreaListener : virtual public RefBase { 457c804472Sopenharmony_cipublic: 467c804472Sopenharmony_ci void SetIgnoreViewSafeArea(bool ignoreViewSafeArea) {} 477c804472Sopenharmony_ci}; 487c804472Sopenharmony_ci 497c804472Sopenharmony_ciclass IAvoidAreaChangedListener : virtual public RefBase { 507c804472Sopenharmony_cipublic: 517c804472Sopenharmony_ci void OnAvoidAreaChanged(const AvoidArea avoidArea, AvoidAreaType type) {} 527c804472Sopenharmony_ci}; 537c804472Sopenharmony_ci 547c804472Sopenharmony_ciclass IWindowSystemBarEnableListener : virtual public RefBase { 557c804472Sopenharmony_cipublic: 567c804472Sopenharmony_ci WMError OnSetSpecificBarProperty(WindowType type, const SystemBarProperty& property) 577c804472Sopenharmony_ci { 587c804472Sopenharmony_ci return WMError::WM_OK; 597c804472Sopenharmony_ci } 607c804472Sopenharmony_ci}; 617c804472Sopenharmony_ci 627c804472Sopenharmony_cistatic WMError DefaultCreateErrCode = WMError::WM_OK; 637c804472Sopenharmony_ciclass Window : public RefBase { 647c804472Sopenharmony_cipublic: 657c804472Sopenharmony_ci static sptr<Window> Create(const std::string& windowName, 667c804472Sopenharmony_ci sptr<WindowOption>& option, const std::shared_ptr<AbilityRuntime::Context>& context = nullptr, 677c804472Sopenharmony_ci WMError& errCode = DefaultCreateErrCode); 687c804472Sopenharmony_ci 697c804472Sopenharmony_ci virtual WMError RegisterSystemBarEnableListener(const sptr<IWindowSystemBarEnableListener>& listener) = 0; 707c804472Sopenharmony_ci virtual WMError UnRegisterSystemBarEnableListener(const sptr<IWindowSystemBarEnableListener>& listener) = 0; 717c804472Sopenharmony_ci virtual void SetContentInfoCallback(const ContentInfoCallback& callback) = 0; 727c804472Sopenharmony_ci virtual void CreateSurfaceNode(const std::string name, const SendRenderDataCallback& callback) = 0; 737c804472Sopenharmony_ci virtual void SetViewportConfig(const Ace::ViewportConfig& config) = 0; 747c804472Sopenharmony_ci virtual void ConsumeKeyEvent(const std::shared_ptr<MMI::KeyEvent>& inputEvent) = 0; 757c804472Sopenharmony_ci virtual void ConsumePointerEvent(const std::shared_ptr<MMI::PointerEvent>& inputEvent) = 0; 767c804472Sopenharmony_ci virtual void UpdateAvoidArea(const sptr<AvoidArea>& avoidArea, AvoidAreaType type) = 0; 777c804472Sopenharmony_ci virtual SystemBarProperty GetSystemBarPropertyByType(WindowType type) const = 0; 787c804472Sopenharmony_ci}; 797c804472Sopenharmony_ci} 807c804472Sopenharmony_ci} 817c804472Sopenharmony_ci#endif // OHOS_ROSEN_WINDOW_H 82