xref: /trunk/main/fpicker/source/office/OfficeFolderPicker.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef INCLUDED_SVT_FOLDERPICKER_HXX
28 #define INCLUDED_SVT_FOLDERPICKER_HXX
29 
30 #include <cppuhelper/implbase3.hxx>
31 #include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
32 #include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
33 #include <com/sun/star/lang/XServiceInfo.hpp>
34 #include <com/sun/star/lang/XSingleServiceFactory.hpp>
35 #include <com/sun/star/lang/DisposedException.hpp>
36 #include <com/sun/star/uno/XComponentContext.hpp>
37 #include "commonpicker.hxx"
38 
39 class Dialog;
40 
41 // class SvtFolderPicker ---------------------------------------------------
42 
43 typedef ::cppu::ImplHelper3 <   ::com::sun::star::ui::dialogs::XFolderPicker
44                             ,   ::com::sun::star::ui::dialogs::XAsynchronousExecutableDialog
45                             ,   ::com::sun::star::lang::XServiceInfo
46                             >   SvtFolderPicker_Base;
47 
48 class SvtFolderPicker   :public SvtFolderPicker_Base
49                         ,public ::svt::OCommonPicker
50 {
51 private:
52     ::rtl::OUString         m_aDescription;
53 
54     ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XDialogClosedListener >
55                             m_xListener;
56 
57     void                            prepareExecute( );
58     DECL_LINK(                      DialogClosedHdl, Dialog* );
59 
60 public:
61                                     SvtFolderPicker( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory >& xFactory );
62     virtual                        ~SvtFolderPicker();
63 
64     //------------------------------------------------------------------------------------
65     // disambiguate XInterface
66     //------------------------------------------------------------------------------------
67     DECLARE_XINTERFACE( )
68 
69     //------------------------------------------------------------------------------------
70     // disambiguate XTypeProvider
71     //------------------------------------------------------------------------------------
72     DECLARE_XTYPEPROVIDER( )
73 
74     //------------------------------------------------------------------------------------
75     // XFolderPicker functions
76     //------------------------------------------------------------------------------------
77 
78     virtual void SAL_CALL           setDisplayDirectory( const ::rtl::OUString& aDirectory ) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
79     virtual ::rtl::OUString SAL_CALL    getDisplayDirectory() throw( ::com::sun::star::uno::RuntimeException );
80     virtual ::rtl::OUString SAL_CALL    getDirectory() throw( ::com::sun::star::uno::RuntimeException );
81     virtual void SAL_CALL           setDescription( const ::rtl::OUString& aDescription ) throw ( ::com::sun::star::uno::RuntimeException );
82 
83     //------------------------------------------------------------------------------------
84     // XExecutableDialog functions
85     //------------------------------------------------------------------------------------
86     virtual void SAL_CALL setTitle( const ::rtl::OUString& _rTitle ) throw (::com::sun::star::uno::RuntimeException);
87     virtual sal_Int16 SAL_CALL execute(  ) throw (::com::sun::star::uno::RuntimeException);
88 
89     //------------------------------------------------------------------------------------
90     // XAsynchronousExecutableDialog functions
91     //------------------------------------------------------------------------------------
92     virtual void SAL_CALL       setDialogTitle( const ::rtl::OUString& _rTitle ) throw (::com::sun::star::uno::RuntimeException);
93     virtual void SAL_CALL       startExecuteModal( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XDialogClosedListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
94 
95     //------------------------------------------------------------------------------------
96     // XServiceInfo functions
97     //------------------------------------------------------------------------------------
98 
99     /* XServiceInfo */
100     virtual ::rtl::OUString SAL_CALL    getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
101     virtual sal_Bool SAL_CALL       supportsService( const ::rtl::OUString& sServiceName ) throw( ::com::sun::star::uno::RuntimeException );
102     virtual com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
103                                     getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
104 
105     /* Helper for XServiceInfo */
106     static com::sun::star::uno::Sequence< ::rtl::OUString > impl_getStaticSupportedServiceNames();
107     static ::rtl::OUString impl_getStaticImplementationName();
108 
109     /* Helper for registry */
110     static ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL impl_createInstance (
111         const ::com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxContext )
112         throw( com::sun::star::uno::Exception );
113 
114 protected:
115     //------------------------------------------------------------------------------------
116     // OCommonPicker overridables
117     //------------------------------------------------------------------------------------
118     virtual SvtFileDialog*  implCreateDialog( Window* _pParent );
119     virtual sal_Int16       implExecutePicker( );
120 };
121 
122 #endif // INCLUDED_SVT_FOLDERPICKER_HXX
123