Kaydet (Commit) 04eb03cc authored tarafından Noel Power's avatar Noel Power

handle various ReturnXXXX types for forms

Change-Id: Idcbfbebafb02c734b42428c5b1d6df8d0d4a23d6
üst 06370959
/* -*- 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 .
*/
#ifndef RETURNTYPES_HXX
#define RETURNTYPES_HXX
#include <cppuhelper/implbase1.hxx>
#include <com/sun/star/script/XDefaultProperty.hpp>
#include <ooo/vba/msforms/XReturnInteger.hpp>
#include <ooo/vba/msforms/XReturnBoolean.hpp>
#include <ooo/vba/msforms/XReturnSingle.hpp>
#include <ooo/vba/msforms/XReturnEffect.hpp>
#include <vbahelper/vbahelper.hxx>
#include <vbahelper/vbahelperinterface.hxx>
namespace ooo
{
namespace vba
{
template< typename T1, typename T2 >
class DefaultReturnHelper : public ::cppu::WeakImplHelper2< T2, css::script::XDefaultProperty >
{
T1 mnValue;
public:
DefaultReturnHelper( const T1& nValue ) : mnValue( nValue ) {}
virtual void SAL_CALL setValue( T1 nValue ) throw (::com::sun::star::uno::RuntimeException) { mnValue = nValue; }
virtual T1 SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException) { return mnValue; }
OUString SAL_CALL getDefaultPropertyName( ) throw (css::uno::RuntimeException) { return OUString("Value"); }
};
typedef DefaultReturnHelper< sal_Int32, ov::msforms::XReturnInteger > ReturnInteger_BASE;
class ReturnInteger : public ReturnInteger_BASE
{
public:
ReturnInteger( sal_Int32 nValue ) : ReturnInteger_BASE( nValue ){}
};
typedef DefaultReturnHelper< sal_Bool, ov::msforms::XReturnBoolean > ReturnBoolean_BASE;
class ReturnBoolean : public ReturnBoolean_BASE
{
public:
ReturnBoolean( sal_Bool nValue ) : ReturnBoolean_BASE( nValue ){}
};
typedef DefaultReturnHelper< float, ov::msforms::XReturnSingle > ReturnSingle_BASE;
class ReturnSingle : public ReturnSingle_BASE
{
public:
ReturnSingle( float nValue ) : ReturnSingle_BASE( nValue ){}
};
typedef DefaultReturnHelper< short, ov::msforms::XReturnEffect > ReturnEffect_BASE;
class ReturnEffect : public ReturnEffect_BASE
{
public:
ReturnEffect( short nValue ) : ReturnEffect_BASE( nValue ){}
};
} // vba
} // ooo
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -521,10 +521,6 @@ $(eval $(call gb_UnoApi_add_idlfiles,oovbaapi,oovbaapi/ooo/vba/msforms,\
fmTransitionEffect \
fmVerticalScrollBarSide \
fmZOrder \
ReturnBoolean \
ReturnEffect \
ReturnInteger \
ReturnSingle \
XButton \
XCheckBox \
XColorFormat \
......@@ -545,6 +541,10 @@ $(eval $(call gb_UnoApi_add_idlfiles,oovbaapi,oovbaapi/ooo/vba/msforms,\
XPictureFormat \
XProgressBar \
XRadioButton \
XReturnBoolean \
XReturnEffect \
XReturnInteger \
XReturnSingle \
XScrollBar \
XShape \
XShapeRange \
......
......@@ -16,9 +16,11 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <com/sun/star/uno/XInterface.idl>
module ooo { module vba { module msforms {
struct ReturnSingle
interface XReturnBoolean
{
float Value;
[attribute] boolean Value;
};
}; }; };
......@@ -16,10 +16,12 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <com/sun/star/uno/XInterface.idl>
module ooo { module vba { module msforms {
struct ReturnEffect
interface XReturnEffect
{
//fmDropEffect Value;
short Value;
[attribute] short Value;
};
}; }; };
......@@ -16,9 +16,11 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <com/sun/star/uno/XInterface.idl>
module ooo { module vba { module msforms {
struct ReturnInteger
interface XReturnInteger
{
long Value;
[attribute] long Value;
};
}; }; };
......@@ -15,10 +15,11 @@
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <com/sun/star/uno/XInterface.idl>
module ooo { module vba { module msforms {
struct ReturnBoolean
interface XReturnSingle
{
boolean Value;
[attribute] float Value;
};
}; }; };
......@@ -58,8 +58,6 @@
#include <com/sun/star/awt/XRadioButton.hpp>
#include <com/sun/star/awt/XListBox.hpp>
#include <ooo/vba/msforms/ReturnInteger.hpp>
#include <sfx2/objsh.hxx>
#include <basic/sbstar.hxx>
#include <basic/basmgr.hxx>
......@@ -67,6 +65,7 @@
#include <basic/sbmod.hxx>
#include <basic/sbx.hxx>
#include <filter/msfilter/msvbahelper.hxx>
#include <vbahelper/vbareturntypes.hxx>
// for debug
#include <comphelper/anytostring.hxx>
......@@ -160,9 +159,8 @@ Sequence< Any > ooKeyPressedToVBAKeyPressed( const Sequence< Any >& params )
translatedParams.realloc(1);
msforms::ReturnInteger keyCode;
keyCode.Value = evt.KeyCode;
translatedParams[0] <<= keyCode;
Reference< msforms::XReturnInteger> xKeyCode = new ReturnInteger( sal_Int32( evt.KeyCode ) );
translatedParams[0] <<= xKeyCode;
return translatedParams;
}
......@@ -176,12 +174,11 @@ Sequence< Any > ooKeyPressedToVBAKeyUpDown( const Sequence< Any >& params )
translatedParams.realloc(2);
msforms::ReturnInteger keyCode;
Reference< msforms::XReturnInteger> xKeyCode = new ReturnInteger( evt.KeyCode );
sal_Int8 shift = sal::static_int_cast<sal_Int8>( evt.Modifiers );
// #TODO check whether values from OOO conform to values generated from vba
keyCode.Value = evt.KeyCode;
translatedParams[0] <<= keyCode;
translatedParams[0] <<= xKeyCode;
translatedParams[1] <<= shift;
return translatedParams;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment