Home | History | Annotate | Download | only in gtk
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/ui/gtk/chrome_gtk_frame.h"
      6 
      7 G_BEGIN_DECLS
      8 
      9 // MetaFrames declaration
     10 G_DEFINE_TYPE(MetaFrames, meta_frames, GTK_TYPE_WINDOW)
     11 
     12 static void meta_frames_class_init(MetaFramesClass* frames_class) {
     13   // Noop since we don't declare anything.
     14 }
     15 
     16 static void meta_frames_init(MetaFrames* button) {
     17 }
     18 
     19 
     20 // ChromeGtkFrame declaration
     21 G_DEFINE_TYPE(ChromeGtkFrame, chrome_gtk_frame, meta_frames_get_type())
     22 
     23 static void chrome_gtk_frame_class_init(ChromeGtkFrameClass* frame_class) {
     24   GtkWidgetClass* widget_class = reinterpret_cast<GtkWidgetClass*>(frame_class);
     25 
     26   // Frame tints:
     27   gtk_widget_class_install_style_property(
     28       widget_class,
     29       g_param_spec_boxed(
     30           "frame-color",
     31           "Frame Color",
     32           "The color that the chrome frame will be. (If unspecified, "
     33             " Chrome will take ChromeGtkFrame::bg[SELECTED] and slightly darken"
     34             " it.)",
     35           GDK_TYPE_COLOR,
     36           G_PARAM_READABLE));
     37   gtk_widget_class_install_style_property(
     38       widget_class,
     39       g_param_spec_boxed(
     40           "inactive-frame-color",
     41           "Inactive Frame Color",
     42           "The color that the inactive chrome frame will be. (If"
     43             " unspecified, Chrome will take ChromeGtkFrame::bg[INSENSITIVE]"
     44             " and slightly darken it.)",
     45           GDK_TYPE_COLOR,
     46           G_PARAM_READABLE));
     47   gtk_widget_class_install_style_property(
     48       widget_class,
     49       g_param_spec_boxed(
     50           "incognito-frame-color",
     51           "Incognito Frame Color",
     52           "The color that the incognito frame will be. (If unspecified,"
     53             " Chrome will take the frame color and tint it by Chrome's default"
     54             " incognito tint.)",
     55           GDK_TYPE_COLOR,
     56           G_PARAM_READABLE));
     57   gtk_widget_class_install_style_property(
     58       widget_class,
     59       g_param_spec_boxed(
     60           "incognito-inactive-frame-color",
     61           "Incognito Inactive Frame Color",
     62           "The color that the inactive incognito frame will be. (If"
     63             " unspecified, Chrome will take the frame color and tint it by"
     64             " Chrome's default incognito tint.)",
     65           GDK_TYPE_COLOR,
     66           G_PARAM_READABLE));
     67 
     68   // Frame gradient control:
     69   gtk_widget_class_install_style_property(
     70       widget_class,
     71       g_param_spec_int(
     72           "frame-gradient-size",
     73           "Chrome Frame Gradient Size",
     74           "The size of the gradient on top of the frame image. Specify 0 to"
     75             " make the frame a solid color.",
     76           0,      // 0 disables the gradient
     77           128,    // The frame image is only up to 128 pixels tall.
     78           16,     // By default, gradients are 16 pixels high.
     79           G_PARAM_READABLE));
     80   gtk_widget_class_install_style_property(
     81       widget_class,
     82       g_param_spec_boxed(
     83           "frame-gradient-color",
     84           "Frame Gradient Color",
     85           "The top color of the chrome frame gradient. (If unspecified,"
     86             " chrome will create a lighter tint of frame-color",
     87           GDK_TYPE_COLOR,
     88           G_PARAM_READABLE));
     89   gtk_widget_class_install_style_property(
     90       widget_class,
     91       g_param_spec_boxed(
     92           "inactive-frame-gradient-color",
     93           "Inactive Frame Gradient Color",
     94           "The top color of the inactive chrome frame gradient. (If"
     95             " unspecified, chrome will create a lighter tint of frame-color",
     96           GDK_TYPE_COLOR,
     97           G_PARAM_READABLE));
     98   gtk_widget_class_install_style_property(
     99       widget_class,
    100       g_param_spec_boxed(
    101           "incognito-frame-gradient-color",
    102           "Incognito Frame Gradient Color",
    103           "The top color of the incognito chrome frame gradient. (If"
    104             " unspecified, chrome will create a lighter tint of frame-color",
    105           GDK_TYPE_COLOR,
    106           G_PARAM_READABLE));
    107   gtk_widget_class_install_style_property(
    108       widget_class,
    109       g_param_spec_boxed(
    110           "incognito-inactive-frame-gradient-color",
    111           "Incognito Inactive Frame Gradient Color",
    112           "The top color of the incognito inactive chrome frame gradient. (If"
    113             " unspecified, chrome will create a lighter tint of frame-color",
    114           GDK_TYPE_COLOR,
    115           G_PARAM_READABLE));
    116 
    117   // Scrollbar color properties:
    118   gtk_widget_class_install_style_property(
    119       widget_class,
    120       g_param_spec_boxed(
    121           "scrollbar-slider-prelight-color",
    122           "Scrollbar Slider Prelight Color",
    123           "The color applied to the mouse is above the tab",
    124           GDK_TYPE_COLOR,
    125           G_PARAM_READABLE));
    126   gtk_widget_class_install_style_property(
    127       widget_class,
    128       g_param_spec_boxed(
    129           "scrollbar-slider-normal-color",
    130           "Scrollbar Slider Normal Color",
    131           "The color applied to the slider normally",
    132           GDK_TYPE_COLOR,
    133           G_PARAM_READABLE));
    134   gtk_widget_class_install_style_property(
    135       widget_class,
    136       g_param_spec_boxed(
    137           "scrollbar-trough-color",
    138           "Scrollbar Trough Color",
    139           "The background color of the slider track",
    140           GDK_TYPE_COLOR,
    141           G_PARAM_READABLE));
    142 }
    143 
    144 static void chrome_gtk_frame_init(ChromeGtkFrame* frame) {
    145 }
    146 
    147 GtkWidget* chrome_gtk_frame_new(void) {
    148   GtkWindow* window =
    149       GTK_WINDOW(g_object_new(chrome_gtk_frame_get_type(), NULL));
    150   window->type = GTK_WINDOW_TOPLEVEL;
    151   return GTK_WIDGET(window);
    152 }
    153 
    154 
    155 G_END_DECLS
    156