diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-10-11 20:34:08 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-10-11 22:38:42 +0200 |
commit | 06e9c32d8be8192cd2b6c840aa639622ca0ff44e (patch) | |
tree | 3fcdc16182b1851efb55babd15c609e31a170bd8 | |
parent | split out check to function (diff) | |
download | core-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.hxx | 27 | ||||
-rw-r--r-- | offapi/com/sun/star/awt/UnoControlDialogModel.idl | 30 | ||||
-rw-r--r-- | offapi/com/sun/star/awt/tab/UnoControlTabPageModel.idl | 43 | ||||
-rw-r--r-- | toolkit/source/awt/vclxcontainer.cxx | 16 | ||||
-rw-r--r-- | toolkit/source/awt/vclxtoolkit.cxx | 3 | ||||
-rw-r--r-- | toolkit/source/controls/tabpagemodel.cxx | 6 | ||||
-rw-r--r-- | vcl/source/window/tabpage.cxx | 137 |
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: */ |