Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
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__
9 #include <gtk/gtk.h>
11 #include "nsBaseFilePicker.h"
12 #include "nsString.h"
13 #include "nsTArray.h"
14 #include "nsCOMArray.h"
16 class nsIWidget;
17 class nsIFile;
19 class nsFilePicker : public nsBaseFilePicker
20 {
21 public:
22 nsFilePicker();
23 virtual ~nsFilePicker();
25 NS_DECL_ISUPPORTS
27 // nsIFilePicker (less what's in nsBaseFilePicker)
28 NS_IMETHOD Open(nsIFilePickerShownCallback *aCallback);
29 NS_IMETHODIMP AppendFilters(int32_t aFilterMask);
30 NS_IMETHODIMP AppendFilter(const nsAString& aTitle, const nsAString& aFilter);
31 NS_IMETHODIMP SetDefaultString(const nsAString& aString);
32 NS_IMETHODIMP GetDefaultString(nsAString& aString);
33 NS_IMETHODIMP SetDefaultExtension(const nsAString& aExtension);
34 NS_IMETHODIMP GetDefaultExtension(nsAString& aExtension);
35 NS_IMETHODIMP GetFilterIndex(int32_t *aFilterIndex);
36 NS_IMETHODIMP SetFilterIndex(int32_t aFilterIndex);
37 NS_IMETHODIMP GetFile(nsIFile **aFile);
38 NS_IMETHODIMP GetFileURL(nsIURI **aFileURL);
39 NS_IMETHODIMP GetFiles(nsISimpleEnumerator **aFiles);
40 NS_IMETHODIMP Show(int16_t *aReturn);
42 // nsBaseFilePicker
43 virtual void InitNative(nsIWidget *aParent, const nsAString& aTitle);
45 static void Shutdown();
47 protected:
49 void ReadValuesFromFileChooser(GtkWidget *file_chooser);
51 static void OnResponse(GtkWidget* dialog, gint response_id,
52 gpointer user_data);
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;
61 int16_t mResult;
62 bool mRunning;
63 bool mAllowURLs;
64 nsCString mFileURL;
65 nsString mTitle;
66 nsString mDefault;
67 nsString mDefaultExtension;
69 nsTArray<nsCString> mFilters;
70 nsTArray<nsCString> mFilterNames;
72 private:
73 static nsIFile *mPrevDisplayDirectory;
74 };
76 #endif