summaryrefslogtreecommitdiff
path: root/fpicker/source/office/asyncfilepicker.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'fpicker/source/office/asyncfilepicker.hxx')
-rw-r--r--fpicker/source/office/asyncfilepicker.hxx121
1 files changed, 121 insertions, 0 deletions
diff --git a/fpicker/source/office/asyncfilepicker.hxx b/fpicker/source/office/asyncfilepicker.hxx
new file mode 100644
index 000000000000..2c3f8e292474
--- /dev/null
+++ b/fpicker/source/office/asyncfilepicker.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: asyncfilepicker.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SVTOOLS_SOURCE_FILEPICKER_ASYNCFILEPICKER_HXX
+#define SVTOOLS_SOURCE_FILEPICKER_ASYNCFILEPICKER_HXX
+
+/** === begin UNO includes === **/
+/** === end UNO includes === **/
+
+#include <tools/link.hxx>
+#include <tools/string.hxx>
+#include <rtl/ref.hxx>
+#include <rtl/ustring.hxx>
+#include <com/sun/star/uno/Sequence.h>
+
+class SvtFileView;
+class SvtFileDialog;
+
+typedef ::com::sun::star::uno::Sequence< ::rtl::OUString > OUStringList;
+
+//........................................................................
+namespace svt
+{
+//........................................................................
+
+
+ //====================================================================
+ //= AsyncPickerAction
+ //====================================================================
+ class AsyncPickerAction : public ::rtl::IReference
+ {
+ public:
+ enum Action
+ {
+ ePrevLevel,
+ eOpenURL,
+ eExecuteFilter
+ };
+
+ private:
+ mutable oslInterlockedCount m_refCount;
+ Action m_eAction;
+ SvtFileView* m_pView;
+ SvtFileDialog* m_pDialog;
+ String m_sURL;
+ String m_sFileName;
+ bool m_bRunning;
+
+ public:
+ AsyncPickerAction( SvtFileDialog* _pDialog, SvtFileView* _pView, const Action _eAction );
+
+ /** executes the action
+
+ @param _nMinTimeout
+ the minimum timeout to wait, in milliseconds. If negative, the action will we done
+ synchronously. If between 0 and 999, it will be corrected to 1000, means the
+ smallest valid value is 1000 (which equals one second).
+ @param _nMaxTimeout
+ The maximum time to wait for a result, in milliseconds. If there's no result of
+ the action within the given time frame, the action will be cancelled.
+ If smaller than or equal to <arg>_nMinTimeout</arg>, it will be corrected to
+ <arg>_nMinTimeout</arg> + 30000.
+ */
+ void execute(
+ const String& _rURL,
+ const String& _rFilter,
+ sal_Int32 _nMinTimeout,
+ sal_Int32 _nMaxTimeout,
+ const OUStringList& rBlackList = OUStringList() );
+
+ /// cancels the running action
+ void cancel();
+
+ // IReference overridables
+ virtual oslInterlockedCount SAL_CALL acquire();
+ virtual oslInterlockedCount SAL_CALL release();
+
+ protected:
+ virtual ~AsyncPickerAction();
+
+ private:
+ DECL_LINK( OnActionDone, void* );
+
+ AsyncPickerAction(); // never implemented
+ AsyncPickerAction( const AsyncPickerAction& ); // never implemented
+ AsyncPickerAction& operator=( const AsyncPickerAction& ); // never implemented
+ };
+
+//........................................................................
+} // namespace svt
+//........................................................................
+
+#endif // SVTOOLS_SOURCE_FILEPICKER_ASYNCFILEPICKER_HXX
+