blob: ab2661e1f4e04a57feadcf656db17370bbc59b94 [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef SVTOOLS_CONTROLACCESS_HXX
#define SVTOOLS_CONTROLACCESS_HXX
#include <svtools/fileview.hxx>
#include <vcl/lstbox.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include "pickercallbacks.hxx"
//.........................................................................
namespace svt
{
//.........................................................................
// --------------------------------------------------------------------
namespace InternalFilePickerElementIds
{
static const sal_Int16 PUSHBUTTON_HELP = (sal_Int16)0x1000;
static const sal_Int16 TOOLBOXBUTOON_DEFAULT_LOCATION = (sal_Int16)0x1001;
static const sal_Int16 TOOLBOXBUTOON_LEVEL_UP = (sal_Int16)0x1002;
static const sal_Int16 TOOLBOXBUTOON_NEW_FOLDER = (sal_Int16)0x1003;
static const sal_Int16 FIXEDTEXT_CURRENTFOLDER = (sal_Int16)0x1004;
}
// --------------------------------------------------------------------
/** implements the XControlAccess, XControlInformation and XFilePickerControlAccess for the file picker
*/
class OControlAccess
{
IFilePickerController* m_pFilePickerController;
SvtFileView* m_pFileView;
public:
OControlAccess( IFilePickerController* _pController, SvtFileView* _pFileView );
// XControlAccess implementation
void setControlProperty( const ::rtl::OUString& _rControlName, const ::rtl::OUString& _rControlProperty, const ::com::sun::star::uno::Any& _rValue );
::com::sun::star::uno::Any getControlProperty( const ::rtl::OUString& _rControlName, const ::rtl::OUString& _rControlProperty );
// XControlInformation implementation
::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedControls( );
::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedControlProperties( const ::rtl::OUString& _rControlName );
sal_Bool isControlSupported( const ::rtl::OUString& _rControlName );
sal_Bool isControlPropertySupported( const ::rtl::OUString& _rControlName, const ::rtl::OUString& _rControlProperty );
// XFilePickerControlAccess
void setValue( sal_Int16 _nId, sal_Int16 _nCtrlAction, const ::com::sun::star::uno::Any& _rValue );
::com::sun::star::uno::Any getValue( sal_Int16 _nId, sal_Int16 _nCtrlAction ) const;
void setLabel( sal_Int16 _nId, const ::rtl::OUString& _rValue );
::rtl::OUString getLabel( sal_Int16 _nId ) const;
void enableControl( sal_Int16 _nId, sal_Bool _bEnable );
static void setHelpURL( Window* _pControl, const ::rtl::OUString& _rURL, sal_Bool _bFileView );
static ::rtl::OUString getHelpURL( Window* _pControl, sal_Bool _bFileView );
private:
/** implements the various methods for setting properties on controls
@param _nControlId
the id of the control
@param _pControl
the affected control. Must be the same as referred by <arg>_nControlId</arg>, or NULL.
@param _nProperty
the property to set
See PROPERTY_FLAG_*
@param _rValue
the value to set
@param _bIgnoreIllegalArgument
if <FALSE/>, an exception will be thrown if the given value is of improper type
*/
void implSetControlProperty(
sal_Int16 _nControlId,
Control* _pControl, sal_Int16 _nProperty, const ::com::sun::star::uno::Any& _rValue,
sal_Bool _bIgnoreIllegalArgument = sal_True );
Control* implGetControl( const ::rtl::OUString& _rControlName, sal_Int16* _pId = NULL, sal_Int32* _pPropertyMask = NULL ) const SAL_THROW( (::com::sun::star::lang::IllegalArgumentException) );
/** implements the various methods for retrieving properties from controls
@param _pControl
the affected control
@PRECOND not <NULL/>
@param _nProperty
the property to retrieve
See PROPERTY_FLAG_*
@return
*/
::com::sun::star::uno::Any implGetControlProperty( Control* _pControl, sal_Int16 _nProperty ) const;
void implDoListboxAction( ListBox* _pListbox, sal_Int16 _nCtrlAction, const ::com::sun::star::uno::Any& _rValue );
};
//.........................................................................
} // namespace svt
//.........................................................................
#endif // SVTOOLS_CONTROLACCESS_HXX