172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file.
44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/gtk/chrome_gtk_frame.h"
64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochG_BEGIN_DECLS
84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// MetaFrames declaration
104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochG_DEFINE_TYPE(MetaFrames, meta_frames, GTK_TYPE_WINDOW)
114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstatic void meta_frames_class_init(MetaFramesClass* frames_class) {
134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // Noop since we don't declare anything.
144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstatic void meta_frames_init(MetaFrames* button) {
174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// ChromeGtkFrame declaration
214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochG_DEFINE_TYPE(ChromeGtkFrame, chrome_gtk_frame, meta_frames_get_type())
224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstatic void chrome_gtk_frame_class_init(ChromeGtkFrameClass* frame_class) {
244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  GtkWidgetClass* widget_class = reinterpret_cast<GtkWidgetClass*>(frame_class);
254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // Frame tints:
274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "frame-color",
314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Frame Color",
324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The color that the chrome frame will be. (If unspecified, "
334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " Chrome will take ChromeGtkFrame::bg[SELECTED] and slightly darken"
344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " it.)",
354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "inactive-frame-color",
414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Inactive Frame Color",
424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The color that the inactive chrome frame will be. (If"
434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " unspecified, Chrome will take ChromeGtkFrame::bg[INSENSITIVE]"
444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " and slightly darken it.)",
454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "incognito-frame-color",
514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Incognito Frame Color",
524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The color that the incognito frame will be. (If unspecified,"
534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " Chrome will take the frame color and tint it by Chrome's default"
544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " incognito tint.)",
554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
564a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
574a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "incognito-inactive-frame-color",
614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Incognito Inactive Frame Color",
624a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The color that the inactive incognito frame will be. (If"
634a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " unspecified, Chrome will take the frame color and tint it by"
644a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " Chrome's default incognito tint.)",
654a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
664a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
674a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
684a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // Frame gradient control:
694a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
704a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
714a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_int(
724a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "frame-gradient-size",
734a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Chrome Frame Gradient Size",
744a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The size of the gradient on top of the frame image. Specify 0 to"
754a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " make the frame a solid color.",
764a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          0,      // 0 disables the gradient
774a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          128,    // The frame image is only up to 128 pixels tall.
784a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          16,     // By default, gradients are 16 pixels high.
794a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
804a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
814a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
824a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
834a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "frame-gradient-color",
844a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Frame Gradient Color",
854a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The top color of the chrome frame gradient. (If unspecified,"
864a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " chrome will create a lighter tint of frame-color",
874a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
884a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
894a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
904a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
914a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
924a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "inactive-frame-gradient-color",
934a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Inactive Frame Gradient Color",
944a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The top color of the inactive chrome frame gradient. (If"
954a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " unspecified, chrome will create a lighter tint of frame-color",
964a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
974a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
984a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
994a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
1004a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
1014a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "incognito-frame-gradient-color",
1024a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Incognito Frame Gradient Color",
1034a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The top color of the incognito chrome frame gradient. (If"
1044a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " unspecified, chrome will create a lighter tint of frame-color",
1054a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
1064a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
1074a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
1084a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
1094a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
1104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "incognito-inactive-frame-gradient-color",
1114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Incognito Inactive Frame Gradient Color",
1124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The top color of the incognito inactive chrome frame gradient. (If"
1134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            " unspecified, chrome will create a lighter tint of frame-color",
1144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
1154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
1164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
1174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // Scrollbar color properties:
1184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
1194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
1204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
1214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "scrollbar-slider-prelight-color",
1224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Scrollbar Slider Prelight Color",
1234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The color applied to the mouse is above the tab",
1244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
1254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
1264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
1274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
1284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
1294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "scrollbar-slider-normal-color",
1304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Scrollbar Slider Normal Color",
1314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The color applied to the slider normally",
1324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
1334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
1344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  gtk_widget_class_install_style_property(
1354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      widget_class,
1364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      g_param_spec_boxed(
1374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "scrollbar-trough-color",
1384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "Scrollbar Trough Color",
1394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          "The background color of the slider track",
1404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          GDK_TYPE_COLOR,
1414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          G_PARAM_READABLE));
1424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
1434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
1444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstatic void chrome_gtk_frame_init(ChromeGtkFrame* frame) {
1454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
1464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
1474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochGtkWidget* chrome_gtk_frame_new(void) {
1484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  GtkWindow* window =
1494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      GTK_WINDOW(g_object_new(chrome_gtk_frame_get_type(), NULL));
1504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  window->type = GTK_WINDOW_TOPLEVEL;
1514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  return GTK_WIDGET(window);
1524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
1534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
1544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
1554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochG_END_DECLS
156