diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-08-29 12:13:16 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-08-29 15:34:54 +0200 |
commit | 856ff881318c478e0a56ca97444bc576cbb3d42c (patch) | |
tree | bdeadf5ee27d6ff7574559c053ca60002d1c35b1 /svx | |
parent | b2e229ea407c840dff4809ec13db029f37981b7a (diff) |
move ListControl to vcl
Change-Id: I022bba9a9a4d3d0bdb25ca8fa43aef2544decddb
Reviewed-on: https://gerrit.libreoffice.org/41682
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/Library_svxcore.mk | 1 | ||||
-rw-r--r-- | svx/source/dialog/listctrl.cxx | 158 |
2 files changed, 0 insertions, 159 deletions
diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk index ffb8321cfbe5..5bfbf899034d 100644 --- a/svx/Library_svxcore.mk +++ b/svx/Library_svxcore.mk @@ -117,7 +117,6 @@ $(eval $(call gb_Library_add_exception_objects,svxcore,\ svx/source/dialog/hexcolorcontrol \ svx/source/dialog/framelink \ svx/source/dialog/langbox \ - svx/source/dialog/listctrl \ svx/source/dialog/pagenumberlistbox \ svx/source/dialog/papersizelistbox \ svx/source/dialog/samecontentlistbox \ diff --git a/svx/source/dialog/listctrl.cxx b/svx/source/dialog/listctrl.cxx deleted file mode 100644 index b1ecaf5b8972..000000000000 --- a/svx/source/dialog/listctrl.cxx +++ /dev/null @@ -1,158 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <svx/listctrl.hxx> - -ListControl::ListControl(vcl::Window* pParent, WinBits nBits): - Control(pParent, nBits), - mbHasScrollBar(false), - mpScrollBar(VclPtr<ScrollBar>::Create(this, WB_VERT)) -{ - mpScrollBar->SetScrollHdl( LINK( this, ListControl, ScrollHdl ) ); - mpScrollBar->EnableDrag(); -} - -ListControl::~ListControl() -{ - disposeOnce(); -} - -void ListControl::dispose() -{ - mpScrollBar.disposeAndClear(); - for (auto& aEntry : maEntries) - aEntry.disposeAndClear(); - maEntries.clear(); - - Control::dispose(); -} - -void ListControl::RecalcAll() -{ - sal_Int32 nTotalHeight = 0; - for (const auto& item : maEntries) - { - if (!item) - continue; - nTotalHeight += item->GetSizePixel().Height(); - } - - Size aCtrlSize = GetOutputSize(); - long nSrcBarSize = GetSettings().GetStyleSettings().GetScrollBarSize(); - if(nTotalHeight > GetSizePixel().Height()) - { - mbHasScrollBar = true; - mpScrollBar->SetPosSizePixel(Point(aCtrlSize.Width() -nSrcBarSize, 0), - Size(nSrcBarSize, aCtrlSize.Height()) ); - mpScrollBar->SetRangeMax(nTotalHeight); - mpScrollBar->SetVisibleSize(aCtrlSize.Height()); - mpScrollBar->Show(); - } - else - { - mbHasScrollBar = false; - mpScrollBar->Hide(); - } - - Point aPoint(0,-1*mpScrollBar->GetThumbPos()); - for (const auto& item : maEntries) - { - if (!item) - continue; - item->SetPosPixel(aPoint); - Size aSize = item->GetSizePixel(); - if(mbHasScrollBar) - aSize.Width() = aCtrlSize.Width() - nSrcBarSize; - else - aSize.Width() = aCtrlSize.Width(); - item->SetSizePixel(aSize); - - aPoint.Y() += item->GetSizePixel().Height(); - } -} - -Size ListControl::GetOptimalSize() const -{ - return LogicToPixel(Size(300, 185), MapUnit::MapAppFont); -} - -void ListControl::Resize() -{ - Control::Resize(); - RecalcAll(); -} - -void ListControl::queue_resize(StateChangedType eReason) -{ - Control::queue_resize(eReason); - RecalcAll(); -} - -void ListControl::DoScroll(long nDelta) -{ - Point aNewPoint = mpScrollBar->GetPosPixel(); - tools::Rectangle aRect(Point(), GetOutputSize()); - aRect.Right() -= mpScrollBar->GetSizePixel().Width(); - Scroll( 0, -nDelta, aRect ); - mpScrollBar->SetPosPixel(aNewPoint); -} - -IMPL_LINK_NOARG( ListControl, ScrollHdl, ScrollBar*, void ) -{ - DoScroll(mpScrollBar->GetDelta()); -} - -void ListControl::addEntry(VclPtr<Control> xEntry, sal_uInt32 nPos) -{ - xEntry->Show(); - if (nPos < maEntries.size()) - { - maEntries.insert(maEntries.begin() + nPos, xEntry); - } - else - { - maEntries.push_back(xEntry); - } - RecalcAll(); -} - -void ListControl::deleteEntry(sal_uInt32 nPos) -{ - if (nPos >= maEntries.size()) - return; - - maEntries[nPos].disposeAndClear(); - maEntries.erase(maEntries.begin() + nPos); - RecalcAll(); -} - -bool ListControl::EventNotify( NotifyEvent& rNEvt ) -{ - if (rNEvt.GetType() == MouseNotifyEvent::COMMAND) - { - const CommandEvent* pEvent = rNEvt.GetCommandEvent(); - if (pEvent && pEvent->GetCommand() == CommandEventId::Wheel) - { - HandleScrollCommand(*pEvent, nullptr, mpScrollBar.get()); - } - } - return true; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |