using System.Drawing.Drawing2D;
using System.Drawing.Text;
using DelftTools.Utils.Aop;
using SharpMap.Api.Delegates;
using SharpMap.Api.Enums;
namespace SharpMap.Api.Layers
{
public interface ILabelLayer : ILayer
{
///
/// Gets or sets labelling behavior on multipart geometries
///
/// Default value is
MultipartGeometryBehaviourEnum MultipartGeometryBehaviour { get; set; }
///
/// Render whether smoothing (antialiasing) is applied to lines and curves and the edges of filled areas
///
SmoothingMode SmoothingMode { get; set; }
///
/// Specifies the quality of text rendering
///
TextRenderingHint TextRenderingHint { get; set; }
///
/// Gets or sets the rendering style of the label layer.
///
ILabelStyle Style { get; set; }
///
/// Gets or sets thematic settings for the layer. Set to null to ignore thematics
///
ITheme Theme { get; set; }
///
/// Data column or expression where label text is extracted from.
///
///
/// This property is overriden by the .
///
string LabelColumn { get; set; }
///
/// Gets or sets the method for creating a custom label string based on a feature.
///
///
/// If this method is not null, it will override the value.
/// The label delegate must take a and return a string.
///
/// Creating a label-text by combining attributes "ROADNAME" and "STATE" into one string, using
/// an anonymous delegate:
///
/// myLabelLayer.LabelStringDelegate = delegate(SharpMap.Data.FeatureDataRow fdr)
/// { return fdr["ROADNAME"].ToString() + ", " + fdr["STATE"].ToString(); };
///
///
///
GetLabelMethod LabelStringDelegate { get; set; }
///
/// Data column from where the label rotation is derived.
/// If this is empty, rotation will be zero, or aligned to a linestring.
/// Rotation are in degrees (positive = clockwise).
///
string RotationColumn { get; set; }
///
/// A value indication the priority of the label in cases of label-collision detection
///
int Priority { get; set; }
[Aggregation]
ILayer Parent { get; set; }
}
}