Weekly report about character border

Zolnai Tamás zolnaitamas2000 at gmail.com
Sun Jul 21 13:12:45 PDT 2013


Hi all,

This week I managed to solve the initial difficulties of character border
painting:
  - Change the size of the text portion which has border.
(three distinct size attribute: height, ascent and size)
  - Part of the top border hanged out from the text portion (use
SwAlignRect)
  - Calculating the cursor position and the selection rectangle must be
changed to skip the border. (SwTxtCursor)
  - Page breaking uses the height attribute of the text portion, but line
breaking use a distinct method for it. So I have to change either this
method or the call of it. (It works by now, but there might be a better
solution)

Besides this, I started to look up for special cases which behavior are
still bugous.
 - Text portions with different font have distinct border. The same problem
at the point of the line break.
 - Vertical text ("rotate" the borders)
 - Drop caps (It can be a great territory for character border, but it
seems other font effects like underlining/overlining don't work with drop
caps either.)
 - Numbering (can have an own style so a character border too)

This week hasn't numerous questions, but so many answers. :)

Best regards,
Tamás


2013/7/15 Zolnai Tamás <zolnaitamas2000 at gmail.com>

> Hi all,
>
>     In the previous week I started to implement the painting. Some special
> problem came up, which might give me a hard time. The first very annoying
> one stem from the unpunctuality of the recent border painting (frame
> painting). It seems the border primitives are shifted toward the origo with
> some twips (1-2). In general it isn't a visible bug but character border
> magnifies the problem.
> Some screen shot:
>
> https://docs.google.com/document/d/12bm6XOXlj6N79GNnvMKull5KY8xe63QIidrg67GnQyE/edit?pli=1
>
>     First I got lcl_AlighWidth() and lcl_AlignHeight() methods which make
> similar modification on coordinates, however removing them improve the
> accuracy (so I don't know why these methods used at all), but it is not
> enough. So two thing can be erroneous:
>     1, painting of border line primitive
>     2, view transformation matrix (twip -> pixel)
>
>
> Questions of these week.
> - In what unit does the geometrical object are?
>  (logic\twip, convert to pixels for vcl processor)
> - Which part of the text is repainted while typing?
> (part of the text portion area, some character position before current
> cursor position)
> - How does the view changes the painting of objects?
> (character border now: when just the part of the text portion is seen on
> the screen then the hole border is painted around this part and so border
> is in the middle of the portion. Columns with dotted separator line: some
> extra dot is painted on the edges of the screen, so scrolling up and down
> can make the dotted line more thicker.)
> - How change the size of a text portion and make the cursor skip the
> border area? (start with SwTxtSizeInfo and SwTxtCursor)
>
>
> Regards,
> Tamás
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130721/9ac9ec8b/attachment.html>


More information about the LibreOffice mailing list