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

Side by Side Diff: chrome/browser/gtk/tabs/tab_strip_gtk.cc

Issue 2824044: Implement App Tabs for GTK (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: last cr change Created 10 years, 5 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
« no previous file with comments | « chrome/browser/gtk/tabs/tab_renderer_gtk.cc ('k') | chrome/browser/tab_contents/tab_contents.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/tabs/tab_strip_gtk.h" 5 #include "chrome/browser/gtk/tabs/tab_strip_gtk.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/gtk_dnd_util.h" 9 #include "app/gtk_dnd_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 } 953 }
954 } 954 }
955 955
956 if (!tab) 956 if (!tab)
957 tab = new TabGtk(this); 957 tab = new TabGtk(this);
958 958
959 // Only insert if we're not already in the list. 959 // Only insert if we're not already in the list.
960 if (!contains_tab) { 960 if (!contains_tab) {
961 TabData d = { tab, gfx::Rect() }; 961 TabData d = { tab, gfx::Rect() };
962 tab_data_.insert(tab_data_.begin() + index, d); 962 tab_data_.insert(tab_data_.begin() + index, d);
963 tab->UpdateData(contents, model_->IsPhantomTab(index), false); 963 tab->UpdateData(contents, model_->IsPhantomTab(index),
964 model_->IsAppTab(index), false);
964 } 965 }
965 tab->set_mini(model_->IsMiniTab(index)); 966 tab->set_mini(model_->IsMiniTab(index));
967 tab->set_app(model_->IsAppTab(index));
966 tab->SetBlocked(model_->IsTabBlocked(index)); 968 tab->SetBlocked(model_->IsTabBlocked(index));
967 969
968 if (gtk_widget_get_parent(tab->widget()) != tabstrip_.get()) 970 if (gtk_widget_get_parent(tab->widget()) != tabstrip_.get())
969 gtk_fixed_put(GTK_FIXED(tabstrip_.get()), tab->widget(), 0, 0); 971 gtk_fixed_put(GTK_FIXED(tabstrip_.get()), tab->widget(), 0, 0);
970 972
971 // Don't animate the first tab; it looks weird. 973 // Don't animate the first tab; it looks weird.
972 if (GetTabCount() > 1) { 974 if (GetTabCount() > 1) {
973 StartInsertTabAnimation(index); 975 StartInsertTabAnimation(index);
974 // We added the tab at 0x0, we need to force an animation step otherwise 976 // We added the tab at 0x0, we need to force an animation step otherwise
975 // if GTK paints before the animation event the tab is painted at 0x0 977 // if GTK paints before the animation event the tab is painted at 0x0
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 TabChangeType change_type) { 1032 TabChangeType change_type) {
1031 // Index is in terms of the model. Need to make sure we adjust that index in 1033 // Index is in terms of the model. Need to make sure we adjust that index in
1032 // case we have an animation going. 1034 // case we have an animation going.
1033 TabGtk* tab = GetTabAtAdjustForAnimation(index); 1035 TabGtk* tab = GetTabAtAdjustForAnimation(index);
1034 if (change_type == TITLE_NOT_LOADING) { 1036 if (change_type == TITLE_NOT_LOADING) {
1035 if (tab->mini() && !tab->IsSelected()) 1037 if (tab->mini() && !tab->IsSelected())
1036 tab->StartMiniTabTitleAnimation(); 1038 tab->StartMiniTabTitleAnimation();
1037 // We'll receive another notification of the change asynchronously. 1039 // We'll receive another notification of the change asynchronously.
1038 return; 1040 return;
1039 } 1041 }
1040 tab->UpdateData(contents, model_->IsPhantomTab(index), 1042 tab->UpdateData(contents,
1043 model_->IsPhantomTab(index),
1044 model_->IsAppTab(index),
1041 change_type == LOADING_ONLY); 1045 change_type == LOADING_ONLY);
1042 tab->UpdateFromModel(); 1046 tab->UpdateFromModel();
1043 } 1047 }
1044 1048
1045 void TabStripGtk::TabReplacedAt(TabContents* old_contents, 1049 void TabStripGtk::TabReplacedAt(TabContents* old_contents,
1046 TabContents* new_contents, 1050 TabContents* new_contents,
1047 int index) { 1051 int index) {
1048 TabChangedAt(new_contents, index, ALL); 1052 TabChangedAt(new_contents, index, ALL);
1049 } 1053 }
1050 1054
(...skipping 980 matching lines...) Expand 10 before | Expand all | Expand 10 after
2031 2035
2032 // Let the middle mouse button initiate clicks as well. 2036 // Let the middle mouse button initiate clicks as well.
2033 gtk_util::SetButtonTriggersNavigation(button->widget()); 2037 gtk_util::SetButtonTriggersNavigation(button->widget());
2034 g_signal_connect(button->widget(), "clicked", 2038 g_signal_connect(button->widget(), "clicked",
2035 G_CALLBACK(OnNewTabClickedThunk), this); 2039 G_CALLBACK(OnNewTabClickedThunk), this);
2036 GTK_WIDGET_UNSET_FLAGS(button->widget(), GTK_CAN_FOCUS); 2040 GTK_WIDGET_UNSET_FLAGS(button->widget(), GTK_CAN_FOCUS);
2037 gtk_fixed_put(GTK_FIXED(tabstrip_.get()), button->widget(), 0, 0); 2041 gtk_fixed_put(GTK_FIXED(tabstrip_.get()), button->widget(), 0, 0);
2038 2042
2039 return button; 2043 return button;
2040 } 2044 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/tabs/tab_renderer_gtk.cc ('k') | chrome/browser/tab_contents/tab_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698