[GSOC]Use Widget Layout for the Start Center Weekly Update 07

Caolán McNamara caolanm at redhat.com
Fri Sep 6 06:20:41 PDT 2013


On Wed, 2013-08-21 at 21:08 +0200, Krisztian Pinter wrote:

> I was asked if I could make the scrolling smoother (it always moves
> thumbnails 1 row at once when the scrollbar passes a treshold) in the
> RecentDocsView class I made. RecentDocsView inherits from
> ThumbnailView, which uses Window::HandleScrollCommand for scrolling.
> Is it possible to make it smoother without basically reimplementing
> Window::HandleScrollCommand?

You need to instead tweak ThumbnailView::CalculateItemPositions to set
on the scrollbar some subdivision of "rows of icons" (see
mpScrBar->SetRangeMax() rather than the current system of a range of
atomic rows and probably adjust the reset of the logic to work on terms
of those subdivisions in order to not "snap" row by row when scrolling.


> In the original Start Center, one could drag and drop files onto it,
> and they would open. I noticed that this only worked if one didn't
> drop the file on a button, but on the background. After converting
> to .ui, it only works if one drops the file on the edge of the window,
> where there aren't any widgets covering the background. 

So in 
http://cgit.freedesktop.org/libreoffice/core/commit/?id=e7dd69d97af1e12b15fd82eaea2e2b51f9dca40b
I moved the dnd support down to the big thumbnailviewers so I guess
that's fixed now. 

> Is there a way to cover the whole window with the drag&drop
> functionality?

Now that I think about it, maybe an alternative solution was a huge
transparent window to cover the whole area which supported dnd, but
*shrug* I guess the above will do.

> I was asked to make the background of RecentDocsView transparent,
> instead of white.

What do you mean, because if you make RecentDocsView transparent then
you will see through it to see the parent instead, right?, and looking
at startcenter.ui that means all_recent wouldn't draw its background
over the "grid2" (which is transparent) so what you would see then is
"modules_notebook" as the background. But that's a tabcontrol and they
default to white, i.e. making it transparent would presumably make it
look the same as it does now.

"
    EnableChildTransparentMode();
    SetPaintTransparent(true);
    SetBackground();
"
is the magic in vcl/source/window/layout.cxx for the transparent
container widgets

C.



More information about the LibreOffice mailing list