using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

namespace GenericDisplayCommand.Controls
{
    [Serializable]

    public abstract class View
    {
        public string Id
        {
            get; set;
        }

        /// <summary>
        /// 2dp, match_parent
        /// </summary>
        public string Height
        {
            get; set;
        }

        /// <summary>
        /// 2dp, match_parent
        /// </summary>
        public string Width
        {
            get; set;
        }

        /// <summary>
        /// path to picture or color number like: #dce6f1
        /// </summary>
        public string Background
        {
            get; set;
        }

        public string PaddingLeft
        {
            get; set;
        }

        public string PaddingTop
        {
            get; set;
        }

        public string PaddingRight
        {
            get; set;
        }

        public string PaddingBottom
        {
            get; set;
        }

        public Scrollbars_Values[] Scrollbars
        {
            get; set;
        }
        //[XmlElement("AllowAction", typeof(AllowAction))]
        public List<AllowAction> AllowActions
        {
            get; set;
        }

        public string ActionValue
        { get; set; }
    }
    [Serializable]
    public enum AllowAction
    {
        None,
        /// <summary>
        /// action for this view will trigger a callback
        /// </summary>
        Submit,

        /// <summary>
        /// this view is selectable, and will be carried with ActionValue once other Submit view triggered.
        /// </summary>
        Select,

        /// <summary>
        /// this view can drag to other place.
        /// </summary>
        Drag,

        /// <summary>
        /// this view can be dropped by other view.
        /// </summary>
        Drop,

    }

    [Serializable]
    public enum Scrollbars_Values
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Horizontal,

        /// <remarks/>
        Vertical,
    }
}