summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-10-11 20:34:08 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-10-11 22:38:42 +0200
commit06e9c32d8be8192cd2b6c840aa639622ca0ff44e (patch)
tree3fcdc16182b1851efb55babd15c609e31a170bd8
parentsplit out check to function (diff)
downloadcore-06e9c32d8be8192cd2b6c840aa639622ca0ff44e.tar.gz
core-06e9c32d8be8192cd2b6c840aa639622ca0ff44e.zip
Revert "Permit scrollable AWT tab pages a la scrolled Dialog"
UITest_sort failing https://gerrit.libreoffice.org/c/core/+/103942 Jenkins Verified-1 Patch Set 7: Verified-1 where UITest_sort failed Jenkins Verified+1 Patch Set 7: Verified+1 but that's just an android build which doesn't run any tests This reverts commit b3f2530aa2767ba43cd4702422fc3ed0d37821d6. Change-Id: I9414e5d7cc5873848f95dab65f03836ccb2ff0c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104194 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--include/vcl/tabpage.hxx27
-rw-r--r--offapi/com/sun/star/awt/UnoControlDialogModel.idl30
-rw-r--r--offapi/com/sun/star/awt/tab/UnoControlTabPageModel.idl43
-rw-r--r--toolkit/source/awt/vclxcontainer.cxx16
-rw-r--r--toolkit/source/awt/vclxtoolkit.cxx3
-rw-r--r--toolkit/source/controls/tabpagemodel.cxx6
-rw-r--r--vcl/source/window/tabpage.cxx137
7 files changed, 6 insertions, 256 deletions
diff --git a/include/vcl/tabpage.hxx b/include/vcl/tabpage.hxx
index a357ec50f55e..bd308a96a355 100644
--- a/include/vcl/tabpage.hxx
+++ b/include/vcl/tabpage.hxx
@@ -24,9 +24,6 @@
#include <vcl/window.hxx>
#include <vcl/IContext.hxx>
-class ScrollBar;
-class ScrollBarBox;
-
class VCL_DLLPUBLIC TabPage
: public vcl::Window
, public vcl::IContext
@@ -35,24 +32,10 @@ private:
using Window::ImplInit;
SAL_DLLPRIVATE void ImplInit( vcl::Window* pParent, WinBits nStyle );
SAL_DLLPRIVATE void ImplInitSettings();
- void lcl_Scroll( long nX, long nY );
- DECL_LINK( ScrollBarHdl, ScrollBar*, void );
-
- VclPtr<ScrollBar> m_pVScroll;
- VclPtr<ScrollBar> m_pHScroll;
- VclPtr<ScrollBarBox> m_aScrollBarBox;
- Size maScrollArea;
- bool mbHasHoriBar;
- bool mbHasVertBar;
- Point mnScrollPos;
- long mnScrWidth;
- enum ScrollBarVisibility { None, Vert, Hori, Both };
- ScrollBarVisibility maScrollVis;
public:
explicit TabPage( vcl::Window* pParent, WinBits nStyle = 0 );
virtual ~TabPage() override;
- virtual void dispose() override;
virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
virtual void Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags ) override;
@@ -65,16 +48,6 @@ public:
virtual void SetPosPixel(const Point& rNewPos) override;
virtual void SetSizePixel(const Size& rNewSize) override;
virtual Size GetOptimalSize() const override;
-
- // for scrollable tabpage
- virtual void Resize() override;
-
- void SetScrollWidth( long nWidth );
- void SetScrollHeight( long nHeight );
- void SetScrollLeft( long nLeft );
- void SetScrollTop( long Top );
- void setScrollVisibility( ScrollBarVisibility rState );
- void ResetScrollBars();
};
#endif // INCLUDED_VCL_TABPAGE_HXX
diff --git a/offapi/com/sun/star/awt/UnoControlDialogModel.idl b/offapi/com/sun/star/awt/UnoControlDialogModel.idl
index 428ef7352441..b45545b272aa 100644
--- a/offapi/com/sun/star/awt/UnoControlDialogModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlDialogModel.idl
@@ -145,36 +145,6 @@ published service UnoControlDialogModel
*/
[optional, property, transient] com::sun::star::graphic::XGraphic Graphic;
- /** specifies that a horizontal scrollbar should be added to the dialog
- @since LibreOffice 4.0
- */
- [optional, property] boolean HScroll;
-
- /** specifies that a vertical scrollbar should be added to the dialog
- @since LibreOffice 4.0
- */
- [optional, property] boolean VScroll;
-
- /** specifies the horizontal position of the scrolled dialog content
- @since LibreOffice 4.0
- */
- [optional, property] long ScrollLeft;
-
- /** specifies the vertical position of the scrolled dialog content
- @since LibreOffice 4.0
- */
- [optional, property] long ScrollTop;
-
- /** specifies the total width of the scrollable dialog content
- @since LibreOffice 4.0
- */
- [optional, property] long ScrollWidth;
-
- /** specifies the total height of the scrollable dialog content
- @since LibreOffice 4.0
- */
- [optional, property] long ScrollHeight;
-
};
diff --git a/offapi/com/sun/star/awt/tab/UnoControlTabPageModel.idl b/offapi/com/sun/star/awt/tab/UnoControlTabPageModel.idl
index 0c32f231f2ec..e4efdc605b13 100644
--- a/offapi/com/sun/star/awt/tab/UnoControlTabPageModel.idl
+++ b/offapi/com/sun/star/awt/tab/UnoControlTabPageModel.idl
@@ -30,49 +30,6 @@ module com { module sun { module star { module awt { module tab {
published service UnoControlTabPageModel
{
interface XTabPageModel;
-
- /** specifies the text that is displayed in the caption bar of the dialog.
- */
- [optional, property] string Title;
-
- /** specifies the help text of the dialog.
- */
- [optional, property] string HelpText;
-
- /** specifies the help URL of the dialog.
- */
- [optional, property] string HelpURL;
-
- /** specifies that a horizontal scrollbar should be added to the dialog
- @since LibreOffice 7.1
- */
- [optional, property] boolean HScroll;
-
- /** specifies that a vertical scrollbar should be added to the dialog
- @since LibreOffice 7.1
- */
- [optional, property] boolean VScroll;
-
- /** specifies the horizontal position of the scrolled dialog content
- @since LibreOffice 7.1
- */
- [optional, property] long ScrollLeft;
-
- /** specifies the vertical position of the scrolled dialog content
- @since LibreOffice 7.1
- */
- [optional, property] long ScrollTop;
-
- /** specifies the total width of the scrollable dialog content
- @since LibreOffice 7.1
- */
- [optional, property] long ScrollWidth;
-
- /** specifies the total height of the scrollable dialog content
- @since LibreOffice 7.1
- */
- [optional, property] long ScrollHeight;
-
};
diff --git a/toolkit/source/awt/vclxcontainer.cxx b/toolkit/source/awt/vclxcontainer.cxx
index 44f0844f6965..541a9913440c 100644
--- a/toolkit/source/awt/vclxcontainer.cxx
+++ b/toolkit/source/awt/vclxcontainer.cxx
@@ -26,7 +26,6 @@
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
-#include <vcl/tabpage.hxx>
#include <tools/debug.hxx>
#include <helper/scrollabledialog.hxx>
#include <toolkit/helper/property.hxx>
@@ -252,8 +251,7 @@ void SAL_CALL VCLXContainer::setProperty(
VclPtr<vcl::Window> pWindow = GetWindow();
MapMode aMode( MapUnit::MapAppFont );
toolkit::ScrollableDialog* pScrollable = dynamic_cast< toolkit::ScrollableDialog* >( pWindow.get() );
- TabPage* pScrollTabPage = dynamic_cast< TabPage* >( pWindow.get() );
- if ( pWindow && (pScrollable || pScrollTabPage) )
+ if ( pWindow && pScrollable )
{
OutputDevice* pDev = VCLUnoHelper::GetOutputDevice( getGraphics() );
if ( !pDev )
@@ -267,20 +265,16 @@ void SAL_CALL VCLXContainer::setProperty(
switch ( nPropType )
{
case BASEPROPERTY_SCROLLHEIGHT:
- pScrollable ? pScrollable->SetScrollHeight( aSize.Height() ) : (void)0;
- pScrollTabPage ? pScrollTabPage->SetScrollHeight( aSize.Height() ) : (void)0;
+ pScrollable->SetScrollHeight( aSize.Height() );
break;
case BASEPROPERTY_SCROLLWIDTH:
- pScrollable ? pScrollable->SetScrollWidth( aSize.Width() ) : (void)0;
- pScrollTabPage ? pScrollTabPage->SetScrollWidth( aSize.Width() ) : (void)0;
+ pScrollable->SetScrollWidth( aSize.Width() );
break;
case BASEPROPERTY_SCROLLTOP:
- pScrollable ? pScrollable->SetScrollTop( aSize.Height() ) : (void)0;
- pScrollTabPage ? pScrollTabPage->SetScrollTop( aSize.Height() ) : (void)0;
+ pScrollable->SetScrollTop( aSize.Height() );
break;
case BASEPROPERTY_SCROLLLEFT:
- pScrollable ? pScrollable->SetScrollLeft( aSize.Width() ) : (void)0;
- pScrollTabPage ? pScrollTabPage->SetScrollLeft( aSize.Width() ) : (void)0;
+ pScrollable->SetScrollLeft( aSize.Width() );
break;
default:
break;
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index fd63b743a009..7bf211d7150f 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -664,8 +664,7 @@ std::pair<WinBits,MessBoxStyle> ImplGetWinBits( sal_uInt32 nComponentAttribs, Wi
if( nComponentAttribs & css::awt::VclWindowPeerAttribute::DEF_NO )
nStyle |= MessBoxStyle::DefaultNo;
}
- if ( nCompType == WindowType::MULTILINEEDIT || nCompType == WindowType::DIALOG
- || nCompType == WindowType::GROUPBOX || nCompType == WindowType::TABPAGE )
+ if ( nCompType == WindowType::MULTILINEEDIT || nCompType == WindowType::DIALOG || nCompType == WindowType::GROUPBOX )
{
if( nComponentAttribs & css::awt::VclWindowPeerAttribute::AUTOHSCROLL )
nWinBits |= WB_AUTOHSCROLL;
diff --git a/toolkit/source/controls/tabpagemodel.cxx b/toolkit/source/controls/tabpagemodel.cxx
index 30f45d9258bd..8a0856f2d08a 100644
--- a/toolkit/source/controls/tabpagemodel.cxx
+++ b/toolkit/source/controls/tabpagemodel.cxx
@@ -46,12 +46,6 @@ UnoControlTabPageModel::UnoControlTabPageModel( Reference< XComponentContext > c
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
ImplRegisterProperty( BASEPROPERTY_USERFORMCONTAINEES );
- ImplRegisterProperty( BASEPROPERTY_HSCROLL );
- ImplRegisterProperty( BASEPROPERTY_VSCROLL );
- ImplRegisterProperty( BASEPROPERTY_SCROLLWIDTH );
- ImplRegisterProperty( BASEPROPERTY_SCROLLHEIGHT );
- ImplRegisterProperty( BASEPROPERTY_SCROLLTOP );
- ImplRegisterProperty( BASEPROPERTY_SCROLLLEFT );
}
OUString SAL_CALL UnoControlTabPageModel::getImplementationName()
diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx
index e980b762e1ca..827fbc35cd24 100644
--- a/vcl/source/window/tabpage.cxx
+++ b/vcl/source/window/tabpage.cxx
@@ -23,12 +23,9 @@
#include <vcl/tabpage.hxx>
#include <vcl/bitmapex.hxx>
#include <vcl/settings.hxx>
-#include <vcl/scrbar.hxx>
void TabPage::ImplInit( vcl::Window* pParent, WinBits nStyle )
{
- assert((nStyle & WB_VSCROLL) == 0 && (nStyle & WB_HSCROLL) == 0);
-
if ( !(nStyle & WB_NODIALOGCONTROL) )
nStyle |= WB_DIALOGCONTROL;
@@ -36,34 +33,6 @@ void TabPage::ImplInit( vcl::Window* pParent, WinBits nStyle )
ImplInitSettings();
- m_pVScroll.set(VclPtr<ScrollBar>::Create(this, ((nStyle & WB_VSCROLL) ? WB_HIDE : 0) | WB_VSCROLL | WB_DRAG));
- m_pHScroll.set(VclPtr<ScrollBar>::Create(this, ((nStyle & WB_HSCROLL) ? WB_HIDE : 0) | WB_HSCROLL | WB_DRAG));
- m_aScrollBarBox.set(
- VclPtr<ScrollBarBox>::Create(this,
- ((nStyle & (WB_VSCROLL|WB_HSCROLL)) ? WB_HIDE : 0)));
- mbHasHoriBar = false;
- mbHasVertBar = false;
- ScrollBarVisibility aVis = None;
-
- if ( nStyle & ( WB_AUTOHSCROLL | WB_AUTOVSCROLL ) )
- {
- if ( nStyle & WB_AUTOHSCROLL )
- aVis = Hori;
- if ( nStyle & WB_AUTOVSCROLL )
- {
- if ( aVis == Hori )
- aVis = Both;
- else
- aVis = Vert;
- }
- }
- setScrollVisibility( aVis );
- mnScrWidth = Application::GetSettings().GetStyleSettings().GetScrollBarSize();
-
- Link<ScrollBar*,void> aLink( LINK( this, TabPage, ScrollBarHdl ) );
- m_pVScroll->SetScrollHdl(aLink);
- m_pHScroll->SetScrollHdl(aLink);
-
// if the tabpage is drawn (ie filled) by a native widget, make sure all controls will have transparent background
// otherwise they will paint with a wrong background
if( IsNativeControlSupported(ControlType::TabBody, ControlPart::Entire) && GetParent() && (GetParent()->GetType() == WindowType::TABCONTROL) )
@@ -105,14 +74,6 @@ TabPage::~TabPage()
disposeOnce();
}
-void TabPage::dispose()
-{
- m_pVScroll.disposeAndClear();
- m_pHScroll.disposeAndClear();
- m_aScrollBarBox.disposeAndClear();
- vcl::Window::dispose();
-}
-
void TabPage::StateChanged( StateChangedType nType )
{
Window::StateChanged( nType );
@@ -221,102 +182,4 @@ void TabPage::SetPosPixel(const Point& rAllocPos)
}
}
-void TabPage::setScrollVisibility( ScrollBarVisibility rVisState )
-{
- maScrollVis = rVisState;
- if ( maScrollVis == Hori || maScrollVis == Both )
- {
- mbHasHoriBar = true;
- m_pHScroll->Show();
- }
- if ( maScrollVis == Vert || maScrollVis == Both )
- {
- mbHasVertBar = true;
- m_pVScroll->Show();
- }
- if ( mbHasHoriBar || mbHasVertBar )
- SetStyle( GetStyle() | WB_CLIPCHILDREN );
-}
-
-void TabPage::lcl_Scroll( long nX, long nY )
-{
- long nXScroll = mnScrollPos.X() - nX;
- long nYScroll = mnScrollPos.Y() - nY;
- mnScrollPos = Point( nX, nY );
-
- tools::Rectangle aScrollableArea( 0, 0, maScrollArea.Width(), maScrollArea.Height() );
- Scroll(nXScroll, nYScroll, aScrollableArea );
- // Manually scroll all children ( except the scrollbars )
- for ( int index = 0; index < GetChildCount(); ++index )
- {
- vcl::Window* pChild = GetChild( index );
- if ( pChild && pChild != m_pVScroll.get() && pChild != m_pHScroll.get() )
- {
- Point aPos = pChild->GetPosPixel();
- aPos += Point( nXScroll, nYScroll );
- pChild->SetPosPixel( aPos );
- }
- }
-}
-
-IMPL_LINK( TabPage, ScrollBarHdl, ScrollBar*, pSB, void )
-{
- sal_uInt16 nPos = static_cast<sal_uInt16>(pSB->GetThumbPos());
- if( pSB == m_pVScroll.get() )
- lcl_Scroll(mnScrollPos.X(), nPos );
- else if( pSB == m_pHScroll.get() )
- lcl_Scroll(nPos, mnScrollPos.Y() );
-}
-
-void TabPage::SetScrollTop( long nTop )
-{
- Point aOld = mnScrollPos;
- lcl_Scroll( mnScrollPos.X() , mnScrollPos.Y() - nTop );
- m_pHScroll->SetThumbPos( 0 );
- // new pos is 0,0
- mnScrollPos = aOld;
-}
-void TabPage::SetScrollLeft( long nLeft )
-{
- Point aOld = mnScrollPos;
- lcl_Scroll( mnScrollPos.X() - nLeft , mnScrollPos.Y() );
- m_pVScroll->SetThumbPos( 0 );
- // new pos is 0,0
- mnScrollPos = aOld;
-}
-
-void TabPage::SetScrollWidth( long nWidth )
-{
- maScrollArea.setWidth( nWidth );
- ResetScrollBars();
-}
-
-void TabPage::SetScrollHeight( long nHeight )
-{
- maScrollArea.setHeight( nHeight );
- ResetScrollBars();
-}
-
-void TabPage::Resize()
-{
- ResetScrollBars();
-}
-
-void TabPage::ResetScrollBars()
-{
- Size aOutSz = GetOutputSizePixel();
-
- Point aVPos( aOutSz.Width() - mnScrWidth, 0 );
- Point aHPos( 0, aOutSz.Height() - mnScrWidth );
-
- m_pVScroll->SetPosSizePixel( aVPos, Size( mnScrWidth, GetSizePixel().Height() - mnScrWidth ) );
- m_pHScroll->SetPosSizePixel( aHPos, Size( GetSizePixel().Width() - mnScrWidth, mnScrWidth ) );
-
- m_pHScroll->SetRangeMax( maScrollArea.Width() + mnScrWidth );
- m_pHScroll->SetVisibleSize( GetSizePixel().Width() );
-
- m_pVScroll->SetRangeMax( maScrollArea.Height() + mnScrWidth );
- m_pVScroll->SetVisibleSize( GetSizePixel().Height() );
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */