On 4 April 2016 at 17:47, Thierry Goubier <[email protected]> wrote:

>
>
> 2016-04-04 16:14 GMT+02:00 Igor Stasenko <[email protected]>:
>
>>
>>
>> On 4 April 2016 at 17:03, Thierry Goubier <[email protected]>
>> wrote:
>>
>>>
>>>
>>> 2016-04-04 15:49 GMT+02:00 Igor Stasenko <[email protected]>:
>>>
>>>>
>>>>
>>>> On 4 April 2016 at 16:32, Thierry Goubier <[email protected]>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> 2016-04-04 15:23 GMT+02:00 Igor Stasenko <[email protected]>:
>>>>>
>>>>>>
>>>>>>
>>>>>>> Analogies don't work. Right :) I never used Pillar and have remote
>>>>>> ideas about what it does or requires. From that perspective you appeal to
>>>>>> wrong person. On your place i would be asking a guy who knows Pillar
>>>>>> innards about it.
>>>>>> Forgive my ignorance.. but i am not omniscient.
>>>>>>
>>>>>
>>>>> False humility doesn't work there, Igor :)
>>>>>
>>>>
>>>> But i don't know what Pillar is. Never used it. I'm not lying here. I
>>>> seen people doing something with it time to time.. but never got my eyes on
>>>> it.
>>>> Or would you prefer that i would pretend that i know something and can
>>>> continue discussion about things related to it? Waving hands, pointing to
>>>> milestones, drawing diagrams? :)
>>>>
>>>
>>> Yes, diagrams :) Ok, I don't know that much Pillar in details myself;
>>> except as one of those things where some of your characters in the text are
>>> used to build a layout on a target.
>>>
>>>
>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>> Second is: Pharo (and all smalltalks) is the place where supposedly
>>>>>>> impossible stuff can be developed, simply because it takes far less 
>>>>>>> lines
>>>>>>> than anywhere else. No guarantees, but, at the rate we're dropping 
>>>>>>> projects
>>>>>>> by the side of the road (and reinventing stuff multiple times over), we
>>>>>>> have manpower to spare :)
>>>>>>>
>>>>>>> But that is orthogonal. It is possible to do anything on
>>>>>> turing-complete environment. Taking shortcuts etc etc yadda yadda. Now do
>>>>>> such statements alone can bring us anywhere closer to grand goals and 
>>>>>> grand
>>>>>> projects?
>>>>>> Nope. Only hard day to day work could bring us there.. Not talks
>>>>>> about how cool we are.
>>>>>>
>>>>>
>>>>> Hard day to day work, yes. But if you make it that uninteresting, yes,
>>>>> I'm sure we will never get there :)
>>>>>
>>>>> Okay, let me elaborate what was the whole point behind TxText project.
>>>> It was part of work we were doing to migrate from old Canvas & BitBlt
>>>> Morphic rendering towards vector-based rendering using Athens. Basically in
>>>> a nutshell TxText is a model and rendering engine for text rendering.
>>>>
>>>
>>> I'd say it is more: it is an interactive model for text editing and
>>> rendering. How much of it is "interactive" by opposition to pure rendering?
>>> Can they be easily separated?
>>>
>>
>> Well, there is a model, TxModel, which is domain-based. Means it is
>> abstract and agnostic from any kind of rendering engine or UI.
>> It represents an object that contains text and allows certain operation
>> on it, like selection, deletion, insertion etc.
>> And rendering engine bridges that model with morphic and athens.
>> It cannot be separated, since it implies using such model for computing
>> layout, and implies to use Athens for rendering.. And implies to exist in
>> Morphic (or some other kind of UI environment) for UI interaction, to be
>> represented as a widget on screen and receive events and mouse/keyboard
>> input etc.
>> So, what kind of separation you trying to see there?
>>
>
> I was trying to evaluate how much of it was tied to an underlying text
> model, and a specific interaction approach / global high level view of the
> UI.
>
> A short look through the layout part of it and I saw it has support for
> arbitrary object spans. It also supposes a certain API from it's model
> (interacting back to indicate where lines should be ended). A text is a
> list of spans, isn't it? And spans are flat (no span inside span). One
> could imagine extending attributes for spans / type of spans and get
> customized rendering / handling for those.
>

Correct.


>
> For now, external objects can't extend below the baseline.
>

Slightly not like that. An external object are bound to concrete position
in text. And layout of a single line are computed based on dimensions of
that object, as well as dimensions of other parts of a line. The text flow
are not affected by the object in terms that there is no capability to
compute wrapping text around it or align it left/right whatever separately
from text. It means that basically external object is like a special kind
of glyph/icon that uses same layout rules as character glyphs, but just
rendered separately.


>
> Position inside spans can be ambiguous: last position of a span and first
> position of the next span are the same position.
>
> Well, for some operation the are treated as same, for some - don't.
Since there's nothing can be between two positions at the ends of adjacent
spans, from standpoint of user they represent same position in text. But
from standpoint of model they are different since position are belong to
different spans.
Sure thing, there certain pieces added to avoid problems with such
ambiguity, so that it don't causing problems on user-level.

Thierry
>



-- 
Best regards,
Igor Stasenko.

Reply via email to