Bumping gaia.json for 2 gaia revision(s) a=gaia-bump
[gecko.git] / widget / gtk / nsFilePicker.h
blobd8b1841593570ce65f4c71ab39ae3dae2fa31f34
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
21 public:
22 nsFilePicker();
24 NS_DECL_ISUPPORTS
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);
41 // nsBaseFilePicker
42 virtual void InitNative(nsIWidget *aParent, const nsAString& aTitle);
44 static void Shutdown();
46 protected:
47 virtual ~nsFilePicker();
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;
76 #endif