diff --git a/frameworks/core/components_ng/manager/full_screen/full_screen_manager.h b/frameworks/core/components_ng/manager/full_screen/full_screen_manager.h index f02bebd9e9633cb3bba98b583386cc47fb15f5cc..4cd4213fd5dbf71045c38249ec00bf430c9c4bfe 100644 --- a/frameworks/core/components_ng/manager/full_screen/full_screen_manager.h +++ b/frameworks/core/components_ng/manager/full_screen/full_screen_manager.h @@ -16,32 +16,21 @@ #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_FULL_SCREEN_MANAGER_H #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_FULL_SCREEN_MANAGER_H -#include - -#include "base/memory/ace_type.h" -#include "base/memory/referenced.h" -#include "base/utils/noncopyable.h" -#include "core/components_ng/base/frame_node.h" -#include "core/components_ng/base/geometry_node.h" +#include "core/components_ng/manager/full_screen/screen_manager.h" namespace OHOS::Ace::NG { // FullScreenManager is the base class to display full screen. -class ACE_EXPORT FullScreenManager : public virtual AceType { - DECLARE_ACE_TYPE(FullScreenManager, AceType); +class ACE_EXPORT FullScreenManager : public virtual ScreenManager { + DECLARE_ACE_TYPE(FullScreenManager, ScreenManager); public: - explicit FullScreenManager(const RefPtr& rootNode) : rootNodeWeak_(rootNode) {} + explicit FullScreenManager(const RefPtr& rootNode) : ScreenManager(rootNode) {}; ~FullScreenManager() override = default; - void RequestFullScreen(const RefPtr& frameNode); - void ExitFullScreen(const RefPtr& frameNode); - bool OnBackPressed(); - -private: - WeakPtr rootNodeWeak_; - std::unordered_map, int32_t>> originalParent_; - std::unordered_map> originGeometryNode_; + void RequestFullScreen(const RefPtr& frameNode) override; + void ExitFullScreen(const RefPtr& frameNode) override; + bool OnBackPressed() override; ACE_DISALLOW_COPY_AND_MOVE(FullScreenManager); }; diff --git a/frameworks/core/components_ng/manager/full_screen/screen_manager.h b/frameworks/core/components_ng/manager/full_screen/screen_manager.h new file mode 100644 index 0000000000000000000000000000000000000000..9d7c4e1dfad4814bd0f2ad2c8a72dbe732a243b8 --- /dev/null +++ b/frameworks/core/components_ng/manager/full_screen/screen_manager.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 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 FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_SCREEN_MANAGER_H +#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_SCREEN_MANAGER_H + +#include + +#include "base/memory/ace_type.h" +#include "base/memory/referenced.h" +#include "base/utils/noncopyable.h" +#include "core/components_ng/base/frame_node.h" +#include "core/components_ng/base/geometry_node.h" + +namespace OHOS::Ace::NG { + +// ScreenManager is the base class to display full screen. +class ACE_EXPORT ScreenManager : public virtual AceType { + DECLARE_ACE_TYPE(ScreenManager, AceType); + +public: + explicit ScreenManager(const RefPtr& rootNode) : rootNodeWeak_(rootNode) {} + ~ScreenManager() override = default; + + virtual void RequestFullScreen(const RefPtr& frameNode) {}; + virtual void ExitFullScreen(const RefPtr& frameNode) {}; + virtual bool OnBackPressed() + { + return false; + }; + +protected: + WeakPtr rootNodeWeak_; + std::unordered_map, int32_t>> originalParent_; + std::unordered_map> originGeometryNode_; + + ACE_DISALLOW_COPY_AND_MOVE(ScreenManager); +}; +} // namespace OHOS::Ace::NG + +#endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_SCREEN_MANAGER_H diff --git a/frameworks/core/components_ng/manager/full_screen/video_screen_manager.h b/frameworks/core/components_ng/manager/full_screen/video_screen_manager.h new file mode 100644 index 0000000000000000000000000000000000000000..33b6116185d50f0f9fcfb070f45d287810bf984e --- /dev/null +++ b/frameworks/core/components_ng/manager/full_screen/video_screen_manager.h @@ -0,0 +1,39 @@ +/* + * 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 FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_VIDEO_SCREEN_MANAGER_H +#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_VIDEO_SCREEN_MANAGER_H + +#include "core/components_ng/manager/full_screen/screen_manager.h" + +namespace OHOS::Ace::NG { + +// VideoScreenManager is the base class to display full screen for video. +class ACE_EXPORT VideoScreenManager : public virtual ScreenManager { + DECLARE_ACE_TYPE(VideoScreenManager, ScreenManager); + +public: + explicit VideoScreenManager(const RefPtr& rootNode) : ScreenManager(rootNode) {}; + ~VideoScreenManager() override = default; + + void RequestFullScreen(const RefPtr& frameNode) override; + void ExitFullScreen(const RefPtr& frameNode) override; + bool OnBackPressed() override; + + ACE_DISALLOW_COPY_AND_MOVE(VideoScreenManager); +}; +} // namespace OHOS::Ace::NG + +#endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MANAGER_FULL_SCREEN_VIDEO_SCREEN_MANAGER_H