89 lines
3.0 KiB
C++
89 lines
3.0 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// NoesisGUI - http://www.noesisengine.com
|
|
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef __GUI_TEXTPROPERTIES_H__
|
|
#define __GUI_TEXTPROPERTIES_H__
|
|
|
|
|
|
#include <NsCore/Noesis.h>
|
|
#include <NsCore/ReflectionDeclareEnum.h>
|
|
#include <NsGui/ProvidersApi.h>
|
|
|
|
|
|
namespace Noesis
|
|
{
|
|
|
|
/// Specifies whether the text is left-aligned, right-aligned, centered, or justified
|
|
enum TextAlignment: int32_t
|
|
{
|
|
TextAlignment_Left,
|
|
TextAlignment_Right,
|
|
TextAlignment_Center,
|
|
TextAlignment_Justify,
|
|
};
|
|
|
|
/// Describes how text is trimmed when it overflows the edge of its containing box
|
|
enum TextTrimming: int32_t
|
|
{
|
|
/// Not trimmed
|
|
TextTrimming_None,
|
|
|
|
/// Trimmed at a character boundary. An ellipsis(...) is drawn in place of remaining text
|
|
TextTrimming_CharacterEllipsis,
|
|
|
|
/// Trimmed at a word boundary. An ellipsis(...) is drawn in place of remaining text
|
|
TextTrimming_WordEllipsis
|
|
};
|
|
|
|
/// Specifies whether text wraps when it reaches the edge of the containing box
|
|
enum TextWrapping: int32_t
|
|
{
|
|
/// No line wrapping is performed
|
|
TextWrapping_NoWrap,
|
|
|
|
/// Line-breaking occurs if the line overflows beyond the available block width, even if the
|
|
/// standard line breaking algorithm cannot determine any line break opportunity, as in the
|
|
/// case of a very long word constrained in a fixed-width container with no scrolling allowed
|
|
TextWrapping_Wrap,
|
|
|
|
/// Line-breaking occurs if the line overflows beyond the available block width. However, a line
|
|
/// may overflow beyond the block width if the line breaking algorithm cannot determine a line
|
|
/// break opportunity, as in the case of a very long word constrained in a fixed-width container
|
|
/// with no scrolling allowed
|
|
TextWrapping_WrapWithOverflow
|
|
};
|
|
|
|
/// Describes a mechanism by which a line box is determined for each line
|
|
enum LineStackingStrategy: int32_t
|
|
{
|
|
/// The stack height is determined by the block element line-height property value
|
|
LineStackingStrategy_BlockLineHeight,
|
|
|
|
/// The stack height is the smallest value that containing all the inline elements on that line
|
|
/// when those elements are properly aligned
|
|
LineStackingStrategy_MaxHeight
|
|
};
|
|
|
|
/// Specifies the content flow direction for text
|
|
enum FlowDirection: int32_t
|
|
{
|
|
/// Indicates that content should flow from left to right
|
|
FlowDirection_LeftToRight,
|
|
|
|
/// Indicates that content should flow from right to left
|
|
FlowDirection_RightToLeft
|
|
};
|
|
|
|
}
|
|
|
|
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_PROVIDERS_API, Noesis::TextAlignment)
|
|
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_PROVIDERS_API, Noesis::TextTrimming)
|
|
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_PROVIDERS_API, Noesis::TextWrapping)
|
|
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_PROVIDERS_API, Noesis::LineStackingStrategy)
|
|
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_PROVIDERS_API, Noesis::FlowDirection)
|
|
|
|
#endif
|