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