diff options
author | Alexander Larsson <alexl@redhat.com> | 2012-01-12 19:14:33 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2012-01-16 14:19:16 +0100 |
commit | 4f0cc6572bcf823c1d5834ed323ed296c414a112 (patch) | |
tree | d77b8192c217fa27c44a07eaf6cd6767fc63e6e9 /gtk/gtkcssprovider.c | |
parent | 739ab8548d1d59a9b10fa6ec6a077ddf0ea8c206 (diff) | |
download | gtk+-4f0cc6572bcf823c1d5834ed323ed296c414a112.tar.gz |
Add Gtk resource file with the default CSS file
Diffstat (limited to 'gtk/gtkcssprovider.c')
-rw-r--r-- | gtk/gtkcssprovider.c | 393 |
1 files changed, 27 insertions, 366 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 044cc4cfc4..7df80ce7cb 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -2745,6 +2745,32 @@ gtk_css_provider_load_from_path (GtkCssProvider *css_provider, return result; } +static gboolean +_gtk_css_provider_load_from_resource (GtkCssProvider *css_provider, + const gchar *resource_path) +{ + GFile *file; + char *uri, *escaped; + gboolean result; + + g_return_val_if_fail (GTK_IS_CSS_PROVIDER (css_provider), FALSE); + g_return_val_if_fail (resource_path != NULL, FALSE); + + escaped = g_uri_escape_string (resource_path, + G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, FALSE); + uri = g_strconcat ("resource://", escaped, NULL); + g_free (escaped); + + file = g_file_new_for_uri (uri); + g_free (uri); + + result = gtk_css_provider_load_from_file (css_provider, file, NULL); + + g_object_unref (file); + + return result; +} + /** * gtk_css_provider_get_default: * @@ -2761,374 +2787,9 @@ gtk_css_provider_get_default (void) if (G_UNLIKELY (!provider)) { - const gchar *str = - "@define-color fg_color #000; \n" - "@define-color bg_color #dcdad5; \n" - "@define-color text_color #000; \n" - "@define-color base_color #fff; \n" - "@define-color selected_bg_color #4b6983; \n" - "@define-color selected_fg_color #fff; \n" - "@define-color tooltip_bg_color #eee1b3; \n" - "@define-color tooltip_fg_color #000; \n" - "@define-color placeholder_text_color #808080; \n" - "\n" - "@define-color info_fg_color rgb (181, 171, 156);\n" - "@define-color info_bg_color rgb (252, 252, 189);\n" - "@define-color warning_fg_color rgb (173, 120, 41);\n" - "@define-color warning_bg_color rgb (250, 173, 61);\n" - "@define-color question_fg_color rgb (97, 122, 214);\n" - "@define-color question_bg_color rgb (138, 173, 212);\n" - "@define-color error_fg_color rgb (166, 38, 38);\n" - "@define-color error_bg_color rgb (237, 54, 54);\n" - "\n" - "* {\n" - " background-color: @bg_color;\n" - " color: @fg_color;\n" - " border-color: shade (@bg_color, 0.6);\n" - " padding: 2;\n" - " border-width: 0;\n" - "}\n" - "\n" - "*:prelight {\n" - " background-color: shade (@bg_color, 1.05);\n" - " color: shade (@fg_color, 1.3);\n" - "}\n" - "\n" - "*:selected {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - ".expander, GtkTreeView.view.expander {\n" - " color: #fff;\n" - "}\n" - "\n" - ".expander:prelight,\n" - "GtkTreeView.view.expander:selected:prelight {\n" - " color: @text_color;\n" - "}\n" - "\n" - ".expander:active {\n" - " transition: 200ms linear;\n" - "}\n" - "\n" - "*:insensitive {\n" - " border-color: shade (@bg_color, 0.7);\n" - " background-color: shade (@bg_color, 0.9);\n" - " color: shade (@bg_color, 0.7);\n" - "}\n" - "\n" - ".view {\n" - " border-width: 0;\n" - " border-radius: 0;\n" - " background-color: @base_color;\n" - " color: @text_color;\n" - "}\n" - ".view:selected {\n" - " background-color: shade (@bg_color, 0.9);\n" - " color: @fg_color;\n" - "}\n" - "\n" - ".view:selected:focused {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - ".view column:sorted row,\n" - ".view column:sorted row:prelight {\n" - " background-color: shade (@bg_color, 0.85);\n" - "}\n" - "\n" - ".view column:sorted row:nth-child(odd),\n" - ".view column:sorted row:nth-child(odd):prelight {\n" - " background-color: shade (@bg_color, 0.8);\n" - "}\n" - "\n" - ".view row,\n" - ".view row:prelight {\n" - " background-color: @base_color;\n" - " color: @text_color;\n" - "}\n" - "\n" - ".view row:nth-child(odd),\n" - ".view row:nth-child(odd):prelight {\n" - " background-color: shade (@base_color, 0.93); \n" - "}\n" - "\n" - ".view row:selected:focused {\n" - " background-color: @selected_bg_color;\n" - "}\n" - "\n" - ".view row:selected {\n" - " background-color: darker (@bg_color);\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - ".view.cell.trough,\n" - ".view.cell.trough:hover,\n" - ".view.cell.trough:selected,\n" - ".view.cell.trough:selected:focused {\n" - " background-color: @bg_color;\n" - " color: @fg_color;\n" - "}\n" - "\n" - ".view.cell.progressbar,\n" - ".view.cell.progressbar:hover,\n" - ".view.cell.progressbar:selected,\n" - ".view.cell.progressbar:selected:focused {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - ".rubberband {\n" - " background-color: alpha (@fg_color, 0.25);\n" - " border-color: @fg_color;\n" - " border-style: solid;\n" - " border-width: 1;\n" - "}\n" - "\n" - ".tooltip,\n" - ".tooltip * {\n" - " background-color: @tooltip_bg_color; \n" - " color: @tooltip_fg_color; \n" - " border-color: @tooltip_fg_color; \n" - " border-width: 1;\n" - " border-style: solid;\n" - "}\n" - "\n" - ".button,\n" - ".slider {\n" - " border-style: outset; \n" - " border-width: 2; \n" - "}\n" - "\n" - ".button:active {\n" - " background-color: shade (@bg_color, 0.7);\n" - " border-style: inset; \n" - "}\n" - "\n" - ".button:prelight,\n" - ".slider:prelight {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - " border-color: shade (@selected_bg_color, 0.7);\n" - "}\n" - "\n" - ".trough {\n" - " background-color: darker (@bg_color);\n" - " border-style: inset;\n" - " border-width: 1;\n" - " padding: 0;\n" - "}\n" - "\n" - ".entry {\n" - " border-style: inset;\n" - " border-width: 2;\n" - " background-color: @base_color;\n" - " color: @text_color;\n" - "}\n" - "\n" - ".entry:insensitive {\n" - " background-color: shade (@base_color, 0.9);\n" - " color: shade (@base_color, 0.7);\n" - "}\n" - ".entry:active {\n" - " background-color: #c4c2bd;\n" - " color: #000;\n" - "}\n" - "\n" - ".progressbar,\n" - ".entry.progressbar, \n" - ".cell.progressbar {\n" - " background-color: @selected_bg_color;\n" - " border-color: shade (@selected_bg_color, 0.7);\n" - " color: @selected_fg_color;\n" - " border-style: outset;\n" - " border-width: 1;\n" - "}\n" - "\n" - "GtkCheckButton:hover,\n" - "GtkCheckButton:selected,\n" - "GtkRadioButton:hover,\n" - "GtkRadioButton:selected {\n" - " background-color: shade (@bg_color, 1.05);\n" - "}\n" - "\n" - ".check, .radio," - ".cell.check, .cell.radio,\n" - ".cell.check:hover, .cell.radio:hover {\n" - " border-style: solid;\n" - " border-width: 1;\n" - " background-color: @base_color;\n" - " border-color: @fg_color;\n" - "}\n" - "\n" - ".check:active, .radio:active,\n" - ".check:hover, .radio:hover {\n" - " background-color: @base_color;\n" - " border-color: @fg_color;\n" - " color: @text_color;\n" - "}\n" - "\n" - ".check:selected, .radio:selected {\n" - " background-color: darker (@bg_color);\n" - " color: @selected_fg_color;\n" - " border-color: @selected_fg_color;\n" - "}\n" - "\n" - ".check:selected:focused, .radio:selected:focused {\n" - " background-color: @selected_bg_color;\n" - "}\n" - "\n" - ".menuitem.check, .menuitem.radio {\n" - " color: @fg_color;\n" - " border-style: none;\n" - " border-width: 0;\n" - "}\n" - "\n" - ".popup {\n" - " border-style: outset;\n" - " border-width: 1;\n" - "}\n" - "\n" - ".viewport {\n" - " border-style: inset;\n" - " border-width: 2;\n" - "}\n" - "\n" - ".notebook {\n" - " border-style: outset;\n" - " border-width: 1;\n" - "}\n" - "\n" - ".frame {\n" - " border-style: inset;\n" - " border-width: 1;\n" - "}\n" - "\n" - "GtkScrolledWindow.frame {\n" - " padding: 0;\n" - "}\n" - "\n" - ".menu,\n" - ".menubar,\n" - ".toolbar {\n" - " border-style: outset;\n" - " border-width: 1;\n" - "}\n" - "\n" - ".menu:hover,\n" - ".menubar:hover,\n" - ".menuitem:hover,\n" - ".menuitem.check:hover,\n" - ".menuitem.radio:hover {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - "GtkSpinButton.button {\n" - " border-width: 1;\n" - "}\n" - "\n" - ".scale.slider:hover,\n" - "GtkSpinButton.button:hover {\n" - " background-color: shade (@bg_color, 1.05);\n" - " border-color: shade (@bg_color, 0.8);\n" - "}\n" - "\n" - "GtkSwitch.trough:active {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - "GtkToggleButton.button:inconsistent {\n" - " border-style: outset;\n" - " border-width: 1px;\n" - " background-color: shade (@bg_color, 0.9);\n" - " border-color: shade (@bg_color, 0.7);\n" - "}\n" - "\n" - "GtkLabel:selected {\n" - " background-color: shade (@bg_color, 0.9);\n" - "}\n" - "\n" - "GtkLabel:selected:focused {\n" - " background-color: @selected_bg_color;\n" - "}\n" - "\n" - ".spinner:active {\n" - " transition: 750ms linear loop;\n" - "}\n" - "\n" - ".info {\n" - " background-color: @info_bg_color;\n" - " color: @info_fg_color;\n" - "}\n" - "\n" - ".warning {\n" - " background-color: @warning_bg_color;\n" - " color: @warning_fg_color;\n" - "}\n" - "\n" - ".question {\n" - " background-color: @question_bg_color;\n" - " color: @question_fg_color;\n" - "}\n" - "\n" - ".error {\n" - " background-color: @error_bg_color;\n" - " color: @error_fg_color;\n" - "}\n" - "\n" - ".highlight {\n" - " background-color: @selected_bg_color;\n" - " color: @selected_fg_color;\n" - "}\n" - "\n" - ".light-area-focus {\n" - " color: #000;\n" - "}\n" - "\n" - ".dark-area-focus {\n" - " color: #fff;\n" - "}\n" - "GtkCalendar.view {\n" - " border-width: 1;\n" - " border-style: inset;\n" - " padding: 1;\n" - "}\n" - "\n" - "GtkCalendar.view:inconsistent {\n" - " color: darker (@bg_color);\n" - "}\n" - "\n" - "GtkCalendar.header {\n" - " background-color: @bg_color;\n" - " border-style: outset;\n" - " border-width: 2;\n" - "}\n" - "\n" - "GtkCalendar.highlight {\n" - " border-width: 0;\n" - "}\n" - "\n" - "GtkCalendar.button {\n" - " background-color: @bg_color;\n" - "}\n" - "\n" - "GtkCalendar.button:hover {\n" - " background-color: lighter (@bg_color);\n" - " color: @fg_color;\n" - "}\n" - "\n" - ".menu * {\n" - " border-width: 0;\n" - " padding: 2;\n" - "}\n" - "\n"; provider = gtk_css_provider_new (); - if (!gtk_css_provider_load_from_data (provider, str, -1, NULL)) + if (!_gtk_css_provider_load_from_resource (provider, "/org/gtk/libgtk/gtk-default.css")) { g_error ("Failed to load the internal default CSS."); } |