Introduce weld::IconView::insert_separator
commitc2253f587b68f7277f30259160155f2bbf7adc78
authorMike Kaganski <mike.kaganski@collabora.com>
Mon, 30 May 2022 07:37:53 +0000 (30 10:37 +0300)
committerMike Kaganski <mike.kaganski@collabora.com>
Wed, 1 Jun 2022 14:30:11 +0000 (1 16:30 +0200)
tree505d51b324b3c8464704c704313dc016949820a3
parent1dbf0f53e2e690a3914512785cad1a2f0f46e45d
Introduce weld::IconView::insert_separator

Needed to eventual re-implementation of starmath's SmElementsControl
using IconView.

This required re-implementation of IconViewImpl, to layout entries
by iteration, because now it's impossible to find an entry position
just based on its index.

This coincidentally fixed some visual glitches in non-gtk IconView
implementation from commit 5813660e7bfe128ac076e592fe31de64a6863780
  Author Szymon Kłos <eszkadev@gmail.com>
  Date   Tue Feb 16 16:03:30 2016 +0100
    icon view for RemoteFilesDialog

where any selected element could become first in row when scrolling.

SvTreeListBox::SetEntryHeight taking a SvTreeListEntry const* had to
be renamed to CalcEntryHeight, to avoid both virtual and non-virtual
overloads, additionally having different accessibility.

A TODO is implement separators in GtkInstanceIconView. I couldn't
find a GTK API for separators in IconView, so possibly a workaround
would be needed with some non-selectable narrow elements.

Change-Id: Ie8dc35d94049a1c48e4eb49697681ffbe93c17f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135112
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
14 files changed:
include/vcl/toolkit/treelistbox.hxx
include/vcl/weld.hxx
vcl/inc/iconview.hxx
vcl/inc/jsdialog/jsdialogbuilder.hxx
vcl/inc/salvtables.hxx
vcl/inc/svimpbox.hxx
vcl/jsdialog/jsdialogbuilder.cxx
vcl/source/app/salvtables.cxx
vcl/source/treelist/iconview.cxx
vcl/source/treelist/iconviewimpl.cxx
vcl/source/treelist/iconviewimpl.hxx
vcl/source/treelist/svimpbox.cxx
vcl/source/treelist/treelistbox.cxx
vcl/unx/gtk3/gtkinst.cxx