| Index: chrome/browser/ui/panels/panel_titlebar_gtk.cc
|
| diff --git a/chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc b/chrome/browser/ui/panels/panel_titlebar_gtk.cc
|
| similarity index 77%
|
| copy from chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc
|
| copy to chrome/browser/ui/panels/panel_titlebar_gtk.cc
|
| index c3c3fd0792dedd65ed66352cc4250059d36fc117..e15f9c6762887393d3177e36efa99b278157996c 100644
|
| --- a/chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc
|
| +++ b/chrome/browser/ui/panels/panel_titlebar_gtk.cc
|
| @@ -2,18 +2,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/ui/panels/panel_browser_titlebar_gtk.h"
|
| +#include "chrome/browser/ui/panels/panel_titlebar_gtk.h"
|
|
|
| #include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/gtk/custom_button.h"
|
| #include "chrome/browser/ui/gtk/gtk_theme_service.h"
|
| #include "chrome/browser/ui/gtk/gtk_util.h"
|
| -#include "chrome/browser/ui/gtk/gtk_theme_service.h"
|
| #include "chrome/browser/ui/panels/panel.h"
|
| -#include "chrome/browser/ui/panels/panel_browser_window_gtk.h"
|
| -#include "chrome/common/chrome_notification_types.h"
|
| -#include "content/public/browser/notification_service.h"
|
| +#include "chrome/browser/ui/panels/panel_gtk.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "grit/generated_resources.h"
|
| #include "grit/theme_resources.h"
|
| @@ -46,22 +42,20 @@ const char* const kTitleMarkupSuffix = "</span>";
|
|
|
| } // namespace
|
|
|
| -PanelBrowserTitlebarGtk::PanelBrowserTitlebarGtk(
|
| - PanelBrowserWindowGtk* browser_window, GtkWindow* window)
|
| - : browser_window_(browser_window),
|
| - window_(window),
|
| +PanelTitlebarGtk::PanelTitlebarGtk(PanelGtk* panel_gtk)
|
| + : panel_gtk_(panel_gtk),
|
| container_(NULL),
|
| titlebar_right_buttons_vbox_(NULL),
|
| titlebar_right_buttons_hbox_(NULL),
|
| icon_(NULL),
|
| title_(NULL),
|
| - theme_service_(NULL) {
|
| + theme_service_(GtkThemeService::GetFrom(panel_gtk_->panel()->profile())) {
|
| }
|
|
|
| -PanelBrowserTitlebarGtk::~PanelBrowserTitlebarGtk() {
|
| +PanelTitlebarGtk::~PanelTitlebarGtk() {
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::Init() {
|
| +void PanelTitlebarGtk::Init() {
|
| container_ = gtk_event_box_new();
|
| gtk_widget_set_name(container_, "chrome-panel-titlebar");
|
| gtk_event_box_set_visible_window(GTK_EVENT_BOX(container_), FALSE);
|
| @@ -79,9 +73,6 @@ void PanelBrowserTitlebarGtk::Init() {
|
| GtkWidget* container_hbox = gtk_hbox_new(FALSE, 0);
|
| gtk_container_add(GTK_CONTAINER(container_alignment), container_hbox);
|
|
|
| - g_signal_connect(window_, "window-state-event",
|
| - G_CALLBACK(OnWindowStateChangedThunk), this);
|
| -
|
| // Add minimize/restore and close buttons. Panel buttons are always placed
|
| // on the right part of the titlebar.
|
| titlebar_right_buttons_vbox_ = gtk_vbox_new(FALSE, 0);
|
| @@ -107,28 +98,22 @@ void PanelBrowserTitlebarGtk::Init() {
|
| gtk_label_set_ellipsize(GTK_LABEL(title_), PANGO_ELLIPSIZE_END);
|
| gtk_misc_set_alignment(GTK_MISC(title_), 0.0, 0.5);
|
| gtk_box_pack_start(GTK_BOX(icon_title_hbox), title_, TRUE, TRUE, 0);
|
| -
|
| UpdateTitleAndIcon();
|
| -
|
| - theme_service_ = GtkThemeService::GetFrom(
|
| - browser_window_->panel()->profile());
|
| - registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
|
| - content::Source<ThemeService>(theme_service_));
|
| - theme_service_->InitThemesFor(this);
|
| + UpdateTextColor();
|
|
|
| gtk_widget_show_all(container_);
|
| }
|
|
|
| -SkColor PanelBrowserTitlebarGtk::GetTextColor() const {
|
| - if (browser_window_->UsingDefaultTheme())
|
| +SkColor PanelTitlebarGtk::GetTextColor() const {
|
| + if (panel_gtk_->UsingDefaultTheme())
|
| return kTitleTextDefaultColor;
|
| - return theme_service_->GetColor(browser_window_->paint_state() ==
|
| - PanelBrowserWindowGtk::PAINT_AS_ACTIVE ?
|
| + return theme_service_->GetColor(panel_gtk_->paint_state() ==
|
| + PanelGtk::PAINT_AS_ACTIVE ?
|
| ThemeService::COLOR_TAB_TEXT :
|
| ThemeService::COLOR_BACKGROUND_TAB_TEXT);
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::BuildButtons() {
|
| +void PanelTitlebarGtk::BuildButtons() {
|
| minimize_button_.reset(CreateButton(panel::MINIMIZE_BUTTON));
|
| restore_button_.reset(CreateButton(panel::RESTORE_BUTTON));
|
| close_button_.reset(CreateButton(panel::CLOSE_BUTTON));
|
| @@ -141,7 +126,7 @@ void PanelBrowserTitlebarGtk::BuildButtons() {
|
| UpdateMinimizeRestoreButtonVisibility();
|
| }
|
|
|
| -CustomDrawButton* PanelBrowserTitlebarGtk::CreateButton(
|
| +CustomDrawButton* PanelTitlebarGtk::CreateButton(
|
| panel::TitlebarButtonType button_type) {
|
| int normal_image_id = -1;
|
| int pressed_image_id = -1;
|
| @@ -167,7 +152,7 @@ CustomDrawButton* PanelBrowserTitlebarGtk::CreateButton(
|
| return button;
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::GetButtonResources(
|
| +void PanelTitlebarGtk::GetButtonResources(
|
| panel::TitlebarButtonType button_type,
|
| int* normal_image_id,
|
| int* pressed_image_id,
|
| @@ -195,7 +180,7 @@ void PanelBrowserTitlebarGtk::GetButtonResources(
|
| }
|
| }
|
|
|
| -GtkWidget* PanelBrowserTitlebarGtk::GetButtonHBox() {
|
| +GtkWidget* PanelTitlebarGtk::GetButtonHBox() {
|
| if (!titlebar_right_buttons_hbox_) {
|
| // We put the minimize/restore/close buttons in a vbox so they are top
|
| // aligned (up to padding) and don't vertically stretch.
|
| @@ -207,13 +192,9 @@ GtkWidget* PanelBrowserTitlebarGtk::GetButtonHBox() {
|
| return titlebar_right_buttons_hbox_;
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::UpdateCustomFrame(bool use_custom_frame) {
|
| - // Nothing to do.
|
| -}
|
| -
|
| -void PanelBrowserTitlebarGtk::UpdateTitleAndIcon() {
|
| +void PanelTitlebarGtk::UpdateTitleAndIcon() {
|
| std::string title_text =
|
| - UTF16ToUTF8(browser_window_->panel()->GetWindowTitle());
|
| + UTF16ToUTF8(panel_gtk_->panel()->GetWindowTitle());
|
|
|
| // Add the markup to show the title in the desired font.
|
| gchar* escaped_title_text = g_markup_escape_text(title_text.c_str(), -1);
|
| @@ -226,7 +207,7 @@ void PanelBrowserTitlebarGtk::UpdateTitleAndIcon() {
|
| g_free(title_text_with_markup);
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::UpdateThrobber(
|
| +void PanelTitlebarGtk::UpdateThrobber(
|
| content::WebContents* web_contents) {
|
| if (web_contents && web_contents->IsLoading()) {
|
| GdkPixbuf* icon_pixbuf =
|
| @@ -235,7 +216,7 @@ void PanelBrowserTitlebarGtk::UpdateThrobber(
|
| } else {
|
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
|
|
| - SkBitmap icon = browser_window_->panel()->GetCurrentPageIcon();
|
| + SkBitmap icon = panel_gtk_->panel()->GetCurrentPageIcon();
|
| if (icon.empty()) {
|
| // Fallback to the Chromium icon if the page has no icon.
|
| gtk_image_set_from_pixbuf(GTK_IMAGE(icon_),
|
| @@ -250,30 +231,21 @@ void PanelBrowserTitlebarGtk::UpdateThrobber(
|
| }
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::ShowContextMenu(GdkEventButton* event) {
|
| - // Panel does not show any context menu.
|
| -}
|
| -
|
| -void PanelBrowserTitlebarGtk::UpdateTextColor() {
|
| +void PanelTitlebarGtk::UpdateTextColor() {
|
| GdkColor text_color = gfx::SkColorToGdkColor(GetTextColor());
|
| gtk_util::SetLabelColor(title_, &text_color);
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::UpdateMinimizeRestoreButtonVisibility() {
|
| - Panel* panel = browser_window_->panel();
|
| +void PanelTitlebarGtk::UpdateMinimizeRestoreButtonVisibility() {
|
| + Panel* panel = panel_gtk_->panel();
|
| gtk_widget_set_visible(minimize_button_->widget(), panel->CanMinimize());
|
| gtk_widget_set_visible(restore_button_->widget(), panel->CanRestore());
|
| }
|
|
|
| -gboolean PanelBrowserTitlebarGtk::OnWindowStateChanged(
|
| - GtkWindow* window, GdkEventWindowState* event) {
|
| - UpdateTextColor();
|
| - return FALSE;
|
| -}
|
| -
|
| -void PanelBrowserTitlebarGtk::OnButtonClicked(GtkWidget* button) {
|
| +void PanelTitlebarGtk::OnButtonClicked(GtkWidget* button) {
|
| + Panel* panel = panel_gtk_->panel();
|
| if (close_button_->widget() == button) {
|
| - browser_window_->panel()->Close();
|
| + panel->Close();
|
| return;
|
| }
|
|
|
| @@ -281,11 +253,11 @@ void PanelBrowserTitlebarGtk::OnButtonClicked(GtkWidget* button) {
|
| DCHECK(event && event->type == GDK_BUTTON_RELEASE);
|
|
|
| if (minimize_button_->widget() == button) {
|
| - browser_window_->panel()->OnMinimizeButtonClicked(
|
| + panel->OnMinimizeButtonClicked(
|
| (event->button.state & GDK_CONTROL_MASK) ?
|
| panel::APPLY_TO_ALL : panel::NO_MODIFIER);
|
| } else if (restore_button_->widget() == button) {
|
| - browser_window_->panel()->OnRestoreButtonClicked(
|
| + panel->OnRestoreButtonClicked(
|
| (event->button.state & GDK_CONTROL_MASK) ?
|
| panel::APPLY_TO_ALL : panel::NO_MODIFIER);
|
| }
|
| @@ -293,20 +265,7 @@ void PanelBrowserTitlebarGtk::OnButtonClicked(GtkWidget* button) {
|
| gdk_event_free(event);
|
| }
|
|
|
| -void PanelBrowserTitlebarGtk::Observe(
|
| - int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - switch (type) {
|
| - case chrome::NOTIFICATION_BROWSER_THEME_CHANGED:
|
| - UpdateTextColor();
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -void PanelBrowserTitlebarGtk::SendEnterNotifyToCloseButtonIfUnderMouse() {
|
| +void PanelTitlebarGtk::SendEnterNotifyToCloseButtonIfUnderMouse() {
|
| if (!close_button())
|
| return;
|
|
|
| @@ -347,15 +306,6 @@ void PanelBrowserTitlebarGtk::SendEnterNotifyToCloseButtonIfUnderMouse() {
|
| &return_value);
|
| }
|
|
|
| -GtkWidget* PanelBrowserTitlebarGtk::widget() const {
|
| +GtkWidget* PanelTitlebarGtk::widget() const {
|
| return container_;
|
| }
|
| -
|
| -void PanelBrowserTitlebarGtk::set_window(GtkWindow* window) {
|
| - window_ = window;
|
| -}
|
| -
|
| -AvatarMenuButtonGtk* PanelBrowserTitlebarGtk::avatar_button() const {
|
| - // Not supported in panel.
|
| - return NULL;
|
| -}
|
|
|