forked from enlightenment/efl
Efl text: add Font, Format and Style interfaces
The following text interfaces are added: - Efl.Text.Font: font settings that decide which font to display in the text - Efl.Text.Format: formatting that affects the looks and layout of the text - Efl.Text.Style: decorations and overlays that shouldn't affect the font choice or the layout @feature
This commit is contained in:
parent
57a0343775
commit
da2ef30f2b
|
@ -16,6 +16,9 @@ efl_eolian_files = \
|
|||
lib/efl/interfaces/efl_part.eo \
|
||||
lib/efl/interfaces/efl_player.eo \
|
||||
lib/efl/interfaces/efl_text.eo \
|
||||
lib/efl/interfaces/efl_text_font.eo \
|
||||
lib/efl/interfaces/efl_text_style.eo \
|
||||
lib/efl/interfaces/efl_text_format.eo \
|
||||
lib/efl/interfaces/efl_text_properties.eo \
|
||||
lib/efl/interfaces/efl_gfx_stack.eo \
|
||||
lib/efl/interfaces/efl_gfx_view.eo \
|
||||
|
|
|
@ -143,6 +143,11 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
|
|||
#include "interfaces/efl_io_buffer.eo.h"
|
||||
#include "interfaces/efl_io_queue.eo.h"
|
||||
|
||||
/* Text interfaces */
|
||||
#include "interfaces/efl_text_font.eo.h"
|
||||
#include "interfaces/efl_text_style.eo.h"
|
||||
#include "interfaces/efl_text_format.eo.h"
|
||||
|
||||
#else
|
||||
|
||||
#ifndef EFL_NOLEGACY_API_SUPPORT
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
#include "interfaces/efl_player.eo.c"
|
||||
#include "interfaces/efl_text.eo.c"
|
||||
#include "interfaces/efl_text_properties.eo.c"
|
||||
#include "interfaces/efl_text_font.eo.c"
|
||||
#include "interfaces/efl_text_style.eo.c"
|
||||
#include "interfaces/efl_text_format.eo.c"
|
||||
|
||||
#include "interfaces/efl_gfx.eo.c"
|
||||
#include "interfaces/efl_gfx_buffer.eo.c"
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
// src/lib/efl/interfaces/efl_text_font.eo
|
||||
|
||||
enum Efl.Text.Font.Weight {
|
||||
[[Type of font weight]]
|
||||
normal,
|
||||
thin,
|
||||
ultralight,
|
||||
extralight,
|
||||
light,
|
||||
book,
|
||||
medium,
|
||||
semibold,
|
||||
bold,
|
||||
ultrabold,
|
||||
extrabold,
|
||||
black,
|
||||
extrablack,
|
||||
}
|
||||
|
||||
enum Efl.Text.Font.Width {
|
||||
[[Type of font width]]
|
||||
normal,
|
||||
ultracondensed,
|
||||
extracondensed,
|
||||
condensed,
|
||||
semicondensed,
|
||||
semiexpanded,
|
||||
expanded,
|
||||
extraexpanded,
|
||||
ultraexpanded,
|
||||
}
|
||||
|
||||
enum Efl.Text.Font.Slant {
|
||||
[[Type of font slant]]
|
||||
normal,
|
||||
oblique,
|
||||
italic,
|
||||
}
|
||||
|
||||
interface Efl.Text.Font {
|
||||
[[Font settings of the text
|
||||
|
||||
@since 1.20
|
||||
]]
|
||||
methods {
|
||||
@property font {
|
||||
[[The font name and size that is used for the displayed text]]
|
||||
values {
|
||||
font: string;
|
||||
size: int;
|
||||
}
|
||||
}
|
||||
@property font_source {
|
||||
[[The source that will be used to lookup the font of the text
|
||||
|
||||
The source can be either a path to a font file e.g.
|
||||
"/path/to/font.ttf", or an eet file e.g. "/path/to/font.eet".
|
||||
]]
|
||||
values {
|
||||
font_source: string;
|
||||
}
|
||||
}
|
||||
|
||||
@property font_fallbacks {
|
||||
[[Comma-separated list of font fallbacks
|
||||
|
||||
Will be used in case the primary font isn't available.
|
||||
]]
|
||||
values {
|
||||
font_fallbacks: string;
|
||||
}
|
||||
}
|
||||
|
||||
@property font_weight {
|
||||
[[Type of weight of the displayed font
|
||||
|
||||
Default is $Efl.Text.Font.Weight.normal\.
|
||||
]]
|
||||
values {
|
||||
font_weight: Efl.Text.Font.Weight;
|
||||
}
|
||||
}
|
||||
|
||||
@property font_slant {
|
||||
[[Type of slant of the displayed font
|
||||
|
||||
Default is $Efl.Text.Font.Slant.normal\.
|
||||
]]
|
||||
values {
|
||||
style: Efl.Text.Font.Slant;
|
||||
}
|
||||
}
|
||||
|
||||
@property font_width {
|
||||
[[Type of width of the displayed font
|
||||
|
||||
Default is $Efl.Text.Font.Width.normal\.
|
||||
]]
|
||||
values {
|
||||
width: Efl.Text.Font.Width;
|
||||
}
|
||||
}
|
||||
|
||||
@property font_lang {
|
||||
[[Specific language of the displayed font
|
||||
|
||||
This is used to lookup fonts suitable to the specified language, as
|
||||
well as helping the font shaper backend.
|
||||
The language $lang can be either a code e.g "en_US",
|
||||
"auto" to use the system locale, or "none".
|
||||
]]
|
||||
values {
|
||||
lang: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
enum Efl.Text.Format.Wrap {
|
||||
[[Wrap mode of the text (not in effect if not multiline)]]
|
||||
none,
|
||||
char,
|
||||
word,
|
||||
mixed,
|
||||
hyphenation
|
||||
}
|
||||
|
||||
interface Efl.Text.Format {
|
||||
[[The look and layout of the text
|
||||
|
||||
The text format can affect the geometry of the text object, as well as
|
||||
how characters are presented.
|
||||
|
||||
@since 1.20
|
||||
]]
|
||||
methods {
|
||||
@property format_ellipsis {
|
||||
[[Ellipsis value (number from -1.0 to 1.0)]]
|
||||
values
|
||||
{
|
||||
value: double;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_wrap {
|
||||
[[Wrap mode for use in the text]]
|
||||
values {
|
||||
wrap: Efl.Text.Format.Wrap;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_multiline {
|
||||
[[Multiline is enabled or not]]
|
||||
values {
|
||||
enabled: bool;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_halign {
|
||||
[[Horizontal alignment of text (number from 0.0 to 1.0)]]
|
||||
values
|
||||
{
|
||||
value: double;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_valign {
|
||||
[[Vertical alignment of text (number from -1.0 to 1.0)]]
|
||||
values
|
||||
{
|
||||
value: double;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_linegap {
|
||||
[[Minimal line gap (top and bottom) for each line in the text
|
||||
|
||||
$value is absolute size.
|
||||
]]
|
||||
values
|
||||
{
|
||||
value: double;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_linerelgap {
|
||||
[[Relative line gap (top and bottom) for each line in the text
|
||||
|
||||
The original line gap value is multiplied by $value.
|
||||
]]
|
||||
values
|
||||
{
|
||||
value: double;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_tabstops {
|
||||
[[Tabstops value]]
|
||||
values
|
||||
{
|
||||
value: int;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_password {
|
||||
[[Whether text is a password]]
|
||||
values
|
||||
{
|
||||
enabled: bool;
|
||||
}
|
||||
}
|
||||
|
||||
@property format_replacement_char {
|
||||
[[The character used to replace characters that can not be displayed
|
||||
|
||||
Currently, only used to replace characters if @.format_password
|
||||
is enabled.
|
||||
]]
|
||||
values {
|
||||
repch: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,257 @@
|
|||
enum Efl.Text.Style.Backing_Type
|
||||
{
|
||||
[[Whether to apply backing style to the displayed text or not]]
|
||||
disabled = 0, [[Do not use backing]]
|
||||
enabled, [[Use backing style]]
|
||||
}
|
||||
|
||||
enum Efl.Text.Style.Strikethrough_Type
|
||||
{
|
||||
[[Whether to apply strikethrough style to the displayed text or not]]
|
||||
disabled = 0, [[Do not use strikethrough]]
|
||||
enabled, [[Use strikethrough style]]
|
||||
}
|
||||
|
||||
enum Efl.Text.Style.Effect_Type
|
||||
{
|
||||
[[Effect to apply to the displayed text]]
|
||||
none = 0,
|
||||
|
||||
// colored with shadow_color
|
||||
shadow,
|
||||
far_shadow,
|
||||
soft_shadow,
|
||||
far_soft_shadow,
|
||||
// colored with glow_color
|
||||
glow,
|
||||
// colored with outline_color
|
||||
outline,
|
||||
soft_outline,
|
||||
// colored with outline_color + shadow_color
|
||||
outline_shadow,
|
||||
outline_soft_shadow,
|
||||
}
|
||||
|
||||
enum Efl.Text.Style.Shadow_Direction
|
||||
{
|
||||
[[Direction of the shadow style, if used]]
|
||||
bottom_right = 0,
|
||||
bottom,
|
||||
bottom_left,
|
||||
left,
|
||||
top_left,
|
||||
top,
|
||||
top_right,
|
||||
right,
|
||||
}
|
||||
|
||||
enum Efl.Text.Style.Underline_Type
|
||||
{
|
||||
[[Underline type of the displayed text]]
|
||||
off = 0,
|
||||
on,
|
||||
single,
|
||||
double,
|
||||
dashed,
|
||||
}
|
||||
|
||||
interface Efl.Text.Style {
|
||||
[[Style to apply to the text
|
||||
|
||||
A style can be coloring, effects, underline, strikethrough etc.
|
||||
|
||||
@since 1.20
|
||||
]]
|
||||
methods {
|
||||
@property normal_color {
|
||||
[[Color of text, excluding style]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property backing_type {
|
||||
values
|
||||
{
|
||||
type: Efl.Text.Style.Backing_Type;
|
||||
}
|
||||
}
|
||||
|
||||
@property backing_color {
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline_type {
|
||||
[[Sets an underline style on the text]]
|
||||
values
|
||||
{
|
||||
type: Efl.Text.Style.Underline_Type;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline_color
|
||||
{
|
||||
[[Color of normal underline style]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline_height
|
||||
{
|
||||
[[Height of underline style]]
|
||||
values
|
||||
{
|
||||
height: double;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline_dashed_color
|
||||
{
|
||||
[[Color of dashed underline style]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline_dashed_width
|
||||
{
|
||||
[[Width of dashed underline style]]
|
||||
values
|
||||
{
|
||||
width: int;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline_dashed_gap
|
||||
{
|
||||
[[Gap of dashed underline style]]
|
||||
values
|
||||
{
|
||||
gap: int;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline2_type
|
||||
{
|
||||
[[Type of underline2 style]]
|
||||
values
|
||||
{
|
||||
type: Efl.Text.Style.Underline_Type;
|
||||
}
|
||||
}
|
||||
|
||||
@property underline2_color
|
||||
{
|
||||
[[Color of underline2 style]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property strikethrough_type {
|
||||
[[Type of strikethrough style]]
|
||||
values
|
||||
{
|
||||
type: Efl.Text.Style.Strikethrough_Type;
|
||||
}
|
||||
}
|
||||
|
||||
@property strikethrough_color
|
||||
{
|
||||
[[Color of strikethrough_style]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property effect_type {
|
||||
[[Type of effect used for the displayed text]]
|
||||
values {
|
||||
type: Efl.Text.Style.Effect_Type;
|
||||
}
|
||||
}
|
||||
@property outline_color
|
||||
{
|
||||
[[Color of outline effect]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property shadow_direction
|
||||
{
|
||||
[[Direction of shadow effect]]
|
||||
values
|
||||
{
|
||||
type: Efl.Text.Style.Shadow_Direction;
|
||||
}
|
||||
}
|
||||
|
||||
@property shadow_color
|
||||
{
|
||||
[[Color of shadow effect]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property glow_color
|
||||
{
|
||||
[[Color of glow effect]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
|
||||
@property glow2_color
|
||||
{
|
||||
[[Second color of the glow effect]]
|
||||
values
|
||||
{
|
||||
r: ubyte;
|
||||
g: ubyte;
|
||||
b: ubyte;
|
||||
a: ubyte;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue