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

Unified Diff: chrome/browser/gtk/blocked_popup_container_view_gtk.cc

Issue 155860: GTK: Popup notification is readable with dark themes in chrome theme mode. (Closed)
Patch Set: Created 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/gtk/blocked_popup_container_view_gtk.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/blocked_popup_container_view_gtk.cc
diff --git a/chrome/browser/gtk/blocked_popup_container_view_gtk.cc b/chrome/browser/gtk/blocked_popup_container_view_gtk.cc
index 6224ff23050429c221191d51fa33198f30770f4a..237fef6c46f1314543a2172153cac2e0dc4bec80 100644
--- a/chrome/browser/gtk/blocked_popup_container_view_gtk.cc
+++ b/chrome/browser/gtk/blocked_popup_container_view_gtk.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_view_gtk.h"
#include "chrome/common/gtk_util.h"
+#include "chrome/common/notification_service.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -74,8 +75,14 @@ void BlockedPopupContainerViewGtk::ShowView() {
void BlockedPopupContainerViewGtk::UpdateLabel() {
size_t blocked_popups = model_->GetBlockedPopupCount();
- gtk_button_set_label(
- GTK_BUTTON(menu_button_),
+ GtkWidget* label = gtk_bin_get_child(GTK_BIN(menu_button_));
+ if (!label) {
+ label = gtk_label_new("");
+ gtk_container_add(GTK_CONTAINER(menu_button_), label);
+ }
+
+ gtk_label_set_text(
+ GTK_LABEL(label),
(blocked_popups > 0) ?
l10n_util::GetStringFUTF8(IDS_POPUPS_BLOCKED_COUNT,
UintToString16(blocked_popups)).c_str() :
@@ -92,6 +99,33 @@ void BlockedPopupContainerViewGtk::Destroy() {
delete this;
}
+void BlockedPopupContainerViewGtk::Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details) {
+ if (type == NotificationType::BROWSER_THEME_CHANGED) {
Evan Stade 2009/07/21 20:00:41 in the interest of keeping things as little indent
+ // Make sure the label exists (so we can change its colors).
+ UpdateLabel();
+
+ // Update the label's colors.
+ GtkWidget* label = gtk_bin_get_child(GTK_BIN(menu_button_));
+ if (theme_provider_->UseGtkTheme()) {
+ gtk_widget_modify_fg(label, GTK_STATE_NORMAL, NULL);
+ gtk_widget_modify_fg(label, GTK_STATE_ACTIVE, NULL);
+ gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, NULL);
+ gtk_widget_modify_fg(label, GTK_STATE_INSENSITIVE, NULL);
+ } else {
+ GdkColor color = theme_provider_->GetGdkColor(
+ BrowserThemeProvider::COLOR_BOOKMARK_TEXT);
+ gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &color);
+ gtk_widget_modify_fg(label, GTK_STATE_ACTIVE, &color);
+ gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &color);
+ gtk_widget_modify_fg(label, GTK_STATE_INSENSITIVE, &color);
+ }
+ } else {
+ NOTREACHED();
+ }
+}
+
bool BlockedPopupContainerViewGtk::IsCommandEnabled(int command_id) const {
return true;
}
@@ -126,6 +160,11 @@ BlockedPopupContainerViewGtk::BlockedPopupContainerViewGtk(
theme_provider_(GtkThemeProvider::GetFrom(container->profile())),
close_button_(CustomDrawButton::CloseButton()) {
Init();
+
+ registrar_.Add(this,
+ NotificationType::BROWSER_THEME_CHANGED,
+ NotificationService::AllSources());
+ theme_provider_->InitThemesFor(this);
}
void BlockedPopupContainerViewGtk::Init() {
« no previous file with comments | « chrome/browser/gtk/blocked_popup_container_view_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698