Index: chrome/browser/shell_dialogs.h |
=================================================================== |
--- chrome/browser/shell_dialogs.h (revision 13572) |
+++ chrome/browser/shell_dialogs.h (working copy) |
@@ -15,9 +15,6 @@ |
class ChromeFont; |
-// Helpers to show certain types of Windows shell dialogs in a way that doesn't |
-// block the UI of the entire app. |
- |
// A base class for shell dialogs. |
class BaseShellDialog { |
public: |
@@ -71,36 +68,50 @@ |
// object will have no reference (refcount is 0). |
static SelectFileDialog* Create(Listener* listener); |
+ // Holds information about allowed extensions on a file save dialog. |
+ // |extensions| is a list of allowed extensions. For example, it might be |
+ // { { "htm", "html" }, { "txt" } }. Only pass more than one extension |
+ // in the inner vector if the extensions are equivalent. Do NOT include |
+ // leading periods. |
+ // |extension_description_overrides| overrides the system descriptions of the |
+ // specified extensions. Entries correspond to |extensions|; if left blank |
+ // the system descriptions will be used. |
+ // |include_all_files| specifies whether all files (e.g. *.*) will be allowed |
+ // in the file filtering. |
+ struct FileTypeInfo { |
+ std::vector<std::vector<FilePath::StringType> > extensions; |
+ std::vector<string16> extension_description_overrides; |
+ bool include_all_files; |
+ }; |
+ |
// Selects a file. This will start displaying the dialog box. This will also |
// block the calling window until the dialog box is complete. The listener |
// associated with this object will be notified when the selection is |
// complete. |
// |type| is the type of file dialog to be shown, see Type enumeration above. |
// |title| is the title to be displayed in the dialog. If this string is |
- // empty, the default title is used. |
+ // empty, the default title is used. |
// |default_path| is the default path and suggested file name to be shown in |
- // the dialog. This only works for SELECT_SAVEAS_FILE and SELECT_OPEN_FILE. |
- // Can be an empty string to indicate Windows should choose the default to |
- // show. |
- // |filter| is a null (\0) separated list of alternating filter description |
- // and filters and terminated with two nulls. |
- // |filter_index| is the 1-based index into the filter list in |filter|. |
- // Specify 0 if you don't need filters, or if you only need the default |
- // (first filter) behavior. |
+ // the dialog. This only works for SELECT_SAVEAS_FILE and SELECT_OPEN_FILE. |
+ // Can be an empty string to indicate the platform default. |
+ // |file_types| holds the infomation about the file types allowed. Pass NULL |
+ // to get no special behavior |
+ // |file_type_index| is the 1-based index into the file type list in |
+ // |file_types|. Specify 0 if you don't need to specify extension behavior. |
+ // |default_extension| is the default extension to add to the file if the |
+ // user doesn't type one. This should NOT include the '.'. On Windows, if |
+ // you specify this you must also specify |file_types|. |
// |owning_window| is the window the dialog is modal to, or NULL for a |
- // modeless dialog. |
- // |default_extension| is the default extension to add to the file if the |
- // user doesn't type one. This should NOT include the '.'. If you specify |
- // this you must also specify a filter. |
+ // modeless dialog. |
// |params| is data from the calling context which will be passed through to |
- // the listener. Can be NULL. |
+ // the listener. Can be NULL. |
// NOTE: only one instance of any shell dialog can be shown per owning_window |
// at a time (for obvious reasons). |
virtual void SelectFile(Type type, |
const string16& title, |
const FilePath& default_path, |
- const std::wstring& filter, |
- int filter_index, |
+ const FileTypeInfo* file_types, |
+ int file_type_index, |
const FilePath::StringType& default_extension, |
gfx::NativeWindow owning_window, |
void* params) = 0; |