// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ui/gfx/native_theme_gtk.h" #include #include "base/basictypes.h" #include "base/logging.h" #include "ui/gfx/skia_utils_gtk.h" namespace { const SkColor kInvalidColorIdColor = SkColorSetRGB(255, 0, 128); // Theme colors returned by GetSystemColor(). // FocusableBorder: const SkColor kFocusedBorderColor = SkColorSetRGB(0x4D, 0x90, 0xFE); const SkColor kUnfocusedBorderColor = SkColorSetRGB(0xD9, 0xD9, 0xD9); // TextButton: const SkColor kTextButtonBackgroundColor = SkColorSetRGB(0xde, 0xde, 0xde); const SkColor kTextButtonEnabledColor = SkColorSetRGB(6, 45, 117); const SkColor kTextButtonDisabledColor = SkColorSetRGB(161, 161, 146); const SkColor kTextButtonHighlightColor = SkColorSetARGB(200, 255, 255, 255); const SkColor kTextButtonHoverColor = kTextButtonEnabledColor; } // namespace namespace gfx { // static const NativeTheme* NativeTheme::instance() { return NativeThemeGtk::instance(); } // static const NativeThemeGtk* NativeThemeGtk::instance() { CR_DEFINE_STATIC_LOCAL(NativeThemeGtk, s_native_theme, ()); return &s_native_theme; } SkColor NativeThemeGtk::GetSystemColor(ColorId color_id) const { switch (color_id) { case kColorId_DialogBackground: // TODO(benrg): This code used to call gtk_widget_get_style() on the // widget being styled. After refactoring, that widget is not available // and we have to call gtk_widget_get_default_style(). Unfortunately, // it turns out that this breaks everything (chromium bug 105609, // chromium-os bug 23461). Need to figure out the right thing and do it. return gfx::GdkColorToSkColor( gtk_widget_get_default_style()->bg[GTK_STATE_NORMAL]); // FocusableBorder: case kColorId_FocusedBorderColor: return kFocusedBorderColor; case kColorId_UnfocusedBorderColor: return kUnfocusedBorderColor; // TextButton: case kColorId_TextButtonBackgroundColor: return kTextButtonBackgroundColor; case kColorId_TextButtonEnabledColor: return kTextButtonEnabledColor; case kColorId_TextButtonDisabledColor: return kTextButtonDisabledColor; case kColorId_TextButtonHighlightColor: return kTextButtonHighlightColor; case kColorId_TextButtonHoverColor: return kTextButtonHoverColor; default: NOTREACHED() << "Invalid color_id: " << color_id; break; } return kInvalidColorIdColor; } NativeThemeGtk::NativeThemeGtk() { } NativeThemeGtk::~NativeThemeGtk() { } } // namespace gfx