| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/gtk/browser_titlebar.h" | 5 #include "chrome/browser/gtk/browser_titlebar.h" |
| 6 | 6 |
| 7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
| 8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 // |||spy_guy||| |||+- button -++- button -+ ||| | 104 // |||spy_guy||| |||+- button -++- button -+ ||| |
| 105 // ||| |||+- TabStripGtk ---------+|||| minimize || restore | ... ||| | 105 // ||| |||+- TabStripGtk ---------+|||| minimize || restore | ... ||| |
| 106 // ||| )8\ |||| tab tab tabclose ||||+----------++----------+ ||| | 106 // ||| )8\ |||| tab tab tabclose ||||+----------++----------+ ||| |
| 107 // ||+-------+||+------------------------+||+------------------------------+|| | 107 // ||+-------+||+------------------------+||+------------------------------+|| |
| 108 // |+---------++--------------------------++--------------------------------+| | 108 // |+---------++--------------------------++--------------------------------+| |
| 109 // +-------------------------------------------------------------------------+ | 109 // +-------------------------------------------------------------------------+ |
| 110 // | 110 // |
| 111 // If we're a popup window or in app mode, we don't display the spy guy or | 111 // If we're a popup window or in app mode, we don't display the spy guy or |
| 112 // the tab strip. Instead, put an hbox in titlebar_alignment_ in place of | 112 // the tab strip. Instead, put an hbox in titlebar_alignment_ in place of |
| 113 // the tab strip. | 113 // the tab strip. |
| 114 // +- Alignment (titlebar_alignment_) ----------------------------+ | 114 // +- Alignment (titlebar_alignment_) -----------------------------------+ |
| 115 // |+ HBox ------------------------------------------------------+| | 115 // |+ HBox -------------------------------------------------------------+| |
| 116 // ||+- Image (app_mode_favicon_) -++- Label (app_mode_title_) -+|| | 116 // ||+- TabStripGtk -++- Image ----------------++- Label --------------+|| |
| 117 // ||| favicon || page title ||| | 117 // ||| hidden ++ (app_mode_favicon_) || (app_mode_title_) ||| |
| 118 // ||+-----------------------------++---------------------------+|| | 118 // ||| || favicon || page title ||| |
| 119 // |+------------------------------------------------------------+| | 119 // ||+---------------++------------------------++----------------------+|| |
| 120 // +--------------------------------------------------------------+ | 120 // |+-------------------------------------------------------------------+| |
| 121 // +---------------------------------------------------------------------+ |
| 121 GtkWidget* container_hbox = gtk_hbox_new(FALSE, 0); | 122 GtkWidget* container_hbox = gtk_hbox_new(FALSE, 0); |
| 122 | 123 |
| 123 container_ = gtk_event_box_new(); | 124 container_ = gtk_event_box_new(); |
| 124 gtk_event_box_set_visible_window(GTK_EVENT_BOX(container_), FALSE); | 125 gtk_event_box_set_visible_window(GTK_EVENT_BOX(container_), FALSE); |
| 125 gtk_container_add(GTK_CONTAINER(container_), container_hbox); | 126 gtk_container_add(GTK_CONTAINER(container_), container_hbox); |
| 126 | 127 |
| 127 g_signal_connect(G_OBJECT(container_), "scroll-event", | 128 g_signal_connect(G_OBJECT(container_), "scroll-event", |
| 128 G_CALLBACK(OnScroll), this); | 129 G_CALLBACK(OnScroll), this); |
| 129 | 130 |
| 130 g_signal_connect(window_, "window-state-event", | 131 g_signal_connect(window_, "window-state-event", |
| (...skipping 22 matching lines...) Expand all Loading... |
| 153 // Put the tab strip in the titlebar. | 154 // Put the tab strip in the titlebar. |
| 154 gtk_container_add(GTK_CONTAINER(titlebar_alignment_), | 155 gtk_container_add(GTK_CONTAINER(titlebar_alignment_), |
| 155 browser_window_->tabstrip()->widget()); | 156 browser_window_->tabstrip()->widget()); |
| 156 } else { | 157 } else { |
| 157 // App mode specific widgets. | 158 // App mode specific widgets. |
| 158 gtk_box_pack_start(GTK_BOX(container_hbox), titlebar_alignment_, TRUE, | 159 gtk_box_pack_start(GTK_BOX(container_hbox), titlebar_alignment_, TRUE, |
| 159 TRUE, 0); | 160 TRUE, 0); |
| 160 GtkWidget* app_mode_hbox = gtk_hbox_new(FALSE, kIconTitleSpacing); | 161 GtkWidget* app_mode_hbox = gtk_hbox_new(FALSE, kIconTitleSpacing); |
| 161 gtk_container_add(GTK_CONTAINER(titlebar_alignment_), app_mode_hbox); | 162 gtk_container_add(GTK_CONTAINER(titlebar_alignment_), app_mode_hbox); |
| 162 | 163 |
| 164 // Put the tab strip in the hbox even though we don't show it. Sometimes |
| 165 // we need the position of the tab strip so make sure it's in our widget |
| 166 // hierarchy. |
| 167 gtk_box_pack_start(GTK_BOX(app_mode_hbox), |
| 168 browser_window_->tabstrip()->widget(), FALSE, FALSE, 0); |
| 169 |
| 163 // We use the app logo as a placeholder image so the title doesn't jump | 170 // We use the app logo as a placeholder image so the title doesn't jump |
| 164 // around. | 171 // around. |
| 165 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 172 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 166 // TODO(tc): Add a left click menu to this icon. | 173 // TODO(tc): Add a left click menu to this icon. |
| 167 app_mode_favicon_ = gtk_image_new_from_pixbuf( | 174 app_mode_favicon_ = gtk_image_new_from_pixbuf( |
| 168 rb.GetRTLEnabledPixbufNamed(IDR_PRODUCT_LOGO_16)); | 175 rb.GetRTLEnabledPixbufNamed(IDR_PRODUCT_LOGO_16)); |
| 169 gtk_box_pack_start(GTK_BOX(app_mode_hbox), app_mode_favicon_, FALSE, | 176 gtk_box_pack_start(GTK_BOX(app_mode_hbox), app_mode_favicon_, FALSE, |
| 170 FALSE, 0); | 177 FALSE, 0); |
| 171 | 178 |
| 172 app_mode_title_ = gtk_label_new(NULL); | 179 app_mode_title_ = gtk_label_new(NULL); |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 size_t num_frames = frame_strip->width() / frame_size; | 443 size_t num_frames = frame_strip->width() / frame_size; |
| 437 g_throbber_frames = new std::vector<GdkPixbuf*>; | 444 g_throbber_frames = new std::vector<GdkPixbuf*>; |
| 438 | 445 |
| 439 // Make a separate GdkPixbuf for each frame of the animation. | 446 // Make a separate GdkPixbuf for each frame of the animation. |
| 440 for (size_t i = 0; i < num_frames; ++i) { | 447 for (size_t i = 0; i < num_frames; ++i) { |
| 441 SkBitmap frame = skia::ImageOperations::CreateTiledBitmap(*frame_strip, | 448 SkBitmap frame = skia::ImageOperations::CreateTiledBitmap(*frame_strip, |
| 442 i * frame_size, 0, frame_size, frame_size); | 449 i * frame_size, 0, frame_size, frame_size); |
| 443 g_throbber_frames->push_back(gfx::GdkPixbufFromSkBitmap(&frame)); | 450 g_throbber_frames->push_back(gfx::GdkPixbufFromSkBitmap(&frame)); |
| 444 } | 451 } |
| 445 } | 452 } |
| OLD | NEW |