diff options
author | Rüdiger Timm <rt@openoffice.org> | 2008-07-30 12:56:34 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2008-07-30 12:56:34 +0000 |
commit | 2dce9531d559af33f11840afae04934b008a5b12 (patch) | |
tree | ec174f28625f35761de54a65d1583e7f7081f07f /toolkit/source | |
parent | cea87e44c33a444f81b0678150b6a82629238675 (diff) |
INTEGRATION: CWS layoutdialogs (1.2.6); FILE MERGED
2008/07/30 11:13:35 rt 1.2.6.4: Update license header.
2008/03/27 13:08:18 jcn 1.2.6.3: Substitute TAB by 4 spaces.
2008/03/26 13:32:18 cl 1.2.6.2: fixing warnings
2008/03/20 11:56:26 jcn 1.2.6.1: Update from http://lilypond.org/~janneke/vc/toolkit.git/.git
2008-03-20 Jan Nieuwenhuizen <janneke@gnu.org>
* source/awt/vclxwindow.cxx: Fix compile warning.
2008-03-20 Jan Nieuwenhuizen <janneke@gnu.org>
* util/makefile.mk: Revert obsolete VERSION addition.
2008-03-20 Jan Nieuwenhuizen <janneke@gnu.org>
* source/controls/dialogcontrol.cxx,
source/controls/unocontrol.cxx, source/helper/tkresmgr.cxx,
util/defs/wntmsci11: Revert weird initial patch.
2008-03-20 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO: Doc update.
2008-03-20 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
inc/layout/layout.hxx, source/awt/vclxbutton.cxx,
source/vclcompat/wbutton.cxx, workben/layout/recover.xml: Implement
MoreButton. TODO: images.
2008-03-19 Jan Nieuwenhuizen <janneke@gnu.org>
* source/vclcompat/wbutton.cxx: Remove redraw cruft, rename
redrawAlready to redraw.
2008-03-19 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, source/vclcompat/wbutton.cxx: Step
towards cleaner redraw.
2008-03-19 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
inc/layout/layout.hxx, source/awt/vclxbutton.cxx,
source/awt/vclxbutton.hxx, source/layout/helper.cxx,
source/vclcompat/wbutton.cxx, workben/layout/recover.cxx,
workben/layout/recover.hxx: Extract AdvancedButton implementation
from recover.cxx into new widget.
2008-03-19 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/recover.cxx, workben/layout/recover.hxx,
workben/layout/recover.xml: Update recover dialog, make
advanced/simple switching work.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/zoom.cxx: In test mode, enable everything.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/localize.sdf: Manually add new translatable strings
and translations for de, nl.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/zoom.xml: Update zoom to have hbox of Zoom factor
and View layout alongside each other.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/zoom.cxx, workben/layout/zoom.hxx,
workben/layout/zoom.xml: Merge upstream's zoom.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* source/vclcompat/wbutton.cxx, source/vclcompat/wrapper.hxx:
Nitpick, debugging aid.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout.hxx, source/vclcompat/wrapper.cxx: Implement
FixedLine.IsEnabled().
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* util/makefile.mk: Build lib name fix.
2008-03-14 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
inc/layout/layout.hxx, source/vclcompat/wcontainer.cxx,
workben/layout/recover.cxx, workben/layout/recover.hxx,
workben/layout/recover.xml: Complete VBox/HBox wrappers. Not use
them in recover, spacing still wrong.
2008-03-13 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, workben/layout/recover.cxx,
workben/layout/recover.hxx, workben/layout/recover.xml: More
recovery dialog mockuping.
2008-03-13 Jan Nieuwenhuizen <janneke@gnu.org>
* source/layout/box-base.cxx: Implement visibility of
elements/containers better.
2008-03-13 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
inc/layout/layout.hxx, source/layout/helper.cxx,
source/layout/import.cxx, source/layout/proplist.cxx,
source/vclcompat/wbutton.cxx, source/vclcompat/wfield.cxx,
source/vclcompat/wrapper.cxx, source/vclcompat/wrapper.hxx:
Implement FixedImage. Needed for recovery dialog.
2008-02-28 Jan Nieuwenhuizen <janneke@gnu.org>
* source/layout/box-base.hxx, workben/layout/editor.cxx: Give
ChildData virtual distructor.
2008-02-28 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
inc/layout/layout.hxx, source/layout/helper.cxx,
source/vclcompat/makefile.mk, source/vclcompat/wrapper.cxx,
util/makefile.mk, workben/layout/makefile.mk,
workben/layout/recover.cxx, workben/layout/recover.hxx,
workben/layout/recover.xml, workben/layout/test.cxx: Stab at new
recover dialog.
2008-02-28 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/editor.cxx: Do not clear fresh container. Disable
debug printing.
2008-02-27 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, workben/layout/localize.sdf: Fix localize.sdf for
wordcount.
2008-02-27 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-pre.hxx, source/layout/dialogbuttonhbox.cxx: Fix
ID for displaying dialogs.
2008-02-27 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, workben/layout/localize.sdf,
workben/layout/wordcount.xml, workben/layout/zoom.xml: Add strings
for all languages.
2008-02-27 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, source/awt/vclxsplitter.cxx,
source/awt/vclxsplitter.hxx, source/awt/vclxtabcontrol.cxx,
source/awt/vclxtabcontrol.hxx, source/layout/box-base.cxx,
source/layout/box-base.hxx, source/layout/box.cxx,
source/layout/box.hxx, source/layout/container.cxx,
source/layout/dialogbuttonhbox.cxx,
source/layout/dialogbuttonhbox.hxx, source/layout/factory.cxx,
source/layout/flow.cxx, source/layout/helper.cxx,
source/layout/import.hxx, source/layout/makefile.mk,
source/layout/proplist.cxx, source/layout/root.cxx,
source/layout/table.cxx, source/layout/table.hxx,
source/layout/timer.cxx, source/vclcompat/wcontainer.cxx,
source/vclcompat/wfield.cxx, source/vclcompat/wrapper.cxx: Clean-up
code duplication from layout: new Box_Base class implements
addChild, removeChild, getChildren, getChildProperties for Box,
Table, VCLXSplitter, VCLXTabControl.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, source/layout/root.cxx: Document more fixmes.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, source/layout/proplist.cxx: Remove m237
workaround.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* source/layout/helper.cxx: More comment cleanups.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* source/awt/vclxtabcontrol.cxx, source/layout/box.cxx,
source/layout/container.cxx, source/vclcompat/wrapper.cxx:
Commented-out code cleanups.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
inc/layout/layout.hxx, inc/layout/layoutcore.hxx,
source/awt/forward.hxx, source/awt/vclxbutton.cxx,
source/awt/vclxbutton.hxx, source/awt/vclxdialog.cxx,
source/awt/vclxdialog.hxx, source/awt/vclxfixedline.cxx,
source/awt/vclxfixedline.hxx, source/awt/vclxscroller.cxx,
source/awt/vclxscroller.hxx, source/awt/vclxsplitter.cxx,
source/awt/vclxsplitter.hxx, source/awt/vclxtabcontrol.cxx,
source/awt/vclxtabcontrol.hxx, source/layout/bin.cxx,
source/layout/bin.hxx, source/layout/box.cxx,
source/layout/box.hxx, source/layout/container.cxx,
source/layout/container.hxx, source/layout/dialogbuttonhbox.cxx,
source/layout/dialogbuttonhbox.hxx, source/layout/factory.cxx,
source/layout/factory.hxx, source/layout/flow.cxx,
source/layout/flow.hxx, source/layout/helper.cxx,
source/layout/helper.hxx, source/layout/import.cxx,
source/layout/import.hxx, source/layout/makefile.mk,
source/layout/precompiled_xmlscript.hxx,
source/layout/proplist.cxx, source/layout/proplist.hxx,
source/layout/root.cxx, source/layout/root.hxx,
source/layout/table.cxx, source/layout/table.hxx,
source/layout/timer.cxx, source/layout/timer.hxx,
source/layout/translate.cxx, source/layout/translate.hxx,
source/vclcompat/makefile.mk, source/vclcompat/wbutton.cxx,
source/vclcompat/wcontainer.cxx, source/vclcompat/wfield.cxx,
source/vclcompat/wrapper.cxx, source/vclcompat/wrapper.hxx,
workben/layout/editor.cxx, workben/layout/editor.hxx,
workben/layout/makefile.mk, workben/layout/simple-paragraph.cxx,
workben/layout/simple-paragraph.hxx, workben/layout/test.cxx,
workben/layout/uno.hxx, workben/layout/zoom_def.hxx: Add licence
headers.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* workben/layout/meekfile.mk: Junk meekfile.mk
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO: Update TODO.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/toolkit/awt/vclxwindows.hxx, source/awt/vclxwindow.cxx,
source/awt/vclxwindows.cxx: Move VCLXScrollBar's getMinimumSize()
from VCLXWindow's switch to method.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/toolkit/awt/vclxwindows.hxx, source/awt/vclxwindow.cxx,
source/awt/vclxwindows.cxx: Move VCLXMessageBox's getMinimumSize()
from VCLXWindow's switch to method.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, inc/toolkit/awt/vclxtopwindow.hxx,
source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
source/awt/vclxtopwindow.cxx: Remove code duplication from
VCLXDialog.
2008-02-26 Jan Nieuwenhuizen <janneke@gnu.org>
* source/awt/vclxdialog.cxx, source/vclcompat/wbutton.cxx,
source/vclcompat/wcontainer.cxx, source/vclcompat/wrapper.hxx:
Comment cleanup.
2008-02-21 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, source/layout/helper.hxx,
workben/layout/editor.cxx, workben/layout/wordcountdialog.cxx: Fix
remaining SUN warnings.
2008-02-21 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/layout/layout.hxx, source/awt/vclxfixedline.hxx,
source/layout/byteseq.cxx, source/layout/helper.hxx,
source/layout/import.cxx, source/layout/makefile.mk,
source/layout/proplist.cxx, source/layout/translate.hxx,
source/vclcompat/wbutton.cxx, source/vclcompat/wcontainer.cxx,
source/vclcompat/wfield.cxx, source/vclcompat/wrapper.cxx,
source/vclcompat/wrapper.hxx, workben/layout/editor.cxx: Fix some
sunstudio12 warnings.
2008-02-20 Jan Nieuwenhuizen <janneke@gnu.org>
* doc/layout/TODO, source/awt/makefile.mk,
source/awt/vclxbutton.cxx, source/awt/vclxbutton.hxx,
source/awt/vclxproxy.cxx, source/awt/vclxproxy.hxx,
source/layout/helper.cxx: Junk VCLXProxy.
2008-02-20 Jan Nieuwenhuizen <janneke@gnu.org>
* inc/toolkit/awt/vclxwindows.hxx,
inc/toolkit/helper/listenermultiplexer.hxx,
source/awt/vclxbutton.cxx, source/awt/vclxbutton.hxx,
source/awt/vclxtabcontrol.cxx, source/awt/vclxtabcontrol.hxx,
source/layout/helper.cxx: Hello world on AWTVCLXCancelButton() label
and images.
2008-02-20 Jan Nieuwenhuizen <janneke@gnu.org>
* .gitignore, source/awt/forward.hxx, source/awt/makefile.mk,
source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
source/awt/vclxfixedline.cxx, source/awt/vclxfixedline.hxx,
source/awt/vclxscroller.cxx, source/awt/vclxscroller.hxx,
source/awt/vclxsplitter.cxx, source/awt/vclxsplitter.hxx,
source/awt/vclxtabcontrol.cxx, source/awt/vclxtabcontrol.hxx,
source/layout/makefile.mk, workben/layout/localize-de.sdf,
workben/layout/localize-nl.sdf: Cleanup of includes, namespace in
headers in awt.
Diffstat (limited to 'toolkit/source')
-rw-r--r-- | toolkit/source/awt/vclxtabcontrol.cxx | 317 |
1 files changed, 122 insertions, 195 deletions
diff --git a/toolkit/source/awt/vclxtabcontrol.cxx b/toolkit/source/awt/vclxtabcontrol.cxx index c3368f239994..cc7470360aa8 100644 --- a/toolkit/source/awt/vclxtabcontrol.cxx +++ b/toolkit/source/awt/vclxtabcontrol.cxx @@ -1,21 +1,47 @@ -#include "vclxtabcontrol.hxx" -#include "toolkit/helper/property.hxx" -#include <com/sun/star/awt/ScrollBarOrientation.hpp> - +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: vclxtabcontrol.cxx,v $ + * + * $Revision: 1.4 $ + * + * 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/debug.hxx> -#include <vcl/tabctrl.hxx> -#include <toolkit/helper/vclunohelper.hxx> +#include "vclxtabcontrol.hxx" -#include <vcl/tabpage.hxx> #include <com/sun/star/awt/PosSize.hpp> #include <sal/macros.h> +#include <toolkit/helper/property.hxx> +#include <toolkit/helper/vclunohelper.hxx> +#include <vcl/tabctrl.hxx> +#include <vcl/tabpage.hxx> + +#include "forward.hxx" -using namespace toolkit; -//........................................................................ namespace layoutimpl { -//........................................................................ using namespace ::com::sun::star::uno; using namespace ::com::sun::star::awt; @@ -23,46 +49,51 @@ using namespace ::com::sun::star::lang; using namespace ::com::sun::star::beans; using namespace ::com::sun::star; -class TabChildProps : public PropHelper +VCLXTabControl::ChildProps::ChildProps( VCLXTabControl::ChildData *pData ) { -public: - TabChildProps( VCLXTabControl::ChildData *pData ) - { - addProp( RTL_CONSTASCII_USTRINGPARAM( "Title" ), - ::getCppuType( static_cast< const rtl::OUString* >( NULL ) ), - &(pData->aTitle) ); - } - PROPHELPER_SET_INFO -}; - -//==================================================================== -//= VCLXTabControl -//==================================================================== -DBG_NAME( VCLXTabControl ) -//-------------------------------------------------------------------- + addProp( RTL_CONSTASCII_USTRINGPARAM( "Title" ), + ::getCppuType( static_cast< const rtl::OUString* >( NULL ) ), + &(pData->maTitle) ); +} + +VCLXTabControl::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild ) + : Box_Base::ChildData( xChild ) + , maTitle() +{ +} + +VCLXTabControl::ChildData* +VCLXTabControl::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild ) +{ + return new ChildData( xChild ); +} + +VCLXTabControl::ChildProps* +VCLXTabControl::createChildProps( Box_Base::ChildData *pData ) +{ + return new ChildProps( static_cast<VCLXTabControl::ChildData*> ( pData ) ); +} + +DBG_NAME( VCLXTabControl ); + VCLXTabControl::VCLXTabControl() -: VCLXWindow() - , VCLXTabControl_Base() - , Container() + : VCLXWindow() + , VCLXTabControl_Base() + , Box_Base() + , mnNextTabId( 1 ) { DBG_CTOR( VCLXTabControl, NULL ); - mnNextTabId = 1; - mnChildrenNb = 0; } -//-------------------------------------------------------------------- VCLXTabControl::~VCLXTabControl() { DBG_DTOR( VCLXTabControl, NULL ); } -//-------------------------------------------------------------------- -IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXTabControl, VCLXWindow, Container, VCLXTabControl_Base ) +IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXTabControl, VCLXWindow, Container, VCLXTabControl_Base ); -//-------------------------------------------------------------------- -IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Base ) +IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Base ); -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::dispose( ) throw(RuntimeException) { { @@ -75,23 +106,21 @@ void SAL_CALL VCLXTabControl::dispose( ) throw(RuntimeException) VCLXWindow::dispose(); } -/* -//-------------------------------------------------------------------- + +#if 0 void SAL_CALL VCLXTabControl::addTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException) { -if ( listener.is() ) -maTabListeners.addInterface( listener ); + if ( listener.is() ) + maTabListeners.addInterface( listener ); } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::removeTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException) { -if ( listener.is() ) -maTabListeners.removeInterface( listener ); + if ( listener.is() ) + maTabListeners.removeInterface( listener ); } -*/ +#endif -//-------------------------------------------------------------------- TabControl *VCLXTabControl::getTabControl() const throw (RuntimeException) { TabControl *pTabControl = static_cast< TabControl* >( GetWindow() ); @@ -100,48 +129,42 @@ TabControl *VCLXTabControl::getTabControl() const throw (RuntimeException) throw RuntimeException(); } -//-------------------------------------------------------------------- sal_Int32 SAL_CALL VCLXTabControl::insertTab() throw (RuntimeException) { TabControl *pTabControl = getTabControl(); - int id = mnNextTabId++; + USHORT id = sal::static_int_cast< USHORT >( mnNextTabId++ ); rtl::OUString title (RTL_CONSTASCII_USTRINGPARAM( "" ) ); pTabControl->InsertPage( id, title.getStr(), TAB_APPEND ); pTabControl->SetTabPage( id, new TabPage( pTabControl ) ); return id; } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::removeTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException) { TabControl *pTabControl = getTabControl(); - if ( pTabControl->GetTabPage( ID ) == NULL ) + if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL ) throw IndexOutOfBoundsException(); - pTabControl->RemovePage( ID ); + pTabControl->RemovePage( sal::static_int_cast< USHORT >( ID ) ); } - -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::activateTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException) { TabControl *pTabControl = getTabControl(); - if ( pTabControl->GetTabPage( ID ) == NULL ) + if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL ) throw IndexOutOfBoundsException(); - pTabControl->SelectTabPage( ID ); + pTabControl->SelectTabPage( sal::static_int_cast< USHORT >( ID ) ); } -//-------------------------------------------------------------------- sal_Int32 SAL_CALL VCLXTabControl::getActiveTabID() throw (RuntimeException) { return getTabControl()->GetCurPageId( ); } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::addTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException) { - std::list< ::com::sun::star::uno::Reference - < ::com::sun::star::awt::XTabListener > >::const_iterator it; - for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++) + for ( std::list< ::com::sun::star::uno::Reference + < ::com::sun::star::awt::XTabListener > >::const_iterator it + = mxTabListeners.begin(); it != mxTabListeners.end(); it++ ) { if ( *it == xListener ) // already added @@ -150,12 +173,11 @@ void SAL_CALL VCLXTabControl::addTabListener( const ::com::sun::star::uno::Refer mxTabListeners.push_back( xListener ); } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::removeTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException) { - std::list< ::com::sun::star::uno::Reference - < ::com::sun::star::awt::XTabListener > >::iterator it; - for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++) + for ( std::list< ::com::sun::star::uno::Reference + < ::com::sun::star::awt::XTabListener > >::iterator it + = mxTabListeners.begin(); it != mxTabListeners.end(); it++ ) { if ( *it == xListener ) { @@ -165,14 +187,13 @@ void SAL_CALL VCLXTabControl::removeTabListener( const ::com::sun::star::uno::Re } } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedValue >& Properties ) throw (RuntimeException, IndexOutOfBoundsException) { TabControl *pTabControl = getTabControl(); - if ( pTabControl->GetTabPage( ID ) == NULL ) + if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL ) throw IndexOutOfBoundsException(); - for( int i = 0; i < Properties.getLength(); i++ ) + for ( int i = 0; i < Properties.getLength(); i++ ) { const rtl::OUString &name = Properties[i].Name; const Any &value = Properties[i].Value; @@ -180,17 +201,16 @@ void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedVa if ( name == rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ) ) { rtl::OUString title = value.get<rtl::OUString>(); - pTabControl->SetPageText( ID, title.getStr() ); + pTabControl->SetPageText( sal::static_int_cast< USHORT >( ID ), title.getStr() ); } } } -//-------------------------------------------------------------------- Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID ) throw (IndexOutOfBoundsException, RuntimeException) { TabControl *pTabControl = getTabControl(); - if ( pTabControl->GetTabPage( ID ) == NULL ) + if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL ) throw IndexOutOfBoundsException(); #define ADD_PROP( seq, i, name, val ) { \ @@ -201,21 +221,19 @@ Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID ) } Sequence< NamedValue > props( 2 ); - ADD_PROP( props, 0, "Title", rtl::OUString( pTabControl->GetPageText( ID ) ) ); - ADD_PROP( props, 1, "Position", pTabControl->GetPagePos( ID ) ); + ADD_PROP( props, 0, "Title", rtl::OUString( pTabControl->GetPageText( sal::static_int_cast< USHORT >( ID ) ) ) ); + ADD_PROP( props, 1, "Position", pTabControl->GetPagePos( sal::static_int_cast< USHORT >( ID ) ) ); #undef ADD_PROP return props; } -//-------------------------------------------------------------------- - // TODO: draw tab border here void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException) { ::vos::OGuard aGuard( GetMutex() ); TabControl *pTabControl = getTabControl(); - TabPage *pTabPage = pTabControl->GetTabPage( getActiveTabID() ); + TabPage *pTabPage = pTabControl->GetTabPage( sal::static_int_cast< USHORT >( getActiveTabID() ) ); if ( pTabPage ) { ::Point aPos( nX, nY ); @@ -231,107 +249,41 @@ void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::su VCLXWindow::draw( nX, nY ); } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::addChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild ) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException) { - unsigned int id = insertTab(); - if ( maChildren.size() < id ) - maChildren.resize( id, 0 ); - mnChildrenNb++; - - if ( xChild.is() ) - { - ChildData *pData = new ChildData(); - pData->xChild = xChild; - maChildren[ id-1 ] = pData; - - setChildParent( xChild ); - queueResize(); - } + mIdMap[ xChild ] = insertTab(); + Box_Base::addChild( xChild ); } - -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild ) throw (::com::sun::star::uno::RuntimeException) { - for( unsigned i = 0; i < maChildren.size(); i++) - { - if ( maChildren[ i ] && maChildren[ i ]->xChild == xChild ) - { - removeTab( i ); - delete maChildren[ i ]; - maChildren[ i ] = NULL; - mnChildrenNb--; - - unsetChildParent( xChild ); - queueResize(); - break; - } - } + removeTab( mIdMap[xChild] ); + mIdMap[ xChild ] = -1; + Box_Base::removeChild( xChild ); } -//-------------------------------------------------------------------- -::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference - < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL VCLXTabControl::getChildren() - throw (::com::sun::star::uno::RuntimeException) -{ - uno::Sequence< uno::Reference< awt::XLayoutConstrains > > childrenSeq( mnChildrenNb ); - for( unsigned si = 0, ci = 0; ci < maChildren.size(); ci++) - { - if ( maChildren[ ci ] && maChildren[ ci ]->xChild.is() ) - childrenSeq[si++] = maChildren[ ci ]->xChild; - } - return childrenSeq; -} - -//-------------------------------------------------------------------- -uno::Reference< beans::XPropertySet > SAL_CALL -VCLXTabControl::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild ) - throw (uno::RuntimeException) -{ - std::vector< ChildData * >::iterator iter; - for( iter = maChildren.begin(); iter != maChildren.end(); iter++) - { - if ( (*iter)->xChild == xChild ) - { - if ( !(*iter)->xProps.is() ) - { - // FIXME: make me safe ! - PropHelper *pProps = new TabChildProps( *iter ); - pProps->setChangeListener( this ); - (*iter)->xProps = pProps; - } - return (*iter)->xProps; - } - } - return uno::Reference< beans::XPropertySet >(); -} - -// TEMP: static void setChildrenVisible( uno::Reference < awt::XLayoutConstrains > xChild, bool visible ) { uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY); if ( xWin.is() ) { xWin->setVisible( visible ); -//xWin->setPosSize( 0, 0, 5, 5, PosSize::POSSIZE ); } uno::Reference < awt::XLayoutContainer > xCont( xChild, uno::UNO_QUERY ); if ( xCont.is()) { uno::Sequence< uno::Reference < awt::XLayoutConstrains > > children = xCont->getChildren(); - for( int i = 0; i < children.getLength(); i++ ) + for ( int i = 0; i < children.getLength(); i++ ) { setChildrenVisible( children[i], visible ); } } } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::allocateArea( const ::com::sun::star::awt::Rectangle &rArea ) throw (::com::sun::star::uno::RuntimeException) @@ -350,12 +302,13 @@ void SAL_CALL VCLXTabControl::allocateArea( // FIXME: we can save cycles by setting visibility more sensibly. Having // it here does makes it easier when changing tabs (just needs a recalc()) - for( unsigned int i = 0; i < maChildren.size(); i++ ) + unsigned i = 0; + for ( std::list<Box_Base::ChildData *>::const_iterator it + = maChildren.begin(); it != maChildren.end(); it++, i++ ) { - if ( !maChildren[ i ] ) - continue; + ChildData *child = static_cast<VCLXTabControl::ChildData*> ( *it ); ::com::sun::star::uno::Reference - < ::com::sun::star::awt::XLayoutConstrains > xChild( maChildren[ i ]->xChild ); + < ::com::sun::star::awt::XLayoutConstrains > xChild( child->mxChild ); if ( xChild.is() ) { uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY ); @@ -372,8 +325,8 @@ void SAL_CALL VCLXTabControl::allocateArea( if ( active ) { - ::Rectangle label_rect = pTabControl->GetTabBounds( i+1 ); - ::Rectangle page_rect = pTabControl->GetTabPageBounds( i+1 ); + ::Rectangle label_rect = pTabControl->GetTabBounds( sal::static_int_cast< USHORT >( i+1 ) ); + ::Rectangle page_rect = pTabControl->GetTabPageBounds( sal::static_int_cast< USHORT >( i+1 ) ); awt::Rectangle childRect; childRect.X = page_rect.Left(); @@ -387,7 +340,6 @@ void SAL_CALL VCLXTabControl::allocateArea( } } -//-------------------------------------------------------------------- ::com::sun::star::awt::Size SAL_CALL VCLXTabControl::getMinimumSize() throw(::com::sun::star::uno::RuntimeException) { @@ -399,15 +351,17 @@ void SAL_CALL VCLXTabControl::allocateArea( return size; // calculate size to accomodate all children - for( unsigned int i = 0; i < maChildren.size(); i++ ) + unsigned i = 0; + for ( std::list<Box_Base::ChildData *>::const_iterator it + = maChildren.begin(); it != maChildren.end(); it++, i++ ) { - ChildData *pChild = maChildren[ i ]; - if ( pChild && pChild->xChild.is() ) + ChildData *child = static_cast<VCLXTabControl::ChildData*> ( *it ); + if ( child->mxChild.is() ) { // set the title prop here... - pTabControl->SetPageText( i+1, pChild->aTitle.getStr() ); + pTabControl->SetPageText( sal::static_int_cast< USHORT >( i+1 ), child->maTitle.getStr() ); - awt::Size childSize( pChild->xChild->getMinimumSize() ); + awt::Size childSize( child->mxChild->getMinimumSize() ); childrenSize.Width = SAL_MAX( childSize.Width, childrenSize.Width ); childrenSize.Height = SAL_MAX( childSize.Height, childrenSize.Height ); } @@ -419,7 +373,6 @@ void SAL_CALL VCLXTabControl::allocateArea( return size; } -//-------------------------------------------------------------------- void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent ) { ::vos::OClearableGuard aGuard( GetMutex() ); @@ -438,9 +391,9 @@ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent case VCLEVENT_TABPAGE_PAGETEXTCHANGED: { ULONG page = (ULONG) _rVclWindowEvent.GetData(); - std::list< ::com::sun::star::uno::Reference - < ::com::sun::star::awt::XTabListener > >::iterator it; - for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++) + for ( std::list< ::com::sun::star::uno::Reference + < ::com::sun::star::awt::XTabListener > >::iterator it + = mxTabListeners.begin(); it != mxTabListeners.end(); it++) { ::com::sun::star::uno::Reference < ::com::sun::star::awt::XTabListener > listener = *it; @@ -461,9 +414,9 @@ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent listener->removed( page ); break; case VCLEVENT_TABPAGE_REMOVEDALL: - for( int i = 1; i < mnNextTabId; i++) + for ( int i = 1; i < mnNextTabId; i++) { - if ( pTabControl->GetTabPage( i ) ) + if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( i ) ) ) listener->removed( i ); } break; @@ -481,40 +434,14 @@ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent } } -//-------------------------------------------------------------------- void SAL_CALL VCLXTabControl::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException) { - ::vos::OGuard aGuard( GetMutex() ); - - if ( GetWindow() ) - { - sal_uInt16 nPropertyId = GetPropertyId( PropertyName ); - switch ( nPropertyId ) - { - default: - VCLXWindow::setProperty( PropertyName, Value ); - } - } + VCLXWindow::setProperty( PropertyName, Value ); } -//-------------------------------------------------------------------- Any SAL_CALL VCLXTabControl::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException) { - ::vos::OGuard aGuard( GetMutex() ); - - Any aReturn; - if ( GetWindow() ) - { - sal_uInt16 nPropertyId = GetPropertyId( PropertyName ); - switch ( nPropertyId ) - { - default: - aReturn = VCLXWindow::getProperty( PropertyName ); - } - } - return aReturn; + return VCLXWindow::getProperty( PropertyName ); } -//........................................................................ -} // namespace toolkit -//........................................................................ +} // namespace layoutimpl |