summaryrefslogtreecommitdiff
path: root/toolkit/source/layout/core/flow.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/source/layout/core/flow.cxx')
-rw-r--r--toolkit/source/layout/core/flow.cxx213
1 files changed, 0 insertions, 213 deletions
diff --git a/toolkit/source/layout/core/flow.cxx b/toolkit/source/layout/core/flow.cxx
deleted file mode 100644
index 06c0d0f13e..0000000000
--- a/toolkit/source/layout/core/flow.cxx
+++ /dev/null
@@ -1,213 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "flow.hxx"
-
-#include <sal/macros.h>
-
-namespace layoutimpl
-{
-
-using namespace css;
-
-bool Flow::ChildData::isVisible()
-{
- return xChild.is();
-}
-
-Flow::Flow()
- : Container()
- , mnSpacing( 0 )
- , mbHomogeneous( false )
- , mnEachWidth( 0 )
-{
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Homogeneous" ),
- ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
- &mbHomogeneous );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Spacing" ),
- ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
- &mnSpacing );
-}
-
-bool
-Flow::emptyVisible ()
-{
- return true;
-}
-
-void SAL_CALL
-Flow::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
- throw (uno::RuntimeException, css::awt::MaxChildrenException)
-{
- if ( xChild.is() )
- {
- ChildData *pData = new ChildData();
- pData->xChild = xChild;
- maChildren.push_back( pData );
-
- setChildParent( xChild );
- queueResize();
- }
-}
-
-void SAL_CALL
-Flow::removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& xChild )
- throw (css::uno::RuntimeException)
-{
- for ( std::list< ChildData * >::iterator it = maChildren.begin();
- it != maChildren.end(); ++it )
- {
- if ( (*it)->xChild == xChild )
- {
- delete *it;
- maChildren.erase( it );
-
- unsetChildParent( xChild );
- queueResize();
- break;
- }
- }
-}
-
-css::uno::Sequence< css::uno::Reference < css::awt::XLayoutConstrains > > SAL_CALL
-Flow::getChildren()
- throw (css::uno::RuntimeException)
-{
- uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
- unsigned int i = 0;
- for ( std::list< ChildData * >::iterator it = maChildren.begin();
- it != maChildren.end(); ++it, ++i )
- children[i] = (*it)->xChild;
-
- return children;
-}
-
-uno::Reference< beans::XPropertySet > SAL_CALL
-Flow::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& /*xChild*/ )
- throw (uno::RuntimeException)
-{
- return uno::Reference< beans::XPropertySet >();
-}
-
-css::awt::Size
-Flow::calculateSize( long nMaxWidth )
-{
- long nNeedHeight = 0;
-
- std::list<ChildData *>::const_iterator it;
- mnEachWidth = 0;
- // first pass, for homogeneous property
- for (it = maChildren.begin(); it != maChildren.end(); ++it)
- {
- if ( !(*it)->isVisible() )
- continue;
- (*it)->aRequisition = (*it)->xChild->getMinimumSize();
- if ( mbHomogeneous )
- mnEachWidth = SAL_MAX( mnEachWidth, (*it)->aRequisition.Width );
- }
-
- long nRowWidth = 0, nRowHeight = 0;
- for (it = maChildren.begin(); it != maChildren.end(); ++it)
- {
- if ( !(*it)->isVisible() )
- continue;
-
- awt::Size aChildSize = (*it)->aRequisition;
- if ( mbHomogeneous )
- aChildSize.Width = mnEachWidth;
-
- if ( nMaxWidth && nRowWidth > 0 && nRowWidth + aChildSize.Width > nMaxWidth )
- {
- nRowWidth = 0;
- nNeedHeight += nRowHeight;
- nRowHeight = 0;
- }
- nRowHeight = SAL_MAX( nRowHeight, aChildSize.Height );
- nRowWidth += aChildSize.Width;
- }
- nNeedHeight += nRowHeight;
-
- return awt::Size( nRowWidth, nNeedHeight );
-}
-
-awt::Size SAL_CALL
-Flow::getMinimumSize() throw(uno::RuntimeException)
-{
- return maRequisition = calculateSize( 0 );
-}
-
-sal_Bool SAL_CALL
-Flow::hasHeightForWidth()
- throw(css::uno::RuntimeException)
-{
- return true;
-}
-
-sal_Int32 SAL_CALL
-Flow::getHeightForWidth( sal_Int32 nWidth )
- throw(css::uno::RuntimeException)
-{
- return calculateSize( nWidth ).Height;
-}
-
-void SAL_CALL
-Flow::allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException)
-{
- maAllocation = rArea;
-
- std::list<ChildData *>::const_iterator it;
- long nX = 0, nY = 0, nRowHeight = 0;
- for (it = maChildren.begin(); it != maChildren.end(); ++it)
- {
- ChildData *child = *it;
- if ( !child->isVisible() )
- continue;
-
- awt::Size aChildSize( child->aRequisition );
- if ( mbHomogeneous )
- aChildSize.Width = mnEachWidth;
-
- if ( nX > 0 && nX + aChildSize.Width > rArea.Width )
- {
- nX = 0;
- nY += nRowHeight;
- nRowHeight = 0;
- }
- nRowHeight = SAL_MAX( nRowHeight, aChildSize.Height );
-
- allocateChildAt( child->xChild,
- awt::Rectangle( rArea.X + nX, rArea.Y + nY, aChildSize.Width, aChildSize.Height ) );
-
- nX += aChildSize.Width;
- }
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */