summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-01-19 17:52:36 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-01-20 18:27:17 +0100
commit901ae316b919680d59b064c6f79fb0910e6be7da (patch)
treee86098aad92498ca04db39711521f2560bc67dba /vcl
parent971c4135b3a11cd74a13ac0eb4e3aaae4e7dfefd (diff)
add get_row_area for TreeView
Change-Id: I0fa8e3666f6731abb831d0ba62f128614eae261c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87048 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/salvtables.cxx5
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx21
2 files changed, 26 insertions, 0 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 1603033ded71..3b6697755bf0 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -4745,6 +4745,11 @@ public:
return pTarget != nullptr;
}
+ virtual tools::Rectangle get_row_area(const weld::TreeIter& rIter) const override
+ {
+ return m_xTreeView->GetBoundingRect(static_cast<const SalInstanceTreeIter&>(rIter).iter);
+ }
+
virtual TreeView* get_drag_source() const override
{
return g_DragSource;
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index f146049dffd2..024b71c782e6 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -10189,6 +10189,27 @@ public:
return ret;
}
+ virtual tools::Rectangle get_row_area(const weld::TreeIter& rIter) const override
+ {
+ tools::Rectangle aRet;
+
+ const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter);
+ GtkTreeModel* pModel = GTK_TREE_MODEL(m_pTreeStore);
+ GtkTreePath* pPath = gtk_tree_model_get_path(pModel, const_cast<GtkTreeIter*>(&rGtkIter.iter));
+
+ GdkRectangle aRect;
+ for (GList* pEntry = g_list_last(m_pColumns); pEntry; pEntry = g_list_previous(pEntry))
+ {
+ GtkTreeViewColumn* pColumn = GTK_TREE_VIEW_COLUMN(pEntry->data);
+ gtk_tree_view_get_cell_area(m_pTreeView, pPath, pColumn, &aRect);
+ aRet.Union(tools::Rectangle(aRect.x, aRect.y, aRect.x + aRect.width, aRect.y + aRect.height));
+ }
+
+ gtk_tree_path_free(pPath);
+
+ return aRet;
+ }
+
virtual void start_editing(const weld::TreeIter& rIter) override
{
int col = get_view_col(m_nTextCol);