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/location_bar_view_gtk.h" | 5 #include "chrome/browser/gtk/location_bar_view_gtk.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 // We draw a border on the top and bottom (but not on left or right). | 41 // We draw a border on the top and bottom (but not on left or right). |
42 const int kBorderThickness = 1; | 42 const int kBorderThickness = 1; |
43 | 43 |
44 // Left margin of first run bubble. | 44 // Left margin of first run bubble. |
45 const int kFirstRunBubbleLeftMargin = 8; | 45 const int kFirstRunBubbleLeftMargin = 8; |
46 // Extra vertical spacing for first run bubble. | 46 // Extra vertical spacing for first run bubble. |
47 const int kFirstRunBubbleTopMargin = 1; | 47 const int kFirstRunBubbleTopMargin = 1; |
48 // Task delay (in milliseconds) to show first run bubble. | 48 // Task delay (in milliseconds) to show first run bubble. |
49 const int kFirstRunBubbleTaskDelay = 200; | 49 const int kFirstRunBubbleTaskDelay = 200; |
50 | 50 |
51 // Left and right padding/margin. | 51 // The padding around the top, bottom, and sides of the location bar hbox. |
52 // no icon/text : 4px url_text 4px | 52 // We don't want to edit control's text to be right against the edge, |
53 // [4px|url text|4px] <hide ssl icon> <hide ev text> | 53 // as well the tab to search box and other widgets need to have the padding on |
54 // with icon : 4px url_text 6px ssl_icon 8px | 54 // top and bottom to avoid drawing larger than the location bar space. |
55 // [4px|url text|4px] [2px|ssl icon|8px] <hide ev text> | 55 const int kHboxBorder = 4; |
56 // with icon/text: 4px url_text 6px ssl_icon 8px ev_text 4px] | |
57 // [4px|url text|4px] [2px|ssl icon|8px] [ev text|4px] | |
58 | 56 |
59 // We don't want to edit control's text to be right against the edge. | 57 // Padding between the elements in the bar. |
60 const int kEditLeftRightPadding = 4; | 58 static const int kInnerPadding = 4; |
61 | |
62 // Padding around the security icon. | |
63 const int kSecurityIconPaddingLeft = 0; | |
64 const int kSecurityIconPaddingRight = 6; | |
65 | |
66 const int kEvTextPaddingRight = 4; | |
67 | |
68 const int kKeywordTopBottomPadding = 4; | |
69 const int kKeywordLeftRightPadding = 4; | |
70 | 59 |
71 // TODO(deanm): Eventually this should be painted with the background png | 60 // TODO(deanm): Eventually this should be painted with the background png |
72 // image, but for now we get pretty close by just drawing a solid border. | 61 // image, but for now we get pretty close by just drawing a solid border. |
73 const GdkColor kBorderColor = GDK_COLOR_RGB(0xbe, 0xc8, 0xd4); | 62 const GdkColor kBorderColor = GDK_COLOR_RGB(0xbe, 0xc8, 0xd4); |
74 const GdkColor kEvTextColor = GDK_COLOR_RGB(0x00, 0x96, 0x14); // Green. | 63 const GdkColor kEvTextColor = GDK_COLOR_RGB(0x00, 0x96, 0x14); // Green. |
75 const GdkColor kKeywordBackgroundColor = GDK_COLOR_RGB(0xf0, 0xf4, 0xfa); | 64 const GdkColor kKeywordBackgroundColor = GDK_COLOR_RGB(0xf0, 0xf4, 0xfa); |
76 const GdkColor kKeywordBorderColor = GDK_COLOR_RGB(0xcb, 0xde, 0xf7); | 65 const GdkColor kKeywordBorderColor = GDK_COLOR_RGB(0xcb, 0xde, 0xf7); |
77 | 66 |
78 // Size of the rounding of the "Search site for:" box. | 67 // Size of the rounding of the "Search site for:" box. |
79 const int kCornerSize = 3; | 68 const int kCornerSize = 3; |
(...skipping 15 matching lines...) Expand all Loading... |
95 | 84 |
96 // static | 85 // static |
97 const GdkColor LocationBarViewGtk::kBackgroundColorByLevel[3] = { | 86 const GdkColor LocationBarViewGtk::kBackgroundColorByLevel[3] = { |
98 GDK_COLOR_RGB(255, 245, 195), // SecurityLevel SECURE: Yellow. | 87 GDK_COLOR_RGB(255, 245, 195), // SecurityLevel SECURE: Yellow. |
99 GDK_COLOR_RGB(255, 255, 255), // SecurityLevel NORMAL: White. | 88 GDK_COLOR_RGB(255, 255, 255), // SecurityLevel NORMAL: White. |
100 GDK_COLOR_RGB(255, 255, 255), // SecurityLevel INSECURE: White. | 89 GDK_COLOR_RGB(255, 255, 255), // SecurityLevel INSECURE: White. |
101 }; | 90 }; |
102 | 91 |
103 LocationBarViewGtk::LocationBarViewGtk(CommandUpdater* command_updater, | 92 LocationBarViewGtk::LocationBarViewGtk(CommandUpdater* command_updater, |
104 ToolbarModel* toolbar_model, AutocompletePopupPositioner* popup_positioner) | 93 ToolbarModel* toolbar_model, AutocompletePopupPositioner* popup_positioner) |
105 : security_icon_align_(NULL), | 94 : security_icon_event_box_(NULL), |
106 security_lock_icon_image_(NULL), | 95 security_lock_icon_image_(NULL), |
107 security_warning_icon_image_(NULL), | 96 security_warning_icon_image_(NULL), |
108 info_label_align_(NULL), | |
109 info_label_(NULL), | 97 info_label_(NULL), |
110 tab_to_search_(NULL), | |
111 tab_to_search_box_(NULL), | 98 tab_to_search_box_(NULL), |
112 tab_to_search_label_(NULL), | 99 tab_to_search_label_(NULL), |
113 tab_to_search_hint_(NULL), | 100 tab_to_search_hint_(NULL), |
114 tab_to_search_hint_leading_label_(NULL), | 101 tab_to_search_hint_leading_label_(NULL), |
115 tab_to_search_hint_icon_(NULL), | 102 tab_to_search_hint_icon_(NULL), |
116 tab_to_search_hint_trailing_label_(NULL), | 103 tab_to_search_hint_trailing_label_(NULL), |
117 profile_(NULL), | 104 profile_(NULL), |
118 command_updater_(command_updater), | 105 command_updater_(command_updater), |
119 toolbar_model_(toolbar_model), | 106 toolbar_model_(toolbar_model), |
120 popup_positioner_(popup_positioner), | 107 popup_positioner_(popup_positioner), |
(...skipping 12 matching lines...) Expand all Loading... |
133 void LocationBarViewGtk::Init(bool popup_window_mode) { | 120 void LocationBarViewGtk::Init(bool popup_window_mode) { |
134 popup_window_mode_ = popup_window_mode; | 121 popup_window_mode_ = popup_window_mode; |
135 location_entry_.reset(new AutocompleteEditViewGtk(this, | 122 location_entry_.reset(new AutocompleteEditViewGtk(this, |
136 toolbar_model_, | 123 toolbar_model_, |
137 profile_, | 124 profile_, |
138 command_updater_, | 125 command_updater_, |
139 popup_window_mode_, | 126 popup_window_mode_, |
140 popup_positioner_)); | 127 popup_positioner_)); |
141 location_entry_->Init(); | 128 location_entry_->Init(); |
142 | 129 |
143 hbox_.Own(gtk_hbox_new(FALSE, 0)); | 130 hbox_.Own(gtk_hbox_new(FALSE, kInnerPadding)); |
| 131 gtk_container_set_border_width(GTK_CONTAINER(hbox_.get()), kHboxBorder); |
144 // We will paint for the alignment, to paint the background and border. | 132 // We will paint for the alignment, to paint the background and border. |
145 gtk_widget_set_app_paintable(hbox_.get(), TRUE); | 133 gtk_widget_set_app_paintable(hbox_.get(), TRUE); |
146 // Have GTK double buffer around the expose signal. | 134 // Have GTK double buffer around the expose signal. |
147 gtk_widget_set_double_buffered(hbox_.get(), TRUE); | 135 gtk_widget_set_double_buffered(hbox_.get(), TRUE); |
148 // Redraw the whole location bar when it changes size (e.g., when toggling | 136 // Redraw the whole location bar when it changes size (e.g., when toggling |
149 // the home button on/off. | 137 // the home button on/off. |
150 gtk_widget_set_redraw_on_allocate(hbox_.get(), TRUE); | 138 gtk_widget_set_redraw_on_allocate(hbox_.get(), TRUE); |
151 | 139 |
152 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 140 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
153 security_lock_icon_image_ = gtk_image_new_from_pixbuf( | 141 security_lock_icon_image_ = gtk_image_new_from_pixbuf( |
154 rb.GetPixbufNamed(IDR_LOCK)); | 142 rb.GetPixbufNamed(IDR_LOCK)); |
155 gtk_widget_hide(GTK_WIDGET(security_lock_icon_image_)); | 143 gtk_widget_hide(GTK_WIDGET(security_lock_icon_image_)); |
156 security_warning_icon_image_ = gtk_image_new_from_pixbuf( | 144 security_warning_icon_image_ = gtk_image_new_from_pixbuf( |
157 rb.GetPixbufNamed(IDR_WARNING)); | 145 rb.GetPixbufNamed(IDR_WARNING)); |
158 gtk_widget_hide(GTK_WIDGET(security_warning_icon_image_)); | 146 gtk_widget_hide(GTK_WIDGET(security_warning_icon_image_)); |
159 | 147 |
160 info_label_ = gtk_label_new(NULL); | 148 info_label_ = gtk_label_new(NULL); |
161 gtk_widget_modify_base(info_label_, GTK_STATE_NORMAL, | 149 gtk_widget_modify_base(info_label_, GTK_STATE_NORMAL, |
162 &LocationBarViewGtk::kBackgroundColorByLevel[0]); | 150 &LocationBarViewGtk::kBackgroundColorByLevel[0]); |
163 gtk_widget_hide(GTK_WIDGET(info_label_)); | 151 gtk_widget_hide(GTK_WIDGET(info_label_)); |
164 | 152 |
165 g_signal_connect(hbox_.get(), "expose-event", | 153 g_signal_connect(hbox_.get(), "expose-event", |
166 G_CALLBACK(&HandleExposeThunk), this); | 154 G_CALLBACK(&HandleExposeThunk), this); |
167 | 155 |
168 // Tab to search (the keyword box on the left hand side). | 156 // Tab to search (the keyword box on the left hand side). |
169 tab_to_search_label_ = gtk_label_new(NULL); | 157 tab_to_search_label_ = gtk_label_new(NULL); |
170 // We need an alignment to pad our box inside the edit area. | |
171 tab_to_search_ = gtk_alignment_new(0.0, 0.0, 1.0, 1.0); | |
172 gtk_alignment_set_padding(GTK_ALIGNMENT(tab_to_search_), | |
173 kKeywordTopBottomPadding, kKeywordTopBottomPadding, | |
174 kKeywordLeftRightPadding, kKeywordLeftRightPadding); | |
175 | 158 |
176 // This crazy stack of alignments and event boxes creates a box around the | 159 // This creates a box around the keyword text with a border, background color, |
177 // keyword text with a border, background color, and padding around the text. | 160 // and padding around the text. |
178 tab_to_search_box_ = gtk_util::CreateGtkBorderBin( | 161 tab_to_search_box_ = gtk_util::CreateGtkBorderBin( |
179 tab_to_search_label_, NULL, 1, 1, 2, 2); | 162 tab_to_search_label_, NULL, 1, 1, 2, 2); |
180 gtk_util::ActAsRoundedWindow(tab_to_search_box_, kBorderColor, kCornerSize, | 163 gtk_util::ActAsRoundedWindow(tab_to_search_box_, kBorderColor, kCornerSize, |
181 gtk_util::ROUNDED_ALL, gtk_util::BORDER_ALL); | 164 gtk_util::ROUNDED_ALL, gtk_util::BORDER_ALL); |
182 gtk_container_add(GTK_CONTAINER(tab_to_search_), tab_to_search_box_); | 165 gtk_box_pack_start(GTK_BOX(hbox_.get()), tab_to_search_box_, FALSE, FALSE, 0); |
183 gtk_box_pack_start(GTK_BOX(hbox_.get()), tab_to_search_, FALSE, FALSE, 0); | |
184 | 166 |
185 GtkWidget* align = gtk_alignment_new(0.0, 0.0, 1.0, 1.0); | 167 GtkWidget* align = gtk_alignment_new(0.0, 0.0, 1.0, 1.0); |
186 // TODO(erg): Like in BrowserToolbarGtk, this used to have a code path on | 168 // TODO(erg): Like in BrowserToolbarGtk, this used to have a code path on |
187 // construction for with GTK themes and without. Doing that only on | 169 // construction for with GTK themes and without. Doing that only on |
188 // construction was wrong, and I can't see a difference between the two ways | 170 // construction was wrong, and I can't see a difference between the two ways |
189 // anyway... Investigate more later. | 171 // anyway... Investigate more later. |
190 if (popup_window_mode_) { | 172 if (popup_window_mode_) { |
191 gtk_alignment_set_padding(GTK_ALIGNMENT(align), | 173 gtk_alignment_set_padding(GTK_ALIGNMENT(align), |
192 kTopMargin + kBorderThickness, | 174 kTopMargin + kBorderThickness, |
193 kBottomMargin + kBorderThickness, | 175 kBottomMargin + kBorderThickness, |
194 kEditLeftRightPadding + kBorderThickness, | 176 kBorderThickness, |
195 kEditLeftRightPadding + kBorderThickness); | 177 kBorderThickness); |
196 } else { | 178 } else { |
197 gtk_alignment_set_padding(GTK_ALIGNMENT(align), | 179 gtk_alignment_set_padding(GTK_ALIGNMENT(align), |
198 kTopMargin + kBorderThickness, | 180 kTopMargin + kBorderThickness, |
199 kBottomMargin + kBorderThickness, | 181 kBottomMargin + kBorderThickness, |
200 kEditLeftRightPadding, kEditLeftRightPadding); | 182 0, 0); |
201 } | 183 } |
202 gtk_container_add(GTK_CONTAINER(align), location_entry_->widget()); | 184 gtk_container_add(GTK_CONTAINER(align), location_entry_->widget()); |
203 gtk_box_pack_start(GTK_BOX(hbox_.get()), align, TRUE, TRUE, 0); | 185 gtk_box_pack_start(GTK_BOX(hbox_.get()), align, TRUE, TRUE, 0); |
204 | 186 |
205 // Tab to search notification (the hint on the right hand side). | 187 // Tab to search notification (the hint on the right hand side). |
206 tab_to_search_hint_ = gtk_hbox_new(FALSE, 0); | 188 tab_to_search_hint_ = gtk_hbox_new(FALSE, 0); |
207 tab_to_search_hint_leading_label_ = gtk_label_new(NULL); | 189 tab_to_search_hint_leading_label_ = gtk_label_new(NULL); |
208 tab_to_search_hint_icon_ = gtk_image_new_from_pixbuf( | 190 tab_to_search_hint_icon_ = gtk_image_new_from_pixbuf( |
209 rb.GetPixbufNamed(IDR_LOCATION_BAR_KEYWORD_HINT_TAB)); | 191 rb.GetPixbufNamed(IDR_LOCATION_BAR_KEYWORD_HINT_TAB)); |
210 tab_to_search_hint_trailing_label_ = gtk_label_new(NULL); | 192 tab_to_search_hint_trailing_label_ = gtk_label_new(NULL); |
211 gtk_box_pack_start(GTK_BOX(tab_to_search_hint_), | 193 gtk_box_pack_start(GTK_BOX(tab_to_search_hint_), |
212 tab_to_search_hint_leading_label_, | 194 tab_to_search_hint_leading_label_, |
213 FALSE, FALSE, 0); | 195 FALSE, FALSE, 0); |
214 gtk_box_pack_start(GTK_BOX(tab_to_search_hint_), | 196 gtk_box_pack_start(GTK_BOX(tab_to_search_hint_), |
215 tab_to_search_hint_icon_, | 197 tab_to_search_hint_icon_, |
216 FALSE, FALSE, 0); | 198 FALSE, FALSE, 0); |
217 gtk_box_pack_start(GTK_BOX(tab_to_search_hint_), | 199 gtk_box_pack_start(GTK_BOX(tab_to_search_hint_), |
218 tab_to_search_hint_trailing_label_, | 200 tab_to_search_hint_trailing_label_, |
219 FALSE, FALSE, 0); | 201 FALSE, FALSE, 0); |
220 // tab_to_search_hint_ gets hidden initially in OnChanged. Hiding it here | 202 // tab_to_search_hint_ gets hidden initially in OnChanged. Hiding it here |
221 // doesn't work, someone is probably calling show_all on our parent box. | 203 // doesn't work, someone is probably calling show_all on our parent box. |
222 gtk_box_pack_end(GTK_BOX(hbox_.get()), tab_to_search_hint_, FALSE, FALSE, 4); | 204 gtk_box_pack_end(GTK_BOX(hbox_.get()), tab_to_search_hint_, FALSE, FALSE, 4); |
223 | 205 |
224 // Pack info_label_ and security icons in hbox. We hide/show them | 206 // Pack info_label_ and security icons in hbox. We hide/show them |
225 // by SetSecurityIcon() and SetInfoText(). | 207 // by SetSecurityIcon() and SetInfoText(). |
226 info_label_align_ = gtk_alignment_new(0.0, 0.0, 1.0, 1.0); | 208 gtk_box_pack_end(GTK_BOX(hbox_.get()), info_label_, FALSE, FALSE, 0); |
227 gtk_alignment_set_padding(GTK_ALIGNMENT(info_label_align_), | |
228 kTopMargin + kBorderThickness, | |
229 kBottomMargin + kBorderThickness, | |
230 0, kEvTextPaddingRight); | |
231 gtk_container_add(GTK_CONTAINER(info_label_align_), info_label_); | |
232 gtk_box_pack_end(GTK_BOX(hbox_.get()), info_label_align_, FALSE, FALSE, 0); | |
233 | 209 |
234 GtkWidget* security_icon_box = gtk_hbox_new(FALSE, 0); | 210 GtkWidget* security_icon_box = gtk_hbox_new(FALSE, 0); |
235 gtk_box_pack_start(GTK_BOX(security_icon_box), | 211 gtk_box_pack_start(GTK_BOX(security_icon_box), |
236 security_lock_icon_image_, FALSE, FALSE, 0); | 212 security_lock_icon_image_, FALSE, FALSE, 0); |
237 gtk_box_pack_start(GTK_BOX(security_icon_box), | 213 gtk_box_pack_start(GTK_BOX(security_icon_box), |
238 security_warning_icon_image_, FALSE, FALSE, 0); | 214 security_warning_icon_image_, FALSE, FALSE, 0); |
239 | 215 |
240 security_icon_align_ = gtk_alignment_new(0.0, 0.0, 1.0, 1.0); | |
241 gtk_alignment_set_padding(GTK_ALIGNMENT(security_icon_align_), | |
242 kTopMargin + kBorderThickness, | |
243 kBottomMargin + kBorderThickness, | |
244 kSecurityIconPaddingLeft, | |
245 kSecurityIconPaddingRight); | |
246 // GtkImage is a "no window" widget and requires a GtkEventBox to receive | 216 // GtkImage is a "no window" widget and requires a GtkEventBox to receive |
247 // events. | 217 // events. |
248 GtkWidget* event_box = gtk_event_box_new(); | 218 security_icon_event_box_ = gtk_event_box_new(); |
249 // Make the event box not visible so it does not paint a background. | 219 // Make the event box not visible so it does not paint a background. |
250 gtk_event_box_set_visible_window(GTK_EVENT_BOX(event_box), FALSE); | 220 gtk_event_box_set_visible_window(GTK_EVENT_BOX(security_icon_event_box_), |
251 g_signal_connect(event_box, "button-press-event", | 221 FALSE); |
| 222 g_signal_connect(security_icon_event_box_, "button-press-event", |
252 G_CALLBACK(&OnSecurityIconPressed), this); | 223 G_CALLBACK(&OnSecurityIconPressed), this); |
253 | 224 |
254 gtk_container_add(GTK_CONTAINER(event_box), security_icon_box); | 225 gtk_container_add(GTK_CONTAINER(security_icon_event_box_), security_icon_box); |
255 gtk_container_add(GTK_CONTAINER(security_icon_align_), event_box); | 226 gtk_box_pack_end(GTK_BOX(hbox_.get()), security_icon_event_box_, |
256 gtk_box_pack_end(GTK_BOX(hbox_.get()), security_icon_align_, FALSE, FALSE, 0); | 227 FALSE, FALSE, 0); |
257 | 228 |
258 registrar_.Add(this, | 229 registrar_.Add(this, |
259 NotificationType::BROWSER_THEME_CHANGED, | 230 NotificationType::BROWSER_THEME_CHANGED, |
260 NotificationService::AllSources()); | 231 NotificationService::AllSources()); |
261 theme_provider_ = GtkThemeProvider::GetFrom(profile_); | 232 theme_provider_ = GtkThemeProvider::GetFrom(profile_); |
262 theme_provider_->InitThemesFor(this); | 233 theme_provider_->InitThemesFor(this); |
263 } | 234 } |
264 | 235 |
265 void LocationBarViewGtk::SetProfile(Profile* profile) { | 236 void LocationBarViewGtk::SetProfile(Profile* profile) { |
266 profile_ = profile; | 237 profile_ = profile; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 } | 287 } |
317 | 288 |
318 void LocationBarViewGtk::OnChanged() { | 289 void LocationBarViewGtk::OnChanged() { |
319 const std::wstring keyword(location_entry_->model()->keyword()); | 290 const std::wstring keyword(location_entry_->model()->keyword()); |
320 const bool is_keyword_hint = location_entry_->model()->is_keyword_hint(); | 291 const bool is_keyword_hint = location_entry_->model()->is_keyword_hint(); |
321 const bool show_selected_keyword = !keyword.empty() && !is_keyword_hint; | 292 const bool show_selected_keyword = !keyword.empty() && !is_keyword_hint; |
322 const bool show_keyword_hint = !keyword.empty() && is_keyword_hint; | 293 const bool show_keyword_hint = !keyword.empty() && is_keyword_hint; |
323 | 294 |
324 if (show_selected_keyword) { | 295 if (show_selected_keyword) { |
325 SetKeywordLabel(keyword); | 296 SetKeywordLabel(keyword); |
326 gtk_widget_show_all(tab_to_search_); | 297 gtk_widget_show_all(tab_to_search_box_); |
327 } else { | 298 } else { |
328 gtk_widget_hide_all(tab_to_search_); | 299 gtk_widget_hide_all(tab_to_search_box_); |
329 } | 300 } |
330 | 301 |
331 if (show_keyword_hint) { | 302 if (show_keyword_hint) { |
332 SetKeywordHintLabel(keyword); | 303 SetKeywordHintLabel(keyword); |
333 gtk_widget_show_all(tab_to_search_hint_); | 304 gtk_widget_show_all(tab_to_search_hint_); |
334 } else { | 305 } else { |
335 gtk_widget_hide_all(tab_to_search_hint_); | 306 gtk_widget_hide_all(tab_to_search_hint_); |
336 } | 307 } |
337 } | 308 } |
338 | 309 |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 g_object_unref(gc); | 474 g_object_unref(gc); |
504 } | 475 } |
505 | 476 |
506 return FALSE; // Continue propagating the expose. | 477 return FALSE; // Continue propagating the expose. |
507 } | 478 } |
508 | 479 |
509 void LocationBarViewGtk::SetSecurityIcon(ToolbarModel::Icon icon) { | 480 void LocationBarViewGtk::SetSecurityIcon(ToolbarModel::Icon icon) { |
510 gtk_widget_hide(GTK_WIDGET(security_lock_icon_image_)); | 481 gtk_widget_hide(GTK_WIDGET(security_lock_icon_image_)); |
511 gtk_widget_hide(GTK_WIDGET(security_warning_icon_image_)); | 482 gtk_widget_hide(GTK_WIDGET(security_warning_icon_image_)); |
512 if (icon != ToolbarModel::NO_ICON) | 483 if (icon != ToolbarModel::NO_ICON) |
513 gtk_widget_show(GTK_WIDGET(security_icon_align_)); | 484 gtk_widget_show(GTK_WIDGET(security_icon_event_box_)); |
514 else | 485 else |
515 gtk_widget_hide(GTK_WIDGET(security_icon_align_)); | 486 gtk_widget_hide(GTK_WIDGET(security_icon_event_box_)); |
516 switch (icon) { | 487 switch (icon) { |
517 case ToolbarModel::LOCK_ICON: | 488 case ToolbarModel::LOCK_ICON: |
518 gtk_widget_show(GTK_WIDGET(security_lock_icon_image_)); | 489 gtk_widget_show(GTK_WIDGET(security_lock_icon_image_)); |
519 break; | 490 break; |
520 case ToolbarModel::WARNING_ICON: | 491 case ToolbarModel::WARNING_ICON: |
521 gtk_widget_show(GTK_WIDGET(security_warning_icon_image_)); | 492 gtk_widget_show(GTK_WIDGET(security_warning_icon_image_)); |
522 break; | 493 break; |
523 case ToolbarModel::NO_ICON: | 494 case ToolbarModel::NO_ICON: |
524 break; | 495 break; |
525 default: | 496 default: |
526 NOTREACHED(); | 497 NOTREACHED(); |
527 break; | 498 break; |
528 } | 499 } |
529 } | 500 } |
530 | 501 |
531 void LocationBarViewGtk::SetInfoText() { | 502 void LocationBarViewGtk::SetInfoText() { |
532 std::wstring info_text, info_tooltip; | 503 std::wstring info_text, info_tooltip; |
533 ToolbarModel::InfoTextType info_text_type = | 504 ToolbarModel::InfoTextType info_text_type = |
534 toolbar_model_->GetInfoText(&info_text, &info_tooltip); | 505 toolbar_model_->GetInfoText(&info_text, &info_tooltip); |
535 if (info_text_type == ToolbarModel::INFO_EV_TEXT) { | 506 if (info_text_type == ToolbarModel::INFO_EV_TEXT) { |
536 gtk_widget_modify_fg(GTK_WIDGET(info_label_), GTK_STATE_NORMAL, | 507 gtk_widget_modify_fg(GTK_WIDGET(info_label_), GTK_STATE_NORMAL, |
537 &kEvTextColor); | 508 &kEvTextColor); |
538 gtk_widget_show(GTK_WIDGET(info_label_align_)); | 509 gtk_widget_show(GTK_WIDGET(info_label_)); |
539 } else { | 510 } else { |
540 DCHECK_EQ(info_text_type, ToolbarModel::INFO_NO_INFO); | 511 DCHECK_EQ(info_text_type, ToolbarModel::INFO_NO_INFO); |
541 DCHECK(info_text.empty()); | 512 DCHECK(info_text.empty()); |
542 // Clear info_text. Should we reset the fg here? | 513 // Clear info_text. Should we reset the fg here? |
543 gtk_widget_hide(GTK_WIDGET(info_label_align_)); | 514 gtk_widget_hide(GTK_WIDGET(info_label_)); |
544 } | 515 } |
545 gtk_label_set_text(GTK_LABEL(info_label_), WideToUTF8(info_text).c_str()); | 516 gtk_label_set_text(GTK_LABEL(info_label_), WideToUTF8(info_text).c_str()); |
546 gtk_widget_set_tooltip_text(GTK_WIDGET(info_label_), | 517 gtk_widget_set_tooltip_text(GTK_WIDGET(info_label_), |
547 WideToUTF8(info_tooltip).c_str()); | 518 WideToUTF8(info_tooltip).c_str()); |
548 } | 519 } |
549 | 520 |
550 void LocationBarViewGtk::SetKeywordLabel(const std::wstring& keyword) { | 521 void LocationBarViewGtk::SetKeywordLabel(const std::wstring& keyword) { |
551 if (keyword.empty()) | 522 if (keyword.empty()) |
552 return; | 523 return; |
553 | 524 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 LocationBarViewGtk* location_bar) { | 593 LocationBarViewGtk* location_bar) { |
623 TabContents* tab = BrowserList::GetLastActive()->GetSelectedTabContents(); | 594 TabContents* tab = BrowserList::GetLastActive()->GetSelectedTabContents(); |
624 NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); | 595 NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); |
625 if (!nav_entry) { | 596 if (!nav_entry) { |
626 NOTREACHED(); | 597 NOTREACHED(); |
627 return true; | 598 return true; |
628 } | 599 } |
629 tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); | 600 tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); |
630 return true; | 601 return true; |
631 } | 602 } |
OLD | NEW |