michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- michael@0: * michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsBaseFilePicker_h__ michael@0: #define nsBaseFilePicker_h__ michael@0: michael@0: #include "nsISupports.h" michael@0: #include "nsIFilePicker.h" michael@0: #include "nsISimpleEnumerator.h" michael@0: #include "nsArrayEnumerator.h" michael@0: #include "nsCOMPtr.h" michael@0: michael@0: class nsIWidget; michael@0: michael@0: class nsBaseFilePicker : public nsIFilePicker michael@0: { michael@0: public: michael@0: nsBaseFilePicker(); michael@0: virtual ~nsBaseFilePicker(); michael@0: michael@0: NS_IMETHOD Init(nsIDOMWindow *aParent, michael@0: const nsAString& aTitle, michael@0: int16_t aMode); michael@0: michael@0: NS_IMETHOD Open(nsIFilePickerShownCallback *aCallback); michael@0: NS_IMETHOD AppendFilters(int32_t filterMask); michael@0: NS_IMETHOD GetFilterIndex(int32_t *aFilterIndex); michael@0: NS_IMETHOD SetFilterIndex(int32_t aFilterIndex); michael@0: NS_IMETHOD GetFiles(nsISimpleEnumerator **aFiles); michael@0: NS_IMETHOD GetDisplayDirectory(nsIFile * *aDisplayDirectory); michael@0: NS_IMETHOD SetDisplayDirectory(nsIFile * aDisplayDirectory); michael@0: NS_IMETHOD GetAddToRecentDocs(bool *aFlag); michael@0: NS_IMETHOD SetAddToRecentDocs(bool aFlag); michael@0: NS_IMETHOD GetMode(int16_t *aMode); michael@0: michael@0: NS_IMETHOD GetDomfile(nsIDOMFile** aDomfile); michael@0: NS_IMETHOD GetDomfiles(nsISimpleEnumerator** aDomfiles); michael@0: michael@0: protected: michael@0: michael@0: virtual void InitNative(nsIWidget *aParent, const nsAString& aTitle) = 0; michael@0: michael@0: bool mAddToRecentDocs; michael@0: nsCOMPtr mDisplayDirectory; michael@0: int16_t mMode; michael@0: }; michael@0: michael@0: #endif // nsBaseFilePicker_h__