1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef nsFilePicker_h__
7 #define nsFilePicker_h__
11 #include "nsBaseFilePicker.h"
14 #include "nsCOMArray.h"
19 class nsFilePicker
: public nsBaseFilePicker
26 // nsIFilePicker (less what's in nsBaseFilePicker)
27 NS_IMETHOD
Open(nsIFilePickerShownCallback
*aCallback
);
28 NS_IMETHODIMP
AppendFilters(int32_t aFilterMask
);
29 NS_IMETHODIMP
AppendFilter(const nsAString
& aTitle
, const nsAString
& aFilter
);
30 NS_IMETHODIMP
SetDefaultString(const nsAString
& aString
);
31 NS_IMETHODIMP
GetDefaultString(nsAString
& aString
);
32 NS_IMETHODIMP
SetDefaultExtension(const nsAString
& aExtension
);
33 NS_IMETHODIMP
GetDefaultExtension(nsAString
& aExtension
);
34 NS_IMETHODIMP
GetFilterIndex(int32_t *aFilterIndex
);
35 NS_IMETHODIMP
SetFilterIndex(int32_t aFilterIndex
);
36 NS_IMETHODIMP
GetFile(nsIFile
**aFile
);
37 NS_IMETHODIMP
GetFileURL(nsIURI
**aFileURL
);
38 NS_IMETHODIMP
GetFiles(nsISimpleEnumerator
**aFiles
);
39 NS_IMETHODIMP
Show(int16_t *aReturn
);
42 virtual void InitNative(nsIWidget
*aParent
, const nsAString
& aTitle
);
44 static void Shutdown();
47 virtual ~nsFilePicker();
49 void ReadValuesFromFileChooser(GtkWidget
*file_chooser
);
51 static void OnResponse(GtkWidget
* dialog
, gint response_id
,
53 static void OnDestroy(GtkWidget
* dialog
, gpointer user_data
);
54 void Done(GtkWidget
* dialog
, gint response_id
);
56 nsCOMPtr
<nsIWidget
> mParentWidget
;
57 nsCOMPtr
<nsIFilePickerShownCallback
> mCallback
;
58 nsCOMArray
<nsIFile
> mFiles
;
60 int16_t mSelectedType
;
67 nsString mDefaultExtension
;
69 nsTArray
<nsCString
> mFilters
;
70 nsTArray
<nsCString
> mFilterNames
;
73 static nsIFile
*mPrevDisplayDirectory
;