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

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: Change alignment of manage link 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 =
349 g_signal_connect(button, "clicked", G_CALLBACK(OnCloseButtonClickedThunk), 370 gtk_button_new_with_label(l10n_util::GetStringUTF8(IDS_DONE).c_str());
350 this); 371 g_signal_connect(button, "clicked", G_CALLBACK(OnCloseButtonClickedThunk),
351 gtk_box_pack_end(GTK_BOX(bottom_box), button, FALSE, FALSE, 0); 372 this);
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); 377 gtk_widget_grab_focus(bottom_box);
354 gtk_widget_grab_focus(button);
Evan Stade 2013/09/06 21:15:45 I don't understand why there were previously two g
Evan Stade 2013/09/09 20:44:07 they were added here: https://codereview.chromium.
npentrel 2013/09/10 16:25:34 Done.
355 378
356 bubble_ = BubbleGtk::Show(anchor_, 379 bubble_ = BubbleGtk::Show(anchor_,
357 NULL, 380 NULL,
358 bubble_content, 381 bubble_content,
359 BubbleGtk::ANCHOR_TOP_RIGHT, 382 BubbleGtk::ANCHOR_TOP_RIGHT,
360 BubbleGtk::MATCH_SYSTEM_THEME | 383 BubbleGtk::MATCH_SYSTEM_THEME |
361 BubbleGtk::POPUP_WINDOW | 384 BubbleGtk::POPUP_WINDOW |
362 BubbleGtk::GRAB_INPUT, 385 BubbleGtk::GRAB_INPUT,
363 theme_provider, 386 theme_provider,
364 this); 387 this);
(...skipping 25 matching lines...) Expand all
390 i != radio_group_gtk_.end(); ++i) { 413 i != radio_group_gtk_.end(); ++i) {
391 if (widget == *i) { 414 if (widget == *i) {
392 content_setting_bubble_model_->OnRadioClicked( 415 content_setting_bubble_model_->OnRadioClicked(
393 i - radio_group_gtk_.begin()); 416 i - radio_group_gtk_.begin());
394 return; 417 return;
395 } 418 }
396 } 419 }
397 NOTREACHED() << "unknown radio toggled"; 420 NOTREACHED() << "unknown radio toggled";
398 } 421 }
399 422
400 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget *button) { 423 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget* button) {
401 content_setting_bubble_model_->OnDoneClicked(); 424 content_setting_bubble_model_->OnDoneClicked();
402 Close(); 425 Close();
403 } 426 }
404 427
428 void ContentSettingBubbleGtk::OnSaveButtonClicked(GtkWidget* button) {
429 content_setting_bubble_model_->OnSaveClicked();
430 Close();
431 }
432
433 void ContentSettingBubbleGtk::OnCancelButtonClicked(GtkWidget* button) {
434 content_setting_bubble_model_->OnCancelClicked();
435 Close();
436 }
437
405 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) { 438 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) {
406 content_setting_bubble_model_->OnCustomLinkClicked(); 439 content_setting_bubble_model_->OnCustomLinkClicked();
407 Close(); 440 Close();
408 } 441 }
409 442
410 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) { 443 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) {
411 content_setting_bubble_model_->OnManageLinkClicked(); 444 content_setting_bubble_model_->OnManageLinkClicked();
412 Close(); 445 Close();
413 } 446 }
414 447
415 void ContentSettingBubbleGtk::OnMenuButtonClicked(GtkWidget* button) { 448 void ContentSettingBubbleGtk::OnMenuButtonClicked(GtkWidget* button) {
416 GtkMediaMenuMap::iterator i(media_menus_.find(button)); 449 GtkMediaMenuMap::iterator i(media_menus_.find(button));
417 DCHECK(i != media_menus_.end()); 450 DCHECK(i != media_menus_.end());
418 i->second->menu->PopupForWidget(button, 1, gtk_get_current_event_time()); 451 i->second->menu->PopupForWidget(button, 1, gtk_get_current_event_time());
419 } 452 }
420 453
421 ContentSettingBubbleGtk::MediaMenuGtk::MediaMenuGtk( 454 ContentSettingBubbleGtk::MediaMenuGtk::MediaMenuGtk(
422 content::MediaStreamType type) 455 content::MediaStreamType type)
423 : type(type) {} 456 : type(type) {}
424 457
425 ContentSettingBubbleGtk::MediaMenuGtk::~MediaMenuGtk() {} 458 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