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

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

Issue 10736028: Refactor browser window zoom handling and enable zoom icon on all platforms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 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 | Annotate | Revision Log
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/location_bar_view_gtk.h" 5 #include "chrome/browser/ui/gtk/location_bar_view_gtk.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 if (!profile->IsOffTheRecord() && profile->IsSyncAccessible() && 565 if (!profile->IsOffTheRecord() && profile->IsSyncAccessible() &&
566 ChromeToMobileService::IsChromeToMobileEnabled()) { 566 ChromeToMobileService::IsChromeToMobileEnabled()) {
567 CreateChromeToMobileButton(); 567 CreateChromeToMobileButton();
568 gtk_box_pack_end(GTK_BOX(hbox_.get()), chrome_to_mobile_view_.get(), 568 gtk_box_pack_end(GTK_BOX(hbox_.get()), chrome_to_mobile_view_.get(),
569 FALSE, FALSE, 0); 569 FALSE, FALSE, 0);
570 command_updater_->AddCommandObserver(IDC_CHROME_TO_MOBILE_PAGE, this); 570 command_updater_->AddCommandObserver(IDC_CHROME_TO_MOBILE_PAGE, this);
571 UpdateChromeToMobileIcon(); 571 UpdateChromeToMobileIcon();
572 } 572 }
573 } 573 }
574 574
575 // TODO(khorimoto): Uncomment the following 2 lines when zoom icon/bubble 575 CreateZoomButton();
576 // implementation is complete for M23. 576 gtk_box_pack_end(GTK_BOX(hbox_.get()), zoom_.get(), FALSE, FALSE, 0);
577 // CreateZoomButton();
578 // gtk_box_pack_end(GTK_BOX(hbox_.get()), zoom_.get(), FALSE, FALSE, 0);
579 577
580 content_setting_hbox_.Own(gtk_hbox_new(FALSE, kInnerPadding + 1)); 578 content_setting_hbox_.Own(gtk_hbox_new(FALSE, kInnerPadding + 1));
581 gtk_widget_set_name(content_setting_hbox_.get(), 579 gtk_widget_set_name(content_setting_hbox_.get(),
582 "chrome-content-setting-hbox"); 580 "chrome-content-setting-hbox");
583 gtk_box_pack_end(GTK_BOX(hbox_.get()), content_setting_hbox_.get(), 581 gtk_box_pack_end(GTK_BOX(hbox_.get()), content_setting_hbox_.get(),
584 FALSE, FALSE, 1); 582 FALSE, FALSE, 1);
585 583
586 for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { 584 for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) {
587 ContentSettingImageViewGtk* content_setting_view = 585 ContentSettingImageViewGtk* content_setting_view =
588 new ContentSettingImageViewGtk( 586 new ContentSettingImageViewGtk(
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
1495 gboolean LocationBarViewGtk::OnChromeToMobileButtonPress( 1493 gboolean LocationBarViewGtk::OnChromeToMobileButtonPress(
1496 GtkWidget* widget, 1494 GtkWidget* widget,
1497 GdkEventButton* event) { 1495 GdkEventButton* event) {
1498 if (event->button == 1) { 1496 if (event->button == 1) {
1499 chrome::ExecuteCommand(browser_, IDC_CHROME_TO_MOBILE_PAGE); 1497 chrome::ExecuteCommand(browser_, IDC_CHROME_TO_MOBILE_PAGE);
1500 return TRUE; 1498 return TRUE;
1501 } 1499 }
1502 return FALSE; 1500 return FALSE;
1503 } 1501 }
1504 1502
1505 void LocationBarViewGtk::ShowZoomBubble(int zoom_percent) { 1503 void LocationBarViewGtk::ShowZoomBubble() {
1506 if (!zoom_.get() || toolbar_model_->input_in_progress()) 1504 if (!zoom_.get() || toolbar_model_->input_in_progress())
1507 return; 1505 return;
1508 1506
1509 ZoomBubbleGtk::Show(zoom_.get(), GetTabContents(), true); 1507 ZoomBubbleGtk::Show(zoom_.get(), GetTabContents(), true);
1510 } 1508 }
1511 1509
1512 void LocationBarViewGtk::ShowStarBubble(const GURL& url, 1510 void LocationBarViewGtk::ShowStarBubble(const GURL& url,
1513 bool newly_bookmarked) { 1511 bool newly_bookmarked) {
1514 if (!star_.get()) 1512 if (!star_.get())
1515 return; 1513 return;
1516 1514
1517 BookmarkBubbleGtk::Show(star_.get(), browser_->profile(), url, 1515 BookmarkBubbleGtk::Show(star_.get(), browser_->profile(), url,
1518 newly_bookmarked); 1516 newly_bookmarked);
1519 } 1517 }
1520 1518
1521 void LocationBarViewGtk::ShowChromeToMobileBubble() { 1519 void LocationBarViewGtk::ShowChromeToMobileBubble() {
1522 ChromeToMobileBubbleGtk::Show(GTK_IMAGE(chrome_to_mobile_image_), browser_); 1520 ChromeToMobileBubbleGtk::Show(GTK_IMAGE(chrome_to_mobile_image_), browser_);
1523 } 1521 }
1524 1522
1525 void LocationBarViewGtk::SetZoomIconTooltipPercent(int zoom_percent) {
1526 UpdateZoomIcon();
1527 }
1528
1529 void LocationBarViewGtk::SetZoomIconState(
1530 ZoomController::ZoomIconState zoom_icon_state) {
1531 UpdateZoomIcon();
1532 }
1533
1534 void LocationBarViewGtk::SetStarred(bool starred) { 1523 void LocationBarViewGtk::SetStarred(bool starred) {
1535 if (starred == starred_) 1524 if (starred == starred_)
1536 return; 1525 return;
1537 1526
1538 starred_ = starred; 1527 starred_ = starred;
1539 UpdateStarIcon(); 1528 UpdateStarIcon();
1540 } 1529 }
1541 1530
1531 void LocationBarViewGtk::ZoomChangedForActiveTab(bool can_show_bubble) {
1532 UpdateZoomIcon();
1533
1534 // TODO(dbeam): don't show bubble if the wrench menu is showing.
1535 if (can_show_bubble && gtk_widget_get_visible(zoom_.get()))
1536 ShowZoomBubble();
1537 }
1538
1542 void LocationBarViewGtk::UpdateZoomIcon() { 1539 void LocationBarViewGtk::UpdateZoomIcon() {
1543 if (!zoom_.get() || !GetWebContents()) 1540 TabContents* tab_contents = GetTabContents();
1541 if (!zoom_.get() || !tab_contents)
1544 return; 1542 return;
1545 1543
1546 const ZoomController* zc = TabContents::FromWebContents( 1544 ZoomController* zoom_controller = tab_contents->zoom_controller();
1547 GetWebContents())->zoom_controller(); 1545 if (!zoom_controller || zoom_controller->IsAtDefaultZoom() ||
1548 1546 toolbar_model_->input_in_progress()) {
1549 if (toolbar_model_->input_in_progress() ||
1550 zc->zoom_icon_state() == ZoomController::NONE) {
1551 gtk_widget_hide(zoom_.get()); 1547 gtk_widget_hide(zoom_.get());
1552 ZoomBubbleGtk::Close(); 1548 ZoomBubbleGtk::Close();
1553 return; 1549 return;
1554 } 1550 }
1555 1551
1556 gtk_widget_show(zoom_.get()); 1552 const int zoom_resource = zoom_controller->GetResourceForZoomLevel();
1557 int zoom_resource = zc->zoom_icon_state() == ZoomController::ZOOM_PLUS_ICON ?
1558 IDR_ZOOM_PLUS : IDR_ZOOM_MINUS;
1559 gtk_image_set_from_pixbuf(GTK_IMAGE(zoom_image_), 1553 gtk_image_set_from_pixbuf(GTK_IMAGE(zoom_image_),
1560 theme_service_->GetImageNamed(zoom_resource)->ToGdkPixbuf()); 1554 theme_service_->GetImageNamed(zoom_resource)->ToGdkPixbuf());
1561 1555
1562 string16 tooltip = l10n_util::GetStringFUTF16Int(IDS_TOOLTIP_ZOOM, 1556 string16 tooltip = l10n_util::GetStringFUTF16Int(
1563 zc->zoom_percent()); 1557 IDS_TOOLTIP_ZOOM, zoom_controller->zoom_percent());
1564 gtk_widget_set_tooltip_text(zoom_.get(), UTF16ToUTF8(tooltip).c_str()); 1558 gtk_widget_set_tooltip_text(zoom_.get(), UTF16ToUTF8(tooltip).c_str());
1559
1560 gtk_widget_show(zoom_.get());
1565 } 1561 }
1566 1562
1567 void LocationBarViewGtk::UpdateStarIcon() { 1563 void LocationBarViewGtk::UpdateStarIcon() {
1568 if (!star_.get()) 1564 if (!star_.get())
1569 return; 1565 return;
1570 bool star_enabled = !toolbar_model_->input_in_progress() && 1566 bool star_enabled = !toolbar_model_->input_in_progress() &&
1571 edit_bookmarks_enabled_.GetValue(); 1567 edit_bookmarks_enabled_.GetValue();
1572 command_updater_->UpdateCommandEnabled(IDC_BOOKMARK_PAGE, star_enabled); 1568 command_updater_->UpdateCommandEnabled(IDC_BOOKMARK_PAGE, star_enabled);
1573 if (star_enabled) { 1569 if (star_enabled) {
1574 gtk_widget_show_all(star_.get()); 1570 gtk_widget_show_all(star_.get());
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
2135 } 2131 }
2136 2132
2137 void LocationBarViewGtk::PageActionViewGtk::InspectPopup( 2133 void LocationBarViewGtk::PageActionViewGtk::InspectPopup(
2138 ExtensionAction* action) { 2134 ExtensionAction* action) {
2139 ExtensionPopupGtk::Show( 2135 ExtensionPopupGtk::Show(
2140 action->GetPopupUrl(current_tab_id_), 2136 action->GetPopupUrl(current_tab_id_),
2141 owner_->browser_, 2137 owner_->browser_,
2142 event_box_.get(), 2138 event_box_.get(),
2143 ExtensionPopupGtk::SHOW_AND_INSPECT); 2139 ExtensionPopupGtk::SHOW_AND_INSPECT);
2144 } 2140 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/location_bar_view_gtk.h ('k') | chrome/browser/ui/panels/panel_browser_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698