Need Writer Painting Advice

Cedric Bosdonnat cbosdonnat at suse.com
Wed May 2 00:56:32 PDT 2012


Hi Andrew,

Sorry for the delay... I had a pretty long week-end here ;)

On Fri, 2012-04-27 at 18:08 +0100, Andrew Higginson wrote:
> On 27 April 2012 18:01, Cedric Bosdonnat <cbosdonnat at suse.com> wrote:
>         You will need to create your own control for that with your
>         own Paint()
>         implementation. You should get some inspiration from the
>         SwHeaderFooterWin class:
>         http://cgit.freedesktop.org/libreoffice/core/tree/sw/source/ui/docvw/HeaderFooterWin.cxx
> 
> Do you think that it is necessary to do that? Would adding some
> drawing code in the correct Paint() method not suffice? 

I'm sure it won't suffice. The reason is pretty simple: when scrolling
the document horizontally or vertically, the visible region of the
document is simply moved and only the missing part is computed and added
to the display. This will necessarily lead into some drawing artifacts
with something painted over the document.

What you need to understand is that the whole document is rendered as a
single window control. If you create a new kind of Control as I
mentioned, it will be completely separated from the document and thus
there will be no problem with the refresh / scrolling.

--
Cedric




More information about the LibreOffice mailing list