Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: chrome/browser/ui/gtk/content_setting_bubble_gtk.cc

Issue 23463013: [gtk] Save password bubble (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review 4 Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/gtk/content_setting_bubble_gtk.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/ui/gtk/content_setting_bubble_gtk.h" 5 #include "chrome/browser/ui/gtk/content_setting_bubble_gtk.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 menu_width = std::min(kMaxMediaMenuButtonWidth, menu_width); 285 menu_width = std::min(kMaxMediaMenuButtonWidth, menu_width);
286 286
287 // Set all the menu buttons to the width we calculated above. 287 // Set all the menu buttons to the width we calculated above.
288 for (GtkMediaMenuMap::const_iterator i = media_menus_.begin(); 288 for (GtkMediaMenuMap::const_iterator i = media_menus_.begin();
289 i != media_menus_.end(); ++i) 289 i != media_menus_.end(); ++i)
290 gtk_widget_set_size_request(i->first, menu_width, -1); 290 gtk_widget_set_size_request(i->first, menu_width, -1);
291 291
292 gtk_box_pack_start(GTK_BOX(bubble_content), table, FALSE, FALSE, 0); 292 gtk_box_pack_start(GTK_BOX(bubble_content), table, FALSE, FALSE, 0);
293 } 293 }
294 294
295 if (content_setting_bubble_model_->content_type() ==
296 CONTENT_SETTINGS_TYPE_SAVE_PASSWORD) {
297 GtkWidget* button_content = gtk_hbox_new(FALSE, 0);
298 GtkWidget* never_button =
299 gtk_button_new_with_label(l10n_util::GetStringUTF8(
300 IDS_PASSWORD_MANAGER_BLACKLIST_BUTTON).c_str());
301 g_signal_connect(never_button, "clicked",
302 G_CALLBACK(OnCancelButtonClickedThunk), this);
303 GtkWidget* save_button = gtk_button_new_with_label(
304 l10n_util::GetStringUTF8(IDS_PASSWORD_MANAGER_SAVE_BUTTON).c_str());
305 g_signal_connect(save_button, "clicked",
306 G_CALLBACK(OnSaveButtonClickedThunk), this);
307
308 gtk_box_pack_start(GTK_BOX(button_content), never_button, FALSE, FALSE, 4);
309 gtk_box_pack_start(GTK_BOX(button_content), save_button, FALSE, FALSE, 0);
310
311 gtk_box_pack_start(GTK_BOX(bubble_content), button_content, FALSE, FALSE,
312 0);
313 gtk_widget_grab_focus(save_button);
314 }
315
295 for (std::vector<ContentSettingBubbleModel::DomainList>::const_iterator i = 316 for (std::vector<ContentSettingBubbleModel::DomainList>::const_iterator i =
296 content.domain_lists.begin(); 317 content.domain_lists.begin();
297 i != content.domain_lists.end(); ++i) { 318 i != content.domain_lists.end(); ++i) {
298 // Put each list into its own vbox to allow spacing between lists. 319 // Put each list into its own vbox to allow spacing between lists.
299 GtkWidget* list_content = gtk_vbox_new(FALSE, ui::kControlSpacing); 320 GtkWidget* list_content = gtk_vbox_new(FALSE, ui::kControlSpacing);
300 321
301 GtkWidget* label = theme_provider->BuildLabel( 322 GtkWidget* label = theme_provider->BuildLabel(
302 BuildElidedText(i->title).c_str(), ui::kGdkBlack); 323 BuildElidedText(i->title).c_str(), ui::kGdkBlack);
303 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); 324 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
304 GtkWidget* label_box = gtk_hbox_new(FALSE, 0); 325 GtkWidget* label_box = gtk_hbox_new(FALSE, 0);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), 357 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(),
337 FALSE, FALSE, 0); 358 FALSE, FALSE, 0);
338 359
339 GtkWidget* bottom_box = gtk_hbox_new(FALSE, 0); 360 GtkWidget* bottom_box = gtk_hbox_new(FALSE, 0);
340 361
341 GtkWidget* manage_link = 362 GtkWidget* manage_link =
342 theme_provider->BuildChromeLinkButton(content.manage_link.c_str()); 363 theme_provider->BuildChromeLinkButton(content.manage_link.c_str());
343 g_signal_connect(manage_link, "clicked", G_CALLBACK(OnManageLinkClickedThunk), 364 g_signal_connect(manage_link, "clicked", G_CALLBACK(OnManageLinkClickedThunk),
344 this); 365 this);
345 gtk_box_pack_start(GTK_BOX(bottom_box), manage_link, FALSE, FALSE, 0); 366 gtk_box_pack_start(GTK_BOX(bottom_box), manage_link, FALSE, FALSE, 0);
346 367 if (content_setting_bubble_model_->content_type() !=
347 GtkWidget* button = gtk_button_new_with_label( 368 CONTENT_SETTINGS_TYPE_SAVE_PASSWORD) {
348 l10n_util::GetStringUTF8(IDS_DONE).c_str()); 369 GtkWidget* button = gtk_button_new_with_label(
349 g_signal_connect(button, "clicked", G_CALLBACK(OnCloseButtonClickedThunk), 370 l10n_util::GetStringUTF8(IDS_DONE).c_str());
371 g_signal_connect(button, "clicked", G_CALLBACK(OnCloseButtonClickedThunk),
350 this); 372 this);
Evan Stade 2013/09/11 16:56:27 indent
351 gtk_box_pack_end(GTK_BOX(bottom_box), button, FALSE, FALSE, 0); 373 gtk_box_pack_end(GTK_BOX(bottom_box), button, FALSE, FALSE, 0);
374 gtk_widget_grab_focus(button);
375 }
352 gtk_box_pack_start(GTK_BOX(bubble_content), bottom_box, FALSE, FALSE, 0); 376 gtk_box_pack_start(GTK_BOX(bubble_content), bottom_box, FALSE, FALSE, 0);
353 gtk_widget_grab_focus(bottom_box);
354 gtk_widget_grab_focus(button);
355 377
356 bubble_ = BubbleGtk::Show(anchor_, 378 bubble_ = BubbleGtk::Show(anchor_,
357 NULL, 379 NULL,
358 bubble_content, 380 bubble_content,
359 BubbleGtk::ANCHOR_TOP_RIGHT, 381 BubbleGtk::ANCHOR_TOP_RIGHT,
360 BubbleGtk::MATCH_SYSTEM_THEME | 382 BubbleGtk::MATCH_SYSTEM_THEME |
361 BubbleGtk::POPUP_WINDOW | 383 BubbleGtk::POPUP_WINDOW |
362 BubbleGtk::GRAB_INPUT, 384 BubbleGtk::GRAB_INPUT,
363 theme_provider, 385 theme_provider,
364 this); 386 this);
(...skipping 25 matching lines...) Expand all
390 i != radio_group_gtk_.end(); ++i) { 412 i != radio_group_gtk_.end(); ++i) {
391 if (widget == *i) { 413 if (widget == *i) {
392 content_setting_bubble_model_->OnRadioClicked( 414 content_setting_bubble_model_->OnRadioClicked(
393 i - radio_group_gtk_.begin()); 415 i - radio_group_gtk_.begin());
394 return; 416 return;
395 } 417 }
396 } 418 }
397 NOTREACHED() << "unknown radio toggled"; 419 NOTREACHED() << "unknown radio toggled";
398 } 420 }
399 421
400 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget *button) { 422 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget* button) {
401 content_setting_bubble_model_->OnDoneClicked(); 423 content_setting_bubble_model_->OnDoneClicked();
402 Close(); 424 Close();
403 } 425 }
404 426
427 void ContentSettingBubbleGtk::OnSaveButtonClicked(GtkWidget* button) {
428 content_setting_bubble_model_->OnSaveClicked();
429 Close();
430 }
431
432 void ContentSettingBubbleGtk::OnCancelButtonClicked(GtkWidget* button) {
433 content_setting_bubble_model_->OnCancelClicked();
434 Close();
435 }
436
405 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) { 437 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) {
406 content_setting_bubble_model_->OnCustomLinkClicked(); 438 content_setting_bubble_model_->OnCustomLinkClicked();
407 Close(); 439 Close();
408 } 440 }
409 441
410 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) { 442 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) {
411 content_setting_bubble_model_->OnManageLinkClicked(); 443 content_setting_bubble_model_->OnManageLinkClicked();
412 Close(); 444 Close();
413 } 445 }
414 446
415 void ContentSettingBubbleGtk::OnMenuButtonClicked(GtkWidget* button) { 447 void ContentSettingBubbleGtk::OnMenuButtonClicked(GtkWidget* button) {
416 GtkMediaMenuMap::iterator i(media_menus_.find(button)); 448 GtkMediaMenuMap::iterator i(media_menus_.find(button));
417 DCHECK(i != media_menus_.end()); 449 DCHECK(i != media_menus_.end());
418 i->second->menu->PopupForWidget(button, 1, gtk_get_current_event_time()); 450 i->second->menu->PopupForWidget(button, 1, gtk_get_current_event_time());
419 } 451 }
420 452
421 ContentSettingBubbleGtk::MediaMenuGtk::MediaMenuGtk( 453 ContentSettingBubbleGtk::MediaMenuGtk::MediaMenuGtk(
422 content::MediaStreamType type) 454 content::MediaStreamType type)
423 : type(type) {} 455 : type(type) {}
424 456
425 ContentSettingBubbleGtk::MediaMenuGtk::~MediaMenuGtk() {} 457 ContentSettingBubbleGtk::MediaMenuGtk::~MediaMenuGtk() {}
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/content_setting_bubble_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698