summaryrefslogtreecommitdiff
path: root/toolkit/source/layout
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:56:23 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:56:23 +0100
commit417392b0c2501134a6c290b61eb0a886c7acb4c2 (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /toolkit/source/layout
parent7d00dabf077562cad4e1f4b2209c27b13d3d9487 (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'toolkit/source/layout')
-rw-r--r--toolkit/source/layout/core/bin.cxx201
-rw-r--r--toolkit/source/layout/core/bin.hxx116
-rw-r--r--toolkit/source/layout/core/box-base.cxx176
-rw-r--r--toolkit/source/layout/core/box-base.hxx90
-rw-r--r--toolkit/source/layout/core/box.cxx284
-rw-r--r--toolkit/source/layout/core/box.hxx105
-rw-r--r--toolkit/source/layout/core/byteseq.cxx79
-rw-r--r--toolkit/source/layout/core/container.cxx131
-rw-r--r--toolkit/source/layout/core/container.hxx139
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.cxx283
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.hxx76
-rw-r--r--toolkit/source/layout/core/factory.cxx126
-rw-r--r--toolkit/source/layout/core/factory.hxx77
-rw-r--r--toolkit/source/layout/core/flow.cxx213
-rw-r--r--toolkit/source/layout/core/flow.hxx98
-rw-r--r--toolkit/source/layout/core/helper.cxx597
-rw-r--r--toolkit/source/layout/core/helper.hxx152
-rw-r--r--toolkit/source/layout/core/import.cxx328
-rw-r--r--toolkit/source/layout/core/import.hxx214
-rw-r--r--toolkit/source/layout/core/localized-string.cxx83
-rw-r--r--toolkit/source/layout/core/localized-string.hxx79
-rw-r--r--toolkit/source/layout/core/precompiled_xmlscript.hxx38
-rw-r--r--toolkit/source/layout/core/proplist.cxx422
-rw-r--r--toolkit/source/layout/core/proplist.hxx94
-rw-r--r--toolkit/source/layout/core/root.cxx393
-rw-r--r--toolkit/source/layout/core/root.hxx159
-rw-r--r--toolkit/source/layout/core/table.cxx314
-rw-r--r--toolkit/source/layout/core/table.hxx105
-rw-r--r--toolkit/source/layout/core/timer.cxx151
-rw-r--r--toolkit/source/layout/core/timer.hxx52
-rw-r--r--toolkit/source/layout/core/translate.cxx133
-rw-r--r--toolkit/source/layout/core/translate.hxx43
-rw-r--r--toolkit/source/layout/core/vcl.cxx69
-rw-r--r--toolkit/source/layout/core/vcl.hxx51
-rw-r--r--toolkit/source/layout/vcl/wbutton.cxx680
-rw-r--r--toolkit/source/layout/vcl/wcontainer.cxx269
-rw-r--r--toolkit/source/layout/vcl/wfield.cxx795
-rw-r--r--toolkit/source/layout/vcl/wrapper.cxx1363
-rw-r--r--toolkit/source/layout/vcl/wrapper.hxx152
39 files changed, 0 insertions, 8930 deletions
diff --git a/toolkit/source/layout/core/bin.cxx b/toolkit/source/layout/core/bin.cxx
deleted file mode 100644
index 8a72d88cf2..0000000000
--- a/toolkit/source/layout/core/bin.cxx
+++ /dev/null
@@ -1,201 +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 "bin.hxx"
-
-#include <sal/macros.h>
-
-namespace layoutimpl
-{
-
-using namespace css;
-
-/* Bin */
-
-Bin::Bin() : Container()
-{
-}
-
-void SAL_CALL
-Bin::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
- throw (uno::RuntimeException, awt::MaxChildrenException)
-{
- if ( mxChild.is() )
- throw awt::MaxChildrenException();
- if ( xChild.is() )
- {
- mxChild = xChild;
- setChildParent( xChild );
- queueResize();
- }
-}
-
-void SAL_CALL
-Bin::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
- throw (uno::RuntimeException)
-{
- if ( xChild == mxChild )
- {
- mxChild = uno::Reference< awt::XLayoutConstrains >();
- unsetChildParent( xChild );
- queueResize();
- }
-}
-
-uno::Sequence< uno::Reference< awt::XLayoutConstrains > > SAL_CALL
-Bin::getChildren()
- throw (uno::RuntimeException)
-{
- return getSingleChild (mxChild);
-}
-
-void SAL_CALL
-Bin::allocateArea( const awt::Rectangle &rArea )
- throw (uno::RuntimeException)
-{
- maAllocation = rArea;
- if ( mxChild.is() )
- allocateChildAt( mxChild, rArea );
-}
-
-awt::Size SAL_CALL
-Bin::getMinimumSize()
- throw(uno::RuntimeException)
-{
- if ( mxChild.is() )
- return maRequisition = maChildRequisition = mxChild->getMinimumSize();
- return maRequisition = awt::Size( 0, 0 );
-}
-
-uno::Reference< beans::XPropertySet > SAL_CALL
-Bin::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& )
- throw (uno::RuntimeException)
-{
- return uno::Reference< beans::XPropertySet >();
-}
-
-sal_Bool SAL_CALL
-Bin::hasHeightForWidth()
- throw(uno::RuntimeException)
-{
- uno::Reference< awt::XLayoutContainer > xChildCont( mxChild, uno::UNO_QUERY );
- if ( xChildCont.is() )
- return xChildCont->hasHeightForWidth();
- return false;
-}
-
-sal_Int32 SAL_CALL
-Bin::getHeightForWidth( sal_Int32 nWidth )
- throw(uno::RuntimeException)
-{
- uno::Reference< awt::XLayoutContainer > xChildCont( mxChild, uno::UNO_QUERY );
- if ( xChildCont.is() )
- return xChildCont->getHeightForWidth( nWidth );
- return maRequisition.Height;
-}
-
-/* Align */
-
-Align::Align() : Bin()
-{
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Halign" ),
- ::getCppuType( static_cast< const float* >( NULL ) ),
- &fHorAlign );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Valign" ),
- ::getCppuType( static_cast< const float* >( NULL ) ),
- &fVerAlign );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Hfill" ),
- ::getCppuType( static_cast< const float* >( NULL ) ),
- &fHorFill );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Vfill" ),
- ::getCppuType( static_cast< const float* >( NULL ) ),
- &fVerFill );
-
- fHorAlign = fVerAlign = 0.5;
- fHorFill = fVerFill = 0;
-}
-
-void SAL_CALL
-Align::allocateArea( const awt::Rectangle &rArea )
- throw (uno::RuntimeException)
-{
- maAllocation = rArea;
- if ( !mxChild.is() )
- return;
-
- awt::Rectangle aChildArea;
- aChildArea.Width = SAL_MIN( rArea.Width, maChildRequisition.Width );
- aChildArea.Width += (sal_Int32) SAL_MAX(
- 0, (rArea.Width - maChildRequisition.Width) * fHorFill );
- aChildArea.Height = SAL_MIN( rArea.Height, maChildRequisition.Height );
- aChildArea.Height += (sal_Int32) SAL_MAX(
- 0, (rArea.Height - maChildRequisition.Height) * fVerFill );
-
- aChildArea.X = rArea.X + (sal_Int32)( (rArea.Width - aChildArea.Width) * fHorAlign );
- aChildArea.Y = rArea.Y + (sal_Int32)( (rArea.Height - aChildArea.Height) * fVerAlign );
-
- allocateChildAt( mxChild, aChildArea );
-}
-
-bool
-Align::emptyVisible ()
-{
- return true;
-}
-
-/* MinSize */
-
-MinSize::MinSize() : Bin()
-{
- mnMinWidth = mnMinHeight = 0;
- addProp( RTL_CONSTASCII_USTRINGPARAM( "MinWidth" ),
- ::getCppuType( static_cast< const long* >( NULL ) ),
- &mnMinWidth );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "MinHeight" ),
- ::getCppuType( static_cast< const long* >( NULL ) ),
- &mnMinHeight );
-}
-
-bool
-MinSize::emptyVisible ()
-{
- return true;
-}
-
-awt::Size SAL_CALL MinSize::getMinimumSize()
- throw(uno::RuntimeException)
-{
- Bin::getMinimumSize();
- maRequisition.Width = SAL_MAX( maRequisition.Width, mnMinWidth );
- maRequisition.Height = SAL_MAX( maRequisition.Height, mnMinHeight );
- return maRequisition;
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/bin.hxx b/toolkit/source/layout/core/bin.hxx
deleted file mode 100644
index 4e03d56949..0000000000
--- a/toolkit/source/layout/core/bin.hxx
+++ /dev/null
@@ -1,116 +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.
- *
- ************************************************************************/
-
-/* A few simple binary containers */
-
-#ifndef LAYOUT_CORE_BIN_HXX
-#define LAYOUT_CORE_BIN_HXX
-
-#include <layout/core/container.hxx>
-
-namespace layoutimpl
-{
-
-class Bin : public Container
-{
-protected:
- // Child
- css::awt::Size maChildRequisition;
- css::uno::Reference< css::awt::XLayoutConstrains > mxChild;
-
-public:
- Bin();
- virtual ~Bin() {}
-
- // css::awt::XLayoutContainer
- virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
- virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Sequence< css::uno::Reference
- < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
- throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
- const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException);
-
- virtual sal_Bool SAL_CALL hasHeightForWidth()
- throw(css::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
- throw(css::uno::RuntimeException);
-
- // css::awt::XLayoutConstrains
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException);
-};
-
-// Align gives control over child position on the allocated space.
-class Align : public Bin
-{
- friend class AlignChildProps;
-protected:
- // properties
- float fHorAlign, fVerAlign;
- float fHorFill, fVerFill;
-
-public:
- Align();
-
- bool emptyVisible ();
-
- // css::awt::XLayoutContainer
- virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException);
-};
-
-// Makes child request its or a specified size, whatever is larger.
-class MinSize : public Bin
-{
-protected:
- // properties
- long mnMinWidth, mnMinHeight;
-
-public:
- MinSize();
-
- bool emptyVisible ();
- // css::awt::XLayoutContainer
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException);
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_BIN_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/box-base.cxx b/toolkit/source/layout/core/box-base.cxx
deleted file mode 100644
index 7bb136082e..0000000000
--- a/toolkit/source/layout/core/box-base.cxx
+++ /dev/null
@@ -1,176 +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 "box.hxx"
-
-#include <tools/debug.hxx>
-#include <sal/macros.h>
-
-#include <com/sun/star/awt/XWindow2.hpp>
-
-// fixed point precision for distributing error
-#define FIXED_PT 16
-
-namespace layoutimpl
-{
-
-using namespace css;
-
-Box_Base::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
- : mxChild( xChild )
- , mxProps()
- , maRequisition()
-{
-}
-
-static bool isVisible( uno::Reference< awt::XLayoutConstrains > xWidget )
-{
- if ( !xWidget.is() )
- {
- OSL_FAIL( "FIXME: invalid child !" );
- return true;
- }
-
- uno::Reference< awt::XWindow2 > xWindow( xWidget, uno::UNO_QUERY );
- if ( xWindow.is() && !xWindow->isVisible() )
- return false;
-
- uno::Reference< awt::XLayoutContainer > xContainer( xWidget, uno::UNO_QUERY );
- if ( xContainer.is() )
- {
- uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aChildren
- = xContainer->getChildren();
-
- if (!aChildren.getLength ())
- if (Container *c = dynamic_cast <Container*> (xWidget.get ()))
- return c->emptyVisible ();
-
- for ( int i = 0; i < aChildren.getLength(); i++ )
- if ( isVisible( aChildren[i] ) )
- return true;
- return false; // this would kill flow without workaround above
- }
-
- return true;
-}
-
-bool Box_Base::ChildData::isVisible()
-{
- // FIXME: call the 'isVisible' method on it ?
- return layoutimpl::isVisible( mxChild );
-}
-
-void
-Box_Base::AddChild (uno::Reference <awt::XLayoutConstrains> const& xChild)
-{
- ChildData *pData = createChild (xChild);
- maChildren.push_back (pData);
- queueResize ();
-}
-
-void SAL_CALL
-Box_Base::addChild (uno::Reference <awt::XLayoutConstrains> const& xChild)
- throw (uno::RuntimeException, awt::MaxChildrenException)
-{
- if (xChild.is ())
- {
- AddChild (xChild);
- setChildParent (xChild);
- }
-}
-
-Box_Base::ChildData*
-Box_Base::removeChildData( std::list< ChildData* >& lst, css::uno::Reference< css::awt::XLayoutConstrains > const& xChild )
-{
- for ( std::list< ChildData* >::iterator it = lst.begin();
- it != lst.end(); ++it )
- {
- if ( (*it)->mxChild == xChild )
- {
- ChildData* pRet = *it;
- lst.erase( it );
- return pRet;
- }
- }
- return 0;
-}
-
-void SAL_CALL
-Box_Base::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
- throw (uno::RuntimeException)
-{
- if ( ChildData* p = removeChildData( maChildren, xChild ) )
- {
- delete p;
- unsetChildParent( xChild );
- queueResize();
- }
- else
- {
- OSL_FAIL( "Box_Base: removeChild: no such child" );
- }
-}
-
-uno::Sequence< uno::Reference < awt::XLayoutConstrains > > SAL_CALL
-Box_Base::getChildren()
- throw (uno::RuntimeException)
-{
- uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
- unsigned int index = 0;
- for ( std::list< ChildData* >::iterator it = maChildren.begin();
- it != maChildren.end(); ++it, ++index )
- children[index] = ( *it )->mxChild;
-
- return children;
-}
-
-uno::Reference< beans::XPropertySet > SAL_CALL
-Box_Base::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
- throw (uno::RuntimeException)
-{
-
- for ( std::list< ChildData * >::iterator it = maChildren.begin();
- it != maChildren.end(); ++it)
- {
- if ( ( *it )->mxChild == xChild )
- {
- if ( !( *it )->mxProps.is() )
- {
- PropHelper *pProps = createChildProps( *it );
- pProps->setChangeListener( this );
- ( *it )->mxProps = pProps;
- }
- return (*it)->mxProps;
- }
- }
- return uno::Reference< beans::XPropertySet >();
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/box-base.hxx b/toolkit/source/layout/core/box-base.hxx
deleted file mode 100644
index faeddf91f8..0000000000
--- a/toolkit/source/layout/core/box-base.hxx
+++ /dev/null
@@ -1,90 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_BOX_BASE_HXX
-#define LAYOUT_CORE_BOX_BASE_HXX
-
-#include <layout/core/container.hxx>
-
-#include <list>
-
-namespace layoutimpl
-{
-
-class Box_Base : public Container
-{
-public:
- // Children properties
- struct ChildData
- {
- css::uno::Reference< css::awt::XLayoutConstrains > mxChild;
- css::uno::Reference< css::beans::XPropertySet > mxProps;
- css::awt::Size maRequisition;
- virtual bool isVisible();
-
- ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
- virtual ~ChildData() { };
- };
-
- struct ChildProps: public PropHelper
- {
- //ChildProps( ChildProps* );
- };
-
-protected:
- std::list< ChildData* > maChildren;
-
-
- virtual ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild ) = 0;
- virtual ChildProps *createChildProps( ChildData* pData ) = 0;
-
- ChildData *removeChildData( std::list< ChildData *>&, css::uno::Reference< css::awt::XLayoutConstrains > const& Child );
-
-public:
- void AddChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child);
-
- // css::awt::XLayoutContainer
- virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child)
- throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
- virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Sequence< css::uno::Reference
- < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
- const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException);
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_BOX_BASE HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/box.cxx b/toolkit/source/layout/core/box.cxx
deleted file mode 100644
index 27fab86fa0..0000000000
--- a/toolkit/source/layout/core/box.cxx
+++ /dev/null
@@ -1,284 +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 "box.hxx"
-
-#include <tools/debug.hxx>
-#include <sal/macros.h>
-
-// fixed point precision for distributing error
-#define FIXED_PT 16
-
-namespace layoutimpl
-{
-
-using namespace css;
-
-Box::ChildProps::ChildProps( Box::ChildData *pData )
-{
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Expand" ),
- ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
- &(pData->mbExpand) );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Fill" ),
- ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
- &(pData->mbFill) );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Padding" ),
- ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
- &(pData->mnPadding) );
-}
-
-Box::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
- : Box_Base::ChildData( xChild )
- , mnPadding( 0 )
- , mbExpand( true )
- , mbFill( true )
-{
-}
-
-Box::ChildData*
-Box::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
- {
- return new ChildData( xChild );
- }
-
-Box::ChildProps*
-Box::createChildProps( Box_Base::ChildData *pData )
-{
- return new ChildProps( static_cast<Box::ChildData*> ( pData ) );
-}
-
-Box::Box( bool horizontal )
- : Box_Base()
- , mnSpacing( 0 )
- , mbHomogeneous( false )
- , mbHorizontal( horizontal )
-{
- 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 );
- mbHasFlowChildren = false;
-}
-
-awt::Size
-Box::calculateSize( long nWidth )
-{
- int nVisibleChildren = 0;
- // primary vs secundary axis (instead of a X and Y)
- int nPrimSize = 0;
- int nSecSize = 0;
- int nFlowMinWidth = 0; // in case the box only has flow children
-
- mbHasFlowChildren = false;
-
- for ( std::list<Box_Base::ChildData *>::const_iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Box::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
-
- uno::Reference< awt::XLayoutContainer > xChildCont( child->mxChild, uno::UNO_QUERY );
- bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
-
- awt::Size aChildSize = child->maRequisition = child->mxChild->getMinimumSize();
-
- if ( !mbHorizontal /*vertical*/ && bFlow )
- {
- if ( nFlowMinWidth == 0 || nFlowMinWidth > aChildSize.Width )
- nFlowMinWidth = aChildSize.Width;
- mbHasFlowChildren = true;
- }
- else
- {
- int size = primDim( aChildSize ) + child->mnPadding * 2;
- if ( mbHomogeneous )
- nPrimSize = SAL_MAX( nPrimSize, size );
- else
- nPrimSize += size;
-
- nSecSize = SAL_MAX( nSecSize, secDim( aChildSize ) );
- }
- nVisibleChildren++;
- }
-
- if ( nVisibleChildren )
- {
- if ( mbHomogeneous )
- nPrimSize *= nVisibleChildren;
- nPrimSize += (nVisibleChildren - 1) * mnSpacing;
- }
-
- if ( mbHasFlowChildren )
- {
- if ( nWidth == 0 )
- nWidth = nSecSize ? nSecSize : nFlowMinWidth;
- for ( std::list<Box_Base::ChildData *>::const_iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Box::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
-
- uno::Reference< awt::XLayoutContainer > xChildCont( child->mxChild, uno::UNO_QUERY );
- bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
-
- if ( bFlow )
- nPrimSize += xChildCont->getHeightForWidth( nWidth );
- }
- }
-
- nPrimSize += mnBorderWidth * 2;
- nSecSize += mnBorderWidth * 2;
- return awt::Size( mbHorizontal ? nPrimSize : nSecSize,
- mbHorizontal ? nSecSize : nPrimSize );
-}
-
-awt::Size SAL_CALL
-Box::getMinimumSize() throw(uno::RuntimeException)
-{
- maRequisition = calculateSize();
- return maRequisition;
-}
-
-sal_Bool SAL_CALL
-Box::hasHeightForWidth()
- throw(uno::RuntimeException)
-{
- return mbHasFlowChildren;
-}
-
-sal_Int32 SAL_CALL
-Box::getHeightForWidth( sal_Int32 nWidth )
- throw(uno::RuntimeException)
-{
- if ( hasHeightForWidth() )
- return calculateSize( nWidth ).Height;
- return maRequisition.Height;
-}
-
-void SAL_CALL
-Box::allocateArea( const awt::Rectangle &newArea )
- throw (uno::RuntimeException)
-{
- maAllocation = newArea;
- int nVisibleChildren = 0, nExpandChildren = 0;
-
- for ( std::list<Box_Base::ChildData *>::const_iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Box::ChildData*> ( *it );
- if ( child->isVisible() )
- {
- nVisibleChildren++;
- if ( child->mbExpand )
- nExpandChildren++;
- }
- }
- if ( !nVisibleChildren )
- return;
-
- // split rectangle for dimension helpers
- awt::Point newPoint( newArea.X, newArea.Y );
- awt::Size newSize( newArea.Width, newArea.Height );
-
- int nExtraSpace;
- if ( mbHomogeneous )
- nExtraSpace = ( ( primDim( newSize ) - mnBorderWidth * 2 -
- ( nVisibleChildren - 1 ) * mnSpacing )) / nVisibleChildren;
- else if ( nExpandChildren )
- {
- int reqSize = primDim( maRequisition );
- if ( !mbHorizontal && hasHeightForWidth() )
- reqSize = getHeightForWidth( newArea.Width );
- nExtraSpace = ( primDim( newSize ) - reqSize ) / nExpandChildren;
- }
- else
- nExtraSpace = 0;
-
- int nChildPrimPoint, nChildSecPoint, nChildPrimSize, nChildSecSize;
-
- int nStartPoint = primDim( newPoint ) + mnBorderWidth;
- int nBoxSecSize = SAL_MAX( 1, secDim( newSize ) - mnBorderWidth * 2 );
-
- for ( std::list<Box_Base::ChildData *>::const_iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Box::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
-
- awt::Point aChildPos;
- int nBoxPrimSize; // of the available box space
-
- if ( mbHomogeneous )
- nBoxPrimSize = nExtraSpace;
- else
- {
- uno::Reference< awt::XLayoutContainer > xChildCont( child->mxChild, uno::UNO_QUERY );
- bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
- if ( !mbHorizontal && bFlow )
- nBoxPrimSize = xChildCont->getHeightForWidth( newArea.Width );
- else
- nBoxPrimSize = primDim( child->maRequisition );
- nBoxPrimSize += child->mnPadding;
- if ( child->mbExpand )
- nBoxPrimSize += nExtraSpace;
- }
-
- nChildPrimPoint = nStartPoint + child->mnPadding;
- nChildSecPoint = secDim( newPoint ) + mnBorderWidth;
-
- nChildSecSize = nBoxSecSize;
- if ( child->mbFill )
- nChildPrimSize = SAL_MAX( 1, nBoxPrimSize - child->mnPadding);
- else
- {
- nChildPrimSize = primDim( child->maRequisition );
- nChildPrimPoint += (nBoxPrimSize - nChildPrimSize) / 2;
-
- nChildSecPoint += (nBoxSecSize - nChildSecSize) / 2;
- }
-
- awt::Rectangle area;
- area.X = mbHorizontal ? nChildPrimPoint : nChildSecPoint;
- area.Y = mbHorizontal ? nChildSecPoint : nChildPrimPoint;
- area.Width = mbHorizontal ? nChildPrimSize : nChildSecSize;
- area.Height = mbHorizontal ? nChildSecSize : nChildPrimSize;
-
- allocateChildAt( child->mxChild, area );
-
- nStartPoint += nBoxPrimSize + mnSpacing + child->mnPadding;
- }
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/box.hxx b/toolkit/source/layout/core/box.hxx
deleted file mode 100644
index 936b99ea77..0000000000
--- a/toolkit/source/layout/core/box.hxx
+++ /dev/null
@@ -1,105 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_BOX_HXX
-#define LAYOUT_CORE_BOX_HXX
-
-#include <layout/core/box-base.hxx>
-
-#include <com/sun/star/awt/Point.hpp>
-
-namespace layoutimpl
-{
-
-class Box : public Box_Base
-{
-protected:
- // Box properties (i.e. affect all children)
- sal_Int32 mnSpacing;
- sal_Bool mbHomogeneous;
- sal_Bool mbHorizontal; // false for Vertical
- bool mbHasFlowChildren;
-
-public:
- // Children properties
- struct ChildData : public Box_Base::ChildData
- {
- sal_Int32 mnPadding;
- sal_Bool mbExpand;
- sal_Bool mbFill;
- ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
- };
-
- struct ChildProps : public Box_Base::ChildProps
- {
- ChildProps( ChildData *pData );
- };
-
-protected:
- ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
- ChildProps *createChildProps( Box_Base::ChildData* pData );
-
-public:
- Box( bool horizontal );
-
- virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException);
-
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasHeightForWidth()
- throw(css::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
- throw(css::uno::RuntimeException);
-
- // helper: mix of getMinimumSize() and getHeightForWidth()
- css::awt::Size calculateSize( long nWidth = 0 );
-
-private:
- /* Helpers to deal with the joint Box directions. */
- inline int primDim (const css::awt::Size &size)
- { if (mbHorizontal) return size.Width; else return size.Height; }
- inline int secDim (const css::awt::Size &size)
- { if (mbHorizontal) return size.Height; else return size.Width; }
- inline int primDim (const css::awt::Point &point)
- { if (mbHorizontal) return point.X; else return point.Y; }
- inline int secDim (const css::awt::Point &point)
- { if (mbHorizontal) return point.Y; else return point.X; }
-};
-
-struct VBox : public Box
-{ VBox() : Box (false) {} };
-
-struct HBox : public Box
-{ HBox() : Box (true) {} };
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_BOX_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/byteseq.cxx b/toolkit/source/layout/core/byteseq.cxx
deleted file mode 100644
index 29894be31a..0000000000
--- a/toolkit/source/layout/core/byteseq.cxx
+++ /dev/null
@@ -1,79 +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 <com/sun/star/io/XInputStream.hpp>
-#include <osl/file.hxx>
-#include <comphelper/oslfile2streamwrap.hxx>
-
-using osl::File;
-using osl::FileBase;
-using namespace ::com::sun::star;
-
-namespace layoutimpl
-{
-
-uno::Reference< io::XInputStream > getFileAsStream( const rtl::OUString &rName )
-{
- rtl::OUString sFileURL;
- if( FileBase::E_None != FileBase::getFileURLFromSystemPath( rName, sFileURL ) )
- sFileURL = rName; // maybe it already was a file url
-
- File * blobFile = new File(sFileURL);
- File::RC errorCode = blobFile->open(osl_File_OpenFlag_Read);
-
- uno::Reference<io::XInputStream> xResult;
- switch (errorCode)
- {
- case osl::File::E_None: // got it
- xResult.set( new comphelper::OSLInputStreamWrapper(blobFile,true) );
- break;
-
- case osl::File::E_NOENT: // no file => no stream
- delete blobFile;
- break;
-
- default:
- delete blobFile;
-/* {
- rtl::OUStringBuffer sMsg;
- sMsg.appendAscii("Cannot open output file \"");
- sMsg.append(aURL);
- sMsg.appendAscii("\" : ");
- sMsg.append(configmgr::FileHelper::createOSLErrorString(errorCode));
-
- throw io::IOException(sMsg.makeStringAndClear(),NULL);
- }
-*/
- }
-
- return xResult;
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/container.cxx b/toolkit/source/layout/core/container.cxx
deleted file mode 100644
index 9e844e16c8..0000000000
--- a/toolkit/source/layout/core/container.cxx
+++ /dev/null
@@ -1,131 +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 "container.hxx"
-
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/PosSize.hpp>
-#include <tools/debug.hxx>
-
-namespace layoutimpl {
-
-using namespace css;
-
-Container::Container()
- : Container_Base()
- , PropHelper()
- , mnBorderWidth( 0 )
-{
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Border" ),
- ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
- &mnBorderWidth );
- setChangeListener( this );
-}
-
-bool
-Container::emptyVisible ()
-{
- return false;
-}
-
-uno::Any
-Container::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
-{
- uno::Any aRet = Container_Base::queryInterface( rType );
- return aRet.hasValue() ? aRet : PropHelper::queryInterface( rType );
-}
-
-void
-Container::allocateChildAt( const uno::Reference< awt::XLayoutConstrains > &xChild,
- const awt::Rectangle &rArea )
- throw( uno::RuntimeException )
-{
- uno::Reference< awt::XLayoutContainer > xCont( xChild, uno::UNO_QUERY );
- if ( xCont.is() )
- xCont->allocateArea( rArea );
- else
- {
- uno::Reference< awt::XWindow > xWindow( xChild, uno::UNO_QUERY );
- if ( xWindow.is() )
- xWindow->setPosSize( rArea.X, rArea.Y, rArea.Width, rArea.Height,
- awt::PosSize::POSSIZE );
- else
- {
- OSL_FAIL( "Error: non-sizeable child" );
- }
- }
-}
-
-uno::Sequence< uno::Reference< awt::XLayoutConstrains > >
-Container::getSingleChild ( uno::Reference< awt::XLayoutConstrains >const &xChildOrNil )
-{
- uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aSeq( ( xChildOrNil.is() ? 1 : 0 ) );
- if ( xChildOrNil.is() )
- aSeq[0] = xChildOrNil;
- return aSeq;
-}
-
-void
-Container::queueResize()
-{
- if ( mxLayoutUnit.is() )
- mxLayoutUnit->queueResize( uno::Reference< awt::XLayoutContainer >( this ) );
-}
-
-void
-Container::setChildParent( const uno::Reference< awt::XLayoutConstrains >& xChild )
-{
- uno::Reference< awt::XLayoutContainer > xContChild( xChild, uno::UNO_QUERY );
- if ( xContChild.is() )
- {
- xContChild->setParent( uno::Reference< awt::XLayoutContainer >( this ) );
- }
-}
-
-void
-Container::unsetChildParent( const uno::Reference< awt::XLayoutConstrains >& xChild )
-{
- uno::Reference< awt::XLayoutContainer > xContChild( xChild, uno::UNO_QUERY );
- if ( xContChild.is() )
- {
- xContChild->setParent( uno::Reference< awt::XLayoutContainer >() );
- }
-}
-
-void Container::propertiesChanged()
-{
- // cl: why this assertion? This is also called to set properties at the top level widget which has no parent!?
- // DBG_ASSERT( mxParent.is(), "Properties listener: error container doesn't have parent" );
-
- if ( mxLayoutUnit.is() && mxParent.is() )
- mxLayoutUnit->queueResize( mxParent );
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/container.hxx b/toolkit/source/layout/core/container.hxx
deleted file mode 100644
index 3c15efaaae..0000000000
--- a/toolkit/source/layout/core/container.hxx
+++ /dev/null
@@ -1,139 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_CONTAINER_HXX
-#define LAYOUT_CORE_CONTAINER_HXX
-
-#include <layout/core/helper.hxx>
-
-#include <cppuhelper/implbase2.hxx>
-#include <com/sun/star/awt/MaxChildrenException.hpp>
-
-namespace layoutimpl
-{
-namespace css = ::com::sun::star;
-
-typedef ::cppu::WeakImplHelper2< css::awt::XLayoutContainer,
- css::awt::XLayoutConstrains > Container_Base;
-
-class TOOLKIT_DLLPUBLIC Container : public Container_Base, public PropHelper, public PropHelper::Listener
-{
- friend class ChildProps;
-protected:
- // Widget properties
- css::uno::Reference< css::awt::XLayoutContainer > mxParent;
- css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
- css::awt::Size maRequisition;
- css::awt::Rectangle maAllocation;
-
- // Container properties
- sal_Int32 mnBorderWidth;
-
- // Utilities
- void allocateChildAt( const css::uno::Reference< css::awt::XLayoutConstrains > &xChild,
- const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException);
- static css::uno::Sequence< css::uno::Reference< css::awt::XLayoutConstrains > >
- getSingleChild (const css::uno::Reference< css::awt::XLayoutConstrains > &xChildOrNil);
- void setChildParent( const css::uno::Reference< css::awt::XLayoutConstrains >& xChild );
- void unsetChildParent( const css::uno::Reference< css::awt::XLayoutConstrains >& xChild );
-
- void queueResize();
- void forceRecalc() { allocateArea( maAllocation ); }
-
-public:
- Container();
- virtual ~Container() {}
-
- virtual bool emptyVisible ();
-
- // XInterface
- virtual void SAL_CALL acquire() throw() { PropHelper::acquire(); }
- virtual void SAL_CALL release() throw() { PropHelper::release(); }
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
-
- // css::awt::XLayoutContainer
- virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException, css::awt::MaxChildrenException) = 0;
- virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException) = 0;
-
- virtual css::uno::Sequence< css::uno::Reference
- < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
- throw (css::uno::RuntimeException) = 0;
-
- virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
- const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException) = 0;
-
- virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException) = 0;
-
- void SAL_CALL setLayoutUnit( const css::uno::Reference< css::awt::XLayoutUnit > &xUnit )
- throw(css::uno::RuntimeException)
- { mxLayoutUnit = xUnit; }
- css::uno::Reference< css::awt::XLayoutUnit > SAL_CALL getLayoutUnit()
- throw(css::uno::RuntimeException)
- { return mxLayoutUnit; }
-
- css::awt::Size SAL_CALL getRequestedSize() throw(css::uno::RuntimeException)
- { return maRequisition; }
- com::sun::star::awt::Rectangle SAL_CALL getAllocatedArea() throw(css::uno::RuntimeException)
- { return maAllocation; }
-
- virtual sal_Bool SAL_CALL hasHeightForWidth()
- throw(css::uno::RuntimeException) = 0;
- virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
- throw(css::uno::RuntimeException) = 0;
-
- // css::awt::XLayoutContainer: css::container::XChild
- css::uno::Reference< css::uno::XInterface > SAL_CALL getParent()
- throw (css::uno::RuntimeException)
- { return mxParent; }
- void SAL_CALL setParent( const css::uno::Reference< css::uno::XInterface > &xParent )
- throw (css::uno::RuntimeException)
- { mxParent = css::uno::Reference< css::awt::XLayoutContainer >( xParent, css::uno::UNO_QUERY ); }
-
- // css::awt::XLayoutConstrains
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException) = 0;
- // (not properly implemented in toolkit, ignore it.)
- css::awt::Size SAL_CALL getPreferredSize()
- throw(css::uno::RuntimeException) { return getMinimumSize(); } // TODO: use this for flow?
- css::awt::Size SAL_CALL calcAdjustedSize( const css::awt::Size& rNewSize )
- throw(css::uno::RuntimeException) { return rNewSize; }
-
-protected:
- void propertiesChanged();
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_CONTAINER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/dialogbuttonhbox.cxx b/toolkit/source/layout/core/dialogbuttonhbox.cxx
deleted file mode 100644
index 23d9e5ca34..0000000000
--- a/toolkit/source/layout/core/dialogbuttonhbox.cxx
+++ /dev/null
@@ -1,283 +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 <awt/vclxbutton.hxx>
-#include <tools/debug.hxx>
-#include <toolkit/awt/vclxwindows.hxx>
-#include <vcl/button.hxx>
-
-#include "dialogbuttonhbox.hxx"
-#include "flow.hxx"
-#include "proplist.hxx"
-
-namespace layoutimpl
-{
-
-using namespace css;
-
-//FIXME: how to set platform-dependant variables?
-DialogButtonHBox::Ordering const DialogButtonHBox::DEFAULT_ORDERING =
-#if defined( MACOSX )
- DialogButtonHBox::MACOS;
-#elif defined( SAL_W32 )
-DialogButtonHBox::WINDOWS;
-#elif defined( ENABLE_KDE )
-DialogButtonHBox::KDE;
-#else /* !MACOSX && !SAL_W32 && !ENABLE_KDE */
-DialogButtonHBox::GNOME;
-#endif /* !MACOSX && !SAL_W32 && !ENABLE_KDE */
-
-DialogButtonHBox::DialogButtonHBox()
- : HBox()
- , mnOrdering( DEFAULT_ORDERING )
- , mFlow()
- , mpAction( 0 )
- , mpAffirmative( 0 )
- , mpAlternate( 0 )
- , mpApply( 0 )
- , mpCancel( 0 )
- , mpFlow( createChild( uno::Reference< awt::XLayoutConstrains > ( &mFlow ) ) )
- , mpHelp( 0 )
- , mpReset( 0 )
-{
- mbHomogeneous = true;
-}
-
-void
-DialogButtonHBox::setOrdering( rtl::OUString const& ordering )
-{
- if ( ordering.equalsIgnoreAsciiCaseAscii( "GNOME" ) )
- mnOrdering = GNOME;
- else if ( ordering.equalsIgnoreAsciiCaseAscii( "KDE" ) )
- mnOrdering = KDE;
- else if ( ordering.equalsIgnoreAsciiCaseAscii( "MacOS" ) )
- mnOrdering = MACOS;
- else if ( ordering.equalsIgnoreAsciiCaseAscii( "Windows" ) )
- mnOrdering = WINDOWS;
- else
- {
- OSL_TRACE( "DialogButtonHBox: no such ordering: %s", OUSTRING_CSTR( ordering ) );
- }
-}
-
-void
-DialogButtonHBox::addChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
- throw ( uno::RuntimeException, awt::MaxChildrenException )
-{
- if ( !xChild.is() )
- return;
-
- ChildData *p = createChild( xChild );
-
-#define IS_BUTTON(t) dynamic_cast<VCLX##t##Button *>( xChild.get () )
-
- /* Sort Retry as Action */
- if ( !mpAction && IS_BUTTON( Retry ) )
- mpAction = p;
- else if ( !mpAffirmative && IS_BUTTON( OK ) )
- mpAffirmative = p;
- else if ( !mpAffirmative && IS_BUTTON( Yes ) )
- mpAffirmative = p;
- else if ( !mpAlternate && IS_BUTTON( No ) )
- mpAlternate = p;
- /* Sort Ignore as Alternate */
- else if ( !mpAlternate && IS_BUTTON( Ignore ) )
- mpAlternate = p;
- else if ( !mpApply && IS_BUTTON( Apply ) )
- mpApply = p;
- else if ( !mpCancel && IS_BUTTON( Cancel ) )
- mpCancel = p;
- /* Let the user overwrite Flow */
- else if ( /* !mpFlow && */ dynamic_cast<Flow *>( xChild.get () ) )
- mpFlow = p;
- else if ( !mpHelp && IS_BUTTON( Help ) )
- mpHelp = p;
- else if ( !mpReset && IS_BUTTON( Reset ) )
- mpReset = p;
- else
- maOther.push_back( p );
- orderChildren();
- setChildParent( xChild );
- queueResize();
-}
-
-void
-DialogButtonHBox::orderChildren()
-{
- if ( mnOrdering == WINDOWS )
- windowsOrdering();
- else if ( mnOrdering == MACOS )
- macosOrdering();
- else if ( mnOrdering == KDE )
- kdeOrdering();
- else if ( 1 || mnOrdering == GNOME )
- gnomeOrdering();
-}
-
-void SAL_CALL
-DialogButtonHBox::removeChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
- throw ( uno::RuntimeException)
-{
- if ( !xChild.is ())
- return;
-
- Box_Base::ChildData *p = 0;
-
- if ( mpAction && mpAction->mxChild == xChild )
- p = mpAction;
- else if ( mpAffirmative && mpAffirmative->mxChild == xChild )
- p = mpAffirmative;
- else if ( mpAlternate && mpAlternate->mxChild == xChild )
- p = mpAlternate;
- else if ( mpApply && mpApply->mxChild == xChild )
- p = mpApply;
- else if ( mpCancel && mpCancel->mxChild == xChild )
- p = mpCancel;
- else if ( mpFlow && mpFlow->mxChild == xChild )
- p = mpFlow;
- else if ( mpReset && mpReset->mxChild == xChild )
- p = mpReset;
- else if ( mpHelp && mpHelp->mxChild == xChild )
- p = mpHelp;
- else
- p = removeChildData( maOther, xChild );
-
- if ( p )
- {
- delete p;
- unsetChildParent( xChild );
- orderChildren();
- queueResize();
- }
- else
- {
- OSL_FAIL( "DialogButtonHBox: removeChild: no such child" );
- }
-}
-
-void
-DialogButtonHBox::gnomeOrdering()
-{
- std::list< Box_Base::ChildData * > ordered;
- if ( mpHelp )
- ordered.push_back( mpHelp );
- if ( mpReset )
- ordered.push_back( mpReset );
- if ( mpFlow && ( mpHelp || mpReset ) )
- ordered.push_back( mpFlow );
- ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
- if ( mpAction )
- ordered.push_back( mpAction );
- if ( mpApply )
- ordered.push_back( mpApply );
- if ( mpAlternate )
- ordered.push_back( mpAlternate );
- if ( mpCancel )
- ordered.push_back( mpCancel );
- if ( mpAffirmative )
- ordered.push_back( mpAffirmative );
- maChildren = ordered;
-}
-
-void
-DialogButtonHBox::kdeOrdering()
-{
- std::list< Box_Base::ChildData * > ordered;
- if ( mpHelp )
- ordered.push_back( mpHelp );
- if ( mpReset )
- ordered.push_back( mpReset );
- if ( mpFlow && ( mpHelp || mpReset ) )
- ordered.push_back( mpFlow );
- ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
- if ( mpAction )
- ordered.push_back( mpAction );
- if ( mpAffirmative )
- ordered.push_back( mpAffirmative );
- if ( mpApply )
- ordered.push_back( mpApply );
- if ( mpAlternate )
- ordered.push_back( mpAlternate );
- if ( mpCancel )
- ordered.push_back( mpCancel );
- maChildren = ordered;
-}
-
-void
-DialogButtonHBox::macosOrdering()
-{
- std::list< Box_Base::ChildData * > ordered;
- if ( mpHelp )
- ordered.push_back( mpHelp );
- if ( mpReset )
- ordered.push_back( mpReset );
- if ( mpApply )
- ordered.push_back( mpApply );
- if ( mpAction )
- ordered.push_back( mpAction );
- ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
- if ( mpFlow ) // Always flow? && ( maOther.size () || mpHelp || mpReset || mpAction ) )
- ordered.push_back( mpFlow );
- if ( mpAlternate )
- ordered.push_back( mpAlternate );
- if ( mpFlow && mpAlternate )
- ordered.push_back( mpFlow );
- if ( mpCancel )
- ordered.push_back( mpCancel );
- if ( mpAffirmative )
- ordered.push_back( mpAffirmative );
- maChildren = ordered;
-}
-
-void
-DialogButtonHBox::windowsOrdering()
-{
- std::list< Box_Base::ChildData * > ordered;
- if ( mpReset )
- ordered.push_back( mpReset );
- if ( mpReset && mpFlow )
- ordered.push_back( mpFlow );
- if ( mpAffirmative )
- ordered.push_back( mpAffirmative );
- if ( mpAlternate )
- ordered.push_back( mpAlternate );
- if ( mpAction )
- ordered.push_back( mpAction );
- if ( mpCancel )
- ordered.push_back( mpCancel );
- if ( mpApply )
- ordered.push_back( mpApply );
- ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
- if ( mpHelp )
- ordered.push_back( mpHelp );
- maChildren = ordered;
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/dialogbuttonhbox.hxx b/toolkit/source/layout/core/dialogbuttonhbox.hxx
deleted file mode 100644
index fbeca8691b..0000000000
--- a/toolkit/source/layout/core/dialogbuttonhbox.hxx
+++ /dev/null
@@ -1,76 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_DIALOGBUTTONHBOX_HXX
-#define LAYOUT_CORE_DIALOGBUTTONHBOX_HXX
-
-#include <layout/core/box.hxx>
-#include <layout/core/flow.hxx>
-
-namespace layoutimpl
-{
-
-class DialogButtonHBox : public HBox
-{
-public:
- DialogButtonHBox();
-
- void setOrdering( rtl::OUString const& ordering );
- void SAL_CALL addChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild ) throw ( css::uno::RuntimeException, css::awt::MaxChildrenException );
- void SAL_CALL removeChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild ) throw ( css::uno::RuntimeException );
-
-private:
- enum Ordering { PLATFORM, GNOME, KDE, MACOS, WINDOWS };
-
- void orderChildren();
- void gnomeOrdering();
- void kdeOrdering();
- void macosOrdering();
- void windowsOrdering();
-
- static Ordering const DEFAULT_ORDERING;
- Ordering mnOrdering;
- Flow mFlow;
-
- ChildData *mpAction; /* [..]?, [Retry?] */
- ChildData *mpAffirmative; /* OK, Yes, Save */
- ChildData *mpAlternate; /* NO, [Ignore?], Don't save, Quit without saving */
- ChildData *mpApply; /* Deprecated? */
- ChildData *mpCancel; /* Cancel, Close */
- ChildData *mpFlow;
- ChildData *mpHelp;
- ChildData *mpReset;
-
- std::list< Box_Base::ChildData *> maOther;
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_DIALOGBUTTONHBOX_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/factory.cxx b/toolkit/source/layout/core/factory.cxx
deleted file mode 100644
index be73b11359..0000000000
--- a/toolkit/source/layout/core/factory.cxx
+++ /dev/null
@@ -1,126 +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 "factory.hxx"
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <com/sun/star/registry/InvalidRegistryException.hpp>
-#include <cppuhelper/factory.hxx>
-
-#include "root.hxx"
-
-using namespace ::com::sun::star;
-using namespace layoutimpl;
-
-void * SAL_CALL comp_Layout_component_getFactory( const char * pImplName, void * pServiceManager, void * /*registryKey*/ )
- {
- void * pRet = 0;
-
- ::rtl::OUString aImplName( ::rtl::OUString::createFromAscii( pImplName ) );
- uno::Reference< lang::XSingleServiceFactory > xFactory;
-
- if ( pServiceManager && aImplName.equals( LayoutFactory::impl_staticGetImplementationName() ) )
- xFactory = ::cppu::createOneInstanceFactory( reinterpret_cast< lang::XMultiServiceFactory*>( pServiceManager ),
- LayoutFactory::impl_staticGetImplementationName(),
- LayoutFactory::impl_staticCreateSelfInstance,
- LayoutFactory::impl_staticGetSupportedServiceNames() );
- if ( xFactory.is() )
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
-
- return pRet;
- }
-
-// Component registration
-::rtl::OUString SAL_CALL LayoutFactory::impl_staticGetImplementationName()
-{
- return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.awt.Layout"));
-}
-
-uno::Sequence< ::rtl::OUString > SAL_CALL LayoutFactory::impl_staticGetSupportedServiceNames()
-{
- uno::Sequence< ::rtl::OUString > aRet(2);
- aRet[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.Layout"));
- aRet[1] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.awt.Layout"));
- return aRet;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL LayoutFactory::impl_staticCreateSelfInstance(
- const uno::Reference< lang::XMultiServiceFactory >& xServiceManager )
-{
- return uno::Reference< uno::XInterface >( *new LayoutFactory( xServiceManager ) );
-}
-
-// XServiceInfo
-::rtl::OUString SAL_CALL LayoutFactory::getImplementationName()
- throw ( uno::RuntimeException )
-{
- return impl_staticGetImplementationName();
-}
-
-uno::Sequence< ::rtl::OUString > SAL_CALL LayoutFactory::getSupportedServiceNames()
- throw ( uno::RuntimeException )
-{
- return impl_staticGetSupportedServiceNames();
-}
-
-sal_Bool SAL_CALL LayoutFactory::supportsService( const ::rtl::OUString& ServiceName )
- throw ( uno::RuntimeException )
-{
- uno::Sequence< ::rtl::OUString > aSeq = impl_staticGetSupportedServiceNames();
- for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
- if ( ServiceName.compareTo( aSeq[i] ) == 0 )
- return sal_True;
-
- return sal_False;
-}
-
-// XSingleServiceFactory
-uno::Reference< uno::XInterface > SAL_CALL LayoutFactory::createInstance()
- throw ( uno::Exception,
- uno::RuntimeException )
-{
- return uno::Reference< uno::XInterface >(
- static_cast< OWeakObject* >( new LayoutRoot( m_xFactory ) ),
- uno::UNO_QUERY );
-}
-
-uno::Reference< uno::XInterface > SAL_CALL LayoutFactory::createInstanceWithArguments(
- const uno::Sequence< uno::Any >& aArguments )
- throw ( uno::Exception,
- uno::RuntimeException )
-{
- uno::Reference< uno::XInterface > layout = createInstance();
- uno::Reference< lang::XInitialization > xInit( layout, uno::UNO_QUERY );
- xInit->initialize( aArguments );
- return layout;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/factory.hxx b/toolkit/source/layout/core/factory.hxx
deleted file mode 100644
index 7d1f77a9a2..0000000000
--- a/toolkit/source/layout/core/factory.hxx
+++ /dev/null
@@ -1,77 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_FACTORY_HXX
-#define LAYOUT_CORE_FACTORY_HXX
-
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase2.hxx>
-#include <toolkit/dllapi.h>
-
-namespace layoutimpl
-{
-class Layout;
-}
-
-class TOOLKIT_DLLPUBLIC LayoutFactory : public ::cppu::WeakImplHelper2< ::com::sun::star::lang::XSingleServiceFactory,
- ::com::sun::star::lang::XServiceInfo >
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-
-public:
- LayoutFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory )
- : m_xFactory( xFactory )
- {
- OSL_ENSURE( xFactory.is(), "No service manager is provided!\n" );
- }
-
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
- impl_staticGetSupportedServiceNames();
-
- static ::rtl::OUString SAL_CALL impl_staticGetImplementationName();
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
- impl_staticCreateSelfInstance(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
-
-
- // XSingleServiceFactory
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance() throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
-
-};
-
-#endif /* LAYOUT_CORE_FACTORY_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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: */
diff --git a/toolkit/source/layout/core/flow.hxx b/toolkit/source/layout/core/flow.hxx
deleted file mode 100644
index e6d9677db1..0000000000
--- a/toolkit/source/layout/core/flow.hxx
+++ /dev/null
@@ -1,98 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_FLOW_HXX
-#define LAYOUT_CORE_FLOW_HXX
-
-#include <layout/core/container.hxx>
-
-#include <list>
-
-namespace layoutimpl
-{
-
-class Flow : public Container
-{
-protected:
- // Box properties (i.e. affect all children)
- sal_Int32 mnSpacing;
- sal_Bool mbHomogeneous;
-
-public:
- // Children properties
- struct ChildData
- {
- css::awt::Size aRequisition;
- css::uno::Reference< css::awt::XLayoutConstrains > xChild;
- css::uno::Reference< css::beans::XPropertySet > xProps;
- bool isVisible();
- };
-
-protected:
- std::list< ChildData * > maChildren;
- long mnEachWidth; // on homogeneous, the width of every child
-
-public:
- Flow();
-
- bool emptyVisible ();
-
- // css::awt::XLayoutContainer
- virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
- virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Sequence< css::uno::Reference
- < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
- const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException);
-
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasHeightForWidth()
- throw(css::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
- throw(css::uno::RuntimeException);
-
-private:
- // shared between getMinimumSize() and getHeightForWidth()
- css::awt::Size calculateSize( long nMaxWidth );
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_FLOW_CORE_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/helper.cxx b/toolkit/source/layout/core/helper.cxx
deleted file mode 100644
index 362f766a28..0000000000
--- a/toolkit/source/layout/core/helper.cxx
+++ /dev/null
@@ -1,597 +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 "helper.hxx"
-
-#include <assert.h>
-#include <list>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <tools/debug.hxx>
-
-#include "proplist.hxx"
-
-namespace layoutimpl
-{
-using namespace com::sun::star;
-using rtl::OUString;
-
-uno::Reference< awt::XWindowPeer >
-getParent( uno::Reference< uno::XInterface > xRef )
-{
- do
- {
- uno::Reference< awt::XWindowPeer > xPeer( xRef, uno::UNO_QUERY );
- if ( xPeer.is() )
- return xPeer;
-
- uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
- if ( xCont.is() )
- xRef = xCont->getParent();
- }
- while ( xRef.is() );
-
- return uno::Reference< awt::XWindowPeer >();
-}
-
-}
-
-#include "bin.hxx"
-#include "box.hxx"
-#include "dialogbuttonhbox.hxx"
-#include "flow.hxx"
-#include "localized-string.hxx"
-#include "table.hxx"
-
-namespace layoutimpl
-{
-
-oslModule WidgetFactory::mSfx2Library = 0;
-WindowCreator WidgetFactory::mSfx2CreateWidget = 0;
-
-uno::Reference <awt::XLayoutContainer> WidgetFactory::createContainer (OUString const& name)
-{
- uno::Reference< awt::XLayoutContainer > xPeer;
-
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hbox" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new HBox() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "vbox" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new VBox() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "table" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Table() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "flow" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Flow() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "bin" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Bin() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "min-size" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new MinSize() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "align" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Align() );
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "dialogbuttonhbox" ) ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new DialogButtonHBox() );
-
- return xPeer;
-}
-
-uno::Reference <awt::XLayoutConstrains> WidgetFactory::toolkitCreateWidget (uno::Reference <awt::XToolkit> xToolkit, uno::Reference <uno::XInterface> xParent, OUString const& name, long properties)
-{
- uno::Reference< awt::XLayoutConstrains > xPeer;
- bool bToplevel = !xParent.is();
-
- // UNO Control Widget
- awt::WindowDescriptor desc;
- if ( bToplevel )
- desc.Type = awt::WindowClass_TOP;
- else
- {
- desc.Type = awt::WindowClass_SIMPLE;
-
- uno::Reference< awt::XWindowPeer > xWinParent( xParent, uno::UNO_QUERY );
- assert( xParent.is() );
- assert( xWinParent.is() );
- /*
- With the new three layer instarr/rpath feature, when
- prepending toolkit/unxlngx6.pro/lib or $SOLARVER/lib to
- LD_LIBRARY_PATH, VCLXWindow::GetImplementation returns 0x0
- vclxtoolkit::ImplCreateWindow failing to create any widget;
- although it succeeds here.
-
- While developing, one now must copy libtlx.so to
- $OOO_INSTALL_PREFIX/openoffice.org/basis3.0/program/libtklx.so
- each time.
- */
- VCLXWindow* parentComponent = VCLXWindow::GetImplementation( xWinParent );
- if ( !parentComponent )
- throw uno::RuntimeException(
- OUString(RTL_CONSTASCII_USTRINGPARAM("parent has no implementation")),
- uno::Reference< uno::XInterface >() );
- desc.Parent = xWinParent;
- }
-
- desc.ParentIndex = 0;
- // debugging help ...
- desc.Bounds.X = 0;
- desc.Bounds.Y = 0;
- desc.Bounds.Width = 300;
- desc.Bounds.Height = 200;
-
- desc.WindowAttributes = properties;
- desc.WindowServiceName = name;
-
- uno::Reference< awt::XWindowPeer > xWinPeer;
- try
- {
- OSL_TRACE("Asking toolkit: %s", OUSTRING_CSTR( desc.WindowServiceName ) );
- xWinPeer = xToolkit->createWindow( desc );
- if ( !xWinPeer.is() )
- throw uno::RuntimeException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot create peer" ) ),
- uno::Reference< uno::XInterface >() );
- xPeer = uno::Reference< awt::XLayoutConstrains >( xWinPeer, uno::UNO_QUERY );
- }
- catch( uno::Exception & )
- {
- OSL_TRACE( "Warning: %s is not a recognized type\n", OUSTRING_CSTR( name ) );
- return uno::Reference< awt::XLayoutConstrains >();
- }
-
- return xPeer;
-}
-
-uno::Reference< awt::XLayoutConstrains >
-WidgetFactory::createWidget (uno::Reference< awt::XToolkit > xToolkit, uno::Reference< uno::XInterface > xParent, OUString const& name, long properties)
-{
- uno::Reference< awt::XLayoutConstrains > xPeer;
-
- xPeer = uno::Reference <awt::XLayoutConstrains> (createContainer (name), uno::UNO_QUERY);
- if ( xPeer.is() )
- return xPeer;
-
- xPeer = implCreateWidget (xParent, name, properties);
- if (xPeer.is ())
- return xPeer;
-
-#define FIXED_INFO 1
-#if FIXED_INFO
- OUString tName = name;
- // FIXME
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "fixedinfo" ) ) )
- tName = OUString(RTL_CONSTASCII_USTRINGPARAM("fixedtext"));
- xPeer = toolkitCreateWidget (xToolkit, xParent, tName, properties);
-#else
- xPeer = toolkitCreateWidget (xToolkit, xParent, name, properties);
-#endif
-
- return xPeer;
-}
-
-PropHelper::PropHelper() : LockHelper()
- , cppu::OPropertySetHelper( maBrdcstHelper )
- , pHelper( NULL )
-{
-}
-
-void
-PropHelper::addProp (const char *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
- uno::Type aType, void *pPtr)
-{
- // this sucks rocks for effiency ...
- PropDetails aDetails;
- aDetails.aName = rtl::OUString::intern( pName, nNameLen, e );
- aDetails.aType = aType;
- aDetails.pValue = pPtr;
- maDetails.push_back( aDetails );
-}
-
-cppu::IPropertyArrayHelper & SAL_CALL
-PropHelper::getInfoHelper()
-{
- if ( ! pHelper )
- {
- uno::Sequence< beans::Property > aProps( maDetails.size() );
- for ( unsigned int i = 0; i < maDetails.size(); i++)
- {
- aProps[i].Name = maDetails[i].aName;
- aProps[i].Type = maDetails[i].aType;
- aProps[i].Handle = i;
- aProps[i].Attributes = 0;
- }
- pHelper = new cppu::OPropertyArrayHelper( aProps, false /* fixme: faster ? */ );
-
- }
- return *pHelper;
-}
-
-sal_Bool SAL_CALL
-PropHelper::convertFastPropertyValue(
- uno::Any & rConvertedValue,
- uno::Any & rOldValue,
- sal_Int32 nHandle,
- const uno::Any& rValue )
- throw (lang::IllegalArgumentException)
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
-
- // FIXME: no Any::getValue ...
- getFastPropertyValue( rOldValue, nHandle );
- if ( rOldValue != rValue )
- {
- rConvertedValue = rValue;
- return sal_True; // changed
- }
- else
- {
- rConvertedValue.clear();
- rOldValue.clear();
- }
- return sal_False;
-}
-
-
-void SAL_CALL
-PropHelper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
- const uno::Any& rValue )
- throw (uno::Exception)
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
-
- const PropDetails &rInfo = maDetails[ nHandle ];
-
- uno_type_assignData( rInfo.pValue, rInfo.aType.getTypeLibType(),
- rValue.pData, rValue.pType,
- 0, 0, 0 );
-
- if ( mpListener )
- mpListener->propertiesChanged();
-}
-
-void SAL_CALL
-PropHelper::getFastPropertyValue( uno::Any& rValue,
- sal_Int32 nHandle ) const
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
- const PropDetails &rInfo = maDetails[ nHandle ];
- rValue.setValue( rInfo.pValue, rInfo.aType );
-}
-
-::com::sun::star::uno::Any
-PropHelper::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
-{
- return OPropertySetHelper::queryInterface( rType );
-}
-
-uno::Reference <beans::XPropertySetInfo> SAL_CALL PropHelper::getPropertySetInfo () throw (uno::RuntimeException)
-{
- return css::uno::Reference <css::beans::XPropertySetInfo> (createPropertySetInfo (getInfoHelper ()));
-}
-
-} // namespace layoutimpl
-
-#include <awt/vclxbutton.hxx>
-#include <awt/vclxdialog.hxx>
-#include <awt/vclxfixedline.hxx>
-#include <awt/vclxplugin.hxx>
-#include <awt/vclxscroller.hxx>
-#include <awt/vclxsplitter.hxx>
-#include <awt/vclxtabcontrol.hxx>
-#include <awt/vclxtabpage.hxx>
-#include <toolkit/awt/vclxtoolkit.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <vcl/button.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/tabctrl.hxx>
-#include <vcl/tabpage.hxx>
-#include <vcl/unohelp.hxx>
-
-#include <layout/layout.hxx>
-#include <toolkit/awt/vclxwindows.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl.hxx>
-
-#include <typeinfo>
-
-namespace layoutimpl
-{
-
-uno::Reference <awt::XLayoutConstrains> WidgetFactory::implCreateWidget (uno::Reference <uno::XInterface> xParent, OUString name, long attributes)
-{
- Window* parent = 0;
-
- if (VCLXWindow* parentComponent = VCLXWindow::GetImplementation (xParent))
- parent = parentComponent->GetWindow ();
-
- VCLXWindow* component = 0;
- Window* window = 0; //sfx2CreateWindow (&component, parent, name, attributes);
- if (!window)
- window = layoutCreateWindow (&component, parent, name, attributes);
-
- uno::Reference <awt::XLayoutConstrains> reference;
- if (window)
- {
- window->SetCreatedWithToolkit( sal_True );
- if ( component )
- component->SetCreatedWithToolkit( true );
- reference = component;
- window->SetComponentInterface( component );
- if ( attributes & awt::WindowAttribute::SHOW )
- window->Show();
- }
-
- return reference;
-}
-
-extern "C" { static void SAL_CALL thisModule() {} }
-
-Window* WidgetFactory::sfx2CreateWindow (VCLXWindow** component, Window* parent, OUString const& name, long& attributes)
-{
- OSL_TRACE("Asking sfx2: %s", OUSTRING_CSTR (name));
-
- if (!mSfx2Library)
- {
- OUString libraryName = ::vcl::unohelper::CreateLibraryName ("sfx", sal_True);
- mSfx2Library = osl_loadModuleRelative (&thisModule, libraryName.pData, SAL_LOADMODULE_DEFAULT);
- if (mSfx2Library)
- {
- OUString functionName (RTL_CONSTASCII_USTRINGPARAM ("CreateWindow"));
- mSfx2CreateWidget = (WindowCreator) osl_getFunctionSymbol (mSfx2Library, functionName.pData);
- }
- }
-
- if (mSfx2CreateWidget)
- return mSfx2CreateWidget (component, name, parent, attributes);
-
- return 0;
-}
-
-Window* WidgetFactory::layoutCreateWindow (VCLXWindow** component, Window *parent, OUString const& name, long& attributes)
-{
- Window* window = 0;
-
- if (0)
- {
- ;
- }
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "dialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new Dialog( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "modaldialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ModalDialog( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "modelessdialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ModelessDialog (parent, ImplGetWinBits (attributes, 0));
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "sfxdialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ClosingDialog (parent, ImplGetWinBits (attributes, 0));
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "sfxmodaldialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ClosingModalDialog( parent,
- ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "sfxmodelessdialog" ) ) )
- {
- if ( parent == NULL )
- parent = DIALOG_NO_PARENT;
- window = new ClosingModelessDialog (parent, ImplGetWinBits (attributes, 0));
- *component = new layoutimpl::VCLXDialog();
-
- attributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "tabcontrol" ) ) )
- {
- window = new TabControl( parent, ImplGetWinBits( attributes, WINDOW_TABCONTROL ) );
- *component = new layoutimpl::VCLXTabControl();
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "scroller" ) ) )
- {
- // used FixedImage because I just want some empty non-intrusive widget
- window = new FixedImage( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXScroller();
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hsplitter" ) ) || name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "vsplitter" ) ) )
- {
- window = new FixedImage( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXSplitter( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hsplitter" ) ) );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hfixedline" ) ) || name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "vfixedline" ) ) )
- {
- WinBits nStyle = ImplGetWinBits( attributes, 0 );
- nStyle ^= WB_HORZ;
- if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "hfixedline" ) ) )
- nStyle |= WB_HORZ;
- else
- nStyle |= WB_VERT;
- window = new FixedLine( parent, nStyle );
- *component = new layoutimpl::VCLXFixedLine();
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "okbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXOKButton( window );
- window->SetType (WINDOW_OKBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "cancelbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXCancelButton( window );
- window->SetType (WINDOW_CANCELBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "yesbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXYesButton( window );
- window->SetType (WINDOW_OKBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "nobutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- window->SetType (WINDOW_CANCELBUTTON);
- *component = new layoutimpl::VCLXNoButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "retrybutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXRetryButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ignorebutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXIgnoreButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "resetbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXResetButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "applybutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXApplyButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXHelpButton( window );
- window->SetType (WINDOW_HELPBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "morebutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXMoreButton( window );
- window->SetType (WINDOW_MOREBUTTON);
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "advancedbutton" ) ) )
- {
- window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::VCLXAdvancedButton( window );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "plugin" ) ) )
- {
- window = new Control( parent, ImplGetWinBits( attributes, 0 ) );
-#ifndef __SUNPRO_CC
- OSL_TRACE( "%s: parent=%p (%s)\n", __FUNCTION__, parent, typeid( *parent ).name() );
-#endif
- *component = new layoutimpl::VCLXPlugin( window, ImplGetWinBits( attributes, 0 ) );
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "tabpage" ) ) )
- {
- if (layout::TabPage::global_parent)
- parent = layout::TabPage::global_parent;
- layout::TabPage::global_parent = 0;
- //window = new TabPage( parent, ImplGetWinBits( attributes, 0 ) );
- attributes ^= awt::WindowAttribute::SHOW;
- WinBits nStyle = ImplGetWinBits( attributes, 0 );
- nStyle |= WB_HIDE;
-
- if (!parent)
- {
- window = new Dialog( parent, nStyle );
- *component = new VCLXDialog();
- }
- else
- {
- window = new TabPage( parent, nStyle );
- *component = new VCLXTabPage( window );
- }
- }
- else if ( name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "string" ) ) )
- {
- // FIXME: move <string>s.text to simple map<string> in root?
- attributes &= ~awt::WindowAttribute::SHOW;
- window = new Window( parent, ImplGetWinBits( attributes, 0 ) );
- *component = new layoutimpl::LocalizedString();
- }
- else if (name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("svxfontlistbox"))
- || name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("svxlanguagebox")))
- {
- window = new ListBox (parent, ImplGetWinBits (attributes, 0));
- *component = new VCLXListBox ();
- }
- return window;
-}
-
-} // namespace layoutimpl
-
-// Avoid polluting the rest of the code with vcl linkage pieces ...
-
-#include <vcl/imagerepository.hxx>
-#include <vcl/bitmapex.hxx>
-#include <vcl/graph.hxx>
-
-namespace layoutimpl
-{
-
-uno::Reference< graphic::XGraphic > loadGraphic( const char *pName )
-{
- BitmapEx aBmp;
-
- OUString aStr( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US );
- if ( aStr.compareToAscii( ".uno:" ) == 0 )
- aStr = aStr.copy( 5 ).toAsciiLowerCase();
-
- if ( !vcl::ImageRepository::loadImage( OUString::createFromAscii( pName ), aBmp, true, true ) )
- return uno::Reference< graphic::XGraphic >();
-
- return Graphic( aBmp ).GetXGraphic();
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/helper.hxx b/toolkit/source/layout/core/helper.hxx
deleted file mode 100644
index f19f74611f..0000000000
--- a/toolkit/source/layout/core/helper.hxx
+++ /dev/null
@@ -1,152 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_HELPER_HXX
-#define LAYOUT_CORE_HELPER_HXX
-
-#include <toolkit/dllapi.h>
-#include <vector>
-
-#include <com/sun/star/awt/XLayoutConstrains.hpp>
-#include <com/sun/star/awt/XLayoutContainer.hpp>
-#include <com/sun/star/awt/XVclWindowPeer.hpp>
-#include <com/sun/star/xml/input/XRoot.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/propshlp.hxx>
-#include <osl/module.h>
-#include <rtl/ustring.hxx>
-
-class Window;
-class VCLXWindow;
-extern "C"
-{
- typedef Window* (SAL_CALL *WindowCreator) (VCLXWindow** component, rtl::OUString const& name, Window* parent, long& attributes);
-}
-
-namespace layoutimpl
-{
-
-namespace css = ::com::sun::star;
-
-/* ChildProps -- a helper to set child properties for the XLayoutContainer interface. */
-
-class LockHelper
-{
-public:
- osl::Mutex maGuard;
- cppu::OBroadcastHelper maBrdcstHelper;
- LockHelper() : maBrdcstHelper( maGuard )
- {
- }
-};
-
-class PropHelper : public LockHelper
- , public cppu::OPropertySetHelper
- , public cppu::OWeakObject
-{
- cppu::OPropertyArrayHelper *pHelper;
-
- struct PropDetails
- {
- rtl::OUString aName;
- css::uno::Type aType;
- void *pValue;
- };
- std::vector< PropDetails > maDetails;
-
-protected:
- void addProp( char const *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
- css::uno::Type aType, void *pPtr );
-
-public:
- PropHelper();
-
- // com::sun::star::uno::XInterface
- void SAL_CALL acquire() throw() { OWeakObject::acquire(); }
- void SAL_CALL release() throw() { OWeakObject::release(); }
- ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
-
- // cppu::OPropertySetHelper
- virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
- virtual sal_Bool SAL_CALL convertFastPropertyValue( css::uno::Any &,
- css::uno::Any &, sal_Int32 nHandle, const css::uno::Any & )
- throw(css::lang::IllegalArgumentException);
- virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
- const css::uno::Any& rValue ) throw (css::uno::Exception);
- using OPropertySetHelper::getFastPropertyValue;
- virtual void SAL_CALL getFastPropertyValue( css::uno::Any& rValue,
- sal_Int32 nHandle ) const;
-
- virtual css::uno::Reference <css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo () throw (css::uno::RuntimeException);
-
- struct Listener
- {
- virtual void propertiesChanged() = 0;
- };
-
- void setChangeListener( Listener *pListener )
- {
- mpListener = pListener;
- }
-
-protected:
- Listener *mpListener;
-};
-
-css::uno::Any anyFromString (const rtl::OUString &value, const css::uno::Type &type);
-
-// The native widgets wrapper hierarchy may not reflect that of the layout
-// hierarchy as some containers don't have an associated native widget.
-// Use this function to get the native parent of the given peer.
-css::uno::Reference< css::awt::XWindowPeer >
-getParent( css::uno::Reference< css::uno::XInterface > xPeer );
-
-class TOOLKIT_DLLPUBLIC WidgetFactory
-{
-public:
- static oslModule mSfx2Library;
- static WindowCreator mSfx2CreateWidget;
-
- // Should use UNO services in due course
- static css::uno::Reference <css::awt::XLayoutConstrains> toolkitCreateWidget (css::uno::Reference <css::awt::XToolkit> xToolkit, css::uno::Reference <css::uno::XInterface> xParent, rtl::OUString const& name, long properties);
- static css::uno::Reference< css::awt::XLayoutConstrains > createWidget( css::uno::Reference <css::awt::XToolkit > xToolkit, css::uno::Reference< css::uno::XInterface > xParent, rtl::OUString const &name, long properties);
- static css::uno::Reference <css::awt::XLayoutContainer> createContainer (rtl::OUString const& name);
- static css::uno::Reference <css::awt::XLayoutConstrains> implCreateWidget (css::uno::Reference <css::uno::XInterface> xParent, rtl::OUString name, long attributes);
- static Window* sfx2CreateWindow (VCLXWindow** component, Window* parent, rtl::OUString const& name, long& attributes);
- static Window* layoutCreateWindow (VCLXWindow** component, Window *parent, rtl::OUString const& name, long& attributes);
-};
-
-
-css::uno::Reference< css::graphic::XGraphic > loadGraphic( const char *pName );
-
-} // end namespace layoutimpl
-
-#endif /* LAYOUT_CORE_HELPER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/import.cxx b/toolkit/source/layout/core/import.cxx
deleted file mode 100644
index 5b9262a771..0000000000
--- a/toolkit/source/layout/core/import.cxx
+++ /dev/null
@@ -1,328 +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 "import.hxx"
-
-#include <com/sun/star/awt/XButton.hpp>
-#include <com/sun/star/awt/XDialog2.hpp>
-#include <vcl/image.hxx>
-#include <tools/debug.hxx>
-#include <layout/layout.hxx>
-
-#include "root.hxx"
-#include "helper.hxx"
-#include "dialogbuttonhbox.hxx"
-
-
-#define XMLNS_LAYOUT_URI "http://openoffice.org/2007/layout"
-#define XMLNS_CONTAINER_URI "http://openoffice.org/2007/layout/container"
-
-namespace layoutimpl
-{
-using namespace css;
-
-using ::rtl::OUString;
-
-ElementBase::~ElementBase()
-SAL_THROW( () )
-{
- //delete mpImport;
- //mpImport = 0;
-}
-
-//** parser
-WidgetElement::WidgetElement ( sal_Int32 nUid, const OUString &rName,
- uno::Reference <xml::input::XAttributes> const &attributes,
- ElementBase *pParent,
- ImportContext *pImport)
-SAL_THROW (())
-: ElementBase( nUid, rName, attributes, pParent, pImport )
-{
- OUString name = rName.toAsciiLowerCase();
-
- PropList aProps;
- propsFromAttributes( attributes, aProps, pImport->XMLNS_LAYOUT_UID );
-
- OUString aId;
- findAndRemove( "id", aProps, aId );
- OUString aLang;
- findAndRemove( "xml-lang", aProps, aLang );
-
- {
-//DEBUG
- uno::Reference< awt::XLayoutConstrains > xParent;
- if ( pParent )
- xParent = ((WidgetElement *) pParent)->mpWidget->getPeer();
-
-
- mpWidget = pImport->mrRoot.create( aId, name,
- getAttributeProps( aProps ), uno::Reference< awt::XLayoutContainer >( xParent, uno::UNO_QUERY ) );
-
- }
-
- // TODO: handle with non-existing widgets
-
- mpWidget->setProperties( aProps );
-
- uno::Reference< awt::XDialog2 > xDialog( mpWidget->getPeer(), uno::UNO_QUERY );
- if ( xDialog.is() )
- {
- OUString aTitle;
- if ( findAndRemove( "title", aProps, aTitle ) )
- {
- OSL_TRACE("Setting title: %s", OUSTRING_CSTR( aTitle ) );
- xDialog->setTitle( aTitle );
- }
- OUString aHelpId;
- if ( findAndRemove( "help-id", aProps, aHelpId ) )
- {
- OSL_TRACE("Setting help-id: %s", OUSTRING_CSTR( aHelpId ) );
- xDialog->setHelpId( aHelpId );
- }
- } // DEBUG:
- else if ( pParent == NULL )
- {
- OSL_FAIL( "Fatal error: top node isn't a dialog" );
- }
-
- OUString aOrdering;
- if ( findAndRemove( "ordering", aProps, aOrdering ) )
- if ( DialogButtonHBox *b = dynamic_cast<DialogButtonHBox *> ( mpWidget->getPeer().get() ) )
- b->setOrdering ( aOrdering );
-
- bool bSetRadioGroup;
- OUString aRadioGroup;
- bSetRadioGroup = findAndRemove( "radiogroup", aProps, aRadioGroup );
-
- mpWidget->setProperties( aProps );
-
- // we need to add radio buttons to the group after their properties are
- // set, so we can check if they should be the one selected by default or not.
- // And the state changed event isn't fired when changing properties.
-
- uno::Reference< awt::XRadioButton > xRadio( mpWidget->getPeer(), uno::UNO_QUERY );
- if ( xRadio.is() )
- {
- if (!bSetRadioGroup)
- aRadioGroup = OUString(RTL_CONSTASCII_USTRINGPARAM ("default"));
- pImport->mxRadioGroups.addItem( aRadioGroup, xRadio );
- }
-}
-
-WidgetElement::~WidgetElement()
-{
- //delete mpWidget;
- //mpWidget = 0;
-}
-
-uno::Reference <xml::input::XElement>
-WidgetElement::startChildElement ( sal_Int32 nUid, OUString const &name,
- uno::Reference <xml::input::XAttributes> const &attributes )
- throw( xml::sax::SAXException, uno::RuntimeException )
-{
- // Adding a child to the widget
- WidgetElement *pChild = new WidgetElement ( nUid, name, attributes, this, mpImport );
-
- if ( !mpWidget->addChild( pChild->mpWidget ) )
- {
- OSL_TRACE( "ERROR: cannot add %s to container %s, container full", OUSTRING_CSTR( name ), OUSTRING_CSTR( getLocalName() ) );
- throw xml::sax::SAXException();
- }
-
- PropList aProps;
- propsFromAttributes( attributes, aProps, mpImport->XMLNS_CONTAINER_UID );
- mpWidget->setChildProperties( pChild->mpWidget, aProps );
-
- return pChild;
-}
-
-// Support Ivo Hinkelmann's move label/text/title attribute to CONTENT
-// transex3 hack.
-void SAL_CALL
-WidgetElement::characters( OUString const& rChars )
- throw (xml::sax::SAXException, uno::RuntimeException)
-{
- if ( mpWidget && rChars.trim().getLength() )
- {
- uno::Reference< awt::XDialog2 > xDialog( mpWidget->getPeer(), uno::UNO_QUERY );
- uno::Reference< awt::XButton > xButton( mpWidget->getPeer(), uno::UNO_QUERY );
- if ( xDialog.is() )
- xDialog->setTitle( rChars );
- else if ( xButton.is() )
- mpWidget->setProperty( OUString(RTL_CONSTASCII_USTRINGPARAM("label")), rChars );
- else
- mpWidget->setProperty( OUString(RTL_CONSTASCII_USTRINGPARAM("text")), rChars );
- }
-}
-// ---- ElementBase ----
-
-ElementBase::ElementBase( sal_Int32 nUid, OUString const & rLocalName,
- uno::Reference< xml::input::XAttributes > const & xAttributes,
- ElementBase* pParent,
- ImportContext* pImport )
-SAL_THROW(())
-: mpImport( pImport )
- , mpParent( pParent )
- , mnUid( nUid )
- , maLocalName( rLocalName )
- , mxAttributes( xAttributes )
-{
-}
-
-// ---- ImportContext ----
-
-void ImportContext::startDocument(
- uno::Reference< xml::input::XNamespaceMapping > const & xNamespaceMapping )
- throw (xml::sax::SAXException, uno::RuntimeException)
-{
- XMLNS_LAYOUT_UID = xNamespaceMapping->getUidByUri(
- OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_LAYOUT_URI ) ) );
- XMLNS_CONTAINER_UID = xNamespaceMapping->getUidByUri(
- OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_CONTAINER_URI ) ) );
-}
-
-ToplevelElement::ToplevelElement (OUString const &rName,
- uno::Reference <xml::input::XAttributes> const &xAttributes,
- ImportContext *pImport)
-SAL_THROW(())
-: WidgetElement( 0, rName, xAttributes, NULL, pImport )
-{
-}
-
-ToplevelElement::~ToplevelElement()
-{
-}
-
-uno::Reference< xml::input::XElement > ImportContext::startRootElement(
- sal_Int32 nUid, OUString const & rLocalName,
- uno::Reference< xml::input::XAttributes > const & xAttributes )
- throw (xml::sax::SAXException, uno::RuntimeException)
-{
- if ( XMLNS_LAYOUT_UID != nUid )
- throw xml::sax::SAXException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "invalid namespace!" ) ),
- uno::Reference< uno::XInterface >(), uno::Any() );
- return new ToplevelElement( rLocalName, xAttributes, this );
-}
-
-RadioGroups::RadioGroups()
-{
-}
-
-void RadioGroups::addItem( rtl::OUString id, uno::Reference< awt::XRadioButton > xRadio )
- throw (uno::RuntimeException)
-{
- if ( ! xRadio.is() )
- throw uno::RuntimeException();
-
- uno::Reference< RadioGroup > group;
- RadioGroupsMap::iterator it = mxRadioGroups.find( id );
- if ( it == mxRadioGroups.end() )
- {
- group = uno::Reference< RadioGroup > ( new RadioGroup() );
- mxRadioGroups [id] = group;
- }
- else
- group = it->second;
- group->addItem( xRadio );
-}
-
-RadioGroups::RadioGroup::RadioGroup()
-{
-}
-
-void RadioGroups::RadioGroup::addItem( uno::Reference< awt::XRadioButton > xRadio )
-{
- if ( ! mxSelectedRadio.is() )
- {
- xRadio->setState( true );
- mxSelectedRadio = xRadio;
- }
- else if ( xRadio->getState() )
- {
-#if 1
- xRadio->setState( false );
-#else // huh, why select last added?
- mxSelectedRadio->setState( false );
- mxSelectedRadio = xRadio;
-#endif
- }
-
- // TOO late: actionPerformed is called before itemStateChanged.
- // If client code (wrongly?) uses actionPerformed, it will see
- // the previous RadioButtons' state.
- xRadio->addItemListener( this );
-
- uno::Reference< awt::XButton > xButton = uno::Reference< awt::XButton > ( xRadio, uno::UNO_QUERY );
- xButton->addActionListener( this );
-
- mxRadios.push_back (xRadio);
-}
-
-void RadioGroups::RadioGroup::handleSelected ()
- throw (uno::RuntimeException)
-{
- for ( RadioButtonsList::iterator it = mxRadios.begin();
- it != mxRadios.end(); ++it )
- if ( *it != mxSelectedRadio && (*it)->getState() )
- {
- mxSelectedRadio->setState( false );
- mxSelectedRadio = *it;
- break;
- }
-}
-
-// awt::XItemListener
-void RadioGroups::RadioGroup::itemStateChanged( const awt::ItemEvent& e )
- throw (uno::RuntimeException)
-{
- // TOO late: actionPerformed is called before itemStateChanged.
- // If client code (wrongly?) uses actionPerformed, it will see
- // the previous RadioButtons' state.
-
- // Need this for initialization, though.
- if ( e.Selected )
- handleSelected ();
-}
-
-// awt::XActionListener
-void RadioGroups::RadioGroup::actionPerformed( const awt::ActionEvent& )
- throw (uno::RuntimeException)
-{
- handleSelected ();
-}
-
-// lang::XEventListener
-void SAL_CALL RadioGroups::RadioGroup::disposing( const lang::EventObject& )
- throw (uno::RuntimeException)
-{
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/import.hxx b/toolkit/source/layout/core/import.hxx
deleted file mode 100644
index 8d3584a255..0000000000
--- a/toolkit/source/layout/core/import.hxx
+++ /dev/null
@@ -1,214 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_IMPORT_HXX
-#define LAYOUT_CORE_IMPORT_HXX
-
-#include <map>
-#include <list>
-#define _BACKWARD_BACKWARD_WARNING_H 1
-#include <boost/unordered_map.hpp>
-
-
-#include <com/sun/star/xml/input/XRoot.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/awt/XButton.hpp>
-#include <com/sun/star/awt/XRadioButton.hpp>
-
-namespace layoutimpl
-{
-class LayoutRoot;
-class LayoutWidget;
-namespace css = ::com::sun::star;
-
-class RadioGroups
-{
-public:
- RadioGroups();
-
- void addItem( rtl::OUString id, css::uno::Reference< css::awt::XRadioButton > xRadio )
- throw (css::uno::RuntimeException);
-
-private:
- class RadioGroup : public ::cppu::WeakImplHelper1< css::awt::XItemListener >
- , public ::cppu::WeakImplHelper1< css::awt::XActionListener >
- {
- public:
- RadioGroup();
- void addItem( css::uno::Reference< css::awt::XRadioButton > xRadio );
-
- private:
- typedef std::list< css::uno::Reference< css::awt::XRadioButton > > RadioButtonsList;
- RadioButtonsList mxRadios;
- css::uno::Reference< css::awt::XRadioButton > mxSelectedRadio;
-
- void handleSelected ()
- throw (css::uno::RuntimeException);
-
- // awt::XItemListener
- void SAL_CALL itemStateChanged( const css::awt::ItemEvent& e )
- throw (css::uno::RuntimeException);
-
- // awt::XActionListener
- void SAL_CALL actionPerformed( const css::awt::ActionEvent& e )
- throw (css::uno::RuntimeException);
-
- // lang::XEventListener
- void SAL_CALL disposing( const css::lang::EventObject& )
- throw (css::uno::RuntimeException);
- };
-
- // each RadioGroup will stay alive after RadioGroups die with the ImportContext
- // because they are referenced by every XRadioButton through the listener
- typedef std::map< rtl::OUString, css::uno::Reference< RadioGroup > > RadioGroupsMap;
- RadioGroupsMap mxRadioGroups;
-};
-
-// parser
-class ImportContext : public ::cppu::WeakImplHelper1< css::xml::input::XRoot >
-{
-public:
- sal_Int32 XMLNS_LAYOUT_UID, XMLNS_CONTAINER_UID;
- LayoutRoot &mrRoot; // switch to XNameContainer ref ?
- RadioGroups mxRadioGroups;
-
- inline ImportContext( LayoutRoot &rRoot ) SAL_THROW( () )
- : mrRoot( rRoot ) {}
- virtual ~ImportContext() {}
-
- // XRoot
- virtual void SAL_CALL startDocument(
- css::uno::Reference< css::xml::input::XNamespaceMapping >
- const & xNamespaceMapping )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException);
- virtual void SAL_CALL endDocument()
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
- virtual void SAL_CALL processingInstruction(
- ::rtl::OUString const & /* rTarget */, ::rtl::OUString const & /* rData */ )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
- virtual void SAL_CALL setDocumentLocator(
- css::uno::Reference< css::xml::sax::XLocator > const & /* xLocator */ )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
- virtual css::uno::Reference< css::xml::input::XElement >
- SAL_CALL startRootElement(
- sal_Int32 nUid, ::rtl::OUString const & rLocalName,
- css::uno::Reference<css::xml::input::XAttributes > const & xAttributes )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException);
-};
-
-class ElementBase : public ::cppu::WeakImplHelper1< css::xml::input::XElement >
-{
-protected:
- ImportContext *mpImport;
-/* TODO: check if all this memebers are needed. */
- ElementBase *mpParent;
- sal_Int32 mnUid;
-
- ::rtl::OUString maLocalName;
- css::uno::Reference< css::xml::input::XAttributes > mxAttributes;
-public:
- ElementBase(
- sal_Int32 nUid, ::rtl::OUString const & rLocalName,
- css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
- ElementBase * pParent, ImportContext * pImport )
- SAL_THROW( () );
- virtual ~ElementBase() SAL_THROW(());
-
- // XElement
- virtual css::uno::Reference<css::xml::input::XElement> SAL_CALL getParent()
- throw (css::uno::RuntimeException)
- { return static_cast< css::xml::input::XElement * >( mpParent ); }
- virtual ::rtl::OUString SAL_CALL getLocalName() throw (css::uno::RuntimeException)
- { return maLocalName; }
- virtual sal_Int32 SAL_CALL getUid() throw (css::uno::RuntimeException)
- { return mnUid; }
- virtual css::uno::Reference< css::xml::input::XAttributes >
- SAL_CALL getAttributes() throw (css::uno::RuntimeException)
- { return mxAttributes; }
-
- virtual void SAL_CALL ignorableWhitespace(
- ::rtl::OUString const & /* rWhitespaces */ )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
- virtual void SAL_CALL characters( ::rtl::OUString const & /* rChars */ )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
- virtual void SAL_CALL processingInstruction(
- ::rtl::OUString const & /* Target */, ::rtl::OUString const & /* Data */ )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
-
- virtual css::uno::Reference< css::xml::input::XElement >
- SAL_CALL startChildElement(
- sal_Int32 nUid, ::rtl::OUString const & rLocalName,
- css::uno::Reference<css::xml::input::XAttributes > const & xAttributes )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException) = 0;
- virtual void SAL_CALL endElement()
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
- { /* ignore */ }
-};
-
-class WidgetElement : public ElementBase
-{
-protected:
- LayoutWidget *mpWidget;
-
-public:
- WidgetElement( sal_Int32 nUid, rtl::OUString const &name,
- css::uno::Reference< css::xml::input::XAttributes > const &attributes,
- ElementBase *parent, ImportContext *import ) SAL_THROW (());
-
- ~WidgetElement();
-
-
- virtual css::uno::Reference< css::xml::input::XElement> SAL_CALL
- startChildElement (sal_Int32 id, rtl::OUString const &name,
- css::uno::Reference< css::xml::input::XAttributes > const &attributes)
- throw( css::xml::sax::SAXException, css::uno::RuntimeException );
- virtual void SAL_CALL characters( ::rtl::OUString const & /* rChars */ )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException);
-};
-
-class ToplevelElement : public WidgetElement
-{
-public:
- ToplevelElement( rtl::OUString const &name,
- css::uno::Reference< css::xml::input::XAttributes > const &attributes,
- ImportContext *import ) SAL_THROW (());
- ~ToplevelElement();
-};
-
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_IMPORT_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/localized-string.cxx b/toolkit/source/layout/core/localized-string.cxx
deleted file mode 100644
index 6d3625e5d4..0000000000
--- a/toolkit/source/layout/core/localized-string.cxx
+++ /dev/null
@@ -1,83 +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 "localized-string.hxx"
-
-#include <toolkit/helper/property.hxx>
-#include <vcl/window.hxx>
-#include <vcl/svapp.hxx>
-
-namespace layoutimpl
-{
-
-namespace css = ::com::sun::star;
-using namespace css;
-using rtl::OUString;
-
-LocalizedString::LocalizedString()
- : VCLXWindow()
-{
-}
-
-void LocalizedString::ImplGetPropertyIds( std::list< sal_uInt16 > &ids )
-{
- PushPropertyIds( ids, BASEPROPERTY_TEXT, 0);
- VCLXWindow::ImplGetPropertyIds( ids );
-}
-
-// XInterface
-uno::Any LocalizedString::queryInterface( uno::Type const& rType )
- throw(uno::RuntimeException)
-{
- uno::Any aRet = ::cppu::queryInterface( rType,
- SAL_STATIC_CAST( awt::XFixedText*, this ) );
- return (aRet.hasValue() ? aRet : VCLXWindow::queryInterface( rType ));
-}
-
-void LocalizedString::setText( OUString const& s )
- throw(uno::RuntimeException)
-{
- SolarMutexGuard aGuard;
-
- if ( Window *w = GetWindow() )
- return w->SetText( s );
-}
-
-OUString LocalizedString::getText()
- throw(uno::RuntimeException)
-{
- SolarMutexGuard aGuard;
-
- if ( Window *w = GetWindow() )
- return w->GetText();
- return OUString();
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/localized-string.hxx b/toolkit/source/layout/core/localized-string.hxx
deleted file mode 100644
index 884c702cc3..0000000000
--- a/toolkit/source/layout/core/localized-string.hxx
+++ /dev/null
@@ -1,79 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_LOCALIZED_STRING_HXX
-#define LAYOUT_CORE_LOCALIZED_STRING_HXX
-
-#include <com/sun/star/awt/XFixedText.hpp>
-#include <toolkit/awt/vclxwindow.hxx>
-
-namespace layoutimpl
-{
-namespace css = ::com::sun::star;
-
-// FIXME: misuse XFixedText interface for simple string
-class LocalizedString : public css::awt::XFixedText
- , public VCLXWindow
-{
-public:
- LocalizedString();
-
- // css::uno::XInterface
- css::uno::Any SAL_CALL queryInterface( css::uno::Type const& rType )
- throw(css::uno::RuntimeException);
- void SAL_CALL acquire() throw() { OWeakObject::acquire(); }
- void SAL_CALL release() throw() { OWeakObject::release(); }
-
- // css::awt::XFixedText
- void SAL_CALL setText( ::rtl::OUString const& s )
- throw(css::uno::RuntimeException);
- ::rtl::OUString SAL_CALL getText()
- throw(css::uno::RuntimeException);
- void SAL_CALL setAlignment( sal_Int16 )
- throw(css::uno::RuntimeException) { }
- sal_Int16 SAL_CALL getAlignment()
- throw(css::uno::RuntimeException) { return 0; }
-
- // css::awt::XLayoutConstrains
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException) { return css::awt::Size( 0, 0 ); }
- css::awt::Size SAL_CALL getPreferredSize()
- throw(css::uno::RuntimeException) { return getMinimumSize(); }
- css::awt::Size SAL_CALL calcAdjustedSize( css::awt::Size const& size )
- throw(css::uno::RuntimeException) { return size; }
-
- static void ImplGetPropertyIds( std::list< sal_uInt16 > &ids );
- virtual void GetPropertyIds( std::list< sal_uInt16 > &ids )
- { return ImplGetPropertyIds( ids ); }
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_LOCALIZED_STRING_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/precompiled_xmlscript.hxx b/toolkit/source/layout/core/precompiled_xmlscript.hxx
deleted file mode 100644
index 67a7d2d4ee..0000000000
--- a/toolkit/source/layout/core/precompiled_xmlscript.hxx
+++ /dev/null
@@ -1,38 +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.
- *
- ************************************************************************/
-
-/*
- xmlscript/source/xml_helper/xml_byteseq.cxx compile helper.
-
- Avoid introducing a toolkit dependency on xmlscript.
-
- It would be nice to modify xml_byteseq.cxx making it friendlier
- to include.
-*/
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/proplist.cxx b/toolkit/source/layout/core/proplist.cxx
deleted file mode 100644
index 802e6f27cf..0000000000
--- a/toolkit/source/layout/core/proplist.cxx
+++ /dev/null
@@ -1,422 +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 "proplist.hxx"
-
-#include <rtl/ustrbuf.hxx>
-#include <toolkit/dllapi.h>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/awt/XVclWindowPeer.hpp>
-#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
-#include <tools/debug.hxx>
-
-#include "helper.hxx"
-
-namespace layoutimpl
-{
-
-using namespace com::sun::star;
-using rtl::OString;
-using rtl::OUString;
-using rtl::OUStringBuffer;
-
-namespace prophlp
-{
-
-bool TOOLKIT_DLLPUBLIC
-canHandleProps( const uno::Reference< uno::XInterface > &xPeer )
-{
- uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
- if ( xPropSet.is() )
- return true;
- uno::Reference< beans::XPropertySetInfo > xInfo( xPeer, uno::UNO_QUERY );
- uno::Reference< awt::XVclWindowPeer> xVclPeer( xPeer, uno::UNO_QUERY );
- return xInfo.is() && xVclPeer.is();
-}
-
-uno::Reference< beans::XPropertySetInfo > TOOLKIT_DLLPUBLIC
-queryPropertyInfo(
- const uno::Reference< uno::XInterface > &xPeer )
-{
- uno::Reference< beans::XPropertySetInfo > xInfo( xPeer, uno::UNO_QUERY );
- if ( !xInfo.is() )
- {
- uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
- if ( xPropSet.is() )
- xInfo = xPropSet->getPropertySetInfo();
- }
- return xInfo;
-}
-
-void TOOLKIT_DLLPUBLIC
-setProperty( const uno::Reference< uno::XInterface > &xPeer,
- const OUString &rName, uno::Any aValue )
-{
- uno::Reference< awt::XVclWindowPeer> xVclPeer( xPeer, uno::UNO_QUERY );
- if ( xVclPeer.is() )
- xVclPeer->setProperty( rName, aValue );
- else
- {
- uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
- xPropSet->setPropertyValue( rName, aValue );
- }
-}
-
-uno::Any TOOLKIT_DLLPUBLIC
-getProperty( const uno::Reference< uno::XInterface > &xPeer,
- const OUString &rName )
-{
- uno::Reference< awt::XVclWindowPeer> xVclPeer( xPeer, uno::UNO_QUERY );
- if ( xVclPeer.is() )
- return xVclPeer->getProperty( rName );
-
- uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
- return xPropSet->getPropertyValue( rName );
-}
-
-} // namespace prophlp
-
-
-/* Given a string and a type, it converts the string to the type, and returns
- it encapsulated in Any. */
-uno::Any anyFromString( OUString const& value, uno::Type const& type )
-{
- sal_Int16 radix = 10;
- OUString intval = value;
- if ( value.getLength() > 2 && value[0] == '0' && value[1] == 'x' )
- intval = value.copy( 2 ), radix = 16;
- else if ( value.getLength() > 1 && value[0] == '#' )
- intval = value.copy( 1 ), radix = 16;
- switch ( type.getTypeClass() )
- {
- case uno::TypeClass_CHAR:
- return uno::makeAny( value.toChar() );
- case uno::TypeClass_BOOLEAN:
- if ( value == OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) )
- return uno::makeAny( true );
- else if ( value == OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) ) )
- return uno::makeAny( false );
- break; // ends switch, throws exception
- case uno::TypeClass_BYTE:
- return uno::makeAny( ( sal_uInt8 ) intval.toInt32( radix ) );
- case uno::TypeClass_SHORT:
- return uno::makeAny( ( sal_Int16 ) intval.toInt32( radix ) );
- case uno::TypeClass_UNSIGNED_SHORT:
- return uno::makeAny( ( sal_uInt16 ) intval.toInt32( radix ) );
- case uno::TypeClass_ENUM:
- return uno::makeAny( ( sal_Int16 ) intval.toInt32( radix ) );
- case uno::TypeClass_LONG:
- return uno::makeAny( ( sal_Int32 ) intval.toInt32( radix ) );
- case uno::TypeClass_UNSIGNED_LONG:
- return uno::makeAny( ( sal_uInt32 ) intval.toInt32( radix ) );
- case uno::TypeClass_HYPER:
- return uno::makeAny( ( sal_Int64 ) intval.toInt64( radix ) );
- case uno::TypeClass_UNSIGNED_HYPER:
- return uno::makeAny( ( sal_uInt16 ) intval.toInt64( radix ) );
- case uno::TypeClass_FLOAT:
- return uno::makeAny( value.toFloat() );
- case uno::TypeClass_DOUBLE:
- return uno::makeAny( value.toDouble() );
- case uno::TypeClass_STRING:
- return uno::makeAny( value );
- case uno::TypeClass_CONSTANT:
- return uno::makeAny( intval.toInt32( radix ) );
- case uno::TypeClass_INTERFACE:
- return uno::makeAny( loadGraphic( OUSTRING_CSTR( value ) ) );
- case uno::TypeClass_SEQUENCE:
- {
- sal_Int32 i = 0;
- bool escaped = false, first = true;
- OUString item, token;
- std::list< OUString > values;
- do
- {
- token = value.getToken( 0, ':', i );
-
- if ( !token.getLength() && !escaped )
- {
- escaped = true;
- item += OUString( ':' );
- }
- else if ( escaped )
- {
- escaped = false;
- item += token;
- }
- else
- {
- if ( !first )
- values.push_back( item );
- item = token;
- }
- first = false;
- }
- while ( i >= 0 );
- if ( item.getLength() )
- values.push_back( item );
-
- uno::Sequence< OUString > seq( values.size() );
- i = 0;
- for ( std::list< OUString >::const_iterator it = values.begin();
- it != values.end(); ++it, ++i )
- seq[ i ] = *it;
-
- return uno::makeAny( seq );
- }
-
- default:
- OSL_TRACE( "ERROR: unknown property type of value: `%s'\n", OUSTRING_CSTR( value ) );
- break;
- }
- throw uno::RuntimeException();
-}
-
-/* Converts the XML naming scheme to UNO's, for legacy compatibility
- (so, ergo, "one-two-three-four" -> "OneTwoThreeFour"). */
-static OUString toUnoNaming ( OUString const &string )
-{
- OUStringBuffer buffer( string.getLength() );
- sal_Unicode *str = string.pData->buffer;
- bool capitalize = true;
-
- for ( int i = 0; i < string.getLength(); i++ )
- {
- if ( i == 0 && str[0] == '_' )
- /* Skip translate-me prefix. */
- continue;
- if ( str[i] == '-' )
- capitalize = true;
- else
- {
- if ( capitalize && str[i] >= 'a' && str[i] <= 'z' )
- buffer.append( (sal_Unicode ) ( str[i] - 'a' + 'A' ) );
- else
- buffer.append( (sal_Unicode ) str[i] );
- capitalize = false;
- }
- }
-
- return buffer.makeStringAndClear();
-}
-
-/*
- * convert incoming XML style property names, to AWT style property names.
- * convert the values based on introspection information.
- * apply to either an XPropertySet or an XPropertySetInfo | XVclWindowPeer
- * aggregate.
- */
-void
-setProperties( uno::Reference< uno::XInterface > const& xPeer,
- PropList const& rProps )
-{
- if ( !prophlp::canHandleProps( xPeer ) )
- {
- OSL_FAIL( "Error: setProperties - bad handle ignoring props:\n" );
- for ( PropList::const_iterator it = rProps.begin(); it != rProps.end();
- ++it )
- {
- OSL_TRACE( "%s=%s\n", OUSTRING_CSTR( it->first ), OUSTRING_CSTR( it->second ) );
- }
- return;
- }
-
- for ( PropList::const_iterator it = rProps.begin(); it != rProps.end();
- ++it )
- setProperty( xPeer, it->first, it->second );
-}
-
-void
-setProperty( uno::Reference< uno::XInterface > const& xPeer,
- OUString const& attr, OUString const& value )
-{
- OUString unoAttr = toUnoNaming( attr );
-
- OSL_TRACE( "setting %s=%s", OUSTRING_CSTR( attr ), OUSTRING_CSTR( value ) );
- // get a Property object
- beans::Property prop;
- try
- {
- uno::Reference< beans::XPropertySetInfo > xInfo
- = prophlp::queryPropertyInfo( xPeer );
- prop = xInfo->getPropertyByName( unoAttr );
- }
- catch( beans::UnknownPropertyException & )
- {
- OSL_TRACE( "Warning: unknown attribute: `%s'\n", OUSTRING_CSTR( unoAttr ) );
- return;
- }
-
- if ( prop.Name.getLength() <= 0 )
- {
- OSL_TRACE( "Warning: missing prop: `%s'\n", OUSTRING_CSTR( unoAttr ) );
- return;
- }
-
- // encapsulates value in an uno::Any
- uno::Any any;
- try
- {
- any = anyFromString( value, prop.Type );
- }
- catch( uno::RuntimeException & )
- {
- OSL_TRACE( "Warning: %s( %s )( %s ) attribute is of type %s( rejected: %s )\n", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ), OUSTRING_CSTR( prop.Name ), OUSTRING_CSTR( prop.Type.getTypeName() ), OUSTRING_CSTR( value ) );
- return;
- }
-
- // sets value on property
- try
- {
- prophlp::setProperty( xPeer, unoAttr, any );
- }
- catch( ... )
- {
- OSL_TRACE( "Warning: cannot set attribute %s to %s \n", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ) );
- }
-}
-
-
-
-
-struct AttributesMap
-{
- const char *name;
- long value;
- bool windowAttr;
-};
-static const AttributesMap attribsMap[] =
-{
- { "autohscroll", awt::VclWindowPeerAttribute::AUTOHSCROLL, false },
- { "autovscroll", awt::VclWindowPeerAttribute::AUTOVSCROLL, false },
- { "center", awt::VclWindowPeerAttribute::CENTER, false },
- { "clipchildren", awt::VclWindowPeerAttribute::CLIPCHILDREN, false },
- { "closeable", awt::WindowAttribute::CLOSEABLE, true },
- { "defbutton", awt::VclWindowPeerAttribute::DEFBUTTON, false },
- { "dropdown", awt::VclWindowPeerAttribute::DROPDOWN, false },
- { "fullsize", awt::WindowAttribute::FULLSIZE, true }, //FIXME?
- { "group", awt::VclWindowPeerAttribute::GROUP, false },
- { "has_border", awt::WindowAttribute::BORDER, true },
- { "hscroll", awt::VclWindowPeerAttribute::HSCROLL, false },
- { "left", awt::VclWindowPeerAttribute::LEFT, false },
- { "moveable", awt::WindowAttribute::MOVEABLE, true },
- { "noborder", awt::VclWindowPeerAttribute::NOBORDER, false },
- { "nolabel", awt::VclWindowPeerAttribute::NOLABEL, false },
- { "optimumsize", awt::WindowAttribute::OPTIMUMSIZE, false },
- { "readonly", awt::VclWindowPeerAttribute::READONLY, false },
- { "right", awt::VclWindowPeerAttribute::RIGHT, false },
- { "show", awt::WindowAttribute::SHOW, true },
- { "sizeable", awt::WindowAttribute::SIZEABLE, true },
- { "sort", awt::VclWindowPeerAttribute::SORT, false },
- { "spin", awt::VclWindowPeerAttribute::SPIN, false },
- { "vscroll", awt::VclWindowPeerAttribute::VSCROLL, false },
-
- // cutting on OK, YES_NO_CANCEL and related obsite attributes...
-};
-static const int attribsMapLen = sizeof( attribsMap ) / sizeof( AttributesMap );
-
-void propsFromAttributes( const uno::Reference<xml::input::XAttributes> & xAttributes,
- PropList &rProps, sal_Int32 nNamespace )
-{
- sal_Int32 nAttrs = xAttributes->getLength();
- for ( sal_Int32 i = 0; i < nAttrs; i++ )
- {
- if ( nNamespace != xAttributes->getUidByIndex( i ) )
- continue;
-
- std::pair< OUString, OUString > aElem
- ( xAttributes->getLocalNameByIndex( i ),
- xAttributes->getValueByIndex( i ) );
-
- if ( aElem.first.getLength() > 0 ) // namespace bits ..
- rProps.push_back( aElem );
- }
-}
-
-bool
-findAndRemove( const char *pAttr, PropList &rProps, OUString &rValue )
-{
- PropList::iterator it;
- OUString aName = OUString::createFromAscii( pAttr );
-
- for ( it = rProps.begin(); it != rProps.end(); ++it )
- {
- if ( it->first.equalsIgnoreAsciiCase( aName )
- || it->first.equalsIgnoreAsciiCase( OUString(RTL_CONSTASCII_USTRINGPARAM ("_")) + aName ) )
- {
- rValue = it->second;
- rProps.erase( it );
- return true;
- }
- }
- rValue = OUString();
- return false;
-}
-
-long
-getAttributeProps( PropList &rProps )
-{
- long nAttrs = 0;
- OUString aValue;
-
- OUString trueStr( RTL_CONSTASCII_USTRINGPARAM( "true" ) );
-
- if ( findAndRemove( "show", rProps, aValue ) &&
- aValue.equalsIgnoreAsciiCase(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) ) ) )
- ;
- else
- nAttrs |= awt::WindowAttribute::SHOW;
-
- for ( int i = 0; i < attribsMapLen; i++ )
- {
- if ( findAndRemove( attribsMap[i].name, rProps, aValue ) )
- {
- if ( aValue.equalsIgnoreAsciiCase( trueStr ) )
- nAttrs |= attribsMap[i].value;
- }
- }
-
- if ( findAndRemove( "align", rProps, aValue ) )
- {
- sal_Int32 nVal = aValue.toInt32();
-
- if ( nVal == 0 /* PROPERTY_ALIGN_LEFT */ )
- nAttrs |= awt::VclWindowPeerAttribute::LEFT;
- else if ( nVal == 1 /* PROPERTY_ALIGN_CENTER */ )
- nAttrs |= awt::VclWindowPeerAttribute::CENTER;
- else if ( nVal == 2 )
- nAttrs |= awt::VclWindowPeerAttribute::RIGHT;
- }
-
- return nAttrs;
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/proplist.hxx b/toolkit/source/layout/core/proplist.hxx
deleted file mode 100644
index 20eacbd198..0000000000
--- a/toolkit/source/layout/core/proplist.hxx
+++ /dev/null
@@ -1,94 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_PROPLIST_HXX
-#define LAYOUT_CORE_PROPLIST_HXX
-
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/xml/input/XAttributes.hpp>
-#include <list>
-#include <rtl/ustring.hxx>
-#include <toolkit/dllapi.h>
-\
-namespace layoutimpl
-{
-
-namespace css = ::com::sun::star;
-
-typedef std::list< std::pair< rtl::OUString, rtl::OUString > > PropList;
-
-void propsFromAttributes( const css::uno::Reference<css::xml::input::XAttributes> & xAttributes,
- PropList &rProps, sal_Int32 nNamespace );
-
-void setProperties( css::uno::Reference< css::uno::XInterface > const& xPeer,
- PropList const& rProps);
-
-void setProperty( css::uno::Reference< css::uno::XInterface > const& xPeer,
- rtl::OUString const& attr, rtl::OUString const& value );
-
-long getAttributeProps( PropList &rProps );
-bool findAndRemove( const char *pAttr, PropList &rProps, rtl::OUString &rValue);
-
-// Helpers - unfortunately VCLXWindows don't implement XPropertySet
-// but containers do - these helpers help us to hide this
-namespace prophlp
-{
-
-// can we set properties on this handle ?
-bool TOOLKIT_DLLPUBLIC canHandleProps( const css::uno::Reference< css::uno::XInterface > &xRef );
-// if so which properties ?
-css::uno::Reference< css::beans::XPropertySetInfo > TOOLKIT_DLLPUBLIC queryPropertyInfo(
- const css::uno::Reference< css::uno::XInterface > &xRef );
-// set / get ...
-void TOOLKIT_DLLPUBLIC setProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
- const rtl::OUString &rName,
- css::uno::Any aValue );
-css::uno::Any TOOLKIT_DLLPUBLIC getProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
- const rtl::OUString &rName );
-} // namespace prophlp
-
-} // namespace layoutimpl
-
-
-#if !OUSTRING_CSTR_PARANOIA
-#define OUSTRING_CSTR( str ) \
- rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr()
-#else
-
-inline char const* OUSTRING_CSTR( rtl::OUString const& str )
-{
- rtl::OString *leak
- = new rtl::OString (rtl::OUStringToOString (str, RTL_TEXTENCODING_ASCII_US));
- return leak->getStr();
-}
-
-#endif
-
-#endif /* LAYOUT_CORE_PROPLIST_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/root.cxx b/toolkit/source/layout/core/root.cxx
deleted file mode 100644
index 16379e41c5..0000000000
--- a/toolkit/source/layout/core/root.cxx
+++ /dev/null
@@ -1,393 +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 "root.hxx"
-
-#include <cassert>
-
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/XMessageBox.hpp>
-#include <com/sun/star/awt/MessageBoxButtons.hpp>
-#include <com/sun/star/frame/XDesktop.hpp>
-#include <com/sun/star/awt/XMessageBoxFactory.hpp>
-#include <com/sun/star/xml/sax/SAXParseException.hpp>
-#include <com/sun/star/xml/sax/XParser.hpp>
-
-#include "helper.hxx"
-#include "import.hxx"
-#include "timer.hxx"
-#include "translate.hxx"
-
-namespace layoutimpl
-{
-
-using namespace css;
-using ::rtl::OUString;
-
-LayoutRoot::LayoutRoot( const uno::Reference< lang::XMultiServiceFactory >& xFactory )
- : mbDisposed( sal_False )
- , mxFactory( xFactory )
- , mpListeners( NULL )
- , mpToplevel( NULL )
-{
- if ( !xFactory.is() )
- throw uno::RuntimeException();
- mxLayoutUnit = uno::Reference< awt::XLayoutUnit >( new LayoutUnit() );
-}
-
-LayoutRoot::~LayoutRoot()
-{
-// TODO: we want to delete the top level LayoutWidget...
- ::osl::MutexGuard aGuard( maMutex );
- if ( !mbDisposed )
- {
- try
- {
- m_refCount++; // inhibit multiple destruction
- dispose();
- }
- catch (const uno::Exception&)
- {
- }
- }
-}
-
-void ShowMessageBox( uno::Reference< lang::XMultiServiceFactory > const& xFactory, uno::Reference< awt::XToolkit > xToolkit, OUString const& aTitle, OUString const& aMessage )
-{
- uno::Reference< uno::XInterface > iDesktop = xFactory->createInstance
- ( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop")) );
- uno::Reference< frame::XDesktop > xDesktop ( iDesktop, uno::UNO_QUERY );
- uno::Reference< frame::XFrame > xFrame ( xDesktop->getCurrentFrame() );
- uno::Reference< awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
- uno::Reference< awt::XWindowPeer > xWindowPeer( xContainerWindow, uno::UNO_QUERY_THROW );
- uno::Reference< awt::XMessageBoxFactory > xMessageBoxFactory( xToolkit, uno::UNO_QUERY );
-
- awt::Rectangle aRectangle;
- uno::Reference< awt::XMessageBox > xMessageBox
- = xMessageBoxFactory->createMessageBox
- ( xWindowPeer, aRectangle, OUString(RTL_CONSTASCII_USTRINGPARAM("errorbox")),
- awt::MessageBoxButtons::BUTTONS_OK, aTitle, aMessage );
-
- if ( xMessageBox.is() )
- xMessageBox->execute();
- //FIXME: exceptions not caught and printed at top level??
- //else
- //printf( "%s\n", OUSTRING_CSTR( aMessage ) );
-}
-
-void LayoutRoot::error( OUString const& message )
-{
- OSL_TRACE( "%s\n", OUSTRING_CSTR( message ) );
- ShowMessageBox( mxFactory, mxToolkit,
- OUString(RTL_CONSTASCII_USTRINGPARAM("Fatal error")),
- message );
- throw uno::RuntimeException( message, uno::Reference< uno::XInterface >() );
-}
-
-// XInitialization
-void SAL_CALL LayoutRoot::initialize( const uno::Sequence< uno::Any >& aArguments )
- throw ( uno::Exception,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( mbDisposed )
- throw lang::DisposedException();
-
- if ( mxContainer.is() ) // only 1 init ...
- throw uno::Exception();
-
- if ( !aArguments.getLength() )
- throw lang::IllegalArgumentException();
-
- OSL_ENSURE( aArguments.getLength() == 1, "Wrong arg count\n" );
-
- OUString aXMLName;
- if ( !( aArguments[0] >>= aXMLName ) )
- throw lang::IllegalArgumentException();
-
- uno::Reference< xml::sax::XParser > xParser
- ( mxFactory->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.sax.Parser")) ),
- uno::UNO_QUERY );
- OSL_ASSERT( xParser.is() );
- if (! xParser.is())
- {
- throw uno::RuntimeException(
- OUString(RTL_CONSTASCII_USTRINGPARAM("cannot create sax-parser component")),
- uno::Reference< uno::XInterface >() );
- }
-
- // FIXME: quite possibly we want to pass this in ...
- uno::Reference< awt::XToolkit > xToolkit;
-
- mxToolkit = uno::Reference< awt::XToolkit >(
- mxFactory->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.Toolkit")) ),
- uno::UNO_QUERY );
-
- if ( !mxToolkit.is() )
- throw uno::RuntimeException(
- OUString(RTL_CONSTASCII_USTRINGPARAM("failed to create toolkit!")),
- uno::Reference< uno::XInterface >() );
-
- OUString aXMLFile = readRightTranslation( aXMLName );
- uno::Reference< io::XInputStream > xStream = getFileAsStream( aXMLFile );
- if (! xStream.is() )
- error( OUString(RTL_CONSTASCII_USTRINGPARAM("Installation problem: cannot find XML file:")) + aXMLName );
-
- // error handler, entity resolver omitted
-
- ImportContext *pCtx = new ImportContext( *this );
-
- uno::Reference< xml::input::XRoot > xRoot( pCtx );
- uno::Sequence < uno::Any > aArgs( 1 );
- aArgs[0] <<= xRoot;
- uno::Reference< xml::sax::XDocumentHandler > xDocHandler
- (mxFactory->createInstanceWithArguments
- ( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.input.SaxDocumentHandler")),
- aArgs ), uno::UNO_QUERY );
-
- if (! xDocHandler.is() )
- error( OUString(RTL_CONSTASCII_USTRINGPARAM("cannot find SAx handler for document type of:")) + aXMLName );
-
- xParser->setDocumentHandler( xDocHandler );
-
- xml::sax::InputSource source;
- source.aInputStream = xStream;
- source.sSystemId = OUString(RTL_CONSTASCII_USTRINGPARAM("virtual file"));
-
- try
- {
- xParser->parseStream( source );
- }
- catch (const xml::sax::SAXParseException& e)
- {
- OUString c(RTL_CONSTASCII_USTRINGPARAM(":"));
- error( aXMLName
- + c + OUString::valueOf( e.LineNumber )
- + c + OUString::valueOf( e.ColumnNumber )
- + c + OUString(RTL_CONSTASCII_USTRINGPARAM("Sax parse error")) );
- }
-}
-
-// XLayoutContainer
-uno::Reference< awt::XLayoutContainer > LayoutRoot::getLayoutContainer() throw (uno::RuntimeException)
-{
- return uno::Reference< awt::XLayoutContainer >();
-}
-
-// local helper ...
-void LayoutRoot::addItem( const OUString &rName,
- const uno::Reference< awt::XLayoutConstrains > &xRef )
-{
- maItems[ rName ] = xRef;
-}
-
-// XNameAccess
-uno::Any SAL_CALL LayoutRoot::getByName( const OUString &rName )
- throw ( container::NoSuchElementException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
- if ( mbDisposed )
- throw lang::DisposedException();
-
- uno::Reference< awt::XLayoutConstrains > xItem;
- ItemHash::iterator i = maItems.find( rName );
- if ( i != maItems.end() )
- xItem = i->second;
- return uno::makeAny( xItem );
-}
-
-sal_Bool SAL_CALL LayoutRoot::hasByName( const OUString &rName )
- throw (uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( maMutex );
- if ( mbDisposed ) throw lang::DisposedException();
-
- ItemHash::iterator i = maItems.find( rName );
- return i != maItems.end();
-}
-
-uno::Sequence< OUString > SAL_CALL LayoutRoot::getElementNames()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
- if ( mbDisposed ) throw lang::DisposedException();
-
- uno::Sequence< OUString > aNames( maItems.size() );
- sal_Int32 nPos = 0;
-
- for ( ItemHash::const_iterator it = maItems.begin();
- it != maItems.end(); ++it )
- aNames[ nPos++ ] = it->first;
-
- return aNames;
-}
-
-uno::Type SAL_CALL LayoutRoot::getElementType()
- throw ( uno::RuntimeException )
-{
- return getCppuType( ( const uno::Reference< awt::XLayoutConstrains >* )NULL );
-}
-
-sal_Bool SAL_CALL LayoutRoot::hasElements()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( mbDisposed ) throw lang::DisposedException();
-
- return maItems.size() > 0;
-}
-
-// XComponent
-void SAL_CALL LayoutRoot::dispose()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( mbDisposed ) throw lang::DisposedException();
-
- if ( mpListeners )
- {
-
- lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >(this) );
- mpListeners->disposeAndClear( aSource );
- delete mpListeners;
- mpListeners = NULL;
- }
-
- maItems.clear();
- mbDisposed = sal_True;
-}
-
-void SAL_CALL LayoutRoot::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( mbDisposed ) throw lang::DisposedException();
-
- if ( !mpListeners )
- mpListeners = new ::cppu::OInterfaceContainerHelper( maMutex );
- mpListeners->addInterface( xListener );
-}
-
-void SAL_CALL LayoutRoot::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( mbDisposed ) throw lang::DisposedException();
-
- if ( mpListeners )
- mpListeners->removeInterface( xListener );
-}
-
-// builder
-
-LayoutWidget *LayoutRoot::create( OUString id, const OUString unoName, long attrbs,uno::Reference< awt::XLayoutContainer > xParent )
-{
- LayoutWidget *pWidget = new LayoutWidget( mxToolkit, xParent, unoName, attrbs );
- if ( !mpToplevel )
- {
- mpToplevel = pWidget;
- mxWindow = uno::Reference< awt::XWindow >( pWidget->getPeer(), uno::UNO_QUERY );
- mxContainer = pWidget->mxContainer;
- }
- if ( pWidget->mxContainer.is() )
- pWidget->mxContainer->setLayoutUnit( mxLayoutUnit );
- if ( id.getLength() )
- maItems[ id ] = pWidget->getPeer();
- return pWidget;
-}
-
-LayoutWidget::LayoutWidget( uno::Reference< awt::XToolkit > xToolkit,
- uno::Reference< awt::XLayoutContainer > xParent,
- OUString unoName, long attrbs )
-{
- while ( xParent.is() && !uno::Reference< awt::XWindow >( xParent, uno::UNO_QUERY ).is() )
- {
- uno::Reference< awt::XLayoutContainer > xContainer( xParent, uno::UNO_QUERY );
- assert( xContainer.is() );
- xParent = uno::Reference< awt::XLayoutContainer >( xContainer->getParent(), uno::UNO_QUERY );
- }
-
- mxWidget = WidgetFactory::createWidget( xToolkit, xParent, unoName, attrbs );
- assert( mxWidget.is() );
- mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
-}
-
-LayoutWidget::~LayoutWidget()
-{
- /* should we dispose of the references...? */
- // at least of its children... Or should root?
-}
-
-bool LayoutWidget::addChild( LayoutWidget *pChild )
-{
- if ( !mxContainer.is() )
- return false;
-
- try
- {
- mxContainer->addChild( pChild->mxWidget );
- }
- catch (const awt::MaxChildrenException&)
- {
- return false;
- }
- return true;
-}
-
-void LayoutWidget::setProperties( PropList const& rProps )
-{
- ::layoutimpl::setProperties( mxWidget, rProps );
-}
-
-void LayoutWidget::setProperty( OUString const& attr, OUString const& value )
-{
- ::layoutimpl::setProperty( mxWidget, attr, value );
-}
-
-void LayoutWidget::setChildProperties( LayoutWidget *pChild,
- PropList const& rProps )
-{
- uno::Reference< beans::XPropertySet > xChildPeer;
- xChildPeer = mxContainer->getChildProperties( pChild->mxWidget );
-
- if ( xChildPeer.is() )
- ::layoutimpl::setProperties( xChildPeer, rProps );
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/root.hxx b/toolkit/source/layout/core/root.hxx
deleted file mode 100644
index 1b566778b0..0000000000
--- a/toolkit/source/layout/core/root.hxx
+++ /dev/null
@@ -1,159 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_ROOT_HXX
-#define LAYOUT_CORE_ROOT_HXX
-
-#define _BACKWARD_BACKWARD_WARNING_H 1
-#include <boost/unordered_map.hpp>
-
-#include <com/sun/star/awt/XLayoutRoot.hpp>
-#include <com/sun/star/awt/XToolkit.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/interfacecontainer.h>
-#include <toolkit/dllapi.h>
-
-#include <layout/core/proplist.hxx>
-
-namespace layoutimpl
-{
-
-namespace css = ::com::sun::star;
-
-css::uno::Reference< css::io::XInputStream > getFileAsStream( const rtl::OUString &rName );
-
-/* Interface generation code -- to hook to a parser. */
-
-/*
- TODO: (ricardo) I think we should cut on LayoutRoot, stripping out its widget
- proxy interface (just make it return the root widget). Would even make it easier
- if there was interest to support multiple toplevel widgets in the same file.
-
- We also need to make sure the code gets diposed well... There is no need to keep
- these objects around after initialization...
-*/
-
-
-class LayoutWidget;
-
-class TOOLKIT_DLLPUBLIC LayoutRoot : public ::cppu::WeakImplHelper3<
- css::awt::XLayoutRoot,
- css::lang::XInitialization,
- css::lang::XComponent>
-{
-protected:
- ::osl::Mutex maMutex;
-
- typedef boost::unordered_map< rtl::OUString,
- css::uno::Reference< css::awt::XLayoutConstrains >,
- ::rtl::OUStringHash > ItemHash;
- ItemHash maItems;
-
- sal_Bool mbDisposed;
- css::uno::Reference< css::lang::XMultiServiceFactory > mxFactory;
- ::cppu::OInterfaceContainerHelper *mpListeners;
-
- css::uno::Reference< css::awt::XWindow > mxWindow;
- css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
-
- css::uno::Reference< css::awt::XToolkit > mxToolkit;
- LayoutWidget *mpToplevel;
- css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
-
- void error( rtl::OUString const& message );
-
-public:
- LayoutRoot( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
- virtual ~LayoutRoot();
-
- void addItem( const rtl::OUString &rName,
- const css::uno::Reference< css::awt::XLayoutConstrains > &xRef );
-
- void setWindow( css::uno::Reference< css::awt::XLayoutConstrains > xPeer )
- {
- mxWindow = css::uno::Reference< css::awt::XWindow >( xPeer, css::uno::UNO_QUERY );
- }
-
- // get XLayoutContainer
- virtual css::uno::Reference< css::awt::XLayoutContainer > SAL_CALL getLayoutContainer() throw (css::uno::RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) throw (css::uno::Exception, css::uno::RuntimeException);
-
- // XNameAccess
- virtual css::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException);
- virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException);
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw (css::uno::RuntimeException);
- virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) throw (css::uno::RuntimeException);
-
- // generator
- virtual LayoutWidget *create( rtl::OUString id, const rtl::OUString unoName, long attrbs, css::uno::Reference< css::awt::XLayoutContainer > xParent );
-};
-
-class TOOLKIT_DLLPUBLIC LayoutWidget
-{
- friend class LayoutRoot;
-
-public:
- LayoutWidget() {}
- LayoutWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
- css::uno::Reference< css::awt::XLayoutContainer > xToplevel,
- rtl::OUString unoName, long attrbs );
- virtual ~LayoutWidget();
-
- virtual void setProperties( const PropList &rProps );
- virtual void setProperty( rtl::OUString const& attr, rtl::OUString const& value );
-
- virtual bool addChild( LayoutWidget *pChild );
- virtual void setChildProperties( LayoutWidget *pChild, const PropList &rProps );
-
- inline css::uno::Reference< css::awt::XLayoutConstrains > getPeer()
- { return mxWidget; }
- inline css::uno::Reference< css::awt::XLayoutContainer > getContainer()
- { return mxContainer; }
-
-protected:
- css::uno::Reference< css::awt::XLayoutConstrains > mxWidget;
- css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_ROOT_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/table.cxx b/toolkit/source/layout/core/table.cxx
deleted file mode 100644
index c8258b8552..0000000000
--- a/toolkit/source/layout/core/table.cxx
+++ /dev/null
@@ -1,314 +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 <table.hxx>
-
-#include <sal/macros.h>
-#include <osl/mutex.hxx>
-#include <cppuhelper/propshlp.hxx>
-#include <cppuhelper/interfacecontainer.h>
-#include <com/sun/star/awt/PosSize.hpp>
-#include <tools/debug.hxx>
-
-// fixed point precision for distributing error
-#define FIXED_PT 16
-
-namespace layoutimpl
-{
-
-using namespace com::sun::star;
-
-Table::ChildProps::ChildProps( Table::ChildData *pData )
-{
- addProp( RTL_CONSTASCII_USTRINGPARAM( "XExpand" ),
- ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
- &( pData->mbExpand[ 0 ] ) );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "YExpand" ),
- ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
- &( pData->mbExpand[ 1 ] ) );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "ColSpan" ),
- ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
- &( pData->mnColSpan ) );
- addProp( RTL_CONSTASCII_USTRINGPARAM( "RowSpan" ),
- ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
- &( pData->mnRowSpan ) );
-}
-
-bool Table::ChildData::isVisible()
-{
- return Box_Base::ChildData::isVisible()
- && ( mnColSpan > 0 ) && ( mnRowSpan > 0 );
-}
-
-Table::Table()
- : Box_Base()
- , mnColsLen( 1 )// another default value could be 0xffff for infinite columns( = 1 row )
-{
- addProp( RTL_CONSTASCII_USTRINGPARAM( "Columns" ),
- ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
- &mnColsLen );
-}
-
-Table::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
- : Box_Base::ChildData( xChild )
-// , mbExpand( { 1, 1 } )
- , mnColSpan( 1 )
- , mnRowSpan( 1 )
- , mnLeftCol( 0 )
- , mnRightCol( 0 )
- , mnTopRow( 0 )
- , mnBottomRow( 0 )
-{
- mbExpand[ 0 ] = 1;
- mbExpand[ 1 ] = 1;
-}
-
-Table::ChildData*
-Table::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
-{
- return new ChildData( xChild );
-}
-
-Table::ChildProps*
-Table::createChildProps( Box_Base::ChildData *pData )
-{
- return new ChildProps( static_cast<Table::ChildData*> ( pData ) );
-}
-
-void SAL_CALL
-Table::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
- throw( uno::RuntimeException, awt::MaxChildrenException )
-{
- if ( xChild.is() )
- {
- Box_Base::addChild( xChild );
- // cause of flicker
- allocateChildAt( xChild, awt::Rectangle( 0,0,0,0 ) );
- }
-}
-
-awt::Size SAL_CALL
-Table::getMinimumSize() throw( uno::RuntimeException )
-{
- int nRowsLen = 0;
-
- // 1. layout the table -- adjust to cope with row-spans...
- {
- // temporary 1D representation of the table
- std::vector< ChildData *> aTable;
-
- int col = 0;
- int row = 0;
- for ( std::list<Box_Base::ChildData *>::iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Table::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
-
- while ( col + SAL_MIN( child->mnColSpan, mnColsLen ) > mnColsLen )
- {
- col = 0;
- row++;
-
- unsigned int i = col +( row*mnColsLen );
- while ( aTable.size() > i && !aTable[ i ] )
- i++;
-
- col = i % mnColsLen;
- row = i / mnColsLen;
- }
-
- child->mnLeftCol = col;
- child->mnRightCol = SAL_MIN( col + child->mnColSpan, mnColsLen );
- child->mnTopRow = row;
- child->mnBottomRow = row + child->mnRowSpan;
-
- col += child->mnColSpan;
-
- unsigned int start = child->mnLeftCol +( child->mnTopRow*mnColsLen );
- unsigned int end =( child->mnRightCol-1 ) +( ( child->mnBottomRow-1 )*mnColsLen );
- if ( aTable.size() < end+1 )
- aTable.resize( end+1, NULL );
- for ( unsigned int i = start; i < end; i++ )
- aTable[ i ] = child;
-
- nRowsLen = SAL_MAX( nRowsLen, child->mnBottomRow );
- }
- }
-
- // 2. calculate columns/rows sizes
- for ( int g = 0; g < 2; g++ )
- {
- std::vector< GroupData > &aGroup = g == 0 ? maCols : maRows;
-
- aGroup.clear();
- aGroup.resize( g == 0 ? mnColsLen : nRowsLen );
-
- // 2.1 base sizes on one-column/row children
- for ( std::list<Box_Base::ChildData *>::iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Table::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
- const int nFirstAttach = g == 0 ? child->mnLeftCol : child->mnTopRow;
- const int nLastAttach = g == 0 ? child->mnRightCol : child->mnBottomRow;
-
- if ( nFirstAttach == nLastAttach-1 )
- {
- child->maRequisition = child->mxChild->getMinimumSize();
- int attach = nFirstAttach;
- int child_size = g == 0 ? child->maRequisition.Width
- : child->maRequisition.Height;
- aGroup[ attach ].mnSize = SAL_MAX( aGroup[ attach ].mnSize,
- child_size );
- if ( child->mbExpand[ g ] )
- aGroup[ attach ].mbExpand = true;
- }
- }
-
- // 2.2 make sure multiple-columns/rows children fit
- for ( std::list<Box_Base::ChildData *>::iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Table::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
- const int nFirstAttach = g == 0 ? child->mnLeftCol : child->mnTopRow;
- const int nLastAttach = g == 0 ? child->mnRightCol : child->mnBottomRow;
-
- if ( nFirstAttach != nLastAttach-1 )
- {
- child->maRequisition = child->mxChild->getMinimumSize();
- int size = 0;
- int expandables = 0;
- for ( int i = nFirstAttach; i < nLastAttach; i++ )
- {
- size += aGroup[ i ].mnSize;
- if ( aGroup[ i ].mbExpand )
- expandables++;
- }
-
- int child_size = g == 0 ? child->maRequisition.Width
- : child->maRequisition.Height;
- int extra = child_size - size;
- if ( extra > 0 )
- {
- if ( expandables )
- extra /= expandables;
- else
- extra /= nLastAttach - nFirstAttach;
-
- for ( int i = nFirstAttach; i < nLastAttach; i++ )
- if ( expandables == 0 || aGroup[ i ].mbExpand )
- aGroup[ i ].mnSize += extra;
- }
- }
- }
- }
-
- // 3. Sum everything up
- mnColExpandables =( mnRowExpandables = 0 );
- maRequisition.Width =( maRequisition.Height = 0 );
- for ( std::vector<GroupData>::iterator it = maCols.begin();
- it != maCols.end(); ++it )
- {
- maRequisition.Width += it->mnSize;
- if ( it->mbExpand )
- mnColExpandables++;
- }
- for ( std::vector<GroupData>::iterator it = maRows.begin();
- it != maRows.end(); ++it )
- {
- maRequisition.Height += it->mnSize;
- if ( it->mbExpand )
- mnRowExpandables++;
- }
-
- return maRequisition;
-}
-
-void SAL_CALL
-Table::allocateArea( const awt::Rectangle &rArea )
- throw( uno::RuntimeException )
-{
- maAllocation = rArea;
- if ( maCols.size() == 0 || maRows.size() == 0 )
- return;
-
- int nExtraSize[ 2 ] = { SAL_MAX( rArea.Width - maRequisition.Width, 0 ),
- SAL_MAX( rArea.Height - maRequisition.Height, 0 ) };
- // split it
- nExtraSize[ 0 ] /= mnColExpandables ? mnColExpandables : mnColsLen;
- nExtraSize[ 1 ] /= mnRowExpandables ? mnRowExpandables : maRows.size();
-
- for ( std::list<Box_Base::ChildData *>::const_iterator it
- = maChildren.begin(); it != maChildren.end(); ++it )
- {
- ChildData *child = static_cast<Table::ChildData*> ( *it );
- if ( !child->isVisible() )
- continue;
-
- awt::Rectangle rChildArea( rArea.X, rArea.Y, 0, 0 );
-
- for ( int g = 0; g < 2; g++ )
- {
- std::vector< GroupData > &aGroup = g == 0 ? maCols : maRows;
- const int nFirstAttach = g == 0 ? child->mnLeftCol : child->mnTopRow;
- const int nLastAttach = g == 0 ? child->mnRightCol : child->mnBottomRow;
-
- for ( int i = 0; i < nFirstAttach; i++ )
- {
- int gSize = aGroup[ i ].mnSize;
- if ( aGroup[ i ].mbExpand )
- gSize += nExtraSize[ g ];
- if ( g == 0 )
- rChildArea.X += gSize;
- else
- rChildArea.Y += gSize;
- }
- for ( int i = nFirstAttach; i < nLastAttach; i++ )
- {
- int gSize = aGroup[ i ].mnSize;
- if ( aGroup[ i ].mbExpand )
- gSize += nExtraSize[ g ];
- if ( g == 0 )
- rChildArea.Width += gSize;
- else
- rChildArea.Height += gSize;
- }
- }
-
- allocateChildAt( child->mxChild, rChildArea );
- }
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/table.hxx b/toolkit/source/layout/core/table.hxx
deleted file mode 100644
index 5fa20d2412..0000000000
--- a/toolkit/source/layout/core/table.hxx
+++ /dev/null
@@ -1,105 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_TABLE_HXX
-#define LAYOUT_CORE_TABLE_HXX
-
-#include <layout/core/box-base.hxx>
-
-namespace layoutimpl
-{
-
-class Table : public Box_Base
-{
-public:
- // Children properties
- struct ChildData : public Box_Base::ChildData
- {
- sal_Bool mbExpand[ 2 ];
- sal_Int32 mnColSpan;
- sal_Int32 mnRowSpan;
- int mnLeftCol;
- int mnRightCol;
- int mnTopRow;
- int mnBottomRow;
-
- ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
- bool isVisible();
- };
-
- struct ChildProps : public Box_Base::ChildProps
- {
- ChildProps( ChildData *pData );
- };
-
-protected:
-
- // a group of children; either a column or a row
- struct GroupData
- {
- sal_Bool mbExpand;
- int mnSize; // request size (width or height)
- GroupData() : mbExpand( false ), mnSize( 0 ) {}
- };
-
- // Table properties
- sal_Int32 mnColsLen;
- std::vector< GroupData > maCols;
- std::vector< GroupData > maRows;
- int mnColExpandables, mnRowExpandables;
-
- ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
- ChildProps *createChildProps( Box_Base::ChildData* pData );
-
-public:
- Table();
-
- // css::awt::XLayoutContainer
- virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
- throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
-
- virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
- throw (css::uno::RuntimeException);
-
- virtual css::awt::Size SAL_CALL getMinimumSize()
- throw(css::uno::RuntimeException);
-
- // unimplemented:
- virtual sal_Bool SAL_CALL hasHeightForWidth()
- throw(css::uno::RuntimeException)
- { return false; }
- virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ )
- throw(css::uno::RuntimeException)
- { return maRequisition.Height; }
-};
-
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_TABLE_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/timer.cxx b/toolkit/source/layout/core/timer.cxx
deleted file mode 100644
index da95988d8b..0000000000
--- a/toolkit/source/layout/core/timer.cxx
+++ /dev/null
@@ -1,151 +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 "timer.hxx"
-
-#include <vector>
-#include <list>
-#include <vcl/timer.hxx>
-#include <com/sun/star/awt/XLayoutContainer.hpp>
-
-namespace layoutimpl
-{
-using namespace ::com::sun::star;
-
-class AllocateTimer : public Timer
-{
- typedef std::list< uno::Reference< awt::XLayoutContainer > > ContainerList;
- ContainerList mxContainers;
- uno::Reference< awt::XLayoutContainer > mxLastAdded;
-
-public:
- AllocateTimer()
- {
- // timer set to 0 -- just process it as soon as it gets idle
- SetTimeout( 0 );
- }
-
- static inline bool isParentOf( uno::Reference< awt::XLayoutContainer > xParent,
- uno::Reference< awt::XLayoutContainer > xWidget )
- {
- while ( xWidget.is() )
- {
- if ( xWidget == xParent )
- return true;
- xWidget = uno::Reference< awt::XLayoutContainer >( xWidget->getParent(), uno::UNO_QUERY );
- }
- return false;
- }
-
- static inline void eraseChildren( ContainerList::iterator &it, ContainerList &list )
- {
- ContainerList::iterator jt = list.begin();
- while ( jt != list.end() )
- {
- if ( it != jt && isParentOf( *it, *jt ) )
- jt = list.erase( jt );
- else
- ++jt;
- }
- }
-
- static inline bool isContainerDamaged( uno::Reference< awt::XLayoutContainer > xContainer )
- {
- uno::Reference< awt::XLayoutConstrains > xConstrains( xContainer, uno::UNO_QUERY );
- awt::Size lastReq( xContainer->getRequestedSize() );
- awt::Size curReq( xConstrains->getMinimumSize() );
- return lastReq.Width != curReq.Width || lastReq.Height != curReq.Height;
- }
-
- void add( const uno::Reference< awt::XLayoutContainer > &xContainer )
- {
- // small optimization
- if ( mxLastAdded == xContainer )
- return;
- mxLastAdded = xContainer;
-
- mxContainers.push_back( xContainer );
- }
-
- virtual void Timeout()
- {
- mxLastAdded = uno::Reference< awt::XLayoutContainer >();
-
- // 1. remove duplications and children
- for ( ContainerList::iterator it = mxContainers.begin();
- it != mxContainers.end(); ++it )
- eraseChildren( it, mxContainers );
-
- // 2. check damage extent
- for ( ContainerList::iterator it = mxContainers.begin();
- it != mxContainers.end(); ++it )
- {
- uno::Reference< awt::XLayoutContainer > xContainer = *it;
- while ( xContainer->getParent().is() && isContainerDamaged( xContainer ) )
- {
- xContainer = uno::Reference< awt::XLayoutContainer >(
- xContainer->getParent(), uno::UNO_QUERY );
- }
-
- if ( *it != xContainer )
- {
- // 2.2 replace it with parent
- *it = xContainer;
-
- // 2.3 remove children of new parent
- eraseChildren( it, mxContainers );
- }
- }
-
- // 3. force re-calculations
- for ( ContainerList::iterator it = mxContainers.begin();
- it != mxContainers.end(); ++it )
- (*it)->allocateArea( (*it)->getAllocatedArea() );
- }
-};
-
-static void AddResizeTimeout( const uno::Reference< awt::XLayoutContainer > &xCont )
-{
- static AllocateTimer timer;
- timer.add( xCont );
- timer.Start();
-}
-
-LayoutUnit::LayoutUnit() : LayoutUnit_Base()
-{
-}
-
-void SAL_CALL LayoutUnit::queueResize( const uno::Reference< awt::XLayoutContainer > &xContainer )
- throw( uno::RuntimeException )
-{
- AddResizeTimeout( xContainer );
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/timer.hxx b/toolkit/source/layout/core/timer.hxx
deleted file mode 100644
index 5c64089855..0000000000
--- a/toolkit/source/layout/core/timer.hxx
+++ /dev/null
@@ -1,52 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_TIMER_HXX
-#define LAYOUT_CORE_TIMER_HXX
-
-#include <com/sun/star/awt/XLayoutUnit.hpp>
-#include <cppuhelper/implbase1.hxx>
-
-namespace layoutimpl
-{
-
-typedef ::cppu::WeakImplHelper1< com::sun::star::awt::XLayoutUnit > LayoutUnit_Base;
-
-class LayoutUnit : public LayoutUnit_Base
-{
-public:
- LayoutUnit();
- void SAL_CALL queueResize( const com::sun::star::uno::Reference< com::sun::star::awt::XLayoutContainer > &xContainer )
- throw( com::sun::star::uno::RuntimeException );
-};
-
-}
-
-#endif /* LAYOUT_CORE_TIMER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/translate.cxx b/toolkit/source/layout/core/translate.cxx
deleted file mode 100644
index def1c10f1e..0000000000
--- a/toolkit/source/layout/core/translate.cxx
+++ /dev/null
@@ -1,133 +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 "translate.hxx"
-
-#include <list>
-#if TEST_LAYOUT
-#include <cstdio>
-#include "tools/getprocessworkingdir.hxx"
-#endif
-
-#include <unotools/bootstrap.hxx>
-#include <unotools/localfilehelper.hxx>
-#include <unotools/ucbhelper.hxx>
-#include <vcl/svapp.hxx>
-
-#include "proplist.hxx"
-
-namespace layoutimpl
-{
-namespace css = ::com::sun::star;
-using namespace css;
-using ::rtl::OUString;
-using ::utl::LocalFileHelper;
-using ::utl::UCBContentHelper;
-using ::utl::Bootstrap;
-
-static std::list<OUString>
-getLocaleSubdirList( lang::Locale const& rLocale )
-{
- std::list<OUString> aSubdirs;
- aSubdirs.push_front( OUString(RTL_CONSTASCII_USTRINGPARAM(".")) );
- aSubdirs.push_front( OUString(RTL_CONSTASCII_USTRINGPARAM("en-US")) );
- if ( rLocale.Language.getLength() )
- aSubdirs.push_front( rLocale.Language );
- if ( rLocale.Country.getLength() )
- {
- OUString aLocaleCountry = rLocale.Language
- + OUString(RTL_CONSTASCII_USTRINGPARAM("-"))
- + rLocale.Country;
- aSubdirs.push_front( aLocaleCountry );
- if ( rLocale.Variant.getLength() )
- aSubdirs.push_front( aLocaleCountry
- + OUString(RTL_CONSTASCII_USTRINGPARAM("."))
- + rLocale.Variant );
- }
- return aSubdirs;
-}
-
-static bool
-fileExists( String const& aFile )
-{
- String aUrl;
- LocalFileHelper::ConvertPhysicalNameToURL( aFile, aUrl );
- return UCBContentHelper::Exists( aUrl );
-}
-
-static OUString
-getFirstExisting( OUString const& aDir, std::list<OUString> const& aSubDirs,
- OUString const& aXMLName )
-{
- static OUString const aSlash(RTL_CONSTASCII_USTRINGPARAM("/"));
- String aResult;
- for ( std::list<OUString>::const_iterator i = aSubDirs.begin();
- i != aSubDirs.end(); ++i )
- {
- String aFile = aDir + aSlash + *i + aSlash + aXMLName;
- OSL_TRACE( "testing: %s", OUSTRING_CSTR( aFile ) );
- if ( fileExists( aFile ) )
- return aFile;
- }
- return OUString();
-}
-
-/* FIXME: IWBN to share code with impimagetree.cxx, also for reading
- from zip files. */
-OUString
-readRightTranslation( OUString const& aXMLName )
-{
- String aXMLFile;
- std::list<OUString> aSubdirs
- = getLocaleSubdirList( Application::GetSettings().GetUILocale() );
-#if TEST_LAYOUT // read from cwd first
- OUString aCurrentWorkingUrl;
- tools::getProcessWorkingDir( aCurrentWorkingUrl );
- String aCurrentWorkingDir;
- LocalFileHelper::ConvertURLToPhysicalName( aCurrentWorkingUrl, aCurrentWorkingDir );
- aXMLFile = getFirstExisting( aCurrentWorkingDir, aSubdirs, aXMLName );
- if ( aXMLFile.Len() )
- ;
- else
-#endif /* TEST_LAYOUT */
- {
- OUString aShareUrl;
- Bootstrap::locateSharedData( aShareUrl );
- OUString aXMLUrl = aShareUrl + OUString(RTL_CONSTASCII_USTRINGPARAM("/layout"));
- String aXMLDir;
- LocalFileHelper::ConvertURLToPhysicalName( aXMLUrl, aXMLDir );
- aXMLFile = getFirstExisting( aXMLDir, aSubdirs, aXMLName );
- }
-
- OSL_TRACE( "FOUND:%s", OUSTRING_CSTR ( OUString (aXMLFile) ) );
- return aXMLFile;
-}
-
-} // namespace layoutimpl
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/translate.hxx b/toolkit/source/layout/core/translate.hxx
deleted file mode 100644
index 251958ff92..0000000000
--- a/toolkit/source/layout/core/translate.hxx
+++ /dev/null
@@ -1,43 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_TRANSLATE_HXX
-#define LAYOUT_CORE_TRANSLATE_HXX
-
-namespace rtl {
-class OUString;
-} // namespace rtl
-
-namespace layoutimpl
-{
-::rtl::OUString readRightTranslation( ::rtl::OUString const& aXMLName );
-} // namespace layoutimpl
-
-#endif /* LAYOUT_CORE_TRANSLATE_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/vcl.cxx b/toolkit/source/layout/core/vcl.cxx
deleted file mode 100644
index 7caf231fa6..0000000000
--- a/toolkit/source/layout/core/vcl.cxx
+++ /dev/null
@@ -1,69 +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 <vcl.hxx>
-
-#include <sal/types.h>
-#include <vcl/button.hxx>
-
-static PushButton* get_button (Dialog const* dialog, sal_uInt32 type)
-{
- Window* child = dialog->GetWindow (WINDOW_FIRSTCHILD);
- while (child)
- {
- if (child->GetType () == type)
- return static_cast <PushButton*> (child);
- child = child->GetWindow (WINDOW_NEXT);
- }
-
- return 0;
-}
-
-#define IMPLEMENT_CLOSING_DIALOG(cls)\
- Closing##cls::Closing##cls (Window* parent, WinBits bits)\
- : cls (parent, bits)\
- , mClosing (false)\
- {\
- }\
- sal_Bool Closing##cls::Close ()\
- {\
- if (mClosing)\
- EndDialog (false);\
- else if (PushButton *cancel = get_button (this, WINDOW_CANCELBUTTON))\
- cancel->Click ();\
- else if (PushButton *ok = get_button (this, WINDOW_OKBUTTON))\
- ok->Click ();\
- mClosing = true;\
- return false;\
- }
-
-IMPLEMENT_CLOSING_DIALOG (Dialog);
-IMPLEMENT_CLOSING_DIALOG (ModelessDialog);
-IMPLEMENT_CLOSING_DIALOG (ModalDialog);
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/core/vcl.hxx b/toolkit/source/layout/core/vcl.hxx
deleted file mode 100644
index 7422b767de..0000000000
--- a/toolkit/source/layout/core/vcl.hxx
+++ /dev/null
@@ -1,51 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_CORE_VCL_HXX
-#define LAYOUT_CORE_VCL_HXX
-
-#include <vcl/dialog.hxx>
-
-#define DECLARE_CLOSING_DIALOG(cls)\
- class Closing##cls : public cls\
- {\
- public:\
- bool mClosing;\
- Closing##cls (Window* parent, WinBits bits);\
- virtual sal_Bool Close ();\
- }
-
-DECLARE_CLOSING_DIALOG (Dialog);
-DECLARE_CLOSING_DIALOG (ModalDialog);
-DECLARE_CLOSING_DIALOG (ModelessDialog);
-
-#undef DECLARE_CLOSING_DIALOG
-
-#endif /* LAYOUT_CORE_VCL_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/vcl/wbutton.cxx b/toolkit/source/layout/vcl/wbutton.cxx
deleted file mode 100644
index 96e6aeb5d2..0000000000
--- a/toolkit/source/layout/vcl/wbutton.cxx
+++ /dev/null
@@ -1,680 +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 "wrapper.hxx"
-
-#include <com/sun/star/awt/PosSize.hpp>
-#include <com/sun/star/awt/XActionListener.hpp>
-#include <com/sun/star/awt/XButton.hpp>
-#include <com/sun/star/awt/XCheckBox.hpp>
-#include <com/sun/star/awt/XRadioButton.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <toolkit/awt/vclxwindows.hxx>
-#include <toolkit/helper/convert.hxx>
-#include <vcl/button.hxx>
-#include <vcl/event.hxx>
-#include <vcl/msgbox.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/window.hxx>
-
-#include <list>
-
-#include <layout/core/helper.hxx>
-
-using namespace ::com::sun::star;
-
-using rtl::OUString;
-
-namespace layout
-{
-
-class ImageImpl
-{
- public:
- uno::Reference< graphic::XGraphic > mxGraphic;
- ImageImpl( const char *pName )
- : mxGraphic( layoutimpl::loadGraphic( pName ) )
- {
- if ( !mxGraphic.is() )
- {
- OSL_TRACE( "ERROR: failed to load image: `%s'\n", pName );
- }
- }
-};
-
-Image::Image( const char *pName )
- : pImpl( new ImageImpl( pName ) )
-{
-}
-
-Image::~Image()
-{
- delete pImpl;
-}
-
-class ButtonImpl : public ControlImpl
- , public ::cppu::WeakImplHelper1< awt::XActionListener >
-{
- Link maClickHdl;
-
-public:
- uno::Reference< awt::XButton > mxButton;
- ButtonImpl( Context *context, const PeerHandle &peer, Window *window )
- : ControlImpl( context, peer, window )
- , mxButton( peer, uno::UNO_QUERY )
- {
- /* We have default action when clicked, always listen. */
- mxButton->addActionListener( this );
- }
-
- ~ButtonImpl()
- {
- }
-
- virtual void Click() { /* make me pure virtual? */ };
-
- Link& GetClickHdl ()
- {
- return maClickHdl;
- }
-
- virtual void SetClickHdl( Link const& link )
- {
- maClickHdl = link;
- }
-
- void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
- {
- mxButton->removeActionListener( this );
- ControlImpl::disposing (e);
- mxButton.clear ();
- }
-
- virtual void SAL_CALL actionPerformed( const awt::ActionEvent& )
- throw (uno::RuntimeException)
- {
- if ( !maClickHdl )
- Click();
- else
- maClickHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-
- bool SetModeImage( uno::Reference< graphic::XGraphic > xGraph )
- {
- setProperty( "Graphic", uno::Any( xGraph ) );
- return true;
- }
-};
-
-Button::~Button ()
-{
-}
-
-String Button::GetStandardText (sal_uInt16 button_type)
-{
- return ::Button::GetStandardText (button_type);
-}
-
-void Button::SetText( OUString const& rStr )
-{
- if ( !getImpl().mxButton.is() )
- return;
- getImpl().mxButton->setLabel( rStr );
-}
-
-void Button::SetClickHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxButton.is ())
- getImpl().SetClickHdl( link );
-}
-
-Link& Button::GetClickHdl ()
-{
- return getImpl().GetClickHdl ();
-}
-
-bool Button::SetModeImage (Image const& image)
-{
- return getImpl().SetModeImage (image.getImpl().mxGraphic);
-}
-
-bool Button::SetModeImage (::Image const& image)
-{
- return GetButton ()->SetModeImage (image);
-}
-
-void Button::SetImageAlign( ImageAlign eAlign )
-{
- getImpl().setProperty( "ImageAlign", uno::Any( (sal_Int16) eAlign ) );
-}
-
-void Button::Click()
-{
-}
-
-IMPL_GET_IMPL( Button );
-IMPL_CONSTRUCTORS( Button, Control, "button" );
-IMPL_GET_WINDOW (Button);
-
-class PushButtonImpl : public ButtonImpl
- , public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
- Link maToggleHdl;
-public:
- PushButtonImpl( Context *context, const PeerHandle &peer, Window *window )
- : ButtonImpl( context, peer, window )
- {
- }
-
- void SetToggleHdl( const Link& link )
- {
- // XButton doesn't have an explicit event for Toggle. Anyway, it is a
- // superset of the clicks: all clicks, and explicit toggles
- if (!link && !!maToggleHdl)
- mxButton->removeActionListener( this );
- else if (!!link && !maToggleHdl)
- mxButton->addActionListener( this );
- maToggleHdl = link;
- }
- void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
- {
- ButtonImpl::disposing (e);
- }
- virtual void SAL_CALL actionPerformed( awt::ActionEvent const& e )
- throw (uno::RuntimeException)
- {
- ButtonImpl::actionPerformed( e );
- fireToggle();
- }
- virtual void SAL_CALL itemStateChanged( const awt::ItemEvent& )
- throw (uno::RuntimeException)
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
- void fireToggle()
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-
-};
-
-PushButton::~PushButton ()
-{
- SetToggleHdl (Link ());
-}
-
-void PushButton::Check( bool bCheck )
-{
- getImpl().setProperty( "State", uno::Any( (sal_Int16) !!bCheck ) );
- // XButton doesn't have explicit toggle event
- getImpl().fireToggle();
-}
-
-bool PushButton::IsChecked() const
-{
- return !!( getImpl().getProperty( "State" ).get< sal_Int16 >() );
-}
-
-void PushButton::Toggle()
-{
- Check( true );
-}
-
-void PushButton::SetToggleHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxButton.is ())
- getImpl().SetToggleHdl( link );
-}
-
-IMPL_GET_IMPL( PushButton );
-IMPL_CONSTRUCTORS( PushButton, Button, "pushbutton" );
-IMPL_GET_WINDOW (PushButton);
-
-class RadioButtonImpl : public ButtonImpl
- , public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
- Link maToggleHdl;
-public:
- uno::Reference< awt::XRadioButton > mxRadioButton;
- RadioButtonImpl( Context *context, const PeerHandle &peer, Window *window )
- : ButtonImpl( context, peer, window )
- , mxRadioButton( peer, uno::UNO_QUERY )
- {
- }
-
- void Check( bool bCheck )
- {
- if ( !mxRadioButton.is() )
- return;
-
- // Have setState fire item event for
- // RadioGroups::RadioGroup::itemStateChanged ()
- ::RadioButton *r = static_cast<RadioButton*>(mpWindow)->GetRadioButton ();
- bool state = r->IsRadioCheckEnabled ();
- r->EnableRadioCheck();
- mxRadioButton->setState( !!bCheck );
- r->EnableRadioCheck (state);
- fireToggle();
- }
-
- bool IsChecked()
- {
- if ( !mxRadioButton.is() )
- return false;
- return mxRadioButton->getState();
- }
-
- void SetToggleHdl( const Link& link )
- {
- if (!link && !!maToggleHdl)
- mxRadioButton->removeItemListener( this );
- else if (!!link && !maToggleHdl)
- mxRadioButton->addItemListener( this );
- maToggleHdl = link;
- }
-
- inline void fireToggle()
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-
- virtual void SetClickHdl( const Link& link )
- {
- // Keep RadioGroups::RadioGroup's actionListener at HEAD
- // of list. This way, it can handle RadioGroup's button
- // states before all other callbacks and make sure the
- // client code has the right state.
-
- // IWBN to add an XRadioButton2 and layout::VCLXRadioButton
- // with {get,set}RadioGroup() (and a "radiogroup" property
- // even) and handle the grouping here in RadioButtonImpl.
- uno::Reference< uno::XInterface > x = static_cast<VCLXRadioButton*> (mpWindow->GetVCLXWindow ())->getFirstActionListener ();
- uno::Reference< awt::XActionListener > a = uno::Reference< awt::XActionListener> (x ,uno::UNO_QUERY );
- mxButton->removeActionListener (a);
- ButtonImpl::SetClickHdl (link);
- mxButton->addActionListener (a);
- }
-
- void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
- {
- ButtonImpl::disposing (e);
- }
-
- virtual void SAL_CALL itemStateChanged( const awt::ItemEvent& )
- throw (uno::RuntimeException)
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-};
-
-RadioButton::~RadioButton ()
-{
- SetToggleHdl (Link ());
-}
-
-void RadioButton::Check( bool bCheck )
-{
- getImpl().Check( bCheck );
-}
-
-bool RadioButton::IsChecked() const
-{
- return getImpl().IsChecked();
-}
-
-void RadioButton::SetToggleHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxRadioButton.is ())
- getImpl().SetToggleHdl( link );
-}
-
-IMPL_GET_IMPL( RadioButton );
-IMPL_GET_WINDOW( RadioButton );
-IMPL_GET_VCLXWINDOW( RadioButton );
-IMPL_CONSTRUCTORS( RadioButton, Button, "radiobutton" );
-
-class CheckBoxImpl : public ButtonImpl
- , public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
- Link maToggleHdl;
- public:
- uno::Reference< awt::XCheckBox > mxCheckBox;
- CheckBoxImpl( Context *context, const PeerHandle &peer, Window *window )
- : ButtonImpl( context, peer, window )
- , mxCheckBox( peer, uno::UNO_QUERY )
- {
- }
-
- void SetToggleHdl( const Link& link )
- {
- if (!link && !!maToggleHdl)
- mxCheckBox->removeItemListener( this );
- else if (!!link && !maToggleHdl)
- mxCheckBox->addItemListener( this );
- maToggleHdl = link;
- }
- void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
- {
- ButtonImpl::disposing (e);
- }
- virtual void SAL_CALL itemStateChanged( const awt::ItemEvent& )
- throw (uno::RuntimeException)
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-};
-
-CheckBox::~CheckBox ()
-{
- SetToggleHdl (Link ());
-}
-
-void CheckBox::Check( bool bCheck )
-{
- if ( !getImpl().mxCheckBox.is() )
- return;
- getImpl().mxCheckBox->setState( !!bCheck );
-}
-
-bool CheckBox::IsChecked() const
-{
- if ( !getImpl().mxCheckBox.is() )
- return false;
- return getImpl().mxCheckBox->getState() != 0;
-}
-
-void CheckBox::SetToggleHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxCheckBox.is ())
- getImpl().SetToggleHdl( link );
-}
-
-IMPL_GET_IMPL( CheckBox );
-IMPL_CONSTRUCTORS( CheckBox, Button, "checkbox" );
-
-#define BUTTON_IMPL(t, parent, response) \
- class t##Impl : public parent##Impl \
- { \
- public: \
- t##Impl( Context *context, PeerHandle const& peer, Window *window ) \
- : parent##Impl( context, peer, window ) \
- { \
- } \
- void Click() \
- { \
- if (Dialog *d = static_cast<Dialog *> (mpCtx)) \
- d->EndDialog( response ); \
- } \
- }
-
-/* Common button types currently unavailable in OOo: */
-/* mpReset */
-/* mpApply */
-/* mpAction */
-#define RET_RESET 6
-#define RET_APPLY 7
-#define BUTTONID_RESET RET_RESET
-#define BUTTONID_APPLY RET_APPLY
-
-BUTTON_IMPL( OKButton, PushButton, BUTTONID_OK );
-BUTTON_IMPL( CancelButton, PushButton, BUTTONID_CANCEL );
-BUTTON_IMPL( YesButton, PushButton, BUTTONID_YES );
-BUTTON_IMPL( NoButton, PushButton, BUTTONID_NO );
-BUTTON_IMPL( RetryButton, PushButton, BUTTONID_RETRY );
-BUTTON_IMPL( IgnoreButton, PushButton, BUTTONID_IGNORE );
-BUTTON_IMPL( ResetButton, PushButton, BUTTONID_RESET );
-BUTTON_IMPL( ApplyButton, PushButton, BUTTONID_APPLY ); /* Deprecated? */
-BUTTON_IMPL( HelpButton, PushButton, BUTTONID_HELP );
-
-IMPL_CONSTRUCTORS( OKButton, PushButton, "okbutton" );
-IMPL_CONSTRUCTORS( CancelButton, PushButton, "cancelbutton" );
-IMPL_CONSTRUCTORS( YesButton, PushButton, "yesbutton" );
-IMPL_CONSTRUCTORS( NoButton, PushButton, "nobutton" );
-IMPL_CONSTRUCTORS( RetryButton, PushButton, "retrybutton" );
-IMPL_CONSTRUCTORS( IgnoreButton, PushButton, "ignorebutton" );
-IMPL_CONSTRUCTORS( ResetButton, PushButton, "resetbutton" );
-IMPL_CONSTRUCTORS( ApplyButton, PushButton, "applybutton" ); /* Deprecated? */
-IMPL_CONSTRUCTORS( HelpButton, PushButton, "helpbutton" );
-
-IMPL_IMPL (ImageButton, PushButton)
-
-
-IMPL_CONSTRUCTORS( ImageButton, PushButton, "imagebutton" );
-
-class AdvancedButtonImpl : public PushButtonImpl
-{
-protected:
- bool bAdvancedMode;
- std::list< Window*> maAdvanced;
- std::list< Window*> maSimple;
-
-public:
- rtl::OUString mAdvancedLabel;
- rtl::OUString mSimpleLabel;
-
-protected:
- Window* Remove( std::list< Window*> lst, Window* w )
- {
- for ( std::list< Window*>::iterator it = maAdvanced.begin();
- it != maAdvanced.end(); ++it )
- if ( *it == w )
- {
- lst.erase( it );
- return *it;
- }
- return 0;
- }
-
-public:
- AdvancedButtonImpl( Context *context, PeerHandle const& peer, Window *window )
- : PushButtonImpl( context, peer, window )
- , bAdvancedMode( false )
- // TODO: i18n
- // Button::GetStandardText( BUTTON_ADVANCED );
- // Button::GetStandardText( BUTTON_SIMPLE );
- , mAdvancedLabel( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Advanced...")) )
- , mSimpleLabel( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Simple...")) )
- {
- }
- void Click()
- {
- bAdvancedMode = !bAdvancedMode;
- if ( bAdvancedMode )
- advancedMode();
- else
- simpleMode();
- }
- void setAlign ()
- {
- ::PushButton *b = static_cast<PushButton*> (mpWindow)->GetPushButton ();
- b->SetSymbolAlign (SYMBOLALIGN_RIGHT);
- b->SetSmallSymbol ();
- //mpWindow->SetStyle (mpWindow->GetStyle() | WB_CENTER);
- }
- void advancedMode()
- {
- ::PushButton *b = static_cast<PushButton*> (mpWindow)->GetPushButton ();
- b->SetSymbol (SYMBOL_PAGEUP);
- setAlign ();
- if (mSimpleLabel.getLength ())
- b->SetText (mSimpleLabel);
- for ( std::list< Window*>::iterator it = maAdvanced.begin();
- it != maAdvanced.end(); ++it )
- ( *it )->Show();
- for ( std::list< Window*>::iterator it = maSimple.begin();
- it != maSimple.end(); ++it )
- ( *it )->Hide();
-
- redraw ();
- }
- void simpleMode()
- {
- //mxButton->setLabel( mSimpleLabel );
- ::PushButton *b = static_cast<PushButton*> (mpWindow)->GetPushButton ();
- b->SetSymbol (SYMBOL_PAGEDOWN);
- if (mAdvancedLabel.getLength ())
- b->SetText (mAdvancedLabel);
- setAlign ();
- for ( std::list< Window*>::iterator it = maAdvanced.begin();
- it != maAdvanced.end(); ++it )
- ( *it )->Hide();
- for ( std::list< Window*>::iterator it = maSimple.begin();
- it != maSimple.end(); ++it )
- ( *it )->Show();
-
- redraw (true);
- }
- void AddAdvanced( Window* w )
- {
- maAdvanced.push_back( w );
- if ( !bAdvancedMode )
- w->Hide();
- }
- void AddSimple( Window* w )
- {
- maSimple.push_back( w );
- if ( bAdvancedMode )
- w->Hide();
- }
- void RemoveAdvanced( Window* w )
- {
- Remove( maAdvanced, w );
- }
- void RemoveSimple( Window* w )
- {
- Remove( maSimple, w );
- }
-};
-
-void AdvancedButton::AddAdvanced( Window* w )
-{
- getImpl().AddAdvanced( w );
-}
-
-void AdvancedButton::AddSimple( Window* w )
-{
- getImpl().AddSimple( w );
-}
-
-void AdvancedButton::RemoveAdvanced( Window* w )
-{
- getImpl().RemoveAdvanced( w );
-}
-
-void AdvancedButton::RemoveSimple( Window* w )
-{
- getImpl().RemoveSimple( w );
-}
-
-void AdvancedButton::SetAdvancedText (rtl::OUString const& text)
-{
- if (text.getLength ())
- getImpl ().mAdvancedLabel = text;
-}
-
-void AdvancedButton::SetSimpleText (rtl::OUString const& text)
-{
- if (text.getLength ())
- getImpl ().mSimpleLabel = text;
-}
-
-rtl::OUString AdvancedButton::GetAdvancedText () const
-{
- return getImpl ().mAdvancedLabel;
-}
-
-rtl::OUString AdvancedButton::GetSimpleText () const
-{
- return getImpl ().mSimpleLabel;
-}
-
-void AdvancedButton::SetDelta (int)
-{
-}
-
-IMPL_CONSTRUCTORS_BODY( AdvancedButton, PushButton, "advancedbutton", getImpl().simpleMode () );
-IMPL_GET_IMPL( AdvancedButton );
-
-
-class MoreButtonImpl : public AdvancedButtonImpl
-{
-public:
- MoreButtonImpl( Context *context, PeerHandle const& peer, Window *window )
- : AdvancedButtonImpl( context, peer, window)
- {
- mSimpleLabel = Button::GetStandardText( BUTTON_MORE );
- mAdvancedLabel = Button::GetStandardText( BUTTON_LESS );
- }
- void AddWindow( Window* w ) { AddAdvanced( w ); }
- void RemoveWindow( Window* w ) { RemoveAdvanced( w ); }
-};
-
-// TODO
-//BUTTON_IMPL( MoreButton, PushButton, 0 );
-IMPL_CONSTRUCTORS_BODY( MoreButton, AdvancedButton, "morebutton", getImpl().simpleMode () );
-IMPL_GET_IMPL( MoreButton );
-
-void MoreButton::AddWindow( Window* w )
-{
- getImpl().AddWindow( w );
-}
-
-void MoreButton::RemoveWindow( Window* w )
-{
- getImpl().RemoveWindow( w );
-}
-
-void MoreButton::SetMoreText (rtl::OUString const& text)
-{
- SetAdvancedText (text);
-}
-
-void MoreButton::SetLessText (rtl::OUString const& text)
-{
- SetSimpleText (text);
-}
-
-rtl::OUString MoreButton::GetMoreText () const
-{
- return GetAdvancedText ();
-}
-
-rtl::OUString MoreButton::GetLessText () const
-{
- return GetSimpleText ();
-}
-
-} // namespace layout
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/vcl/wcontainer.cxx b/toolkit/source/layout/vcl/wcontainer.cxx
deleted file mode 100644
index ed3071f69a..0000000000
--- a/toolkit/source/layout/vcl/wcontainer.cxx
+++ /dev/null
@@ -1,269 +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 "wrapper.hxx"
-
-#include <com/sun/star/awt/XLayoutRoot.hpp>
-#include <com/sun/star/awt/XLayoutContainer.hpp>
-#include <comphelper/processfactory.hxx>
-#include <layout/core/helper.hxx>
-#include <tools/debug.hxx>
-
-using namespace ::com::sun::star;
-
-namespace layout
-{
-
-Container::Container( Context const* context, char const* pId )
- : mxContainer( context->GetPeerHandle( pId ), uno::UNO_QUERY )
-{
- if ( !mxContainer.is() )
- {
- OSL_TRACE( "Error: failed to associate container with '%s'", pId );
- }
-}
-
-Container::Container( rtl::OUString const& rName, sal_Int32 nBorder )
-{
- mxContainer = layoutimpl::WidgetFactory::createContainer( rName );
-
- uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
- xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Border" ) ),
- uno::Any( nBorder ) );
-}
-
-void Container::Add( Window *pChild )
-{
- if ( pChild )
- {
- uno::Reference< awt::XLayoutConstrains > xChild( pChild->GetPeer(), uno::UNO_QUERY );
- mxContainer->addChild( xChild );
- }
-}
-
-void Container::Add( Container *pChild )
-{
- if ( pChild )
- {
- uno::Reference< awt::XLayoutConstrains > xChild( pChild->getImpl(), uno::UNO_QUERY );
- mxContainer->addChild( xChild );
- }
-}
-
-void Container::Remove( Window *pChild )
-{
- if ( pChild )
- {
- uno::Reference< awt::XLayoutConstrains > xChild( pChild->GetPeer(), uno::UNO_QUERY );
- mxContainer->removeChild( xChild );
- }
-}
-
-void Container::Remove( Container *pChild )
-{
- if ( pChild )
- {
- uno::Reference< awt::XLayoutConstrains > xChild( pChild->getImpl(), uno::UNO_QUERY );
- mxContainer->removeChild( xChild );
- }
-}
-
-void Container::Clear()
-{
- css::uno::Sequence< css::uno::Reference < css::awt::XLayoutConstrains > > children;
- children = mxContainer->getChildren();
- for (int i = 0; i < children.getLength(); i++)
- mxContainer->removeChild( children[i] );
-}
-
-void Container::ShowAll( bool bShow )
-{
- struct inner
- {
- static void setChildrenVisible( uno::Reference < awt::XLayoutContainer > xCont,
- bool bVisible ) /* auxiliary */
- {
- if ( xCont.is() )
- {
- uno::Sequence< uno::Reference < awt::XLayoutConstrains > > aChildren;
- aChildren = xCont->getChildren();
- for (int i = 0; i < aChildren.getLength(); i++)
- {
- uno::Reference < awt::XLayoutConstrains > xChild( aChildren[ i ] );
-
- uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY);
- if ( xWin.is() )
- xWin->setVisible( bVisible );
-
- uno::Reference < awt::XLayoutContainer > xChildCont(
- xChild, uno::UNO_QUERY );
- setChildrenVisible( xChildCont, bVisible );
- }
- }
- }
- };
-
- inner::setChildrenVisible( mxContainer, bShow );
-}
-
-void Container::Show()
-{
- ShowAll( true );
-}
-
-void Container::Hide()
-{
- ShowAll( false );
-}
-
-Table::Table( sal_Int32 nBorder, sal_Int32 nColumns )
- : Container( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "table" ) ), nBorder )
-{
- uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
- xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Columns" ) ),
- uno::Any( nColumns ) );
-}
-
-void Table::Add( Window *window, bool bXExpand, bool bYExpand,
- sal_Int32 nXSpan, sal_Int32 nYSpan )
-{
- if ( !window )
- return;
- WindowImpl &rImpl = window->getImpl();
- uno::Reference< awt::XLayoutConstrains > xChild( rImpl.mxWindow,
- uno::UNO_QUERY );
- mxContainer->addChild( xChild );
- setProps( xChild, bXExpand, bYExpand, nXSpan, nYSpan );
-}
-
-void Table::Add( Container *pContainer, bool bXExpand, bool bYExpand,
- sal_Int32 nXSpan, sal_Int32 nYSpan )
-{
- if ( !pContainer )
- return;
- uno::Reference< awt::XLayoutConstrains > xChild( pContainer->getImpl(),
- uno::UNO_QUERY );
- mxContainer->addChild( xChild );
- setProps( xChild, bXExpand, bYExpand, nXSpan, nYSpan );
-}
-
-void Table::setProps( uno::Reference< awt::XLayoutConstrains > xChild,
- bool bXExpand, bool bYExpand, sal_Int32 nXSpan, sal_Int32 nYSpan )
-{
- uno::Reference< beans::XPropertySet > xProps
- ( mxContainer->getChildProperties( xChild ), uno::UNO_QUERY_THROW );
- xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "XExpand" ) ),
- uno::Any( bXExpand ) );
- xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "YExpand" ) ),
- uno::Any( bYExpand ) );
- xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "ColSpan" ) ),
- uno::Any( nXSpan ) );
- xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "RowSpan" ) ),
- uno::Any( nYSpan ) );
-}
-
-Box::Box( rtl::OUString const& rName, sal_Int32 nBorder, bool bHomogeneous )
- : Container( rName, nBorder )
-{
- uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
- xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "Homogeneous" ) ),
- uno::Any( bHomogeneous ) );
-}
-
-void Box::Add( Window *window, bool bExpand, bool bFill, sal_Int32 nPadding)
-{
- if ( !window )
- return;
- WindowImpl &rImpl = window->getImpl();
- uno::Reference< awt::XLayoutConstrains > xChild( rImpl.mxWindow,
- uno::UNO_QUERY );
-
- mxContainer->addChild( xChild );
- setProps( xChild, bExpand, bFill, nPadding );
-}
-
-void Box::Add( Container *pContainer, bool bExpand, bool bFill, sal_Int32 nPadding)
-{
- if ( !pContainer )
- return;
-
- uno::Reference< awt::XLayoutConstrains > xChild( pContainer->getImpl(),
- uno::UNO_QUERY );
- mxContainer->addChild( xChild );
- setProps( xChild, bExpand, bFill, nPadding );
-}
-
-void Box::setProps( uno::Reference< awt::XLayoutConstrains > xChild,
- bool bExpand, bool bFill, sal_Int32 nPadding )
-{
- uno::Reference< beans::XPropertySet > xProps
- ( mxContainer->getChildProperties( xChild ), uno::UNO_QUERY_THROW );
-
- xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "Expand" ) ),
- uno::Any( bExpand ) );
- xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Fill" ) ),
- uno::Any( bFill ) );
- xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Padding" ) ),
- uno::Any( nPadding ) );
-}
-
-Table::Table( Context const* context, char const* pId )
- : Container( context, pId )
-{
-}
-
-Box::Box( Context const* context, char const* pId )
- : Container( context, pId )
-{
-}
-
-HBox::HBox( sal_Int32 nBorder, bool bHomogeneous )
- : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "hbox" ) ),
- nBorder, bHomogeneous )
-{
-}
-
-HBox::HBox( Context const* context, char const* pId )
- : Box( context, pId )
-{
-}
-
-VBox::VBox( sal_Int32 nBorder, bool bHomogeneous )
- : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "vbox" ) ),
- nBorder, bHomogeneous )
-{
-}
-
-VBox::VBox( Context const* context, char const* pId )
- : Box( context, pId )
-{
-}
-
-} // namespace layout
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/vcl/wfield.cxx b/toolkit/source/layout/vcl/wfield.cxx
deleted file mode 100644
index f4584796f2..0000000000
--- a/toolkit/source/layout/vcl/wfield.cxx
+++ /dev/null
@@ -1,795 +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 "wrapper.hxx"
-
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/awt/XMetricField.hpp>
-#include <com/sun/star/awt/XNumericField.hpp>
-#include <com/sun/star/awt/XTextComponent.hpp>
-#include <com/sun/star/awt/XListBox.hpp>
-#include <com/sun/star/awt/XComboBox.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/awt/XActionListener.hpp>
-#include <com/sun/star/awt/XItemListener.hpp>
-#include <com/sun/star/awt/XMouseListener.hpp>
-#include <vcl/combobox.hxx>
-#include <vcl/lstbox.hxx>
-
-#include <toolkit/awt/vclxwindows.hxx>
-
-using namespace ::com::sun::star;
-using rtl::OUString;
-
-#define LAYOUT_API_CALLS_HANDLER 0
-
-namespace layout
-{
-
-class EditImpl : public ControlImpl
- , public ::cppu::WeakImplHelper1< awt::XTextListener >
-{
-public:
- Link maModifyHdl;
-
- uno::Reference< awt::XTextComponent > mxEdit;
- EditImpl( Context *context, const PeerHandle &peer, Window *window )
- : ControlImpl( context, peer, window )
- , mxEdit( peer, uno::UNO_QUERY )
- {
- }
-
- ~EditImpl ();
-
- virtual void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException);
-
- virtual void SetModifyHdl( Link const& link );
-
- void SAL_CALL textChanged( const awt::TextEvent& /* rEvent */ )
- throw (uno::RuntimeException)
- {
- maModifyHdl.Call( mpWindow );
- }
-};
-
-EditImpl::~EditImpl ()
-{
-}
-
-void SAL_CALL EditImpl::disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
-{
- ControlImpl::disposing (e);
- mxEdit.clear ();
-}
-
-void EditImpl::SetModifyHdl( Link const& link )
-{
- if (!link && !!maModifyHdl)
- mxEdit->removeTextListener( this );
- else if (!!link && !maModifyHdl)
- mxEdit->addTextListener( this );
- maModifyHdl = link;
-}
-
-Edit::~Edit ()
-{
- SetModifyHdl (Link ());
-}
-
-void Edit::SetSelection( Selection const& rSelection )
-{
-#if LAYOUT_API_CALLS_HANDLER
- if ( !getImpl().mxEdit.is() )
- getImpl().mxEdit->setSelection( awt::Selection( rSelection.Min(), rSelection.Max() ) );
-#else /* !LAYOUT_API_CALLS_HANDLER */
- GetEdit ()->SetSelection (rSelection);
-#endif /* !LAYOUT_API_CALLS_HANDLER */
-}
-
-void Edit::SetText( OUString const& rStr )
-{
-#if LAYOUT_API_CALLS_HANDLER
- if ( getImpl().mxEdit.is() )
- /// this calls handlers; endless loop in numfmt.cxx
- getImpl().mxEdit->setText( rStr );
-#else /* !LAYOUT_API_CALLS_HANDLER */
- GetEdit ()->SetText (rStr);
-#endif /* !LAYOUT_API_CALLS_HANDLER */
-}
-
-String Edit::GetText() const
-{
- if ( !getImpl().mxEdit.is() )
- return getImpl().mxEdit->getText();
- return OUString();
-}
-
-void Edit::SetModifyHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxEdit.is ())
- getImpl().SetModifyHdl( link );
-}
-
-IMPL_CONSTRUCTORS( Edit, Control, "edit" );
-IMPL_GET_IMPL( Edit );
-IMPL_GET_WINDOW (Edit);
-
-class MultiLineEditImpl : public EditImpl
-{
-public:
- MultiLineEditImpl( Context *context, const PeerHandle &peer, Window *window )
- : EditImpl( context, peer, window )
- {
- }
-};
-
-IMPL_CONSTRUCTORS( MultiLineEdit, Edit, "multilineedit" );
-IMPL_GET_IMPL( MultiLineEdit );
-
-class SpinFieldImpl : public EditImpl
-{
- public:
- SpinFieldImpl( Context *context, const PeerHandle &peer, Window *window )
- : EditImpl( context, peer, window )
- {
- }
-};
-
-IMPL_CONSTRUCTORS( SpinField, Edit, "spinfield" );
-
-class NumericFieldImpl : public SpinFieldImpl
-{
- public:
- NumericFieldImpl( Context *context, const PeerHandle &peer, Window *window )
- : SpinFieldImpl( context, peer, window )
- {
- }
-};
-
-class MetricFieldImpl : public SpinFieldImpl
-{
- public:
- MetricFieldImpl( Context *context, const PeerHandle &peer, Window *window )
- : SpinFieldImpl( context, peer, window )
- {
- }
-};
-
-IMPL_GET_IMPL( SpinField );
-IMPL_GET_IMPL( NumericField );
-IMPL_GET_IMPL( MetricField );
-
-class FormatterBaseImpl
-{
- protected:
- PeerHandle mpeer;
- public:
- explicit FormatterBaseImpl( const PeerHandle &peer )
- : mpeer( peer )
- {
- };
-};
-
-FormatterBase::FormatterBase( FormatterBaseImpl *pFormatImpl )
- : mpFormatImpl( pFormatImpl )
-{
-}
-
-class NumericFormatterImpl : public FormatterBaseImpl
-{
- public:
- uno::Reference< awt::XNumericField > mxField;
- explicit NumericFormatterImpl( const PeerHandle &peer )
- : FormatterBaseImpl( peer )
- , mxField( peer, uno::UNO_QUERY )
- {
- }
-
- // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
- double valueToDouble( sal_Int64 nValue )
- {
- sal_Int16 nDigits = mxField->getDecimalDigits();
- double n = (double)nValue;
- for ( sal_uInt16 d = 0; d < nDigits; d++ )
- n /= 10;
- return n;
- } // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
- sal_Int64 doubleToValue( double nValue )
- {
- sal_Int16 nDigits = mxField->getDecimalDigits();
- double n = nValue;
- for ( sal_uInt16 d = 0; d < nDigits; d++ )
- n *= 10;
- return (sal_Int64) n;
- }
-};
-
-class MetricFormatterImpl : public FormatterBaseImpl
-{
- public:
- uno::Reference< awt::XMetricField > mxField;
- explicit MetricFormatterImpl( const PeerHandle &peer )
- : FormatterBaseImpl( peer )
- , mxField( peer, uno::UNO_QUERY )
- {
- }
-};
-
-NumericFormatter::NumericFormatter( FormatterBaseImpl *pImpl )
- : FormatterBase( pImpl )
-{
-}
-
-NumericFormatterImpl& NumericFormatter::getFormatImpl() const
-{
- return *( static_cast<NumericFormatterImpl *>( mpFormatImpl ) );
-}
-
-#define SET_IMPL(vclmethod, idlmethod) \
- void NumericFormatter::vclmethod( sal_Int64 nValue ) \
- { \
- if ( !getFormatImpl().mxField.is() ) \
- return; \
- getFormatImpl().mxField->idlmethod( getFormatImpl().valueToDouble( nValue ) ); \
- }
-
-SET_IMPL( SetMin, setMin )
-SET_IMPL( SetMax, setMax )
-SET_IMPL( SetLast, setLast )
-SET_IMPL( SetFirst, setFirst )
-SET_IMPL( SetValue, setValue )
-SET_IMPL( SetSpinSize, setSpinSize )
-
-sal_Int64 NumericFormatter::GetValue() const
-{
- if ( !getFormatImpl().mxField.is() )
- return 0;
- return getFormatImpl().doubleToValue( getFormatImpl().mxField->getValue() );
-}
-
-#undef SET_IMPL
-
-IMPL_CONSTRUCTORS_2( NumericField, SpinField, NumericFormatter, "numericfield" );
-
-MetricFormatter::MetricFormatter( FormatterBaseImpl *pImpl )
- : FormatterBase( pImpl )
-{
-}
-MetricFormatterImpl& MetricFormatter::getFormatImpl() const
-{ return *( static_cast<MetricFormatterImpl *>( mpFormatImpl ) ); }
-
-#define MetricUnitVclToUno(a) ((sal_uInt16)(a))
-
-#define SET_IMPL(vclmethod, idlmethod) \
- void MetricFormatter::vclmethod( sal_Int64 nValue, FieldUnit nUnit ) \
- { \
- if ( !getFormatImpl().mxField.is() ) \
- return; \
- getFormatImpl().mxField->idlmethod( nValue, MetricUnitVclToUno( nUnit ) ); \
- }
-
-SET_IMPL( SetMin, setMin )
-SET_IMPL( SetMax, setMax )
-SET_IMPL( SetLast, setLast )
-SET_IMPL( SetFirst, setFirst )
-SET_IMPL( SetValue, setValue )
-
-#undef SET_IMPL
-
-void MetricFormatter::SetSpinSize( sal_Int64 nValue )
-{
- if ( !getFormatImpl().mxField.is() )
- return;
- getFormatImpl().mxField->setSpinSize( nValue );
-}
-
-sal_Int64 MetricFormatter::GetValue( FieldUnit nUnit ) const
-{
- if ( !getFormatImpl().mxField.is() )
- return 0;
- return getFormatImpl().mxField->getValue( MetricUnitVclToUno( nUnit ) );
-}
-
-IMPL_CONSTRUCTORS_2( MetricField, SpinField, MetricFormatter, "metricfield" );
-
-class ComboBoxImpl : public EditImpl
- , public ::cppu::WeakImplHelper1< awt::XActionListener >
- , public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
-public:
- uno::Reference< awt::XComboBox > mxComboBox;
-
- Link maClickHdl;
- Link maSelectHdl;
-
- Window *parent;
-
- ComboBoxImpl( Context *context, const PeerHandle &peer, Window *window )
- : EditImpl( context, peer, window )
- , mxComboBox( peer, uno::UNO_QUERY )
- {
- }
-
- ~ComboBoxImpl ();
-
- sal_uInt16 InsertEntry( OUString const& rStr, sal_uInt16 nPos )
- {
- if ( nPos == COMBOBOX_APPEND )
- nPos = GetEntryCount();
- mxComboBox->addItem( rtl::OUString( rStr ), nPos );
- return nPos;
- }
-
- void RemoveEntry( sal_uInt16 nPos )
- {
- mxComboBox->removeItems( nPos, 1 );
- }
-
- sal_uInt16 GetEntryPos( String const& rStr ) const
- {
- uno::Sequence< rtl::OUString> aItems( mxComboBox->getItems() );
- rtl::OUString rKey( rStr );
- sal_uInt16 n = sal::static_int_cast< sal_uInt16 >(aItems.getLength());
- for (sal_uInt16 i = 0; i < n; i++)
- {
- if ( aItems[ i ] == rKey )
- return i;
- }
- return COMBOBOX_ENTRY_NOTFOUND;
- }
-
- OUString GetEntry( sal_uInt16 nPos ) const
- {
- return OUString( mxComboBox->getItem( nPos ) );
- }
-
- sal_uInt16 GetEntryCount() const
- {
- return mxComboBox->getItemCount();
- }
-
- void SetClickHdl( Link const& link )
- {
- if (!link && !!maClickHdl)
- mxComboBox->removeActionListener( this );
- else if (!!link && !maClickHdl)
- mxComboBox->addActionListener( this );
- maClickHdl = link;
- }
-
- void SetSelectHdl( Link const& link )
- {
- if (!link && !!maSelectHdl)
- mxComboBox->removeItemListener( this );
- else if (!!link && !maSelectHdl)
- mxComboBox->addItemListener( this );
- maSelectHdl = link;
- }
-
- void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException);
-
- void SAL_CALL actionPerformed (const awt::ActionEvent&)
- throw (uno::RuntimeException)
- {
- ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
- if ( !pComboBox )
- return;
- maClickHdl.Call( pComboBox );
- }
-
- void SAL_CALL itemStateChanged( awt::ItemEvent const&)
- throw (uno::RuntimeException)
- {
- ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
- if ( !pComboBox )
- return;
- maSelectHdl.Call( pComboBox );
- }
-};
-
-ComboBox::~ComboBox ()
-{
-#ifndef __SUNPRO_CC
- OSL_TRACE ("%s: deleting ComboBox for window: %p", __FUNCTION__, GetWindow ());
-#endif
-}
-
-ComboBoxImpl::~ComboBoxImpl ()
-{
-#ifndef __SUNPRO_CC
- OSL_TRACE ("%s: deleting ComboBoxImpl for window: %p", __FUNCTION__, mpWindow ? mpWindow->GetWindow () : 0);
- OSL_TRACE ("%s: deleting ComboBoxImpl for listener: %p", __FUNCTION__, static_cast<XFocusListener*> (this));
-#endif
-}
-
-void ComboBoxImpl::disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
-{
- EditImpl::disposing (e);
- mxComboBox.clear ();
-}
-
-sal_uInt16 ComboBox::InsertEntry( String const& rStr, sal_uInt16 nPos )
-{
- return getImpl().InsertEntry( rStr, nPos );
-}
-
-void ComboBox::RemoveEntry( String const& rStr )
-{
- getImpl().RemoveEntry( GetEntryPos( rStr ) );
-}
-
-void ComboBox::RemoveEntry( sal_uInt16 nPos )
-{
- getImpl().RemoveEntry( nPos );
-}
-
-void ComboBox::Clear()
-{
- uno::Sequence< rtl::OUString> aNoItems;
- getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
-}
-
-sal_uInt16 ComboBox::GetEntryPos( String const& rStr ) const
-{
- return getImpl().GetEntryPos( rStr );
-}
-
-String ComboBox::GetEntry( sal_uInt16 nPos ) const
-{
- rtl::OUString rItem = getImpl().mxComboBox->getItem( nPos );
- return OUString( rItem );
-}
-
-sal_uInt16 ComboBox::GetEntryCount() const
-{
- return getImpl().GetEntryCount();
-}
-
-void ComboBox::SetClickHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxComboBox.is ())
- getImpl().SetClickHdl( link );
-}
-
-void ComboBox::SetSelectHdl( const Link& link )
-{
- if (&getImpl () && getImpl().mxComboBox.is ())
- getImpl().SetSelectHdl( link );
-}
-
-void ComboBox::EnableAutocomplete (bool enable, bool matchCase)
-{
- GetComboBox ()->EnableAutocomplete (enable, matchCase);
-}
-
-IMPL_CONSTRUCTORS_BODY( ComboBox, Edit, "combobox", getImpl().parent = parent; );
-IMPL_GET_WINDOW (ComboBox);
-/// IMPL_GET_IMPL( ComboBox );
-
-static ComboBoxImpl* null_combobox_impl = 0;
-
-ComboBoxImpl &ComboBox::getImpl () const
-{
- if (ComboBoxImpl* c = static_cast<ComboBoxImpl *>(mpImpl))
- return *c;
- return *null_combobox_impl;
-}
-
-class ListBoxImpl : public ControlImpl
- , public ::cppu::WeakImplHelper1< awt::XActionListener >
- , public ::cppu::WeakImplHelper1< awt::XItemListener >
- , public ::cppu::WeakImplHelper1< awt::XMouseListener >
-{
- Link maClickHdl;
- Link maSelectHdl;
- Link maDoubleClickHdl;
-
-public:
- uno::Reference< awt::XListBox > mxListBox;
- ListBoxImpl( Context *context, const PeerHandle &peer, Window *window )
- : ControlImpl( context, peer, window )
- , mxListBox( peer, uno::UNO_QUERY )
- {
- SelectEntryPos (0, true);
- }
-
- sal_uInt16 InsertEntry (String const& rStr, sal_uInt16 nPos)
- {
- if ( nPos == LISTBOX_APPEND )
- nPos = mxListBox->getItemCount();
- mxListBox->addItem( rtl::OUString( rStr ), nPos );
- return nPos;
- }
-
- void RemoveEntry( sal_uInt16 nPos )
- {
- mxListBox->removeItems( nPos, 1 );
- }
-
- sal_uInt16 RemoveEntry( String const& rStr, sal_uInt16 nPos)
- {
- if ( nPos == LISTBOX_APPEND )
- nPos = mxListBox->getItemCount();
- mxListBox->addItem( rtl::OUString( rStr ), nPos );
- return nPos;
- }
-
- sal_uInt16 GetEntryPos( String const& rStr ) const
- {
- uno::Sequence< rtl::OUString> aItems( mxListBox->getItems() );
- rtl::OUString rKey( rStr );
- sal_uInt16 n = sal::static_int_cast< sal_uInt16 >(aItems.getLength());
- for (sal_uInt16 i = 0; i < n; i++)
- {
- if ( aItems[ i ] == rKey )
- return i;
- }
- return LISTBOX_ENTRY_NOTFOUND;
- }
-
- OUString GetEntry( sal_uInt16 nPos ) const
- {
- return mxListBox->getItem( nPos );
- }
-
- sal_uInt16 GetEntryCount() const
- {
- return mxListBox->getItemCount();
- }
-
- void SelectEntryPos( sal_uInt16 nPos, bool bSelect )
- {
- mxListBox->selectItemPos( nPos, bSelect );
- }
-
- sal_uInt16 GetSelectEntryCount() const
- {
- return sal::static_int_cast< sal_uInt16 >( mxListBox->getSelectedItems().getLength() );
- }
-
- sal_uInt16 GetSelectEntryPos( sal_uInt16 nSelIndex ) const
- {
- sal_uInt16 nSelected = 0;
- if ( mxListBox->isMutipleMode() )
- {
- uno::Sequence< short > aItems( mxListBox->getSelectedItemsPos() );
- if ( nSelIndex < aItems.getLength() )
- nSelected = aItems[ nSelIndex ];
- }
- else
- nSelected = mxListBox->getSelectedItemPos();
- return nSelected;
- }
-
- virtual void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
- {
- ControlImpl::disposing (e);
- mxListBox.clear ();
- }
-
- Link& GetClickHdl ()
- {
- return maClickHdl;
- }
-
- void SetClickHdl( Link const& link )
- {
- if (!link && !!maClickHdl)
- mxListBox->removeActionListener( this );
- else if (!!link && !maClickHdl)
- mxListBox->addActionListener( this );
- maClickHdl = link;
- }
-
- void SAL_CALL actionPerformed( const awt::ActionEvent& /* rEvent */ )
- throw (uno::RuntimeException)
- {
- maClickHdl.Call( mpWindow );
- }
-
- Link& GetSelectHdl ()
- {
- return maSelectHdl;
- }
-
- void SetSelectHdl( Link const& link )
- {
- if (!link && !!maSelectHdl)
- mxListBox->removeItemListener( this );
- else if (!!link && !maSelectHdl)
- mxListBox->addItemListener( this );
- maSelectHdl = link;
- }
-
- void SAL_CALL itemStateChanged (awt::ItemEvent const&)
- throw (uno::RuntimeException)
- {
- maSelectHdl.Call (static_cast <ListBox*> (mpWindow));
- }
-
- Link& GetDoubleClickHdl ()
- {
- return maDoubleClickHdl;
- }
-
- void SetDoubleClickHdl (Link const& link)
- {
- if (!link && !!maDoubleClickHdl)
- mxWindow->removeMouseListener (this);
- else if (!!link && !maSelectHdl)
- mxWindow->addMouseListener (this);
- maDoubleClickHdl = link;
- }
-
- void SAL_CALL mousePressed (awt::MouseEvent const&) throw (uno::RuntimeException)
- {
- }
- void SAL_CALL mouseReleased (awt::MouseEvent const& e) throw (uno::RuntimeException)
- {
- if (e.ClickCount == 2)
- maDoubleClickHdl.Call (mpWindow);
- }
- void SAL_CALL mouseEntered (awt::MouseEvent const&) throw (uno::RuntimeException)
- {
- }
- void SAL_CALL mouseExited (awt::MouseEvent const&) throw (uno::RuntimeException)
- {
- }
-};
-
-ListBox::~ListBox ()
-{
-}
-
-sal_uInt16 ListBox::InsertEntry (String const& rStr, sal_uInt16 nPos)
-{
- return getImpl().InsertEntry(rStr, nPos);
-}
-
-void ListBox::RemoveEntry( sal_uInt16 nPos )
-{
- return getImpl().RemoveEntry( nPos );
-}
-
-void ListBox::RemoveEntry( String const& rStr )
-{
- return getImpl().RemoveEntry( GetEntryPos( rStr ) );
-}
-
-void ListBox::Clear()
-{
- uno::Sequence< rtl::OUString> aNoItems;
- getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
-}
-
-sal_uInt16 ListBox::GetEntryPos( String const& rStr ) const
-{
- return getImpl().GetEntryPos( rStr );
-}
-
-String ListBox::GetEntry( sal_uInt16 nPos ) const
-{
- return getImpl().GetEntry( nPos );
-}
-
-sal_uInt16 ListBox::GetEntryCount() const
-{
- return getImpl().GetEntryCount();
-}
-
-void ListBox::SelectEntryPos( sal_uInt16 nPos, bool bSelect )
-{
-#if LAYOUT_API_CALLS_HANDLER
- getImpl().SelectEntryPos( nPos, bSelect );
-#else /* !LAYOUT_API_CALLS_HANDLER */
- GetListBox ()->SelectEntryPos (nPos, bSelect);
-#endif /* !LAYOUT_API_CALLS_HANDLER */
-}
-
-void ListBox::SelectEntry( String const& rStr, bool bSelect )
-{
- SelectEntryPos( GetEntryPos( rStr ), bSelect );
-}
-
-sal_uInt16 ListBox::GetSelectEntryCount() const
-{
- return getImpl().GetSelectEntryCount();
-}
-
-sal_uInt16 ListBox::GetSelectEntryPos( sal_uInt16 nSelIndex ) const
-{
- return getImpl().GetSelectEntryPos( nSelIndex );
-}
-
-String ListBox::GetSelectEntry( sal_uInt16 nSelIndex ) const
-{
- return GetEntry( GetSelectEntryPos( nSelIndex ) );
-}
-
-Link& ListBox::GetSelectHdl ()
-{
- return getImpl ().GetSelectHdl ();
-}
-
-void ListBox::SetSelectHdl( Link const& link )
-{
- getImpl().SetSelectHdl( link );
-}
-
-Link& ListBox::GetClickHdl ()
-{
- return getImpl ().GetSelectHdl ();
-}
-
-void ListBox::SetClickHdl( Link const& link )
-{
- if (&getImpl () && getImpl().mxListBox.is ())
- getImpl().SetClickHdl( link );
-}
-
-Link& ListBox::GetDoubleClickHdl ()
-{
- return getImpl ().GetSelectHdl ();
-}
-
-void ListBox::SetDoubleClickHdl( Link const& link )
-{
- getImpl().SetDoubleClickHdl( link );
-}
-
-void ListBox::SetEntryData( sal_uInt16 pos, void* data)
-{
- GetListBox ()->SetEntryData (pos, data);
-}
-
-void* ListBox::GetEntryData( sal_uInt16 pos) const
-{
- return GetListBox ()->GetEntryData (pos);
-}
-
-void ListBox::SetNoSelection ()
-{
- GetListBox ()->SetNoSelection ();
-}
-
-IMPL_CONSTRUCTORS (ListBox, Control, "listbox");
-IMPL_GET_IMPL (ListBox);
-IMPL_GET_WINDOW (ListBox);
-
-IMPL_IMPL (MultiListBox, ListBox)
-IMPL_CONSTRUCTORS_BODY( MultiListBox, ListBox, "multilistbox", GetMultiListBox()->EnableMultiSelection( true ); );
-IMPL_GET_IMPL( MultiListBox );
-IMPL_GET_WINDOW( MultiListBox );
-} // namespace layout
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/vcl/wrapper.cxx b/toolkit/source/layout/vcl/wrapper.cxx
deleted file mode 100644
index ab68620b2d..0000000000
--- a/toolkit/source/layout/vcl/wrapper.cxx
+++ /dev/null
@@ -1,1363 +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 <tools/rc.h>
-//#define RESOURCE_PUBLISH_PROTECTED 1
-#if RESOURCE_PUBLISH_PROTECTED
-// ugh, override non-helpful proctection
-#define protected public
-#endif /* RESOURCE_PUBLISH_PROTECTED */
-#include <tools/rc.hxx>
-#undef protected
-
-
-#include "wrapper.hxx"
-
-#include <awt/vclxplugin.hxx>
-#include <awt/vclxtabcontrol.hxx>
-#include <com/sun/star/awt/PosSize.hpp>
-#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/XDialog2.hpp>
-#include <com/sun/star/awt/XProgressBar.hpp>
-#include <com/sun/star/awt/XSimpleTabController.hpp>
-#include <com/sun/star/awt/XTabListener.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <comphelper/processfactory.hxx>
-#include <layout/core/factory.hxx>
-#include <layout/core/localized-string.hxx>
-#include <layout/core/root.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <vcl/ctrl.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/image.hxx>
-#include <vcl/tabctrl.hxx>
-#include <vcl/tabpage.hxx>
-#include <vcl/window.hxx>
-
-using namespace ::com::sun::star;
-using rtl::OUString;
-
-namespace layout
-{
-
-// Context bits ...
-class ContextImpl
-{
- uno::Reference< awt::XLayoutRoot > mxRoot;
- uno::Reference< container::XNameAccess > mxNameAccess;
- PeerHandle mxTopLevel;
-
-public:
- ContextImpl( char const *pPath )
- {
- uno::Sequence< uno::Any > aParams( 1 );
- aParams[0] <<= OUString( pPath, strlen( pPath ), RTL_TEXTENCODING_UTF8 );
-
- uno::Reference< lang::XSingleServiceFactory > xFactory(
- comphelper::createProcessComponent(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.Layout")) ),
- uno::UNO_QUERY );
- if ( !xFactory.is() )
- {
- throw uno::RuntimeException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Layout engine not installed" ) ),
- uno::Reference< uno::XInterface >() );
- }
- mxRoot = uno::Reference< awt::XLayoutRoot >(
- xFactory->createInstanceWithArguments( aParams ),
- uno::UNO_QUERY );
-
- mxNameAccess = uno::Reference< container::XNameAccess >( mxRoot, uno::UNO_QUERY );
- }
-
- ~ContextImpl()
- {
- }
-
- PeerHandle getByName( const OUString &rName )
- {
- uno::Any val = mxNameAccess->getByName( rName );
- PeerHandle xRet;
- val >>= xRet;
- return xRet;
- }
- PeerHandle getTopLevel()
- {
- return mxTopLevel;
- }
- void setTopLevel( PeerHandle xToplevel )
- {
- mxTopLevel = xToplevel;
- }
- PeerHandle getRoot()
- {
- return mxRoot;
- }
-};
-
-Context::Context( const char *pPath )
- : pImpl( new ContextImpl( pPath ) )
-{
-}
-Context::~Context()
-{
- delete pImpl;
- pImpl = NULL;
-}
-
-void Context::setToplevel( PeerHandle xToplevel )
-{
- pImpl->setTopLevel( xToplevel );
-}
-
-PeerHandle Context::getToplevel()
-{
- return pImpl->getTopLevel();
-}
-PeerHandle Context::getRoot()
-{
- return pImpl->getRoot();
-}
-
-PeerHandle Context::GetPeerHandle( const char *id, sal_uInt32 nId ) const
-{
- PeerHandle xHandle;
- xHandle = pImpl->getByName( OUString( id, strlen( id ), RTL_TEXTENCODING_UTF8 ) );
- if ( !xHandle.is() )
- {
- OSL_TRACE( "Failed to fetch widget '%s'", id );
- }
-
- if ( nId != 0 )
- {
- rtl::OString aStr = rtl::OString::valueOf( (sal_Int32) nId );
- xHandle = GetPeerHandle( aStr.getStr(), 0 );
- }
- return xHandle;
-}
-
-WindowImpl::WindowImpl (Context *context, const PeerHandle &peer, Window *window)
- : mpWindow (window)
- , mpCtx (context)
- , mxWindow (peer, uno::UNO_QUERY)
- , mxVclPeer (peer, uno::UNO_QUERY)
- , mvclWindow (0)
- , bFirstTimeVisible (true)
-{
-}
-
-WindowImpl::~WindowImpl ()
-{
- if (mpWindow)
- mpWindow->mpImpl = 0;
- if (mvclWindow)
- {
- VCLXWindow *v = mvclWindow->GetWindowPeer ();
- v->SetWindow (0);
- mvclWindow->SetComponentInterface (uno::Reference <awt::XWindowPeer> ());
- mvclWindow->SetWindowPeer (uno::Reference <awt::XWindowPeer> (), 0);
- delete mvclWindow;
- mvclWindow = 0;
- }
-}
-
-void WindowImpl::wrapperGone ()
-{
- mvclWindow = 0;
- mpWindow->mpImpl = 0;
- mpWindow = 0;
- mpCtx = 0;
- if ( mxWindow.is() )
- {
- uno::Reference< lang::XComponent > xComp( mxWindow, uno::UNO_QUERY );
- mxWindow.clear ();
- if ( xComp.is() )
- xComp->dispose();
- }
-}
-
-void SAL_CALL WindowImpl::disposing (lang::EventObject const&)
- throw (uno::RuntimeException)
-{
- if (mxWindow.is ())
- mxWindow.clear ();
-}
-
-uno::Any WindowImpl::getProperty (char const* name)
-{
- if ( !this || !mxVclPeer.is() )
- return css::uno::Any();
- return mxVclPeer->getProperty
- ( rtl::OUString( name, strlen( name ), RTL_TEXTENCODING_ASCII_US ) );
-}
-
-void WindowImpl::setProperty (char const *name, uno::Any any)
-{
- if ( !this || !mxVclPeer.is() )
- return;
- mxVclPeer->setProperty
- ( rtl::OUString( name, strlen( name ), RTL_TEXTENCODING_ASCII_US ), any );
-}
-
-void WindowImpl::redraw (bool resize)
-{
- uno::Reference <awt::XWindow> ref (mxWindow, uno::UNO_QUERY);
- ::Window* window = VCLXWindow::GetImplementation (ref)->GetWindow ();
- ::Window* parent = window->GetParent();
- ::Rectangle r = Rectangle (parent->GetPosPixel (),
- parent->GetSizePixel ());
- parent->Invalidate (r, INVALIDATE_CHILDREN | INVALIDATE_NOCHILDREN );
- if (resize)
- parent->SetPosSizePixel (0, 0, 1, 1, awt::PosSize::SIZE);
- else
- parent->SetPosSizePixel (0, 0, r.nRight - r.nLeft, r.nBottom - r.nTop,
- awt::PosSize::SIZE);
-}
-
-Window::Window( WindowImpl *pImpl )
- : mpImpl( pImpl )
-{
- mpImpl->mvclWindow = GetVCLXWindow () ? GetWindow () : 0;
-}
-
-Window::~Window()
-{
- /* likely to be an UNO object - with floating references */
- if (mpImpl)
- mpImpl->wrapperGone ();
- mpImpl = 0;
-}
-
-///IMPL_GET_IMPL( Control );
-
-static ControlImpl* null_control_impl = 0;
-
-ControlImpl &Control::getImpl () const
-{
- if (ControlImpl* c = static_cast<ControlImpl *>(mpImpl))
- return *c;
- return *null_control_impl;
-}
-
-Control::~Control ()
-{
- SetGetFocusHdl (Link ());
- SetLoseFocusHdl (Link ());
-}
-
-void Window::setRes (ResId const& res)
-{
-#if RESOURCE_PUBLISH_PROTECTED
- // Resources are shut-off from use. Is that really necessary?
- Resource &r = *GetWindow ();
- r.GetRes (res);
-#else /* !RESOURCE_PUBLISH_PROTECTED */
- //We *must* derive. Is this also really necessary?
- //Resource r (res);
-
- // ugh, I wonder which solution is cleaner...
- class Resource_open_up : public Resource
- {
- public:
- Resource_open_up (ResId const& r)
- : Resource (r)
- {
- }
- static sal_Int32 GetLongRes (void *p)
- {
- return Resource::GetLongRes (p);
- }
- void* GetClassRes ()
- {
- return Resource::GetClassRes ();
- }
- sal_Int32 ReadLongRes ()
- {
- return Resource::ReadLongRes ();
- }
- UniString ReadStringRes ()
- {
- return Resource::ReadStringRes ();
- }
- rtl::OString ReadByteStringRes()
- {
- return Resource::ReadByteStringRes();
- }
- };
-
- Resource_open_up r (res);
-#endif /* !RESOURCE_PUBLISH_PROTECTED */
- sal_uInt32 mask = r.ReadLongRes ();
- if (mask & WINDOW_HELPID)
- SetHelpId (r.ReadByteStringRes());
- if ( mask & WINDOW_TEXT )
- SetText( r.ReadStringRes ());
-}
-
-void Window::SetParent( ::Window *parent )
-{
- uno::Reference <awt::XWindow> ref( GetPeer(), uno::UNO_QUERY );
- if (VCLXWindow *vcl = VCLXWindow::GetImplementation( ref ))
- if (::Window *window = vcl->GetWindow())
- window->SetParent( parent );
-}
-
-void Window::SetParent( Window *parent )
-{
- /* Let's hear it for C++: poor man's dynamic binding. */
- parent->ParentSet (this);
-}
-
-void Window::ParentSet (Window *window)
-{
- window->SetParent (GetWindow ());
-}
-
-Context *Window::getContext()
-{
- return this && mpImpl ? mpImpl->mpCtx : NULL;
-}
-
-PeerHandle Window::GetPeer() const
-{
- if ( !mpImpl )
- return PeerHandle();
- return mpImpl->mxWindow;
-}
-
-uno::Reference<awt::XWindow> Window::GetRef() const
-{
- return uno::Reference <awt::XWindow> ( GetPeer(), uno::UNO_QUERY );
-}
-
-VCLXWindow* Window::GetVCLXWindow() const
-{
- return VCLXWindow::GetImplementation( GetRef() );
-}
-
-::Window* Window::GetWindow() const
-{
- return GetVCLXWindow()->GetWindow();
-}
-
-::Window* Window::GetParent() const
-{
- return GetWindow()->GetParent();
-}
-
-void Window::SetHelpId( const rtl::OString& id )
-{
- GetWindow()->SetHelpId( id );
-}
-
-void Window::Invalidate (sal_uInt8 flags)
-{
- GetWindow ()->Invalidate (flags);
-}
-
-struct ToolkitVclPropsMap
-{
- WinBits vclStyle;
- long initAttr;
- const char *propName;
-
- // the value to give the prop to enable/disable it -- not the most brilliant
- // type declaration and storage, but does the work... properties are
- // either a boolean or a short since they are either a directly wrappers for
- // a WinBit, or aggregates related (like Align for WB_LEFT, _RIGHT and _CENTER).
- bool isBoolean;
- short enableProp, disableProp;
-};
-
-#define TYPE_BOOL true
-#define TYPE_SHORT false
-#define NOTYPE 0
-static const ToolkitVclPropsMap toolkitVclPropsMap[] =
-{
- { WB_BORDER, awt::WindowAttribute::BORDER, "Border", TYPE_SHORT, 1, 0 },
- { WB_NOBORDER, awt::VclWindowPeerAttribute::NOBORDER, "Border", TYPE_SHORT, 0, 1 },
- { WB_SIZEABLE, awt::WindowAttribute::SIZEABLE, NULL, NOTYPE, 0, 0 },
- { WB_MOVEABLE, awt::WindowAttribute::MOVEABLE, NULL, NOTYPE, 0, 0 },
- { WB_CLOSEABLE, awt::WindowAttribute::CLOSEABLE, NULL, NOTYPE, 0, 0 },
-
- { WB_HSCROLL, awt::VclWindowPeerAttribute::HSCROLL, NULL, NOTYPE, 0, 0 },
- { WB_VSCROLL, awt::VclWindowPeerAttribute::VSCROLL, NULL, NOTYPE, 0, 0 },
- { WB_LEFT, awt::VclWindowPeerAttribute::LEFT, "Align", TYPE_SHORT, 0, 0 },
- { WB_CENTER, awt::VclWindowPeerAttribute::CENTER, "Align", TYPE_SHORT, 1, 0 },
- { WB_RIGHT, awt::VclWindowPeerAttribute::RIGHT, "Align", TYPE_SHORT, 2, 0 },
- { WB_SPIN, awt::VclWindowPeerAttribute::SPIN, NULL, NOTYPE, 0, 0 },
- { WB_SORT, awt::VclWindowPeerAttribute::SORT, NULL, NOTYPE, 0, 0 },
- { WB_DROPDOWN, awt::VclWindowPeerAttribute::DROPDOWN, "Dropdown", TYPE_BOOL, 1, 0 },
- { WB_DEFBUTTON, awt::VclWindowPeerAttribute::DEFBUTTON, "DefaultButton", TYPE_BOOL, 1, 0 },
- { WB_READONLY, awt::VclWindowPeerAttribute::READONLY, NULL, NOTYPE, 0, 0 },
- { WB_CLIPCHILDREN, awt::VclWindowPeerAttribute::CLIPCHILDREN, NULL, NOTYPE, 0, 0 },
- { WB_GROUP, awt::VclWindowPeerAttribute::GROUP, NULL, NOTYPE, 0, 0 },
-
- { WB_OK, awt::VclWindowPeerAttribute::OK, NULL, NOTYPE, 0, 0 },
- { WB_OK_CANCEL, awt::VclWindowPeerAttribute::OK_CANCEL, NULL, NOTYPE, 0, 0 },
- { WB_YES_NO, awt::VclWindowPeerAttribute::YES_NO, NULL, NOTYPE, 0, 0 },
- { WB_YES_NO_CANCEL, awt::VclWindowPeerAttribute::YES_NO_CANCEL, NULL, NOTYPE, 1, 0 },
- { WB_RETRY_CANCEL, awt::VclWindowPeerAttribute::RETRY_CANCEL, NULL, NOTYPE, 1, 0 },
- { WB_DEF_OK, awt::VclWindowPeerAttribute::DEF_OK, NULL, NOTYPE, 0, 0 },
- { WB_DEF_CANCEL, awt::VclWindowPeerAttribute::DEF_CANCEL, NULL, NOTYPE, 1, 0 },
- { WB_DEF_RETRY, awt::VclWindowPeerAttribute::DEF_RETRY, NULL, NOTYPE, 0, 0 },
- { WB_DEF_YES, awt::VclWindowPeerAttribute::DEF_YES, NULL, NOTYPE, 0, 0 },
- { WB_DEF_NO, awt::VclWindowPeerAttribute::DEF_NO, NULL, NOTYPE, 0, 0 },
-
- { WB_AUTOHSCROLL, awt::VclWindowPeerAttribute::AUTOHSCROLL, "AutoHScroll", TYPE_BOOL, 1, 0 },
- { WB_AUTOVSCROLL, awt::VclWindowPeerAttribute::AUTOVSCROLL, "AutoVScroll", TYPE_BOOL, 1, 0 },
-
- { WB_WORDBREAK, 0, "MultiLine", TYPE_BOOL, 1, 0 },
- { WB_NOPOINTERFOCUS, 0, "FocusOnClick", TYPE_BOOL, 1, 0 },
- { WB_TOGGLE, 0, "Toggle", TYPE_BOOL, 1, 0 },
- { WB_REPEAT, 0, "Repeat", TYPE_BOOL, 1, 0 },
- { WB_NOHIDESELECTION, 0, "HideInactiveSelection", TYPE_BOOL, 1, 0 },
-};
-#undef TYPE_BOOL
-#undef TYPE_SHORT
-#undef NOTYPE
-
-static const int toolkitVclPropsMapLen =
- sizeof( toolkitVclPropsMap ) / sizeof( ToolkitVclPropsMap );
-
-/* Unpleasant way to get an xToolkit pointer ... */
-uno::Reference< awt::XToolkit > getToolkit()
-{
- static uno::Reference< awt::XToolkit > xToolkit;
- if (!xToolkit.is())
- {
- // Urgh ...
- xToolkit = uno::Reference< awt::XToolkit >(
- ::comphelper::getProcessServiceFactory()->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
- uno::UNO_QUERY );
- if ( !xToolkit.is() )
- throw uno::RuntimeException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "failed to create toolkit!") ),
- uno::Reference< uno::XInterface >() );
- }
- return xToolkit;
-}
-
-PeerHandle Window::CreatePeer( Window *parent, WinBits nStyle, const char *pName)
-{
- long nWinAttrbs = 0;
- for (int i = 0; i < toolkitVclPropsMapLen; i++)
- if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
- nWinAttrbs |= toolkitVclPropsMap[ i ].initAttr;
-
- return layoutimpl::WidgetFactory::createWidget (getToolkit(), parent->GetPeer(), OUString::createFromAscii( pName ), nWinAttrbs);
-}
-
-void Window::Show( bool bVisible )
-{
- if ( !getImpl().mxWindow.is() )
- return;
- getImpl().mxWindow->setVisible( bVisible );
- if (!bVisible)
- getImpl ().bFirstTimeVisible = true;
- else if (GetParent() && getImpl().bFirstTimeVisible)
- {
- getImpl().redraw ();
- getImpl().bFirstTimeVisible = false;
- }
-}
-
-void Window::SetText( OUString const& str )
-{
- GetWindow()->SetText( str );
-}
-
-ControlImpl::ControlImpl (Context *context, const PeerHandle &peer, Window *window)
- : WindowImpl( context, peer, window )
-{
-}
-
-ControlImpl::~ControlImpl ()
-{
- if ((!!mGetFocusHdl || !!mLoseFocusHdl) && mxWindow.is ())
- /* Disposing will be done @ VCLXWindow::dispose () maFocusListeners.disposeAndClear()
- don't do it twice */
- mxWindow.clear ();
-}
-
-void ControlImpl::SetGetFocusHdl (Link const& link)
-{
- if (!mLoseFocusHdl || !link)
- UpdateListening (link);
- mGetFocusHdl = link;
-}
-
-Link& ControlImpl::GetGetFocusHdl ()
-{
- return mGetFocusHdl;
-}
-
-void ControlImpl::SetLoseFocusHdl (Link const& link)
-{
- if (!mGetFocusHdl || !link)
- UpdateListening (link);
- mLoseFocusHdl = link;
-}
-
-Link& ControlImpl::GetLoseFocusHdl ()
-{
- return mGetFocusHdl;
-}
-
-void ControlImpl::UpdateListening (Link const& link)
-{
- if (!link && (!!mGetFocusHdl || !!mLoseFocusHdl)
- && (!mGetFocusHdl || !mLoseFocusHdl))
- mxWindow->removeFocusListener (this);
- else if (!!link && !mGetFocusHdl && !mLoseFocusHdl)
- mxWindow->addFocusListener (this);
-}
-
-void SAL_CALL ControlImpl::disposing (lang::EventObject const&)
- throw (uno::RuntimeException)
-{
-/// mxWindow.clear ();
-}
-
-void SAL_CALL ControlImpl::focusGained (awt::FocusEvent const&)
- throw (uno::RuntimeException)
-{
- mGetFocusHdl.Call (mpWindow);
-}
-
-void SAL_CALL ControlImpl::focusLost (awt::FocusEvent const&)
- throw (uno::RuntimeException)
-{
- mLoseFocusHdl.Call (mpWindow);
-}
-
-Link& Control::GetGetFocusHdl ()
-{
- return getImpl ().GetGetFocusHdl ();
-}
-
-void Control::SetGetFocusHdl (Link const& link)
-{
- if (&getImpl () && getImpl().mxWindow.is ())
- getImpl ().SetGetFocusHdl (link);
-}
-
-Link& Control::GetLoseFocusHdl ()
-{
- return getImpl ().GetLoseFocusHdl ();
-}
-
-void Control::SetLoseFocusHdl (Link const& link)
-{
- if (&getImpl () && getImpl().mxWindow.is ())
- getImpl ().SetLoseFocusHdl (link);
-}
-
-class DialogImpl : public WindowImpl
-{
-public:
- uno::Reference< awt::XDialog2 > mxDialog;
- DialogImpl( Context *context, PeerHandle const &peer, Window *window );
-};
-
-DialogImpl::DialogImpl( Context *context, const PeerHandle &peer, Window *window )
- : WindowImpl( context, peer, window )
- , mxDialog( peer, uno::UNO_QUERY )
-{
-}
-
-Dialog::Dialog( Window *parent, const char *xml_file, const char *id, sal_uInt32 nId )
- : Context( xml_file )
- , Window( new DialogImpl( this, Context::GetPeerHandle( id, nId ), this ) )
- , bConstruct (true)
-{
- if ( parent )
- SetParent( parent );
-}
-
-Dialog::Dialog( ::Window *parent, const char *xml_file, const char *id, sal_uInt32 nId )
- : Context( xml_file )
- , Window( new DialogImpl( this, Context::GetPeerHandle( id, nId ), this ) )
-{
- if ( parent )
- SetParent( parent );
-}
-
-Dialog::~Dialog ()
-{
-}
-
-IMPL_GET_WINDOW (Dialog);
-IMPL_GET_IMPL (Dialog);
-
-#define MX_DIALOG if (getImpl ().mxDialog.is ()) getImpl ().mxDialog
-#define RETURN_MX_DIALOG if (getImpl ().mxDialog.is ()) return getImpl ().mxDialog
-
-short Dialog::Execute()
-{
- RETURN_MX_DIALOG->execute ();
- return -1;
-}
-
-void Dialog::EndDialog( long result )
-{
- MX_DIALOG->endDialog (result);
-}
-
-void Dialog::SetText( OUString const& str )
-{
- SetTitle (str);
-}
-
-void Dialog::SetTitle( OUString const& str )
-{
- MX_DIALOG->setTitle (str);
-}
-
-bool Dialog::Close ()
-{
- EndDialog (false);
- return true;
-}
-
-long Dialog::Notify (NotifyEvent& event)
-{
- return GetDialog ()->Notify (event);
-}
-
-void Dialog::Initialize (SfxChildWinInfo*)
-{
-}
-
-#define MESSAGE_BOX_MEMBER_INIT\
- Dialog (parent, xml_file, id)\
- , imageError (this, "FI_ERROR")\
- , imageInfo (this, "FI_INFO")\
- , imageQuery (this, "FI_QUERY")\
- , imageWarning (this, "FI_WARNING")\
- , messageText (this, "FT_MESSAGE")\
- , cancelButton (this, "BTN_CANCEL")\
- , helpButton (this, "BTN_HELP")\
- , ignoreButton (this, "BTN_IGNORE")\
- , noButton (this, "BTN_NO")\
- , retryButton (this, "BTN_RETRY")\
- , yesButton (this, "BTN_YES")
-
-MessageBox::MessageBox (::Window *parent, char const* message,
- char const* yes, char const* no, const rtl::OString& help_id,
- char const* xml_file, char const* id)
- : MESSAGE_BOX_MEMBER_INIT
-{
- ignoreButton.Hide ();
- retryButton.Hide ();
- init (message, yes, no, help_id);
-}
-
-MessageBox::MessageBox (::Window *parent, OUString const& message,
- OUString yes, OUString no, const rtl::OString& help_id,
- char const* xml_file, char const* id)
- : MESSAGE_BOX_MEMBER_INIT
-{
- ignoreButton.Hide ();
- retryButton.Hide ();
- init (message, yes, no, help_id);
-}
-
-#if !defined (__GNUC__)
-#define __PRETTY_FUNCTION__ __FUNCTION__
-#endif /* !__GNUC__ */
-
-MessageBox::MessageBox (::Window *parent, WinBits bits, char const* message,
- char const* yes, char const* no, const rtl::OString& help_id,
- char const* xml_file, char const* id)
- : MESSAGE_BOX_MEMBER_INIT
-{
- // HIG suggests using verbs instead of yes/no/retry etc.
- // This constructor provides client-code compatibility: Client code should be fixed.
-#ifndef __SUNPRO_CC
- OSL_TRACE ("%s: warning, deprecated vcl/Messbox compatibility", __PRETTY_FUNCTION__);
-#endif
- bits_init (bits, OUString::createFromAscii (message), OUString::createFromAscii (yes), OUString::createFromAscii (no), help_id);
-}
-
-MessageBox::MessageBox (::Window *parent, WinBits bits, OUString const& message,
- OUString yes, OUString no, const rtl::OString& help_id,
- char const* xml_file, char const* id)
- : MESSAGE_BOX_MEMBER_INIT
-{
- // HIG suggests using verbs instead of yes/no/retry etc.
- // This constructor provides client-code compatibility: Client code should be fixed.
-#ifndef __SUNPRO_CC
- OSL_TRACE ("%s: warning, deprecated vcl/Messbox compatibility", __PRETTY_FUNCTION__);
-#endif
- bits_init (bits, message, yes, no, help_id);
-}
-
-void MessageBox::bits_init (WinBits bits, OUString const& message,
- OUString yes, OUString no, const rtl::OString& help_id)
-{
- if ( bits & ( WB_OK_CANCEL | WB_OK ))
- yes = Button::GetStandardText ( BUTTON_OK );
- if ( bits & (WB_YES_NO | WB_YES_NO_CANCEL ))
- {
- yes = Button::GetStandardText ( BUTTON_YES );
- no = Button::GetStandardText ( BUTTON_NO );
- }
- if (! (bits & (WB_RETRY_CANCEL | WB_YES_NO_CANCEL | WB_ABORT_RETRY_IGNORE )))
- cancelButton.Hide ();
- if (! (bits & (WB_RETRY_CANCEL | WB_ABORT_RETRY_IGNORE)))
- retryButton.Hide ();
- if ( bits & WB_ABORT_RETRY_IGNORE )
- cancelButton.SetText ( Button::GetStandardText (BUTTON_ABORT));
- else
- ignoreButton.Hide ();
- if ( !(bits & ( WB_OK | WB_OK_CANCEL | WB_YES_NO | WB_YES_NO_CANCEL)))
- yesButton.Hide ();
- if ( !(bits & ( WB_YES_NO | WB_YES_NO_CANCEL)))
- noButton.Hide ();
-
- init (message, yes, no, help_id);
-}
-
-void MessageBox::init (char const* message, char const* yes, char const* no, const rtl::OString& help_id)
-{
- init ( OUString::createFromAscii (message), OUString::createFromAscii (yes), OUString::createFromAscii (no), help_id);
-}
-
-void MessageBox::init (OUString const& message, OUString const& yes, OUString const& no, const rtl::OString& help_id)
-{
- imageError.Hide ();
- imageInfo.Hide ();
- imageQuery.Hide ();
- imageWarning.Hide ();
- if (message.getLength ())
- messageText.SetText (message);
- if (yes.getLength ())
- {
- yesButton.SetText (yes);
- if (yes != OUString (Button::GetStandardText (BUTTON_OK))
- && yes != OUString (Button::GetStandardText (BUTTON_YES)))
- SetTitle (yes);
- if (no.getLength ())
- noButton.SetText (no);
- else
- noButton.Hide ();
- }
- if (help_id)
- SetHelpId (help_id);
- else
- helpButton.Hide ();
-}
-
-#undef MESSAGE_BOX_IMPL
-#define MESSAGE_BOX_IMPL(Name)\
- Name##Box::Name##Box (::Window *parent, char const* message,\
- char const* yes, char const* no, const rtl::OString& help_id,\
- char const* xml_file, char const* id)\
- : MessageBox (parent, message, yes, no, help_id, xml_file, id)\
- {\
- image##Name.Show ();\
- }\
- Name##Box::Name##Box (::Window *parent, OUString const& message,\
- OUString yes, OUString no, const rtl::OString& help_id,\
- char const* xml_file, char const* id)\
- : MessageBox (parent, message, yes, no, help_id, xml_file, id)\
- {\
- image##Name.Show ();\
- }\
- Name##Box::Name##Box (::Window *parent, WinBits bits, char const* message,\
- char const* yes, char const* no, const rtl::OString& help_id,\
- char const* xml_file, char const* id)\
- : MessageBox (parent, bits, message, yes, no, help_id, xml_file, id)\
- {\
- image##Name.Show ();\
- }\
- Name##Box::Name##Box (::Window *parent, WinBits bits, OUString const& message,\
- OUString yes, OUString no, const rtl::OString& help_id,\
- char const* xml_file, char const* id)\
- : MessageBox (parent, bits, message, yes, no, help_id, xml_file, id)\
- {\
- image##Name.Show ();\
- }
-
-MESSAGE_BOX_IMPL (Error);
-MESSAGE_BOX_IMPL (Info);
-MESSAGE_BOX_IMPL (Query);
-MESSAGE_BOX_IMPL (Warning);
-
-class TabControlImpl
- : public ControlImpl
- , public ::cppu::WeakImplHelper1 <awt::XTabListener>
-{
- Link mActivatePageHdl;
- Link mDeactivatePageHdl;
-
-public:
- uno::Reference <awt::XSimpleTabController> mxTabControl;
- TabControlImpl (Context *context, const PeerHandle &peer, Window *window)
- : ControlImpl (context, peer, window)
- , mxTabControl (peer, uno::UNO_QUERY)
- {
- }
-
- virtual void SAL_CALL disposing (lang::EventObject const& e)
- throw (uno::RuntimeException)
- {
- ControlImpl::disposing (e);
- mxTabControl.clear ();
- }
-
- Link& GetActivatePageHdl ()
- {
- return mActivatePageHdl;
- }
-
- void SetActivatePageHdl (Link const& link)
- {
- if (!mDeactivatePageHdl || !link)
- UpdateListening (link);
- mActivatePageHdl = link;
- }
-
- Link& GetDeactivatePageHdl ()
- {
- return mDeactivatePageHdl;
- }
-
- void SetDeactivatePageHdl (Link const& link)
- {
- if (!mActivatePageHdl || !link)
- UpdateListening (link);
- mDeactivatePageHdl = link;
- }
-
- void UpdateListening (Link const& link)
- {
- if (!link && (!!mActivatePageHdl || !!mDeactivatePageHdl))
- mxTabControl->removeTabListener (this);
- else if (!!link && !mActivatePageHdl && !mDeactivatePageHdl)
- mxTabControl->addTabListener (this);
- }
-
- void SAL_CALL activated (sal_Int32)
- throw (uno::RuntimeException)
- {
- mActivatePageHdl.Call (mpWindow);
- }
-
- void SAL_CALL deactivated (sal_Int32)
- throw (uno::RuntimeException)
- {
- mDeactivatePageHdl.Call (mpWindow);
- }
-
- void SAL_CALL inserted (sal_Int32)
- throw (uno::RuntimeException)
- {
- }
-
- void SAL_CALL removed (sal_Int32)
- throw (uno::RuntimeException)
- {
- }
-
- void SAL_CALL changed (sal_Int32, uno::Sequence <beans::NamedValue> const&)
- throw (uno::RuntimeException)
- {
- }
-};
-
-IMPL_GET_WINDOW (TabControl);
-IMPL_GET_LAYOUT_VCLXWINDOW (TabControl);
-
-#define MX_TABCONTROL if (getImpl ().mxTabControl.is ()) getImpl ().mxTabControl
-#define RETURN_MX_TABCONTROL if (getImpl ().mxTabControl.is ()) return getImpl ().mxTabControl
-
-TabControl::~TabControl ()
-{
- SetActivatePageHdl (Link ());
- SetDeactivatePageHdl (Link ());
-}
-
-void TabControl::InsertPage (sal_uInt16 id, OUString const& title, sal_uInt16 pos)
-{
- (void) pos;
-
- MX_TABCONTROL->insertTab ();
- SetCurPageId (id);
-
-#if 1 // colour me loc productive -- NOT
-#define ADD_PROP( seq, i, name, val )\
- { \
- beans::NamedValue value; \
- value.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( name ) ); \
- value.Value = uno::makeAny( val ); \
- seq[i] = value; \
- }
-
- uno::Sequence< beans::NamedValue > seq (1);
- ADD_PROP ( seq, 0, "Title", OUString (title) );
- MX_TABCONTROL->setTabProps (id, seq);
-#else
- GetTabPage (id)->SetText (title);
-#endif
-}
-void TabControl::RemovePage (sal_uInt16 id)
-{
- GetTabControl ()->RemovePage (id);
-}
-sal_uInt16 TabControl::GetPageCount () const
-{
- return GetTabControl ()->GetPageCount ();
-}
-sal_uInt16 TabControl::GetPageId (sal_uInt16 pos) const
-{
- return GetTabControl ()->GetPageId (pos);
-}
-sal_uInt16 TabControl::GetPagePos (sal_uInt16 id) const
-{
- getImpl ().redraw ();
- return GetTabControl ()->GetPagePos (id);
-}
-void TabControl::SetCurPageId (sal_uInt16 id)
-{
- getImpl ().redraw ();
- GetTabControl ()->SetCurPageId (id);
-}
-sal_uInt16 TabControl::GetCurPageId () const
-{
- return GetTabControl ()->GetCurPageId ();
-}
-void TabControl::SetTabPage (sal_uInt16 id, ::TabPage* page)
-{
- GetTabControl ()->SetTabPage (id, page);
- getImpl ().redraw ();
-}
-::TabPage* TabControl::GetTabPage (sal_uInt16 id) const
-{
- return GetTabControl ()->GetTabPage (id);
-}
-void TabControl::SetActivatePageHdl (Link const& link)
-{
- if (&getImpl () && getImpl().mxTabControl.is ())
- getImpl ().SetActivatePageHdl (link);
-}
-Link& TabControl::GetActivatePageHdl () const
-{
- return getImpl ().GetActivatePageHdl ();
-}
-void TabControl::SetDeactivatePageHdl (Link const& link)
-{
- if (&getImpl () && getImpl().mxTabControl.is ())
- getImpl ().SetDeactivatePageHdl (link);
-}
-Link& TabControl::GetDeactivatePageHdl () const
-{
- return getImpl ().GetDeactivatePageHdl ();
-}
-void TabControl::SetTabPageSizePixel (Size const& size)
-{
- GetTabControl ()->SetTabPageSizePixel (size);
-}
-Size TabControl::GetTabPageSizePixel () const
-{
- return GetTabControl ()->GetTabPageSizePixel ();
-}
-
-IMPL_CONSTRUCTORS (TabControl, Control, "tabcontrol");
-IMPL_GET_IMPL (TabControl);
-
-class TabPageImpl : public WindowImpl
-{
-public:
- uno::Reference< awt::XWindow > mxTabPage;
- TabPageImpl( Context *context, const PeerHandle &peer, Window *window )
- : WindowImpl( context, peer, window )
- , mxTabPage( peer, uno::UNO_QUERY )
- {
- }
-};
-
-::Window* TabPage::global_parent = 0;
-TabControl* TabPage::global_tabcontrol = 0;
-
-IMPL_GET_IMPL( TabPage );
-
-TabPage::TabPage( Window *parent, const char *xml_file, const char *id, sal_uInt32 nId)
- : Context( xml_file )
- , Window( new TabPageImpl( this, Context::GetPeerHandle( id, nId ), this ) )
-{
- if ( parent )
- SetParent( parent );
-}
-
-TabPage::TabPage( ::Window *parent, const char *xml_file, const char *id, sal_uInt32 nId)
- : Context( xml_file )
- , Window( new TabPageImpl( this, Context::GetPeerHandle( id, nId ), this ) )
-{
- if ( parent )
- SetParent( parent );
-}
-
-TabPage::~TabPage()
-{
- delete GetTabPage();
-}
-
-IMPL_GET_WINDOW( TabPage );
-
-void TabPage::ActivatePage()
-{
-}
-
-void TabPage::DeactivatePage()
-{
-}
-
-class FixedLineImpl : public ControlImpl
-{
-public:
- FixedLineImpl( Context *context, const PeerHandle &peer, Window *window )
- : ControlImpl( context, peer, window )
- {
- }
-};
-
-IMPL_CONSTRUCTORS( FixedLine, Control, "hfixedline" );
-IMPL_GET_IMPL( FixedLine );
-
-bool FixedLine::IsEnabled() const
-{
- //FIXME
- return true;
-}
-
-class FixedTextImpl : public ControlImpl
-{
-public:
- uno::Reference< awt::XFixedText > mxFixedText;
- FixedTextImpl( Context *context, const PeerHandle &peer, Window *window )
- : ControlImpl( context, peer, window )
- , mxFixedText( peer, uno::UNO_QUERY )
- {
- }
-
- ~FixedTextImpl ();
-
- virtual void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException);
-};
-
-FixedTextImpl::~FixedTextImpl ()
-{
-}
-
-void SAL_CALL FixedTextImpl::disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
-{
- ControlImpl::disposing (e);
- mxFixedText.clear ();
-}
-
-FixedText::~FixedText ()
-{
-}
-
-IMPL_CONSTRUCTORS( FixedText, Control, "fixedtext" );
-IMPL_GET_IMPL( FixedText );
-
-void FixedText::SetText( OUString const& rStr )
-{
- if ( !getImpl().mxFixedText.is() )
- return;
- getImpl().mxFixedText->setText( rStr );
-}
-
-class FixedInfoImpl : public FixedTextImpl
-{
-public:
- FixedInfoImpl( Context *context, const PeerHandle &peer, Window *window )
- : FixedTextImpl( context, peer, window )
- {
- }
-};
-
-IMPL_CONSTRUCTORS( FixedInfo, FixedText, "fixedinfo" );
-IMPL_GET_IMPL( FixedInfo );
-
-class ProgressBarImpl : public ControlImpl
-{
-public:
- uno::Reference< awt::XProgressBar > mxProgressBar;
- ProgressBarImpl( Context *context, const PeerHandle &peer, Window *window )
- : ControlImpl( context, peer, window )
- , mxProgressBar( peer, uno::UNO_QUERY )
- {
- }
-
- virtual void SAL_CALL disposing( lang::EventObject const& e )
- throw (uno::RuntimeException)
- {
- ControlImpl::disposing (e);
- mxProgressBar.clear ();
- }
-};
-
-
-class FixedImageImpl: public ControlImpl
-{
-public:
- uno::Reference< graphic::XGraphic > mxGraphic;
- FixedImageImpl( Context *context, const PeerHandle &peer, Window *window)
- : ControlImpl( context, peer, window )
- , mxGraphic( peer, uno::UNO_QUERY )
- {
- if ( !mxGraphic.is() )
- {
- OSL_FAIL( "ERROR: failed to load image: `%s'" );
- }
- }
-};
-
-IMPL_CONSTRUCTORS( FixedImage, Control, "fixedimage" );
-IMPL_GET_IMPL( FixedImage )
-
-void FixedImage::setImage( ::Image const& i )
-{
- (void) i;
- if ( !getImpl().mxGraphic.is() )
- return;
- //FIXME: hack moved to proplist
- //getImpl().mxGraphic =
-}
-
-
-IMPL_CONSTRUCTORS( ProgressBar, Control, "ProgressBar" );
-IMPL_GET_IMPL( ProgressBar );
-
-void ProgressBar::SetForegroundColor( util::Color color )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setForegroundColor( color );
-}
-
-void ProgressBar::SetBackgroundColor( util::Color color )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setBackgroundColor( color );
-}
-
-void ProgressBar::SetValue( sal_Int32 i )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setValue( i );
-}
-
-void ProgressBar::SetRange( sal_Int32 min, sal_Int32 max )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setRange( min, max );
-}
-
-sal_Int32 ProgressBar::GetValue()
-{
- if ( !getImpl().mxProgressBar.is() )
- return 0;
- return getImpl().mxProgressBar->getValue();
-}
-
-class PluginImpl: public ControlImpl
-{
-public:
- ::Control *mpPlugin;
-
- PluginImpl( Context *context, const PeerHandle &peer, Window *window, :: Control *plugin )
- : ControlImpl( context, peer, window )
- , mpPlugin( plugin )
- {
- uno::Reference <awt::XWindow> ref( mxWindow, uno::UNO_QUERY );
- layoutimpl::VCLXPlugin *vcl
- = static_cast<layoutimpl::VCLXPlugin*>( VCLXWindow::GetImplementation( ref ) );
- ::Window *parent = vcl->mpWindow->GetParent();
- vcl->SetWindow( plugin );
- vcl->SetPlugin( mpPlugin );
- plugin->SetParent( parent );
- plugin->SetStyle( vcl->mStyle );
- plugin->SetCreatedWithToolkit( true );
- plugin->SetComponentInterface( vcl );
- plugin->Show();
- }
-};
-
-Plugin::Plugin( Context *context, char const *id, ::Control *plugin )
- : Control( new PluginImpl( context, context->GetPeerHandle( id, 0 ), this, plugin ) )
- , mpPlugin( plugin )
-{
-}
-
-IMPL_GET_IMPL( Plugin );
-
-class LocalizedStringImpl : public WindowImpl
-{
-public:
- layoutimpl::LocalizedString *mpString;
- OUString maString;
- LocalizedStringImpl( Context *context, const PeerHandle &peer, Window *window )
- : WindowImpl( context, peer, window )
- , mpString( static_cast<layoutimpl::LocalizedString*>( VCLXWindow::GetImplementation( uno::Reference <awt::XWindow> ( mxWindow, uno::UNO_QUERY ) ) ) )
- , maString ()
- {
- }
- OUString getText()
- {
- if (mpString)
- maString = mpString->getText ();
- return maString;
- }
- void setText( OUString const& s )
- {
- if (mpString)
- mpString->setText( s );
- }
-};
-
-IMPL_GET_IMPL( LocalizedString );
-
-LocalizedString::LocalizedString( Context *context, char const* id )
- : Window( new LocalizedStringImpl( context, context->GetPeerHandle( id, 0 ), this ) )
-{
-}
-
-String LocalizedString::getString ()
-{
- return getImpl ().getText ();
-}
-
-OUString LocalizedString::getOUString ()
-{
- return getImpl ().getText ();
-}
-
-LocalizedString::operator OUString ()
-{
- return getOUString ();
-}
-
-LocalizedString::operator OUString const& ()
-{
- getOUString ();
- return getImpl ().maString;
-}
-
-LocalizedString::operator String()
-{
- getOUString ();
- return getImpl ().maString;
-}
-
-String LocalizedString::GetToken (sal_uInt16 i, sal_Char c)
-{
- return getString ().GetToken (i, c);
-}
-
-OUString LocalizedString::operator= (OUString const& s)
-{
- getImpl().setText( s );
- return getImpl().getText();
-}
-
-OUString LocalizedString::operator+= (OUString const& b)
-{
- OUString a = getImpl ().getText ();
- a += b;
- getImpl ().setText (a);
- return getImpl ().getText ();
-}
-
-OUString LocalizedString::operator+= (sal_Unicode const b)
-{
- String a = getImpl ().getText ();
- a += b;
- getImpl ().setText (a);
- return getImpl ().getText ();
-}
-
-class InPlugImpl : public WindowImpl
-{
-public:
- InPlugImpl (Context *context, const PeerHandle &peer, Window *window)
- : WindowImpl (context, peer, window)
- {
- }
-};
-
-IMPL_GET_IMPL (InPlug);
-
-static char const *FIXME_set_parent (::Window *parent, char const *xml_file)
-{
- layout::TabPage::global_parent = parent;
- return xml_file;
-}
-
-InPlug::InPlug (Window *parent, char const* xml_file, char const* id, sal_uInt32 nId)
- : Context (FIXME_set_parent (parent ? parent->GetWindow () : 0, xml_file))
- , layout::Window (new InPlugImpl (this, Context::GetPeerHandle (id, nId), this))
-{
- if (parent)
- SetParent (parent);
- if (::Window *w = dynamic_cast< ::Window* > (this))
- w->SetComponentInterface (GetVCLXWindow ());
-}
-
-InPlug::InPlug (::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId)
- : Context (FIXME_set_parent (parent, xml_file))
- , layout::Window (new InPlugImpl (this, Context::GetPeerHandle (id, nId), this))
-{
- if (parent)
- layout::Window::SetParent (parent);
- if (::Window *w = dynamic_cast< ::Window* > (this))
- w->SetComponentInterface (GetVCLXWindow ());
-}
-
-void InPlug::ParentSet (Window *window)
-{
- window->SetParent (dynamic_cast< ::Window* > (this));
-
- /// FIXME: for standalone run of layout::SfxTabDialog
- SetParent (window->GetParent ());
-}
-
-} // namespace layout
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/layout/vcl/wrapper.hxx b/toolkit/source/layout/vcl/wrapper.hxx
deleted file mode 100644
index 56046cc73f..0000000000
--- a/toolkit/source/layout/vcl/wrapper.hxx
+++ /dev/null
@@ -1,152 +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.
- *
- ************************************************************************/
-
-#ifndef LAYOUT_VCL_WRAPPER_HXX
-#define LAYOUT_VCL_WRAPPER_HXX
-
-#include <layout/layout.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/awt/XDialog2.hpp>
-#include <com/sun/star/awt/XFocusListener.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/XVclWindowPeer.hpp>
-#include <cppuhelper/implbase1.hxx>
-
-#include <cstring>
-
-namespace layout
-{
-
-namespace css = com::sun::star;
-
-class WindowImpl
-{
-public:
- Window *mpWindow;
- Context *mpCtx;
- css::uno::Reference< css::awt::XWindow > mxWindow;
- css::uno::Reference< css::awt::XVclWindowPeer > mxVclPeer;
- ::Window *mvclWindow;
- bool bFirstTimeVisible;
-
- WindowImpl (Context *context, PeerHandle const &peer, Window *window);
- virtual ~WindowImpl ();
-
- void wrapperGone();
- css::uno::Any getProperty (char const *name);
- void setProperty (char const *name, css::uno::Any any);
- void redraw (bool resize=false);
-
- // XFocusListener
- virtual void SAL_CALL disposing (css::lang::EventObject const&) throw (css::uno::RuntimeException);
-};
-
-class ControlImpl : public WindowImpl
- , public ::cppu::WeakImplHelper1 <css::awt::XFocusListener>
-{
-public:
- Link mGetFocusHdl;
- Link mLoseFocusHdl;
-
- ControlImpl( Context *context, PeerHandle const& peer, Window *window );
- ~ControlImpl ();
-
- virtual void SetGetFocusHdl (Link const& link);
- Link& GetGetFocusHdl ();
- virtual void SetLoseFocusHdl (Link const& link);
- Link& GetLoseFocusHdl ();
- virtual void UpdateListening (Link const& link);
-
- // XFocusListener
- virtual void SAL_CALL disposing (css::lang::EventObject const&) throw (css::uno::RuntimeException);
- void SAL_CALL focusGained (css::awt::FocusEvent const& e) throw (css::uno::RuntimeException);
- void SAL_CALL focusLost (css::awt::FocusEvent const& e) throw (css::uno::RuntimeException);
-};
-
-inline WindowImpl &Window::getImpl() const{ return *(static_cast< WindowImpl * >( mpImpl )); }
-
-// Helpers for defining boiler-plate constructors ...
-// Could in-line in top-level but not with safe static_casts.
-#define IMPL_GET_IMPL(t) \
- inline t##Impl &t::getImpl() const \
- { \
- return *(static_cast<t##Impl *>(mpImpl)); \
- }
-#define IMPL_CONSTRUCTORS_BODY(t,par,unoName,body) \
- t::t( Context *context, const char *pId, sal_uInt32 nId ) \
- : par( new t##Impl( context, context->GetPeerHandle( pId, nId ), this ) ) \
- { \
- Window *parent = dynamic_cast<Window*> (context);\
- body;\
- if (parent)\
- SetParent (parent);\
- } \
- t::t( Window *parent, WinBits bits) \
- : par( new t##Impl( parent->getContext(), Window::CreatePeer( parent, bits, unoName ), this ) ) \
- { \
- body;\
- if ( parent )\
- SetParent (parent);\
- } \
- t::t( Window *parent, ResId const& res) \
- : par( new t##Impl( parent->getContext(), Window::CreatePeer( parent, 0, unoName ), this ) ) \
- { \
- body;\
- setRes (res);\
- if (parent)\
- SetParent (parent);\
- }
-#define IMPL_CONSTRUCTORS(t,par,unoName) IMPL_CONSTRUCTORS_BODY(t, par, unoName, )
-#define IMPL_CONSTRUCTORS_2(t,win_par,other_par,unoName) \
- t::t( Context *context, const char *pId, sal_uInt32 nId ) \
- : win_par( new t##Impl( context, context->GetPeerHandle( pId, nId ), this ) ) \
- , other_par( new other_par##Impl( Window::GetPeer() ) ) \
- { \
- } \
- t::t( Window *parent, WinBits bits) \
- : win_par( new t##Impl( parent->getContext(), Window::CreatePeer( parent, bits, unoName ), this ) ) \
- , other_par( new other_par##Impl( Window::GetPeer() ) ) \
- { \
- }
-
-#define IMPL_IMPL(t, parent) \
- class t##Impl : public parent##Impl \
- { \
- public: \
- t##Impl( Context *context, PeerHandle const& peer, Window *window ) \
- : parent##Impl( context, peer, window ) \
- { \
- } \
- };
-
-
-} // namespace layout
-
-#endif /* LAYOUT_VCL_WRAPPER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */