1*10ce8018SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*10ce8018SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*10ce8018SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*10ce8018SAndrew Rist  * distributed with this work for additional information
6*10ce8018SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*10ce8018SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*10ce8018SAndrew Rist  * "License"); you may not use this file except in compliance
9*10ce8018SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*10ce8018SAndrew Rist  *
11*10ce8018SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*10ce8018SAndrew Rist  *
13*10ce8018SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*10ce8018SAndrew Rist  * software distributed under the License is distributed on an
15*10ce8018SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*10ce8018SAndrew Rist  * KIND, either express or implied.  See the License for the
17*10ce8018SAndrew Rist  * specific language governing permissions and limitations
18*10ce8018SAndrew Rist  * under the License.
19*10ce8018SAndrew Rist  *
20*10ce8018SAndrew Rist  *************************************************************/
21*10ce8018SAndrew Rist 
22*10ce8018SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SALGTKFILEPICKER_HXX_
25cdf0e10cSrcweir #define _SALGTKFILEPICKER_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir //_______________________________________________________________________________________________________________________
28cdf0e10cSrcweir //	includes of other projects
29cdf0e10cSrcweir //_______________________________________________________________________________________________________________________
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #include <cppuhelper/compbase10.hxx>
32cdf0e10cSrcweir #include <com/sun/star/lang/XInitialization.hpp>
33cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
34cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilterManager.hpp>
35cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp>
36cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
37cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePreview.hpp>
38cdf0e10cSrcweir #include <com/sun/star/beans/StringPair.hpp>
39cdf0e10cSrcweir 
40cdf0e10cSrcweir #ifndef _SALGTKPICKER_HXX_
41cdf0e10cSrcweir #include "SalGtkPicker.hxx"
42cdf0e10cSrcweir #endif
43cdf0e10cSrcweir 
44cdf0e10cSrcweir #include <memory>
45cdf0e10cSrcweir 
46cdf0e10cSrcweir #ifndef _RTL_USTRING_H_
47cdf0e10cSrcweir #include <rtl/ustring.hxx>
48cdf0e10cSrcweir #endif
49cdf0e10cSrcweir 
50cdf0e10cSrcweir #include <list>
51cdf0e10cSrcweir 
52cdf0e10cSrcweir //----------------------------------------------------------
53cdf0e10cSrcweir // Implementation class for the XFilePicker Interface
54cdf0e10cSrcweir //----------------------------------------------------------
55cdf0e10cSrcweir 
56cdf0e10cSrcweir //----------------------------------------------------------
57cdf0e10cSrcweir // forward declarations
58cdf0e10cSrcweir //----------------------------------------------------------
59cdf0e10cSrcweir 
60cdf0e10cSrcweir using namespace rtl;
61cdf0e10cSrcweir 
62cdf0e10cSrcweir struct FilterEntry;
63cdf0e10cSrcweir struct ElementEntry_Impl;
64cdf0e10cSrcweir 
65cdf0e10cSrcweir typedef ::std::list < FilterEntry >		FilterList;
66cdf0e10cSrcweir typedef ::std::list < ElementEntry_Impl >	ElementList;
67cdf0e10cSrcweir typedef ::com::sun::star::beans::StringPair	UnoFilterEntry;
68cdf0e10cSrcweir typedef ::com::sun::star::uno::Sequence< UnoFilterEntry >	UnoFilterList;	// can be transported more effectively
69cdf0e10cSrcweir 
70cdf0e10cSrcweir 
71cdf0e10cSrcweir //----------------------------------------------------------
72cdf0e10cSrcweir // class declaration
73cdf0e10cSrcweir //----------------------------------------------------------
74cdf0e10cSrcweir 
75cdf0e10cSrcweir class SalGtkFilePicker :
76cdf0e10cSrcweir         public SalGtkPicker,
77cdf0e10cSrcweir 	public cppu::WeakComponentImplHelper10<
78cdf0e10cSrcweir         ::com::sun::star::ui::dialogs::XFilterManager,
79cdf0e10cSrcweir         ::com::sun::star::ui::dialogs::XFilterGroupManager,
80cdf0e10cSrcweir         ::com::sun::star::ui::dialogs::XFilePickerControlAccess,
81cdf0e10cSrcweir         ::com::sun::star::ui::dialogs::XFilePickerNotifier,
82cdf0e10cSrcweir         ::com::sun::star::ui::dialogs::XFilePreview,
83cdf0e10cSrcweir         ::com::sun::star::ui::dialogs::XFilePicker2,
84cdf0e10cSrcweir 	::com::sun::star::lang::XInitialization,
85cdf0e10cSrcweir         ::com::sun::star::util::XCancellable,
86cdf0e10cSrcweir 	::com::sun::star::lang::XEventListener,
87cdf0e10cSrcweir 	::com::sun::star::lang::XServiceInfo >
88cdf0e10cSrcweir {
89cdf0e10cSrcweir 	public:
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 		// constructor
92cdf0e10cSrcweir 		SalGtkFilePicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
93cdf0e10cSrcweir 
94cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
95cdf0e10cSrcweir 		// XFilePickerNotifier
96cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
97cdf0e10cSrcweir 
98cdf0e10cSrcweir 		virtual void SAL_CALL addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
99cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
100cdf0e10cSrcweir 		virtual void SAL_CALL removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
101cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
104cdf0e10cSrcweir 		// XExecutableDialog functions
105cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
106cdf0e10cSrcweir 
107cdf0e10cSrcweir 		virtual void SAL_CALL setTitle( const ::rtl::OUString& aTitle )
108cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 		virtual sal_Int16 SAL_CALL execute(  )
111cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
112cdf0e10cSrcweir 
113cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
114cdf0e10cSrcweir 		// XFilePicker functions
115cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 		virtual void SAL_CALL setMultiSelectionMode( sal_Bool bMode )
118cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
119cdf0e10cSrcweir 
120cdf0e10cSrcweir 		virtual void SAL_CALL setDefaultName( const ::rtl::OUString& aName )
121cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
122cdf0e10cSrcweir 
123cdf0e10cSrcweir 		virtual void SAL_CALL setDisplayDirectory( const ::rtl::OUString& aDirectory )
124cdf0e10cSrcweir 			throw( com::sun::star::lang::IllegalArgumentException,
125cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getDisplayDirectory(  )
128cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles(  )
131cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
132cdf0e10cSrcweir 
133cdf0e10cSrcweir  		//------------------------------------------------------------------------------------
134cdf0e10cSrcweir 		// XFilePicker2 functions
135cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
136cdf0e10cSrcweir 
137cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSelectedFiles()
138cdf0e10cSrcweir 				throw (::com::sun::star::uno::RuntimeException);
139cdf0e10cSrcweir 
140cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
141cdf0e10cSrcweir 		// XFilterManager functions
142cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
143cdf0e10cSrcweir 
144cdf0e10cSrcweir 		virtual void SAL_CALL appendFilter( const ::rtl::OUString& aTitle, const ::rtl::OUString& aFilter )
145cdf0e10cSrcweir 			throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
146cdf0e10cSrcweir 
147cdf0e10cSrcweir 		virtual void SAL_CALL setCurrentFilter( const ::rtl::OUString& aTitle )
148cdf0e10cSrcweir 			throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
149cdf0e10cSrcweir 
150cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getCurrentFilter(  )
151cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
152cdf0e10cSrcweir 
153cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
154cdf0e10cSrcweir 		// XFilterGroupManager functions
155cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
156cdf0e10cSrcweir 
157cdf0e10cSrcweir 		virtual void SAL_CALL appendFilterGroup( const ::rtl::OUString& sGroupTitle, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair >& aFilters )
158cdf0e10cSrcweir 		        throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
161cdf0e10cSrcweir 		// XFilePickerControlAccess functions
162cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
163cdf0e10cSrcweir 
164cdf0e10cSrcweir 		virtual void SAL_CALL setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const ::com::sun::star::uno::Any& aValue )
165cdf0e10cSrcweir 		        throw (::com::sun::star::uno::RuntimeException);
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Any SAL_CALL getValue( sal_Int16 aControlId, sal_Int16 aControlAction )
168cdf0e10cSrcweir 		        throw (::com::sun::star::uno::RuntimeException);
169cdf0e10cSrcweir 
170cdf0e10cSrcweir 		virtual void SAL_CALL enableControl( sal_Int16 nControlId, sal_Bool bEnable )
171cdf0e10cSrcweir 			throw(::com::sun::star::uno::RuntimeException );
172cdf0e10cSrcweir 
173cdf0e10cSrcweir 		virtual void SAL_CALL setLabel( sal_Int16 nControlId, const ::rtl::OUString& aLabel )
174cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getLabel( sal_Int16 nControlId )
177cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
178cdf0e10cSrcweir 
179cdf0e10cSrcweir 		//------------------------------------------------
180cdf0e10cSrcweir 		// XFilePreview
181cdf0e10cSrcweir 		//------------------------------------------------
182cdf0e10cSrcweir 
183cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSupportedImageFormats(  )
184cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
185cdf0e10cSrcweir 
186cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getTargetColorDepth(  )
187cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
188cdf0e10cSrcweir 
189cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAvailableWidth(  )
190cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
191cdf0e10cSrcweir 
192cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAvailableHeight(  )
193cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
194cdf0e10cSrcweir 
195cdf0e10cSrcweir 		virtual void SAL_CALL setImage( sal_Int16 aImageFormat, const ::com::sun::star::uno::Any& aImage )
196cdf0e10cSrcweir 			throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
197cdf0e10cSrcweir 
198cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL setShowState( sal_Bool bShowState )
199cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
200cdf0e10cSrcweir 
201cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL getShowState(  )
202cdf0e10cSrcweir 			throw (::com::sun::star::uno::RuntimeException);
203cdf0e10cSrcweir 
204cdf0e10cSrcweir 		//------------------------------------------------
205cdf0e10cSrcweir 		// XInitialization
206cdf0e10cSrcweir 		//------------------------------------------------
207cdf0e10cSrcweir 
208cdf0e10cSrcweir 		virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
209cdf0e10cSrcweir 			throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
210cdf0e10cSrcweir 
211cdf0e10cSrcweir 		//------------------------------------------------
212cdf0e10cSrcweir 		// XCancellable
213cdf0e10cSrcweir 		//------------------------------------------------
214cdf0e10cSrcweir 
215cdf0e10cSrcweir 		virtual void SAL_CALL cancel( )
216cdf0e10cSrcweir 			throw( ::com::sun::star::uno::RuntimeException );
217cdf0e10cSrcweir 
218cdf0e10cSrcweir 		//------------------------------------------------
219cdf0e10cSrcweir 		// XEventListener
220cdf0e10cSrcweir 		//------------------------------------------------
221cdf0e10cSrcweir 
222cdf0e10cSrcweir         using cppu::WeakComponentImplHelperBase::disposing;
223cdf0e10cSrcweir 		virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent )
224cdf0e10cSrcweir 			throw(::com::sun::star::uno::RuntimeException);
225cdf0e10cSrcweir 
226cdf0e10cSrcweir 		//------------------------------------------------
227cdf0e10cSrcweir 		// XServiceInfo
228cdf0e10cSrcweir 		//------------------------------------------------
229cdf0e10cSrcweir 
230cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getImplementationName(	 )
231cdf0e10cSrcweir 			throw(::com::sun::star::uno::RuntimeException);
232cdf0e10cSrcweir 
233cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
234cdf0e10cSrcweir 			throw(::com::sun::star::uno::RuntimeException);
235cdf0e10cSrcweir 
236cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  )
237cdf0e10cSrcweir 			throw(::com::sun::star::uno::RuntimeException);
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
240cdf0e10cSrcweir 		// FilePicker Event functions
241cdf0e10cSrcweir 		//------------------------------------------------------------------------------------
242cdf0e10cSrcweir 
243cdf0e10cSrcweir 		void SAL_CALL fileSelectionChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
244cdf0e10cSrcweir 		void SAL_CALL directoryChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
245cdf0e10cSrcweir 		rtl::OUString SAL_CALL helpRequested( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent ) const;
246cdf0e10cSrcweir 		void SAL_CALL controlStateChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir 	private:
249cdf0e10cSrcweir 		// prevent copy and assignment
250cdf0e10cSrcweir 		SalGtkFilePicker( const SalGtkFilePicker& );
251cdf0e10cSrcweir 		SalGtkFilePicker& operator=( const SalGtkFilePicker& );
252cdf0e10cSrcweir 
253cdf0e10cSrcweir 		sal_Bool FilterNameExists( const ::rtl::OUString& rTitle );
254cdf0e10cSrcweir 		sal_Bool FilterNameExists( const UnoFilterList& _rGroupedFilters );
255cdf0e10cSrcweir 
256cdf0e10cSrcweir 		void ensureFilterList( const ::rtl::OUString& _rInitialCurrentFilter );
257cdf0e10cSrcweir 
258cdf0e10cSrcweir 		// to instanciate own services
259cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceMgr;
260cdf0e10cSrcweir 
261cdf0e10cSrcweir 	private:
262cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >
263cdf0e10cSrcweir             m_xListener;
264cdf0e10cSrcweir         ::rtl::OUString msPlayLabel;
265cdf0e10cSrcweir 		FilterList *m_pFilterList;
266cdf0e10cSrcweir 		GtkWidget  *m_pVBox;
267cdf0e10cSrcweir 
268cdf0e10cSrcweir         GtkWidget  *m_pFilterExpander;
269cdf0e10cSrcweir         GtkWidget  *m_pFilterView;
270cdf0e10cSrcweir         GtkListStore *m_pFilterStore;
271cdf0e10cSrcweir 
272cdf0e10cSrcweir 		enum {
273cdf0e10cSrcweir 			AUTOEXTENSION,
274cdf0e10cSrcweir 			PASSWORD,
275cdf0e10cSrcweir 			FILTEROPTIONS,
276cdf0e10cSrcweir 			READONLY,
277cdf0e10cSrcweir 			LINK,
278cdf0e10cSrcweir 			PREVIEW,
279cdf0e10cSrcweir 			SELECTION,
280cdf0e10cSrcweir 			TOGGLE_LAST
281cdf0e10cSrcweir 		      };
282cdf0e10cSrcweir 
283cdf0e10cSrcweir 		GtkWidget  *m_pToggles[ TOGGLE_LAST ];
284cdf0e10cSrcweir 
285cdf0e10cSrcweir 		bool mbToggleVisibility[TOGGLE_LAST];
286cdf0e10cSrcweir 		bool mbToggleChecked[TOGGLE_LAST];
287cdf0e10cSrcweir 
288cdf0e10cSrcweir 		static const rtl::OString m_ToggleLabels[TOGGLE_LAST];
289cdf0e10cSrcweir 
290cdf0e10cSrcweir 		enum {
291cdf0e10cSrcweir 			PLAY,
292cdf0e10cSrcweir 			BUTTON_LAST };
293cdf0e10cSrcweir 
294cdf0e10cSrcweir 		GtkWidget  *m_pButtons[ BUTTON_LAST ];
295cdf0e10cSrcweir 
296cdf0e10cSrcweir 		enum {
297cdf0e10cSrcweir 			VERSION,
298cdf0e10cSrcweir 			TEMPLATE,
299cdf0e10cSrcweir 			IMAGE_TEMPLATE,
300cdf0e10cSrcweir 			LIST_LAST
301cdf0e10cSrcweir 		      };
302cdf0e10cSrcweir 
303cdf0e10cSrcweir 		GtkWidget *m_pHBoxs[ LIST_LAST ];
304cdf0e10cSrcweir         GtkWidget *m_pAligns[ LIST_LAST ];
305cdf0e10cSrcweir 		GtkWidget *m_pLists[ LIST_LAST ];
306cdf0e10cSrcweir 		GtkWidget *m_pListLabels[ LIST_LAST ];
307cdf0e10cSrcweir 		bool mbListVisibility[ LIST_LAST ];
308cdf0e10cSrcweir 		bool mbButtonVisibility[ BUTTON_LAST ];
309cdf0e10cSrcweir         gulong mnHID_FolderChange;
310cdf0e10cSrcweir         gulong mnHID_SelectionChange;
311cdf0e10cSrcweir 
312cdf0e10cSrcweir 		::rtl::OUString	m_aCurrentFilter;
313e5d951fcSPedro Giffuni 		::rtl::OUString	m_aInitialFilter;
314cdf0e10cSrcweir 
315cdf0e10cSrcweir         bool bVersionWidthUnset;
316cdf0e10cSrcweir         sal_Bool mbPreviewState;
317cdf0e10cSrcweir         gulong mHID_Preview;
318cdf0e10cSrcweir         GtkWidget* m_pPreview;
319e5d951fcSPedro Giffuni 		GtkFileFilter* m_pPseudoFilter;
320cdf0e10cSrcweir         sal_Int32 m_PreviewImageWidth;
321cdf0e10cSrcweir         sal_Int32 m_PreviewImageHeight;
322cdf0e10cSrcweir 
323cdf0e10cSrcweir         GtkWidget  *getWidget( sal_Int16 nControlId, GType *pType = NULL);
324cdf0e10cSrcweir 
325cdf0e10cSrcweir 		void SetCurFilter( const OUString& rFilter );
326cdf0e10cSrcweir 		void SetFilters();
327cdf0e10cSrcweir         void UpdateFilterfromUI();
328cdf0e10cSrcweir 
329cdf0e10cSrcweir         void implChangeType( GtkTreeSelection *selection );
330e5d951fcSPedro Giffuni 		GtkFileFilter * implAddFilter( const OUString& rFilter, const OUString& rType );
331e5d951fcSPedro Giffuni 		void implAddFilterGroup( const OUString& rFilter,
332cdf0e10cSrcweir 					 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair>& _rFilters );
333cdf0e10cSrcweir         void updateCurrentFilterFromName(const gchar* filtername);
334cdf0e10cSrcweir         void unselect_type();
335cdf0e10cSrcweir         void InitialMapping();
336cdf0e10cSrcweir 
337cdf0e10cSrcweir 		void HandleSetListValue(GtkComboBox *pWidget, sal_Int16 nControlAction,
338cdf0e10cSrcweir             const ::com::sun::star::uno::Any& rValue);
339cdf0e10cSrcweir 		::com::sun::star::uno::Any HandleGetListValue(GtkComboBox *pWidget, sal_Int16 nControlAction) const;
340cdf0e10cSrcweir 
341cdf0e10cSrcweir         static void expander_changed_cb( GtkExpander *expander, SalGtkFilePicker *pobjFP );
342cdf0e10cSrcweir 		static void preview_toggled_cb (GtkObject *cb, SalGtkFilePicker *pobjFP);
343cdf0e10cSrcweir 		static void filter_changed_cb (GtkFileChooser *file_chooser, GParamSpec *pspec, SalGtkFilePicker *pobjFP);
344cdf0e10cSrcweir         static void type_changed_cb( GtkTreeSelection *selection, SalGtkFilePicker *pobjFP );
345cdf0e10cSrcweir 		static void folder_changed_cb (GtkFileChooser *file_chooser, SalGtkFilePicker *pobjFP);
346cdf0e10cSrcweir 		static void selection_changed_cb (GtkFileChooser *file_chooser, SalGtkFilePicker *pobjFP);
347cdf0e10cSrcweir 		static void update_preview_cb (GtkFileChooser *file_chooser, SalGtkFilePicker *pobjFP);
348cdf0e10cSrcweir         static void dialog_mapped_cb(GtkWidget *widget, SalGtkFilePicker *pobjFP);
349cdf0e10cSrcweir 	public:
350cdf0e10cSrcweir 		 virtual ~SalGtkFilePicker();
351cdf0e10cSrcweir 
352cdf0e10cSrcweir };
353cdf0e10cSrcweir /* vi:set tabstop=4 shiftwidth=4 expandtab: */
354cdf0e10cSrcweir #endif // _SALGTKFILEPICKER_HXX_
355