/*******************************************************************************
 * You may amend and distribute as you like, but don't remove this header!
 *
 * EPPlus provides server-side generation of Excel 2007/2010 spreadsheets.
 * See http://www.codeplex.com/EPPlus for details.
 *
 * Copyright (C) 2011  Jan Källman
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
 * See the GNU Lesser General Public License for more details.
 *
 * The GNU Lesser General Public License can be viewed at http://www.opensource.org/licenses/lgpl-license.php
 * If you unfamiliar with this license or have questions about it, here is an http://www.gnu.org/licenses/gpl-faq.html
 *
 * All code and executables are provided "as is" with no warranty either express or implied. 
 * The author accepts no liability for any damage or loss of business that this product may cause.
 *
 * Code change notes:
 * 
 * Author          Change						              Date
 * ******************************************************************************
 * Eyal Seagull    Conditional Formatting         2012-04-03
 *******************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using OfficeOpenXml.Style.Dxf;

namespace OfficeOpenXml.ConditionalFormatting.Contracts
{
	/// <summary>
	/// Interface for conditional formatting rule
	/// </summary>
	public interface IExcelConditionalFormattingRule
	{
    /// <summary>
    /// The 'cfRule' XML node
    /// </summary>
    XmlNode Node { get; }

    /// <summary>
    /// Type of conditional formatting rule. ST_CfType §18.18.12.
    /// </summary>
    eExcelConditionalFormattingRuleType Type { get; }

    /// <summary>
    /// <para>Range over which these conditional formatting rules apply.</para>
    /// <para>The possible values for this attribute are defined by the
    /// ST_Sqref simple type (§18.18.76).</para>
    /// </summary>
    ExcelAddress Address { get; set; }

		/// <summary>
		/// The priority of this conditional formatting rule. This value is used to determine
		/// which format should be evaluated and rendered. Lower numeric values are higher
		/// priority than higher numeric values, where 1 is the highest priority.
		/// </summary>
    int Priority { get; set; }

    /// <summary>
    /// If this flag is 1, no rules with lower priority shall be applied over this rule,
    /// when this rule evaluates to true.
    /// </summary>
    bool StopIfTrue { get; set; }

    ///// <summary>
    ///// <para>This is an index to a dxf element in the Styles Part indicating which cell
    ///// formatting to apply when the conditional formatting rule criteria is met.</para>
    ///// <para>The possible values for this attribute are defined by the ST_DxfId simple type
    ///// (§18.18.25).</para>
    ///// </summary>
//    int DxfId { get; set; }
    /// <summary>
    /// Gives access to the differencial styling (DXF) for the rule.
    /// </summary>
    ExcelDxfStyleConditionalFormatting Style{ get; }
  }
}