summaryrefslogtreecommitdiff
path: root/toolkit/source/layout/core/dialogbuttonhbox.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/source/layout/core/dialogbuttonhbox.cxx')
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.cxx283
1 files changed, 0 insertions, 283 deletions
diff --git a/toolkit/source/layout/core/dialogbuttonhbox.cxx b/toolkit/source/layout/core/dialogbuttonhbox.cxx
deleted file mode 100644
index 9c1930600c5a..000000000000
--- 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: */