On Mon, 29 May 2017 13:16:31 +0900 Jean-Philippe André <j...@videolan.org> said:
> On 29 May 2017 at 05:18, Davide Andreoli <d...@gurumeditation.it> wrote: > > > 2017-05-28 15:00 GMT+02:00 Daniel Hirt <hirt.da...@gmail.com>: > > > herdsman pushed a commit to branch master. > > > > > > http://git.enlightenment.org/core/efl.git/commit/?id= > > da2ef30f2b4d53aa3c1658b83c8c8381743469a0 > > > > > > commit da2ef30f2b4d53aa3c1658b83c8c8381743469a0 > > > Author: Daniel Hirt <hirt.da...@gmail.com> > > > Date: Mon May 22 17:36:41 2017 +0300 > > > > > > 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 > > > > I think we have another namespacing issue here: > > Efl.Text.Style do not use any namespace, while Efl.Text.Font and Format do, > > > > We discussed this already in chat today and we did not find a successfull > > deal, > > what I think at this point is that we really should find a rule to > > apply to every Iface, > > ...the problem is that we did not find any always-correct rule :( > > > > In short, as I didn't follow that conversation, what were the arguments > against namespacing "style"? > > I also wonder if having 9 color functions is really better than a single > color function and an enum: color1, color2, color3, shadow, underline, > etc...? just like with parts... we debated if we should be passing those part name strings to everything... and came up with efl_part to solve the problem more nicely... in future at least we could use efl_part for this kind of thing... but there is talk of doing a specific style concept in eo like https://phab.enlightenment.org/T5307 so i guess it's a question of where it would belong or if there would be part name conflicts etc. > Also, what objects will implement the below interfaces? I expect > Efl.Canvas.Text for the default style, and some kind of text item object? > > ideas? > > > > > > PS: I stripped down the commit below to only show the new eo interfaces, > > so that > > the issue is more evident > > > > > > > > > +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; > > > + } > > > + } > > > + } > > > +} > > > > > > > +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; > > > + } > > > + } > > > + } > > > +} > > > > > > > +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; > > > + } > > > + } > > > + } > > > +} > > > > > > -- > > > > > > > > > > ------------------------------------------------------------ > > ------------------ > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > -- > Jean-Philippe André > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel