| /************************************************************** |
| * |
| * 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 |
| |