/*
* 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());
}
}
}