From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- svx/source/form/xfm_addcondition.cxx | 157 +++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 svx/source/form/xfm_addcondition.cxx (limited to 'svx/source/form/xfm_addcondition.cxx') diff --git a/svx/source/form/xfm_addcondition.cxx b/svx/source/form/xfm_addcondition.cxx new file mode 100644 index 000000000..6c8d6ef35 --- /dev/null +++ b/svx/source/form/xfm_addcondition.cxx @@ -0,0 +1,157 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +#include + +#include +#include +#include +#include +#include + +namespace svxform +{ + +#define PROPERTY_ID_BINDING 5724 +#define PROPERTY_ID_FORM_MODEL 5725 +#define PROPERTY_ID_FACET_NAME 5726 +#define PROPERTY_ID_CONDITION_VALUE 5727 + + using namespace ::com::sun::star::uno; + using namespace ::com::sun::star::lang; + using namespace ::com::sun::star::beans; + using namespace ::com::sun::star::xforms; + + + //= OAddConditionDialog + + + Reference< XInterface > OAddConditionDialog_Create( const Reference< XMultiServiceFactory > & _rxORB ) + { + return OAddConditionDialog::Create( _rxORB ); + } + + + Sequence< OUString > OAddConditionDialog_GetSupportedServiceNames() + { + return { "com.sun.star.xforms.ui.dialogs.AddCondition" }; + } + + + OUString OAddConditionDialog_GetImplementationName() + { + return "org.openoffice.comp.svx.OAddConditionDialog"; + } + + OAddConditionDialog::OAddConditionDialog( const Reference< XComponentContext >& _rxORB ) + :OAddConditionDialogBase( _rxORB ) + { + registerProperty( + "Binding", + PROPERTY_ID_BINDING, + PropertyAttribute::TRANSIENT, + &m_xBinding, + cppu::UnoType::get() + ); + + registerProperty( + "FacetName", + PROPERTY_ID_FACET_NAME, + PropertyAttribute::TRANSIENT, + &m_sFacetName, + cppu::UnoType::get() + ); + + registerProperty( + "ConditionValue", + PROPERTY_ID_CONDITION_VALUE, + PropertyAttribute::TRANSIENT, + &m_sConditionValue, + cppu::UnoType::get() + ); + + registerProperty( + "FormModel", + PROPERTY_ID_FORM_MODEL, + PropertyAttribute::TRANSIENT, + &m_xWorkModel, + cppu::UnoType::get() + ); + } + + + Sequence SAL_CALL OAddConditionDialog::getImplementationId( ) + { + return css::uno::Sequence(); + } + + + Reference< XInterface > OAddConditionDialog::Create( const Reference< XMultiServiceFactory >& _rxFactory ) + { + return *( new OAddConditionDialog( comphelper::getComponentContext(_rxFactory) ) ); + } + + + OUString SAL_CALL OAddConditionDialog::getImplementationName() + { + return OAddConditionDialog_GetImplementationName(); + } + + + Sequence< OUString > SAL_CALL OAddConditionDialog::getSupportedServiceNames() + { + return OAddConditionDialog_GetSupportedServiceNames(); + } + + + Reference SAL_CALL OAddConditionDialog::getPropertySetInfo() + { + return createPropertySetInfo( getInfoHelper() ); + } + + ::cppu::IPropertyArrayHelper& OAddConditionDialog::getInfoHelper() + { + return *getArrayHelper(); + } + + ::cppu::IPropertyArrayHelper* OAddConditionDialog::createArrayHelper( ) const + { + Sequence< Property > aProperties; + describeProperties( aProperties ); + return new ::cppu::OPropertyArrayHelper( aProperties ); + } + + std::unique_ptr OAddConditionDialog::createDialog(const css::uno::Reference& rParent) + { + if ( !m_xBinding.is() || m_sFacetName.isEmpty() ) + throw RuntimeException( OUString(), *this ); + + return std::make_unique(Application::GetFrameWeld(rParent), m_sFacetName, m_xBinding); + } + + void OAddConditionDialog::executedDialog( sal_Int16 _nExecutionResult ) + { + OAddConditionDialogBase::executedDialog( _nExecutionResult ); + if ( _nExecutionResult == RET_OK ) + m_sConditionValue = static_cast(m_xDialog.get())->GetCondition(); + } +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3