/* * Copyright(c) 2021 Samsung Electronics 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. * */ using System; using System.ComponentModel; namespace Tizen.NUI.Components { /// /// PageAppearingEventArgs is a class to record event arguments which will be sent to user. /// /// 9 public class PageAppearingEventArgs : EventArgs { } /// /// PageDisappearingEventArgs is a class to record event arguments which will be sent to user. /// /// 9 public class PageDisappearingEventArgs : EventArgs { } /// /// PageAppearedEventArgs is a class to record event arguments which will be sent to user. /// /// 9 public class PageAppearedEventArgs : EventArgs { } /// /// PageDisappearedEventArgs is a class to record event arguments which will be sent to user. /// /// 9 public class PageDisappearedEventArgs : EventArgs { } /// /// The Page class is a class which is an element of navigation. /// /// 9 public abstract class Page : Control { private Navigator navigator = null; // Default transition is Fade. private TransitionBase appearingTransition = null; private TransitionBase disappearingTransition = null; /// /// Creates a new instance of a Page. /// /// 9 public Page() : base() { } /// /// Navigator which has pushed the Page into its stack. /// If this Page has not been pushed into any Navigator, then Navigator is null. /// /// 9 public Navigator Navigator { get { return navigator; } internal set { if (navigator == value) { return; } navigator = value; } } /// /// Transition properties for the transition of Views in this page during this page is pushed to Navigator. /// [EditorBrowsable(EditorBrowsableState.Never)] public TransitionBase AppearingTransition { set { appearingTransition = value; } get { return appearingTransition; } } /// /// Transition properties for the transition of Views in this page during this page is popped from Navigator. /// [EditorBrowsable(EditorBrowsableState.Never)] public TransitionBase DisappearingTransition { set { disappearingTransition = value; } get { return disappearingTransition; } } /// /// Appearing event is invoked right before the page appears. /// /// 9 public event EventHandler Appearing; /// /// Disappearing event is invoked right before the page disappears. /// /// 9 public event EventHandler Disappearing; /// /// Appeared event is invoked right after the page appears. /// /// 9 public event EventHandler Appeared; /// /// Disappeared event is invoked right after the page disappears. /// /// 9 public event EventHandler Disappeared; internal void InvokeAppearing() { Appearing?.Invoke(this, new PageAppearingEventArgs()); } internal void InvokeDisappearing() { Disappearing?.Invoke(this, new PageDisappearingEventArgs()); } internal void InvokeAppeared() { Appeared?.Invoke(this, new PageAppearedEventArgs()); } internal void InvokeDisappeared() { Disappeared?.Invoke(this, new PageDisappearedEventArgs()); } } }