diff --git a/rtdata/themes/TooWaBlue.css b/rtdata/themes/TooWaBlue.css new file mode 100644 index 000000000..c3eebbe18 --- /dev/null +++ b/rtdata/themes/TooWaBlue.css @@ -0,0 +1,640 @@ +/* + This file is part of RawTherapee. + + Copyright (c) 2016 TooWaBoo (v1.09) + Many thanks to the RawTherapee Developer Team for this great piece of software + + RawTherapee is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + RawTherapee is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with RawTherapee. If not, see . +*/ + +/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/ + +@define-color accent-color rgb(35,99,166); /*** Highlight/selected color for List, Dropdown menu, Borders ... ***/ +@define-color text-hl-color rgb(210,210,210); /*** Highlight/selected text color ***/ + +@define-color accent-color2 rgb(35,99,166); /*** Slider, Progressbar, Scrollbar, Tab indicator ***/ + +@define-color accent-color3 rgb(35,99,166); /*** Selected thumbnail background color ***/ +@define-color text-hl-color3 rgb(210,210,210); /*** Selected thumbnail text color ***/ + +/*** Change me end ************************************************************************/ + +@define-color text-color #B0B0B0; +@define-color text-hl-color2 #C0C0C0; +@define-color text-tbEntry #C0C0C0; +@define-color bg-dark-grey #262626; +@define-color bg-grey #474747; +@define-color bg-light-grey #595959; +@define-color border-color rgba(255,255,255,.25); +@define-color bg-list-hover rgba(255,255,255,.065); +@define-color bg-button rgba(0,0,0,.14); +@define-color bg-button-border rgba(0,0,0,.20); +@define-color bg-button-hover rgba(0,0,0,.28); +@define-color bg-button-checked @bg-dark-grey; + +* { + color: @text-color; + -GtkDialog-action-area-border: 0; + -GtkDialog-content-area-border: 10; + transition: none; + text-shadow: none; + icon-shadow: none; + box-shadow: none; + outline-style: none; /* removes the ugly dotted focus line */ + border-image: none; +} +.undershoot.top, +.undershoot.right, +.undershoot.bottom, +.undershoot.left { + background-image: none; /* removes the dotted scrollbar line */ +} +GtkWindow { + background-color: @bg-light-grey; +} +GtkDialog { + background-color: @bg-grey; +} +GtkFrame { + border: none; + border-top: 3px solid transparent; + border-bottom: 4px solid transparent; +} + +/*** Menu bubble box ***/ +GtkPopover { + background-color: @bg-dark-grey; + border: 1px solid @accent-color; + border-radius: 0; +} +.menu { + background-color: @bg-dark-grey; + border: 1px solid @accent-color; +} +.menuitem { + padding: 3px 4px; +} +.menuitem:hover { + background-color: @accent-color; +} +.menuitem:hover * { + color: @text-hl-color; +} + +GtkNotebook { + padding: 4px; + background-color: @bg-light-grey; +} + +GtkPaned { + -GtkPaned-handle-size: 4px; + background-color: transparent; +} +.pane-separator { + background-color: @bg-light-grey; +} + +.separator { + color: @bg-light-grey; +} + +/*** Background color picture area***/ +GtkDrawingArea { + background-color: @bg-grey; +} +/*** Histogram ***/ +GtkGrid GtkContainer GtkDrawingArea:nth-child(1) { + background-color: @bg-dark-grey; + border: 1px solid #787878; +} +/*** Histogram RGB-Bar***/ +GtkGrid GtkContainer GtkDrawingArea:nth-child(2) { + background-color: #787878; + border: none; +} +#RightNotebook GtkDrawingArea { + background-color: @bg-dark-grey; + border: none; +} + +/*** Label ***/ +.label { + padding: 0px 4px; +} +GtkDialog .label, +#ToolPanelNotebook .label, +.notebook tab .label { + padding: 0; +} +#ToolPanelNotebook .button .label { + padding: 0 0 2px; +} +.notebook tab .label { + padding: 0 2px; +} +.frame > .label, +#ToolPanelNotebook .frame > .label { + padding: 4px 5px; +} +/*** end ***/ + +.tooltip { + background-color: @bg-dark-grey; + border: 1px solid @accent-color; + border-radius: 0; + padding: 0; +} + +#partialPasteHeaderSep {color: @accent-color;} +#partialPasteHeader * {color: @text-hl-color2;} + +#RightNotebook { + padding-top: 0; + padding-right: 0; + padding-bottom: 0; +} +#RightNotebook .frame { + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + border-top: none; + border-right: none; + border-bottom: none; +} + +/*** Scrollbar ***/ +.scrollbar.trough { + background-color: rgba(0,0,0,.38); + background-image: none; + border: none; +} +.scrollbar.slider:active { + background-color: shade(@accent-color2,1.12); +} + +/*** end ***/ + +/*** Scale & Progressbar ***/ +.scale { + -GtkRange-trough-border: 6; + -GtkScale-slider-length: 15; + -GtkRange-slider-width: 15; +} +.scale.trough { + background-color: @bg-button; + border-color: @bg-dark-grey; +} +.scale.slider, .scale.trough.highlight, +#ToolPanelNotebook .scale.slider { + background-image: none; + background-color: @accent-color2; + border-color: @bg-dark-grey; + color: @text-hl-color2; +} +.scale.slider:active { + border-color: shade (@accent-color2,.55); +} +.scale.fine-tune { + -GtkRange-trough-border: 5; +} + +GtkProgressBar { + -GtkProgressBar-min-vertical-bar-width: 8; + -GtkProgressBar-min-horizontal-bar-height: 8; + -GtkProgressBar-yspacing: 6px; + border-radius: 10px; +} +.progressbar { + background-image: none; + background-color: @accent-color2; + border-color: @bg-dark-grey; +} +GtkProgressBar.trough { + background-image: none; + background-color: @bg-button; +} +#MainNotebook > GtkGrid GtkProgressBar.trough { + background-image: none; + background-color: @bg-dark-grey; + border-color: @bg-dark-grey; +} +/*** end ***/ + +/*** Load/Save ***/ +GtkFileChooserWidget { + background-color: transparent; +} +GtkFileChooserWidget GtkBox { + background-color: transparent; +} +GtkFileChooserWidget GtkListBox * { + padding-top: 1px; + padding-bottom: 1px; +} +GtkFileChooserWidget GtkListBox { + background-color: @bg-dark-grey; +} +GtkFileChooserWidget .list-row * { + padding: 1px 4px; +} +GtkFileChooserWidget .list-row:hover { + background-color: @bg-list-hover; +} +GtkFileChooserWidget .list-row:hover * { + color: @text-hl-color2; +} +GtkFileChooserWidget .list-row:selected { + background-color: @accent-color; +} +GtkFileChooserWidget .list-row:selected * { + color: @text-hl-color; +} +/*** end ***/ + +/*** Metadata ***/ +#MetaPanelNotebook { + background-color: @bg-grey; + +} +#MetaPanelNotebook .header { + background-color: @bg-dark-grey; +} + +/*** end ***/ + +/*** Tab Bars ***/ +.notebook tab, .notebook.header { + background-color: @bg-dark-grey; + border-color: @bg-dark-grey; +} +.notebook tab.top { + border-width: 0 0 4px 0; +} +.notebook tab.left { + border-width: 0 4px 0 0; +} +#RightNotebook tab.left, GtkDialog tab { + padding: 8px; +} +#ToolPanelNotebook > tab{ + padding: 10px 4px 7px; +} +#MetaPanelNotebook tab { + padding: 6px 4px; + background-color: @bg-dark-grey; +} + +.notebook tab:active { + border-color: @accent-color2; +} +/*** end ***/ + +/*** File Browser ***/ +#FileBrowser GtkDrawingArea { + background-color: @bg-grey; +} +#FileBrowser GtkDrawingArea:selected { + background-color: @accent-color3; + color: @text-hl-color3; +} +/*** end ***/ + +/*** Image ***/ +GtkImage { + padding: 0; +} +#MainNotebook > GtkGrid GtkImage { + padding: 1px; +} + +#ToolPanelNotebook GtkImage{ + padding: 0 4px; +} + +#ToolPanelNotebook tab GtkImage, +#ToolPanelNotebook .button GtkImage { + padding: 1px 0; +} + +GtkDialog .button GtkImage{ + padding: 0; +} +GtkFileChooserWidget .button GtkImage{ + padding: 0 4px; +} +/*** end ***/ + +/*** Toolpanel ***/ +#ToolPanelNotebook { + background-color: @bg-dark-grey; + padding: 0; + border-top: 4px solid @bg-dark-grey; +} + +#ToolPanelNotebook GtkScrolledWindow GtkViewport.frame { + padding: 0 4px; +} +#ToolPanelNotebook .separator { + color: transparent; +} +#ToolPanelNotebook GtkFrame, #PrefNotebook GtkFrame { + border: 1px solid @border-color; + border-radius: 0; + padding: 5px; +} + +#ToolPanelNotebook GtkDrawingArea { + background-color: @bg-dark-grey; + border-color: @bg-light-grey; +} +#ToolPanelNotebook GtkDrawingArea { + border-radius: 1px; /* BUG: if 0, scale mini sliders look funny */ +} + +#ExpanderBox #ExpanderBox, #ExpanderBox2, #ExpanderBox3 { + border: 1px solid @border-color; +} + +#ExpanderBox, #ExpanderBox2, #ExpanderBox3 { + background-color: @bg-grey; + border-radius: 0; +} + +#MyExpanderTitle .label { + color: @text-color; + padding: 2px 0; +} +#MyExpanderTitle:hover .label { + color: @text-hl-color2; +} +/*** end ***/ + +/*** View ***/ +.view { + background-color: @bg-dark-grey; +} +#PrefNotebook .view { + background-color: @bg-grey; +} +#MainNotebook .view.cell:nth-child(2) { + padding: 1px 0px 1px 4px; +} +.view:hover { + background-color: @bg-list-hover; + color: @text-hl-color2; +} +#PrefNotebook .view:hover { + background-color: @bg-light-grey; + color: @text-hl-color2; +} +.view:selected { + color: @text-hl-color; + background-color: @accent-color; +} +#PrefNotebook .view:selected { + color: @text-hl-color; + background-color: @accent-color; +} +.view .button { + background-color: #181818; + padding: 2px 6px; +} +/*** end ***/ + +/*** Entry ***/ +.entry { + background-image: none; + background-color: @bg-button; + border: 1px solid @bg-button-border; + border-radius: 0; + padding: 2px 4px; + color: @text-color; +} +.entry:focused:selected { + color: @text-hl-color; + background-color: @accent-color; +} +.entry:not(:focused):not(:insensitive) {/*Workaround*/ + color: @text-color; + background-color: transparent; +} +.entry:not(:selected):not(:insensitive) { + color: @text-color; + background-color: @bg-button; +} +#ToolPanelNotebook .entry { + padding: 0 4px 0 7px; + border-radius: 20px 0 0 20px; + background-color: rgba(255,255,255,.12); + border: 1px solid rgba(0,0,0,.40); +} +#ToolPanelNotebook .entry { + color: @text-tbEntry; +} +#ToolPanelNotebook .entry:focused:selected { + color: @text-hl-color; + background-color: @accent-color; +} +#ToolPanelNotebook .entry:not(:focused):not(:insensitive) {/*Workaround*/ + color: @text-tbEntry; + background-color: transparent; +} +#ToolPanelNotebook .entry:not(:selected):not(:insensitive) { + color: @text-tbEntry; + background-color: rgba(255,255,255,.12); +} + +#MetaPanelNotebook .entry:not(:selected):not(:insensitive), +#MetaPanelNotebook GtkTextView { + color: @text-color; + background-color: @bg-light-grey; + border: 1px solid rgba(0,0,0,.40); + border-radius: 0; +} +/*** end ***/ + +/*** Buttons ***/ +.button { + background-image: none; + background-color: @bg-button; + border: 1px solid @bg-button-border; + border-radius: 0; + padding: 3px 4px;margin: 1px; +} +GtkComboBox .button { + padding: 4px 3px; +} +#ToolPanelNotebook .button, +GtkDialog .button { + padding: 0px 3px; +} + +#ToolPanelNotebook GtkComboBox { + padding-left: 4px; /*** Distance between label and Dropbox ***/ +} + +.text-button { + padding: 0 5px 0 0; + -GtkButton-child-displacement-x: 0; + -GtkButton-child-displacement-y: 0; + -GtkCheckButton-indicator-size: 16; + -GtkCheckButton-indicator-spacing: 3; +} +.button.text-button { + padding: 4px 10px; +} +#ToolPanelNotebook .button.text-button { + padding: 0px 3px; +} +GtkFileChooserWidget .button.text-button { + padding: 4px; +} + +.spinbutton .button { + background-image: none; + background-color: transparent; + border: none; + border-radius: 0; + padding: 2px; +} +#ToolPanelNotebook .spinbutton .button { + padding: 0; +} + +#fullButton, +#histButton { + padding: 4px; +} +.button:hover { + background-color: @bg-button-hover; +} +.button:active, +.button:checked { + background-color: @bg-button-checked; +} + +#MainNotebook > GtkGrid .button { + padding: 2px; + border: 4px solid @bg-dark-grey; + background-color: transparent; +} +#MainNotebook tab .button { + padding: 2px; + border-top: 4px solid @bg-dark-grey; + border-bottom: 4px solid @bg-dark-grey; + border-left: 2px solid @bg-dark-grey; + border-right: none; + background-color: transparent; +} +#MainNotebook > GtkGrid .button:hover, #MainNotebook tab .button:hover { + background-color: rgba(255,255,255,.1); +} +#MainNotebook > GtkGrid .button:active, #MainNotebook tab .button:active { + background-color: transparent; +} +/*** end ***/ + +/*** Check & Radio buttons ***/ +.check, +.check row { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (1, @bg-dark-grey)); +} +.check:checked, +.check row:checked { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (0.22, @text-color), + color-stop (0.30, @bg-dark-grey), + color-stop (0.50, @bg-dark-grey)); +} +.check:insensitive, +.check row:insensitive { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (1, rgba(0,0,0,.24))); +} +.check:checked:insensitive, +.check row:checked:insensitive { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (0.22, rgba(255,255,255,.08)), + color-stop (0.30, rgba(0,0,0,.24)), + color-stop (0.50, rgba(0,0,0,.24))); +} + +.radio, +.radio row { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (0.44, @bg-dark-grey), + color-stop (0.5, transparent)); +} +.radio:checked, +.radio row:checked { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (0.14, @text-color), + color-stop (0.21, @bg-dark-grey), + color-stop (0.44, @bg-dark-grey), + color-stop (0.5, transparent)); +} +.radio:insensitive, +.radio row:insensitive { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (0.44, rgba(0,0,0,.24)), + color-stop (0.5, transparent)); +} +.radio:checked:insensitive, +.radio row:checked:insensitive { + -gtk-icon-source: + -gtk-gradient (radial, + center center, 0, + center center, 1, + color-stop (0.14, rgba(255,255,255,.08)), + color-stop (0.21, rgba(0, 0, 0,.24)), + color-stop (0.44, rgba(0, 0, 0,.24)), + color-stop (0.5, transparent)); +} +/*** end ***/ + +/*** Disabled Items ***/ + +*:insensitive { + color: #808080; +} +#ToolPanelNotebook .entry:insensitive { + color: #999999; + background-color: rgba(255,255,255,.04); +} +.scale.slider:insensitive, .scale.trough.highlight:insensitive, .scale.trough:insensitive { + background-color: #393939; +} +/*** end ***/ diff --git a/rtgui/main.cc b/rtgui/main.cc index 5bf81caaa..5dd233f23 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -16,12 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -// generated 2004/6/3 19:15:32 CEST by gabor@darkstar.(none) -// using glademm V2.5.0 -// -// newer (non customized) versions of this file go to raw.cc_new - -// This file is for your program, I won't touch it again! #ifdef __GNUC__ #if defined(__FAST_MATH__) @@ -62,7 +56,6 @@ Glib::ustring creditsPath; Glib::ustring licensePath; Glib::ustring argv1; bool simpleEditor; -Glib::RefPtr cssBase; Glib::RefPtr cssForced; Glib::RefPtr cssRT; //Glib::Threads::Thread* mainThread; @@ -124,11 +117,6 @@ static void myGdkLockLeave() * -3 if at least one required procparam file was not found */ int processLineParams( int argc, char **argv ); -/* - * - * M A I N - * - */ int main(int argc, char **argv) { setlocale(LC_ALL, ""); @@ -321,15 +309,9 @@ int main(int argc, char **argv) Gtk::Settings::get_for_screen(screen)->property_gtk_theme_name() = "Adwaita"; Gtk::Settings::get_for_screen(screen)->property_gtk_application_prefer_dark_theme() = true; - Glib::ustring filename = argv0 + "/themes/RawTherapee.css"; + Glib::ustring filename = Glib::build_filename(argv0, "themes", options.theme + ".css"); cssRT = Gtk::CssProvider::create(); - /* TODO - * Make theme selection work again. All themes should be applied below here, - * in other words after the base Adwaita Dark theme has been applied. This - * makes for smaller custom theme files. - */ - try { cssRT->load_from_path (filename); Gtk::StyleContext::add_provider_for_screen(screen, cssRT, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 3e842b52c..d6b98e689 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -2014,19 +2014,6 @@ void Preferences::switchThemeTo(Glib::ustring newTheme) printf("Error: Can't load css file \"%s\"\n", filename.c_str()); loaded = false; } - - // TODO remove rtcommon - if (!loaded && options.theme != "rtcommon") { - try { - printf("Trying with \"rtcommon.css\"\n"); - filename = argv0 + "/themes/rtcommon.css"; - css->load_from_path (filename); - } catch (Glib::Error &err) { - printf("Error: Can't load css file \"rtcommon.css\"\nMessage: %s\n", err.what().c_str()); - } catch (...) { - printf("Error: Can't load css file \"%s\"\n", filename.c_str()); - } - } } void Preferences::workflowUpdate ()