/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef OHOS_ROSEN_WINDOW_TRANSITION_INFO_H #define OHOS_ROSEN_WINDOW_TRANSITION_INFO_H #include #include #include "ability_info.h" #include "window_info.h" #include "wm_common.h" #include "wm_common_inner.h" namespace OHOS::AAFwk { struct AbilityTransitionInfo; } // namespace OHOS::AAFwk namespace OHOS { namespace Rosen { enum class TransitionReason : uint32_t { MINIMIZE = 0, CLOSE, // BACK when only close self ABILITY_TRANSITION, BACK_TRANSITION, // BACK need start last one CLOSE_BUTTON, // close button on decor BACKGROUND_TRANSITION, }; class WindowTransitionInfo : public Parcelable { public: WindowTransitionInfo() = default; ~WindowTransitionInfo() = default; explicit WindowTransitionInfo(sptr info); virtual bool Marshalling(Parcel& parcel) const override; static WindowTransitionInfo* Unmarshalling(Parcel& parcel); void SetBundleName(std::string name); std::string GetBundleName(); void SetAbilityName(std::string name); std::string GetAbilityName(); void SetWindowMode(WindowMode mode); WindowMode GetWindowMode(); void SetWindowRect(Rect rect); Rect GetWindowRect(); void SetAbilityToken(sptr abilityToken); sptr GetAbilityToken(); void SetDisplayId(DisplayId displayId); DisplayId GetDisplayId(); void SetWindowType(WindowType windowType); WindowType GetWindowType(); void SetShowFlagWhenLocked(bool isShow); void SetWindowSupportModes(const std::vector supportModes); std::vector GetWindowSupportModes(); bool GetShowFlagWhenLocked(); void SetTransitionReason(TransitionReason reason); TransitionReason GetTransitionReason(); void SetIsRecent(bool isRecent); bool GetIsRecent() const; WindowLimits GetWindowSizeLimits() const; void SetMissionId(int32_t missionId); int32_t GetMissionId() const; void SetOrientation(AppExecFwk::DisplayOrientation orientation); AppExecFwk::DisplayOrientation GetOrientation() const; void SetApiCompatibleVersion(uint32_t apiCompatibleVersion); uint32_t GetApiCompatibleVersion() const; bool isSystemCalling_ = false; private: std::string bundleName_; std::string abilityName_; WindowMode mode_ = WindowMode::WINDOW_MODE_FULLSCREEN; Rect windowRect_ = {0, 0, 0, 0}; sptr abilityToken_ = nullptr; DisplayId displayId_ = 0; WindowType windowType_ = WindowType::WINDOW_TYPE_APP_MAIN_WINDOW; bool isShowWhenLocked_ = false; bool isRecent_ = false; TransitionReason reason_ = TransitionReason::ABILITY_TRANSITION; std::vector supportWindowModes_; WindowLimits sizeLimits_; int32_t missionId_ = -1; AppExecFwk::DisplayOrientation orientation_ = AppExecFwk::DisplayOrientation::UNSPECIFIED; uint32_t apiCompatibleVersion_ = 0; }; } // Rosen } // OHOS #endif