| OLD | NEW |
| 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/content_setting_bubble_gtk.h" | 5 #include "chrome/browser/gtk/content_setting_bubble_gtk.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 // or pain occurs. | 185 // or pain occurs. |
| 186 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE); | 186 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE); |
| 187 } | 187 } |
| 188 radio_group_gtk_.push_back(radio); | 188 radio_group_gtk_.push_back(radio); |
| 189 } | 189 } |
| 190 for (std::vector<GtkWidget*>::const_iterator i = radio_group_gtk_.begin(); | 190 for (std::vector<GtkWidget*>::const_iterator i = radio_group_gtk_.begin(); |
| 191 i != radio_group_gtk_.end(); ++i) { | 191 i != radio_group_gtk_.end(); ++i) { |
| 192 // We can attach signal handlers now that all defaults are set. | 192 // We can attach signal handlers now that all defaults are set. |
| 193 g_signal_connect(*i, "toggled", G_CALLBACK(OnRadioToggledThunk), this); | 193 g_signal_connect(*i, "toggled", G_CALLBACK(OnRadioToggledThunk), this); |
| 194 } | 194 } |
| 195 if (!radio_group_gtk_.empty()) { | |
| 196 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), FALSE, | |
| 197 FALSE, 0); | |
| 198 } | |
| 199 } | 195 } |
| 200 | 196 |
| 201 for (std::vector<ContentSettingBubbleModel::DomainList>::const_iterator i = | 197 for (std::vector<ContentSettingBubbleModel::DomainList>::const_iterator i = |
| 202 content.domain_lists.begin(); | 198 content.domain_lists.begin(); |
| 203 i != content.domain_lists.end(); ++i) { | 199 i != content.domain_lists.end(); ++i) { |
| 204 // Put each list into its own vbox to allow spacing between lists. | 200 // Put each list into its own vbox to allow spacing between lists. |
| 205 GtkWidget* list_content = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); | 201 GtkWidget* list_content = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
| 206 | 202 |
| 207 GtkWidget* label = gtk_label_new(BuildElidedText(i->title).c_str()); | 203 GtkWidget* label = gtk_label_new(BuildElidedText(i->title).c_str()); |
| 208 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 204 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 209 GtkWidget* label_box = gtk_hbox_new(FALSE, 0); | 205 GtkWidget* label_box = gtk_hbox_new(FALSE, 0); |
| 210 gtk_box_pack_start(GTK_BOX(label_box), label, FALSE, FALSE, 0); | 206 gtk_box_pack_start(GTK_BOX(label_box), label, FALSE, FALSE, 0); |
| 211 gtk_box_pack_start(GTK_BOX(list_content), label_box, FALSE, FALSE, 0); | 207 gtk_box_pack_start(GTK_BOX(list_content), label_box, FALSE, FALSE, 0); |
| 212 for (std::set<std::string>::const_iterator j = i->hosts.begin(); | 208 for (std::set<std::string>::const_iterator j = i->hosts.begin(); |
| 213 j != i->hosts.end(); ++j) { | 209 j != i->hosts.end(); ++j) { |
| 214 gtk_box_pack_start(GTK_BOX(list_content), | 210 gtk_box_pack_start(GTK_BOX(list_content), |
| 215 gtk_util::IndentWidget(gtk_util::CreateBoldLabel(*j)), | 211 gtk_util::IndentWidget(gtk_util::CreateBoldLabel(*j)), |
| 216 FALSE, FALSE, 0); | 212 FALSE, FALSE, 0); |
| 217 } | 213 } |
| 218 gtk_box_pack_start(GTK_BOX(bubble_content), list_content, FALSE, FALSE, | 214 gtk_box_pack_start(GTK_BOX(bubble_content), list_content, FALSE, FALSE, |
| 219 gtk_util::kControlSpacing); | 215 gtk_util::kControlSpacing); |
| 220 } | 216 } |
| 221 | 217 |
| 222 if (!content.clear_link.empty()) { | 218 if (!content.custom_link.empty()) { |
| 223 GtkWidget* clear_link_box = gtk_hbox_new(FALSE, 0); | 219 GtkWidget* custom_link_box = gtk_hbox_new(FALSE, 0); |
| 224 GtkWidget* clear_link = gtk_chrome_link_button_new( | 220 GtkWidget* custom_link = NULL; |
| 225 content.clear_link.c_str()); | 221 if (content.custom_link_enabled) { |
| 226 g_signal_connect(clear_link, "clicked", G_CALLBACK(OnClearLinkClickedThunk), | 222 custom_link = gtk_chrome_link_button_new(content.custom_link.c_str()); |
| 227 this); | 223 g_signal_connect(custom_link, "clicked", |
| 228 gtk_box_pack_start(GTK_BOX(clear_link_box), clear_link, FALSE, FALSE, 0); | 224 G_CALLBACK(OnCustomLinkClickedThunk), this); |
| 229 gtk_box_pack_start(GTK_BOX(bubble_content), clear_link_box, | 225 } else { |
| 230 FALSE, FALSE, 0); | 226 custom_link = gtk_label_new(content.custom_link.c_str()); |
| 231 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), | 227 gtk_misc_set_alignment(GTK_MISC(custom_link), 0, 0.5); |
| 228 } |
| 229 DCHECK(custom_link); |
| 230 gtk_box_pack_start(GTK_BOX(custom_link_box), custom_link, FALSE, FALSE, 0); |
| 231 gtk_box_pack_start(GTK_BOX(bubble_content), custom_link_box, |
| 232 FALSE, FALSE, 0); | 232 FALSE, FALSE, 0); |
| 233 } | 233 } |
| 234 | 234 |
| 235 if (!content.info_link.empty()) { | 235 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), |
| 236 GtkWidget* info_link_box = gtk_hbox_new(FALSE, 0); | 236 FALSE, FALSE, 0); |
| 237 GtkWidget* info_link = gtk_chrome_link_button_new( | |
| 238 content.info_link.c_str()); | |
| 239 g_signal_connect(info_link, "clicked", G_CALLBACK(OnInfoLinkClickedThunk), | |
| 240 this); | |
| 241 gtk_box_pack_start(GTK_BOX(info_link_box), info_link, FALSE, FALSE, 0); | |
| 242 gtk_box_pack_start(GTK_BOX(bubble_content), info_link_box, | |
| 243 FALSE, FALSE, 0); | |
| 244 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), | |
| 245 FALSE, FALSE, 0); | |
| 246 } | |
| 247 | |
| 248 if (!content.load_plugins_link_title.empty()) { | |
| 249 GtkWidget* load_plugins_link_box = gtk_hbox_new(FALSE, 0); | |
| 250 GtkWidget* load_plugins_link = gtk_chrome_link_button_new( | |
| 251 content.load_plugins_link_title.c_str()); | |
| 252 gtk_widget_set_sensitive(load_plugins_link, | |
| 253 content.load_plugins_link_enabled); | |
| 254 g_signal_connect(load_plugins_link, "clicked", | |
| 255 G_CALLBACK(OnLoadPluginsLinkClickedThunk), this); | |
| 256 gtk_box_pack_start(GTK_BOX(load_plugins_link_box), load_plugins_link, | |
| 257 FALSE, FALSE, 0); | |
| 258 gtk_box_pack_start(GTK_BOX(bubble_content), load_plugins_link_box, | |
| 259 FALSE, FALSE, 0); | |
| 260 gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), | |
| 261 FALSE, FALSE, 0); | |
| 262 } | |
| 263 | 237 |
| 264 GtkWidget* bottom_box = gtk_hbox_new(FALSE, 0); | 238 GtkWidget* bottom_box = gtk_hbox_new(FALSE, 0); |
| 265 | 239 |
| 266 GtkWidget* manage_link = | 240 GtkWidget* manage_link = |
| 267 gtk_chrome_link_button_new(content.manage_link.c_str()); | 241 gtk_chrome_link_button_new(content.manage_link.c_str()); |
| 268 g_signal_connect(manage_link, "clicked", G_CALLBACK(OnManageLinkClickedThunk), | 242 g_signal_connect(manage_link, "clicked", G_CALLBACK(OnManageLinkClickedThunk), |
| 269 this); | 243 this); |
| 270 gtk_box_pack_start(GTK_BOX(bottom_box), manage_link, FALSE, FALSE, 0); | 244 gtk_box_pack_start(GTK_BOX(bottom_box), manage_link, FALSE, FALSE, 0); |
| 271 | 245 |
| 272 GtkWidget* button = gtk_button_new_with_label( | 246 GtkWidget* button = gtk_button_new_with_label( |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 return; | 298 return; |
| 325 } | 299 } |
| 326 } | 300 } |
| 327 NOTREACHED() << "unknown radio toggled"; | 301 NOTREACHED() << "unknown radio toggled"; |
| 328 } | 302 } |
| 329 | 303 |
| 330 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget *button) { | 304 void ContentSettingBubbleGtk::OnCloseButtonClicked(GtkWidget *button) { |
| 331 Close(); | 305 Close(); |
| 332 } | 306 } |
| 333 | 307 |
| 308 void ContentSettingBubbleGtk::OnCustomLinkClicked(GtkWidget* button) { |
| 309 content_setting_bubble_model_->OnCustomLinkClicked(); |
| 310 Close(); |
| 311 } |
| 312 |
| 334 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) { | 313 void ContentSettingBubbleGtk::OnManageLinkClicked(GtkWidget* button) { |
| 335 content_setting_bubble_model_->OnManageLinkClicked(); | 314 content_setting_bubble_model_->OnManageLinkClicked(); |
| 336 Close(); | 315 Close(); |
| 337 } | 316 } |
| 338 | |
| 339 void ContentSettingBubbleGtk::OnClearLinkClicked(GtkWidget* button) { | |
| 340 content_setting_bubble_model_->OnClearLinkClicked(); | |
| 341 Close(); | |
| 342 } | |
| 343 | |
| 344 void ContentSettingBubbleGtk::OnInfoLinkClicked(GtkWidget* button) { | |
| 345 content_setting_bubble_model_->OnInfoLinkClicked(); | |
| 346 Close(); | |
| 347 } | |
| 348 | |
| 349 void ContentSettingBubbleGtk::OnLoadPluginsLinkClicked(GtkWidget* button) { | |
| 350 content_setting_bubble_model_->OnLoadPluginsLinkClicked(); | |
| 351 Close(); | |
| 352 } | |
| OLD | NEW |