LibreOffice Module fpicker (master) 1
SalAquaFilePicker.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
23#include <com/sun/star/lang/XInitialization.hpp>
24#include <com/sun/star/lang/XServiceInfo.hpp>
25#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
26#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
27#include <com/sun/star/beans/StringPair.hpp>
28
29#include "SalAquaPicker.hxx"
30
31#include <rtl/ustring.hxx>
32#include "FilterHelper.hxx"
34
35// Implementation class for the XFilePicker Interface
36
37typedef ::cppu::WeakComponentImplHelper <
38 css::ui::dialogs::XFilePicker3,
39 css::ui::dialogs::XFilePickerControlAccess,
40 css::lang::XInitialization,
41 css::lang::XServiceInfo > SalAquaFilePicker_Base;
42
44 public SalAquaPicker,
46{
47public:
48
49 // constructor
51
52 // XFilePickerNotifier
53
54 virtual void SAL_CALL addFilePickerListener( const css::uno::Reference< css::ui::dialogs::XFilePickerListener >& xListener ) override;
55 virtual void SAL_CALL removeFilePickerListener( const css::uno::Reference< css::ui::dialogs::XFilePickerListener >& xListener ) override;
56
57 // XExecutableDialog functions
58
59 virtual void SAL_CALL setTitle( const OUString& aTitle ) override;
60
61 virtual sal_Int16 SAL_CALL execute( ) override;
62
63 // XFilePicker functions
64
65 virtual void SAL_CALL setMultiSelectionMode( sal_Bool bMode ) override;
66
67 virtual void SAL_CALL setDefaultName( const OUString& aName ) override;
68
69 virtual void SAL_CALL setDisplayDirectory( const OUString& aDirectory ) override;
70
71 virtual OUString SAL_CALL getDisplayDirectory( ) override;
72
73 virtual css::uno::Sequence< OUString > SAL_CALL getFiles( ) override;
74
75 virtual css::uno::Sequence< OUString > SAL_CALL getSelectedFiles( ) override;
76
77 // XFilterManager functions
78
79 virtual void SAL_CALL appendFilter( const OUString& aTitle, const OUString& aFilter ) override;
80
81 virtual void SAL_CALL setCurrentFilter( const OUString& aTitle ) override;
82
83 virtual OUString SAL_CALL getCurrentFilter( ) override;
84
85 // XFilterGroupManager functions
86
87 virtual void SAL_CALL appendFilterGroup( const OUString& sGroupTitle, const css::uno::Sequence< css::beans::StringPair >& aFilters ) override;
88
89 // XFilePickerControlAccess functions
90
91 virtual void SAL_CALL setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any& aValue ) override;
92
93 virtual css::uno::Any SAL_CALL getValue( sal_Int16 aControlId, sal_Int16 aControlAction ) override;
94
95 virtual void SAL_CALL enableControl( sal_Int16 nControlId, sal_Bool bEnable ) override;
96
97 virtual void SAL_CALL setLabel( sal_Int16 nControlId, const OUString& aLabel ) override;
98
99 virtual OUString SAL_CALL getLabel( sal_Int16 nControlId ) override;
100
101 // XInitialization
102
103 virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
104
105 // XCancellable
106
107 virtual void SAL_CALL cancel( ) override;
108
109 // XEventListener
110
111 using cppu::WeakComponentImplHelperBase::disposing;
113 virtual void disposing( const css::lang::EventObject& aEvent );
114
115 // XServiceInfo
116
117 virtual OUString SAL_CALL getImplementationName( ) override;
118
119 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
120
121 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
122
123 // FilePicker Event functions
124
125 void fileSelectionChanged( css::ui::dialogs::FilePickerEvent aEvent );
126 void directoryChanged( css::ui::dialogs::FilePickerEvent aEvent );
127 // OUString SAL_CALL helpRequested( css::ui::dialogs::FilePickerEvent aEvent ) const;
128 void controlStateChanged( css::ui::dialogs::FilePickerEvent aEvent );
129 void dialogSizeChanged( );
130
132 return m_pDelegate;
133 }
134
135 OUString const & getSaveFileName() {
136 return m_sSaveFileName;
137 }
138
139private:
142
143 virtual void ensureFilterHelper();
144
145 css::uno::Reference< css::ui::dialogs::XFilePickerListener > m_xListener;
149
150 void updateFilterUI();
152
153public:
154
155 virtual ~SalAquaFilePicker() override;
156
158};
159
160/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_Int16 nControlId
::cppu::WeakComponentImplHelper< css::ui::dialogs::XFilePicker3, css::ui::dialogs::XFilePickerControlAccess, css::lang::XInitialization, css::lang::XServiceInfo > SalAquaFilePicker_Base
AnyEventRef aEvent
virtual void SAL_CALL appendFilter(const OUString &aTitle, const OUString &aFilter) override
SalAquaFilePicker & operator=(const SalAquaFilePicker &)=delete
AquaFilePickerDelegate * m_pDelegate
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
virtual OUString SAL_CALL getDisplayDirectory() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void SAL_CALL addFilePickerListener(const css::uno::Reference< css::ui::dialogs::XFilePickerListener > &xListener) override
virtual void disposing(const css::lang::EventObject &aEvent)
virtual void SAL_CALL setDefaultName(const OUString &aName) override
virtual void SAL_CALL removeFilePickerListener(const css::uno::Reference< css::ui::dialogs::XFilePickerListener > &xListener) override
virtual sal_Int16 SAL_CALL execute() override
virtual void SAL_CALL setMultiSelectionMode(sal_Bool bMode) override
SalAquaFilePicker(const SalAquaFilePicker &)=delete
virtual void SAL_CALL setValue(sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any &aValue) override
virtual css::uno::Sequence< OUString > SAL_CALL getFiles() override
virtual OUString SAL_CALL getCurrentFilter() override
void directoryChanged(css::ui::dialogs::FilePickerEvent aEvent)
virtual void SAL_CALL appendFilterGroup(const OUString &sGroupTitle, const css::uno::Sequence< css::beans::StringPair > &aFilters) override
virtual void SAL_CALL setLabel(sal_Int16 nControlId, const OUString &aLabel) override
virtual css::uno::Any SAL_CALL getValue(sal_Int16 aControlId, sal_Int16 aControlAction) override
virtual void SAL_CALL setDisplayDirectory(const OUString &aDirectory) override
virtual void SAL_CALL cancel() override
virtual OUString SAL_CALL getLabel(sal_Int16 nControlId) override
OUString const & getSaveFileName()
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
FilterHelper * m_pFilterHelper
css::uno::Reference< css::ui::dialogs::XFilePickerListener > m_xListener
void controlStateChanged(css::ui::dialogs::FilePickerEvent aEvent)
virtual void SAL_CALL enableControl(sal_Int16 nControlId, sal_Bool bEnable) override
virtual OUString SAL_CALL getImplementationName() override
virtual void SAL_CALL setTitle(const OUString &aTitle) override
virtual void SAL_CALL setCurrentFilter(const OUString &aTitle) override
void fileSelectionChanged(css::ui::dialogs::FilePickerEvent aEvent)
virtual css::uno::Sequence< OUString > SAL_CALL getSelectedFiles() override
virtual ~SalAquaFilePicker() override
AquaFilePickerDelegate * getDelegate()
virtual void ensureFilterHelper()
Sequence< PropertyValue > aArguments
OUString aName
unsigned char sal_Bool
OUString aLabel