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

Unified Diff: chrome/browser/ui/gtk/browser_titlebar.cc

Issue 10169019: Add PanelBrowserTitlebarGtk for panels on GTK. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Patch to land Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/gtk/browser_titlebar.h ('k') | chrome/browser/ui/gtk/browser_window_gtk.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/gtk/browser_titlebar.cc
diff --git a/chrome/browser/ui/gtk/browser_titlebar.cc b/chrome/browser/ui/gtk/browser_titlebar.cc
index ce45346a2b834ad143ffeccbc61907d1e34dc85e..9bd46d2b26161870bf6e80c61a7acee141ddf0d3 100644
--- a/chrome/browser/ui/gtk/browser_titlebar.cc
+++ b/chrome/browser/ui/gtk/browser_titlebar.cc
@@ -241,7 +241,6 @@ BrowserTitlebar::BrowserTitlebar(BrowserWindowGtk* browser_window,
window_has_focus_(false),
display_avatar_on_left_(false),
theme_service_(NULL) {
- Init();
}
void BrowserTitlebar::Init() {
@@ -434,45 +433,8 @@ void BrowserTitlebar::BuildButtons(const std::string& button_string) {
left_side = false;
} else {
base::StringPiece token = tokenizer.token_piece();
- if (token == "minimize" && !IsTypePanel()) {
+ if (BuildButton(token.as_string(), left_side))
(left_side ? left_count : right_count)++;
- GtkWidget* parent_box = GetButtonHBox(left_side);
- minimize_button_.reset(
- BuildTitlebarButton(IDR_MINIMIZE, IDR_MINIMIZE_P,
- IDR_MINIMIZE_H, parent_box, true,
- IDS_XPFRAME_MINIMIZE_TOOLTIP));
-
- gtk_widget_size_request(minimize_button_->widget(),
- &minimize_button_req_);
- } else if (token == "maximize" && !IsTypePanel()) {
- (left_side ? left_count : right_count)++;
- GtkWidget* parent_box = GetButtonHBox(left_side);
- restore_button_.reset(
- BuildTitlebarButton(IDR_RESTORE, IDR_RESTORE_P,
- IDR_RESTORE_H, parent_box, true,
- IDS_XPFRAME_RESTORE_TOOLTIP));
- maximize_button_.reset(
- BuildTitlebarButton(IDR_MAXIMIZE, IDR_MAXIMIZE_P,
- IDR_MAXIMIZE_H, parent_box, true,
- IDS_XPFRAME_MAXIMIZE_TOOLTIP));
-
- gtk_util::SetButtonClickableByMouseButtons(maximize_button_->widget(),
- true, true, true);
- gtk_widget_size_request(restore_button_->widget(),
- &restore_button_req_);
- } else if (token == "close") {
- (left_side ? left_count : right_count)++;
- GtkWidget* parent_box = GetButtonHBox(left_side);
- close_button_.reset(
- BuildTitlebarButton(IDR_CLOSE, IDR_CLOSE_P,
- IDR_CLOSE_H, parent_box, true,
- IDS_XPFRAME_CLOSE_TOOLTIP));
- close_button_->set_flipped(left_side);
-
- gtk_widget_size_request(close_button_->widget(), &close_button_req_);
- }
- // Ignore any other values like "pin" since we don't have images for
- // those.
}
}
@@ -488,6 +450,50 @@ void BrowserTitlebar::BuildButtons(const std::string& button_string) {
UpdateMaximizeRestoreVisibility();
}
+bool BrowserTitlebar::BuildButton(const std::string& button_token,
+ bool left_side) {
+ if (button_token == "minimize") {
+ GtkWidget* parent_box = GetButtonHBox(left_side);
+ minimize_button_.reset(
+ CreateTitlebarButton(IDR_MINIMIZE, IDR_MINIMIZE_P,
+ IDR_MINIMIZE_H, parent_box,
+ IDS_XPFRAME_MINIMIZE_TOOLTIP));
+
+ gtk_widget_size_request(minimize_button_->widget(),
+ &minimize_button_req_);
+ return true;
+ } else if (button_token == "maximize") {
+ GtkWidget* parent_box = GetButtonHBox(left_side);
+ restore_button_.reset(
+ CreateTitlebarButton(IDR_RESTORE, IDR_RESTORE_P,
+ IDR_RESTORE_H, parent_box,
+ IDS_XPFRAME_RESTORE_TOOLTIP));
+ maximize_button_.reset(
+ CreateTitlebarButton(IDR_MAXIMIZE, IDR_MAXIMIZE_P,
+ IDR_MAXIMIZE_H, parent_box,
+ IDS_XPFRAME_MAXIMIZE_TOOLTIP));
+
+ gtk_util::SetButtonClickableByMouseButtons(maximize_button_->widget(),
+ true, true, true);
+ gtk_widget_size_request(restore_button_->widget(),
+ &restore_button_req_);
+ return true;
+ } else if (button_token == "close") {
+ GtkWidget* parent_box = GetButtonHBox(left_side);
+ close_button_.reset(
+ CreateTitlebarButton(IDR_CLOSE, IDR_CLOSE_P,
+ IDR_CLOSE_H, parent_box,
+ IDS_XPFRAME_CLOSE_TOOLTIP));
+ close_button_->set_flipped(left_side);
+
+ gtk_widget_size_request(close_button_->widget(), &close_button_req_);
+ return true;
+ }
+ // Ignore any other values like "pin" since we don't have images for
+ // those.
+ return false;
+}
+
GtkWidget* BrowserTitlebar::GetButtonHBox(bool left_side) {
if (left_side && titlebar_left_buttons_hbox_)
return titlebar_left_buttons_hbox_;
@@ -517,9 +523,8 @@ GtkWidget* BrowserTitlebar::GetButtonHBox(bool left_side) {
return buttons_hbox;
}
-CustomDrawButton* BrowserTitlebar::BuildTitlebarButton(int image,
- int image_pressed, int image_hot, GtkWidget* box, bool start,
- int tooltip) {
+CustomDrawButton* BrowserTitlebar::CreateTitlebarButton(int image,
+ int image_pressed, int image_hot, GtkWidget* box, int tooltip) {
CustomDrawButton* button = new CustomDrawButton(image, image_pressed,
image_hot, 0);
gtk_widget_add_events(GTK_WIDGET(button->widget()), GDK_POINTER_MOTION_MASK);
@@ -530,10 +535,7 @@ CustomDrawButton* BrowserTitlebar::BuildTitlebarButton(int image,
std::string localized_tooltip = l10n_util::GetStringUTF8(tooltip);
gtk_widget_set_tooltip_text(button->widget(),
localized_tooltip.c_str());
- if (start)
- gtk_box_pack_start(GTK_BOX(box), button->widget(), FALSE, FALSE, 0);
- else
- gtk_box_pack_end(GTK_BOX(box), button->widget(), FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(box), button->widget(), FALSE, FALSE, 0);
return button;
}
@@ -629,10 +631,9 @@ void BrowserTitlebar::UpdateThrobber(WebContents* web_contents) {
} else {
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- // Note: we want to exclude the application popup window.
+ // Note: we want to exclude the application popup/panel window.
if ((browser_window_->browser()->is_app() &&
- browser_window_->browser()->is_type_popup()) ||
- IsTypePanel()) {
+ !browser_window_->browser()->is_type_tabbed())) {
SkBitmap icon = browser_window_->browser()->GetCurrentPageIcon();
if (icon.empty()) {
// Fallback to the Chromium icon if the page has no icon.
@@ -904,7 +905,7 @@ void BrowserTitlebar::OnButtonClicked(GtkWidget* button) {
gboolean BrowserTitlebar::OnFaviconMenuButtonPressed(GtkWidget* widget,
GdkEventButton* event) {
- if (event->button != 1 || IsTypePanel())
+ if (event->button != 1)
return FALSE;
ShowFaviconMenu(event);
@@ -1055,10 +1056,6 @@ void BrowserTitlebar::ActiveWindowChanged(GdkWindow* active_window) {
UpdateTextColor();
}
-bool BrowserTitlebar::IsTypePanel() {
- return browser_window_->browser()->is_type_panel();
-}
-
bool BrowserTitlebar::ShouldDisplayAvatar() {
return (IsOffTheRecord() || HasMultipleProfiles()) &&
browser_window_->browser()->is_type_tabbed();
« no previous file with comments | « chrome/browser/ui/gtk/browser_titlebar.h ('k') | chrome/browser/ui/gtk/browser_window_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698