| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <gtk/gtk.h> | 5 #include <gtk/gtk.h> |
| 6 #include <map> | 6 #include <map> |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 // Xlib defines RootWindow | 10 // Xlib defines RootWindow |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 gtk_widget_destroy(dialog); | 377 gtk_widget_destroy(dialog); |
| 378 } | 378 } |
| 379 | 379 |
| 380 GtkWidget* SelectFileDialogImplGTK::CreateFileOpenHelper( | 380 GtkWidget* SelectFileDialogImplGTK::CreateFileOpenHelper( |
| 381 const std::string& title, | 381 const std::string& title, |
| 382 const base::FilePath& default_path, | 382 const base::FilePath& default_path, |
| 383 gfx::NativeWindow parent) { | 383 gfx::NativeWindow parent) { |
| 384 GtkWidget* dialog = | 384 GtkWidget* dialog = |
| 385 gtk_file_chooser_dialog_new(title.c_str(), NULL, | 385 gtk_file_chooser_dialog_new(title.c_str(), NULL, |
| 386 GTK_FILE_CHOOSER_ACTION_OPEN, | 386 GTK_FILE_CHOOSER_ACTION_OPEN, |
| 387 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 387 "_Cancel", GTK_RESPONSE_CANCEL, |
| 388 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, | 388 "_Open", GTK_RESPONSE_ACCEPT, |
| 389 NULL); | 389 NULL); |
| 390 SetGtkTransientForAura(dialog, parent); | 390 SetGtkTransientForAura(dialog, parent); |
| 391 AddFilters(GTK_FILE_CHOOSER(dialog)); | 391 AddFilters(GTK_FILE_CHOOSER(dialog)); |
| 392 | 392 |
| 393 if (!default_path.empty()) { | 393 if (!default_path.empty()) { |
| 394 if (CallDirectoryExistsOnUIThread(default_path)) { | 394 if (CallDirectoryExistsOnUIThread(default_path)) { |
| 395 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), | 395 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), |
| 396 default_path.value().c_str()); | 396 default_path.value().c_str()); |
| 397 } else { | 397 } else { |
| 398 // If the file doesn't exist, this will just switch to the correct | 398 // If the file doesn't exist, this will just switch to the correct |
| (...skipping 14 matching lines...) Expand all Loading... |
| 413 const base::FilePath& default_path, | 413 const base::FilePath& default_path, |
| 414 gfx::NativeWindow parent) { | 414 gfx::NativeWindow parent) { |
| 415 std::string title_string = title; | 415 std::string title_string = title; |
| 416 if (title_string.empty()) { | 416 if (title_string.empty()) { |
| 417 title_string = (type == SELECT_UPLOAD_FOLDER) ? | 417 title_string = (type == SELECT_UPLOAD_FOLDER) ? |
| 418 l10n_util::GetStringUTF8(IDS_SELECT_UPLOAD_FOLDER_DIALOG_TITLE) : | 418 l10n_util::GetStringUTF8(IDS_SELECT_UPLOAD_FOLDER_DIALOG_TITLE) : |
| 419 l10n_util::GetStringUTF8(IDS_SELECT_FOLDER_DIALOG_TITLE); | 419 l10n_util::GetStringUTF8(IDS_SELECT_FOLDER_DIALOG_TITLE); |
| 420 } | 420 } |
| 421 std::string accept_button_label = (type == SELECT_UPLOAD_FOLDER) ? | 421 std::string accept_button_label = (type == SELECT_UPLOAD_FOLDER) ? |
| 422 l10n_util::GetStringUTF8(IDS_SELECT_UPLOAD_FOLDER_DIALOG_UPLOAD_BUTTON) : | 422 l10n_util::GetStringUTF8(IDS_SELECT_UPLOAD_FOLDER_DIALOG_UPLOAD_BUTTON) : |
| 423 GTK_STOCK_OPEN; | 423 "_Open"; |
| 424 | 424 |
| 425 GtkWidget* dialog = | 425 GtkWidget* dialog = |
| 426 gtk_file_chooser_dialog_new(title_string.c_str(), NULL, | 426 gtk_file_chooser_dialog_new(title_string.c_str(), NULL, |
| 427 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, | 427 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, |
| 428 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 428 "_Cancel", GTK_RESPONSE_CANCEL, |
| 429 accept_button_label.c_str(), | 429 accept_button_label.c_str(), |
| 430 GTK_RESPONSE_ACCEPT, | 430 GTK_RESPONSE_ACCEPT, |
| 431 NULL); | 431 NULL); |
| 432 SetGtkTransientForAura(dialog, parent); | 432 SetGtkTransientForAura(dialog, parent); |
| 433 | 433 |
| 434 if (!default_path.empty()) { | 434 if (!default_path.empty()) { |
| 435 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), | 435 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), |
| 436 default_path.value().c_str()); | 436 default_path.value().c_str()); |
| 437 } else if (!last_opened_path_->empty()) { | 437 } else if (!last_opened_path_->empty()) { |
| 438 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), | 438 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 } | 473 } |
| 474 | 474 |
| 475 GtkWidget* SelectFileDialogImplGTK::CreateSaveAsDialog(const std::string& title, | 475 GtkWidget* SelectFileDialogImplGTK::CreateSaveAsDialog(const std::string& title, |
| 476 const base::FilePath& default_path, gfx::NativeWindow parent) { | 476 const base::FilePath& default_path, gfx::NativeWindow parent) { |
| 477 std::string title_string = !title.empty() ? title : | 477 std::string title_string = !title.empty() ? title : |
| 478 l10n_util::GetStringUTF8(IDS_SAVE_AS_DIALOG_TITLE); | 478 l10n_util::GetStringUTF8(IDS_SAVE_AS_DIALOG_TITLE); |
| 479 | 479 |
| 480 GtkWidget* dialog = | 480 GtkWidget* dialog = |
| 481 gtk_file_chooser_dialog_new(title_string.c_str(), NULL, | 481 gtk_file_chooser_dialog_new(title_string.c_str(), NULL, |
| 482 GTK_FILE_CHOOSER_ACTION_SAVE, | 482 GTK_FILE_CHOOSER_ACTION_SAVE, |
| 483 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 483 "_Cancel", GTK_RESPONSE_CANCEL, |
| 484 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, | 484 "_Save", GTK_RESPONSE_ACCEPT, |
| 485 NULL); | 485 NULL); |
| 486 SetGtkTransientForAura(dialog, parent); | 486 SetGtkTransientForAura(dialog, parent); |
| 487 | 487 |
| 488 AddFilters(GTK_FILE_CHOOSER(dialog)); | 488 AddFilters(GTK_FILE_CHOOSER(dialog)); |
| 489 if (!default_path.empty()) { | 489 if (!default_path.empty()) { |
| 490 // Since the file may not already exist, we use | 490 // Since the file may not already exist, we use |
| 491 // set_current_folder() followed by set_current_name(), as per the | 491 // set_current_folder() followed by set_current_name(), as per the |
| 492 // recommendation of the GTK docs. | 492 // recommendation of the GTK docs. |
| 493 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), | 493 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), |
| 494 default_path.DirName().value().c_str()); | 494 default_path.DirName().value().c_str()); |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 g_free(filename); | 627 g_free(filename); |
| 628 if (pixbuf) { | 628 if (pixbuf) { |
| 629 gtk_image_set_from_pixbuf(GTK_IMAGE(preview_), pixbuf); | 629 gtk_image_set_from_pixbuf(GTK_IMAGE(preview_), pixbuf); |
| 630 g_object_unref(pixbuf); | 630 g_object_unref(pixbuf); |
| 631 } | 631 } |
| 632 gtk_file_chooser_set_preview_widget_active(GTK_FILE_CHOOSER(chooser), | 632 gtk_file_chooser_set_preview_widget_active(GTK_FILE_CHOOSER(chooser), |
| 633 pixbuf ? TRUE : FALSE); | 633 pixbuf ? TRUE : FALSE); |
| 634 } | 634 } |
| 635 | 635 |
| 636 } // namespace libgtk2ui | 636 } // namespace libgtk2ui |
| OLD | NEW |