Chromium Code Reviews| 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 "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 Loading... | |
| 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 30 matching lines...) Expand all Loading... | |
| 335 | 356 |
| 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 if (content_setting_bubble_model_->content_type() == |
| 367 CONTENT_SETTINGS_TYPE_SAVE_PASSWORD) { | |
| 368 gtk_box_pack_end(GTK_BOX(bottom_box), manage_link, FALSE, FALSE, 0); | |
|
Evan Stade
2013/09/05 00:52:55
why is this not shared with the nearly identical l
npentrel
2013/09/05 08:00:16
Yes there is a difference: end will put it at the
Evan Stade
2013/09/05 16:43:00
not sure why we'd move the link to the right when
| |
| 369 } else { | |
| 370 gtk_box_pack_start(GTK_BOX(bottom_box), manage_link, FALSE, FALSE, 0); | |
| 346 | 371 |
| 347 GtkWidget* button = gtk_button_new_with_label( | 372 GtkWidget* button = |
| 348 l10n_util::GetStringUTF8(IDS_DONE).c_str()); | 373 gtk_button_new_with_label(l10n_util::GetStringUTF8(IDS_DONE).c_str()); |
| 349 g_signal_connect(button, "clicked", G_CALLBACK(OnCloseButtonClickedThunk), | 374 g_signal_connect(button, "clicked", G_CALLBACK(OnCloseButtonClickedThunk), |
| 350 this); | 375 this); |
| 351 gtk_box_pack_end(GTK_BOX(bottom_box), button, FALSE, FALSE, 0); | 376 gtk_box_pack_end(GTK_BOX(bottom_box), button, FALSE, FALSE, 0); |
| 377 gtk_widget_grab_focus(button); | |
| 378 } | |
| 352 gtk_box_pack_start(GTK_BOX(bubble_content), bottom_box, FALSE, FALSE, 0); | 379 gtk_box_pack_start(GTK_BOX(bubble_content), bottom_box, FALSE, FALSE, 0); |
| 353 gtk_widget_grab_focus(bottom_box); | 380 gtk_widget_grab_focus(bottom_box); |
| 354 gtk_widget_grab_focus(button); | |
| 355 | 381 |
| 356 bubble_ = BubbleGtk::Show(anchor_, | 382 bubble_ = BubbleGtk::Show(anchor_, |
| 357 NULL, | 383 NULL, |
| 358 bubble_content, | 384 bubble_content, |
| 359 BubbleGtk::ANCHOR_TOP_RIGHT, | 385 BubbleGtk::ANCHOR_TOP_RIGHT, |
| 360 BubbleGtk::MATCH_SYSTEM_THEME | | 386 BubbleGtk::MATCH_SYSTEM_THEME | |
| 361 BubbleGtk::POPUP_WINDOW | | 387 BubbleGtk::POPUP_WINDOW | |
| 362 BubbleGtk::GRAB_INPUT, | 388 BubbleGtk::GRAB_INPUT, |
| 363 theme_provider, | 389 theme_provider, |
| 364 this); | 390 this); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 390 i != radio_group_gtk_.end(); ++i) { | 416 i != radio_group_gtk_.end(); ++i) { |
| 391 if (widget == *i) { | 417 if (widget == *i) { |
| 392 content_setting_bubble_model_->OnRadioClicked( | 418 content_setting_bubble_model_->OnRadioClicked( |
| 393 i - radio_group_gtk_.begin()); | 419 i - radio_group_gtk_.begin()); |
| 394 return; | 420 return; |
| 395 } | 421 } |
| 396 } | 422 } |
| 397 NOTREACHED() << "unknown radio toggled"; | 423 NOTREACHED() << "unknown radio toggled"; |
| 398 } | 424 } |
| 399 | 425 |
| 400 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget *button) { | 426 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget* button) { |
| 401 content_setting_bubble_model_->OnDoneClicked(); | 427 content_setting_bubble_model_->OnDoneClicked(); |
| 402 Close(); | 428 Close(); |
| 403 } | 429 } |
| 404 | 430 |
| 431 void ContentSettingBubbleGtk::OnSaveButtonClicked(GtkWidget* button) { | |
| 432 content_setting_bubble_model_->OnSaveClicked(); | |
| 433 Close(); | |
| 434 } | |
| 435 | |
| 436 void ContentSettingBubbleGtk::OnCancelButtonClicked(GtkWidget* button) { | |
| 437 content_setting_bubble_model_->OnCancelClicked(); | |
| 438 Close(); | |
| 439 } | |
| 440 | |
| 405 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) { | 441 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) { |
| 406 content_setting_bubble_model_->OnCustomLinkClicked(); | 442 content_setting_bubble_model_->OnCustomLinkClicked(); |
| 407 Close(); | 443 Close(); |
| 408 } | 444 } |
| 409 | 445 |
| 410 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) { | 446 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) { |
| 411 content_setting_bubble_model_->OnManageLinkClicked(); | 447 content_setting_bubble_model_->OnManageLinkClicked(); |
| 412 Close(); | 448 Close(); |
| 413 } | 449 } |
| 414 | 450 |
| 415 void ContentSettingBubbleGtk::OnMenuButtonClicked(GtkWidget* button) { | 451 void ContentSettingBubbleGtk::OnMenuButtonClicked(GtkWidget* button) { |
| 416 GtkMediaMenuMap::iterator i(media_menus_.find(button)); | 452 GtkMediaMenuMap::iterator i(media_menus_.find(button)); |
| 417 DCHECK(i != media_menus_.end()); | 453 DCHECK(i != media_menus_.end()); |
| 418 i->second->menu->PopupForWidget(button, 1, gtk_get_current_event_time()); | 454 i->second->menu->PopupForWidget(button, 1, gtk_get_current_event_time()); |
| 419 } | 455 } |
| 420 | 456 |
| 421 ContentSettingBubbleGtk::MediaMenuGtk::MediaMenuGtk( | 457 ContentSettingBubbleGtk::MediaMenuGtk::MediaMenuGtk( |
| 422 content::MediaStreamType type) | 458 content::MediaStreamType type) |
| 423 : type(type) {} | 459 : type(type) {} |
| 424 | 460 |
| 425 ContentSettingBubbleGtk::MediaMenuGtk::~MediaMenuGtk() {} | 461 ContentSettingBubbleGtk::MediaMenuGtk::~MediaMenuGtk() {} |
| OLD | NEW |