vcl/unx/gtk3/custom-theme.cxx | 1098 +++++++++++++++++------------------------- 1 file changed, 462 insertions(+), 636 deletions(-)
New commits: commit 0dc9fea9cce7a8c9be800139565f757cb4775fc2 Author: Sahil Gautam <[email protected]> AuthorDate: Wed Dec 25 19:17:43 2024 +0530 Commit: Sahil Gautam <[email protected]> CommitDate: Mon Jan 26 09:26:52 2026 +0100 tdf#164393 nicely format gtk-css-declarations for custom themeing these are css definitions as strings. previously clang-format messed up the structure and it became quite hard to read the code. now it's excluded from clang-format's range thanks to the // clang-format off/on comments Change-Id: I3ba54a5ac5ef036f08558c607df911a1eb0db1e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179403 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit aa93f7366236c5c291a8984900eb863b98d4da07) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198072 Reviewed-by: Sahil Gautam <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/vcl/unx/gtk3/custom-theme.cxx b/vcl/unx/gtk3/custom-theme.cxx index 9e3024dd0bf9..a5e7cb3a1f9a 100644 --- a/vcl/unx/gtk3/custom-theme.cxx +++ b/vcl/unx/gtk3/custom-theme.cxx @@ -131,647 +131,473 @@ OString CreateStyleString() else aPressedColor.DecreaseLuminance(30); + // clang-format off OUString aStr = /*************** * Base States * ***************/ ".background {" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - ".view {" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "textview text {" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - - /********* - * Links * - *********/ - "*:link," - "link {" - " color: #" - + aThemeColors.GetActiveColor().AsRGBHexString() - + ";" - "}" - - "*:visited {" - " color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - - /************ - * Toolbars * - ************/ - "toolbar {" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - "}" - - ".toolbar {" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - "}" - - /************** - * Tree Views * - **************/ - "treeview.view:selected {" - " background-color: #" - + aThemeColors.GetAccentColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHEXString() - + ";" - "}" - - "treeview.view:drop(active) {" - " border-style: solid none;" - " border-color: alpha(currentColor, 0.08);" - "}" - - "treeview.view.expander {" - " color: #" - + aThemeColors.GetFaceColor().AsRGBHexString() - + ";" - "}" - - "treeview.view.expander:hover," - "treeview.view.expander:active {" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "treeview.view.expander:disabled {" - " color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - "}" - - // this part is still left - "treeview.view.trough {" - " background-color: rgba(239, 241, 245, 0.12);" - "}" - - "treeview.view header button:not(:focus):not(:hover):not(:active) {" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "treeview.view header button," - "treeview.view header button:disabled {" - " background-color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - "}" - - "treeview.view header button:last-child {" - " border-right-style: none;" - "}" - - "treeview.view button.dnd," - "treeview.view header.button.dnd {" - " background-color: #ff0000;" - " color: #89b4fa;" - "}" - - /********* - * Menus * - *********/ - "menubar," - ".menubar {" - " background-color: #" - + aThemeColors.GetMenuBarColor().AsRGBHexString() - + ";" - "}" - - "menubar > menuitem," - ".menubar > menuitem {" - " color: #" - + aThemeColors.GetMenuBarTextColor().AsRGBHexString() - + ";" - "}" - - "menubar > menuitem:hover," - ".menubar > menuitem:hover {" - " background-color: #" - + aThemeColors.GetMenuBarHighlightColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetMenuBarHighlightTextColor().AsRGBHexString() - + ";" - "}" - - "menubar > menuitem:disabled," - ".menubar > menuitem:disabled {" - " color: #" - + aThemeColors.GetInactiveTextColor().AsRGBHexString() - + ";" - "}" - - "menubar > menuitem label:disabled," - ".menubar > menuitem label:disabled {" - " color: inherit;" - "}" - - "menu {" - " background-color: #" - + aThemeColors.GetMenuColor().AsRGBHexString() - + ";" - " border: 1px solid #" - + aThemeColors.GetMenuBorderColor().AsRGBHexString() - + ";" - "}" - - "menu menuitem {" - " color: #" - + aThemeColors.GetMenuTextColor().AsRGBHexString() - + ";" - "}" - - "menu menuitem:hover {" - " background-color: #" - + aThemeColors.GetMenuHighlightColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetMenuHighlightTextColor().AsRGBHexString() - + ";" - "}" - - "menu menuitem:active {" - " background-color: alpha(currentColor, 0.12);" - "}" - - "menu menuitem:disabled {" - " background-color: #" - + aThemeColors.GetMenuColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetDisabledTextColor().AsRGBHexString() - + ";" - " border-left: 1px solid #" - + aThemeColors.GetMenuBorderColor().AsRGBHexString() - + ";" - " border-right: 1px solid #" - + aThemeColors.GetMenuBorderColor().AsRGBHexString() - + ";" - "}" - - "menu menuitem accelerator {" - " color: rgba(239, 241, 245, 0.7);" // ??? - "}" - - "menu menuitem:disabled accelerator {" - " color: rgba(239, 241, 245, 0.32);" // ??? - "}" - - "menu menuitem label:dir(rtl)," - "menu menuitem label:dir(ltr) {" - " color: inherit;" - "}" - - /************* - * Notebooks * - *************/ - - "tabbox > tab:hover," - "notebook > header tab:hover {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " border: 1px solid #" - + aThemeColors.GetSeparatorColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - "" - "tabbox > tab:checked, notebook > header tab:checked {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " border: 1px solid #" - + aThemeColors.GetSeparatorColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - "" - "notebook {" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - "}" - "" - "notebook > header {" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - " border-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - "" - "notebook > stack:not(:only-child) {" - " background-color: transparent;" - "}" - - /************ - * Scrollbar* - *************/ - - "scrollbar {" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - - "scrollbar slider {" - " border: 4px solid transparent;" - " background-clip: padding-box;" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - "}" - - "scrollbar slider:hover {" - " background-color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "scrollbar slider:active {" - " background-color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "scrollbar slider:disabled {" - " background-color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - "}" - - "scrollbar.overlay-indicator:not(.dragging):not(.hovering) {" - " background-color: transparent;" - "}" - - /***************** - * Check n Radio * - * ***************/ - - "check:disabled," - "radio:disabled {" - " background-color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - "}" - - "check:checked," - "check:indeterminate," - "radio:checked," - "radio:indeterminate {" - " color: rgba(17, 17, 27, 0.87);" - " background-color: #" - + aThemeColors.GetActiveColor().AsRGBHexString() - + ";" - "}" - - "check:checked:hover," - "check:indeterminate:hover," - "radio:checked:hover," - "radio:indeterminate:hover {" - " box-shadow: 0 0 0 6px rgba(137, 180, 250, 0.15);" - " background-color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "check:checked:active," - "check:indeterminate:active," - "radio:checked:active," - "radio:indeterminate:active {" - " box-shadow: 0 0 0 6px rgba(137, 180, 250, 0.2);" - " background-color: #" - + aThemeColors.GetActiveColor().AsRGBHexString() - + ";" - "}" - - "check:checked:disabled," - "check:indeterminate:disabled," - "radio:checked:disabled," - "radio:indeterminate:disabled {" - " color: rgba(17, 17, 27, 0.38);" - " background-color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - "}" - - /*************** - * Progressbar * - * *************/ - - "progressbar {" - " color: rgba(239, 241, 245, 0.7);" - " font-size: smaller;" - "}" - - "progressbar trough {" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - - "progressbar progress {" - " background-color: #" - + aThemeColors.GetActiveColor().AsRGBHexString() - + ";" - "}" - - "frame > border," - ".frame {" - " border-radius: 0;" - " box-shadow: none;" - "}" - - ".frame.view {" - " border-radius: 6px;" - "}" - - ".frame.flat {" - " border-style: none;" - "}" - - "separator {" - " min-width: 1px;" - " min-height: 1px;" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - - /*********** - * Buttons * - ***********/ - - ".toolbar button:checked," - "#buttonbox_frame button:checked," - "layouttabbar button:checked," - "messagedialog .dialog-action-box button:checked," - "messagedialog .dialog-action-box .linked:not(.vertical) > button:checked," - "popover.background.menu button:checked," - "popover.background button.model:checked," - "headerbar button:checked:not(.suggested-action):not(.destructive-action)," - "toolbar button:checked," - "combobox > .linked:not(.vertical) > button:checked:not(:only-child)," - "button.flat:checked," - "button.flat:checked:hover {" - " background-color: alpha(#" - + aThemeColors.GetButtonColor().AsRGBHexString() - + ", 0.1);" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - "" - "button:active {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - - "button:disabled {" - " background-color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetInactiveTextColor().AsRGBHexString() - + ";" - " border: 1px solid #" - + aThemeColors.GetInactiveBorderColor().AsRGBHexString() - + ";" - "}" - - /***************** - * GtkSpinButton * - *****************/ - - "spinbutton > entry," - "spinbutton > entry:focus," - "spinbutton > entry:disabled," - ".background:not(.csd) spinbutton > entry," - ".background:not(.csd) spinbutton > entry:focus," - ".background:not(.csd) spinbutton > entry:disabled {" - " border: none;" - " box-shadow: none;" - " background-color: transparent;" - "}" - - "spinbutton > button {" - " border: solid 6px transparent;" - "}" - - "spinbutton > button:focus:not(:hover):not(:active):not(:disabled) {" - " box-shadow: inset 0 0 0 9999px transparent;" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - - "spinbutton," - "entry {" - " background-color: #" - + aSpinBack.AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - - "spinbutton:focus," - "entry:focus {" - " background-color: #" - + aSpinBack.AsRGBHexString() - + ";" - " box-shadow: inset 0 0 0 2px #" - + aThemeColors.GetActiveColor().AsRGBHexString() - + ";" - "}" - - "spinbutton:disabled," - "entry:disabled {" - " box-shadow: inset 0 0 0 2px transparent;" - " background-color: #" - + aSpinBack.AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetInactiveTextColor().AsRGBHexString() - + ";" - "}" - - /************** - * ComboBoxes * - **************/ - "button.combo:only-child {" - " background-color: #" - + aThemeColors.GetButtonColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - - "button.combo:only-child:checked {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " box-shadow: 0 0 0 2px #" - + aThemeColors.GetButtonColor().AsRGBHexString() - + ";" - "}" - - "button.combo:only-child:disabled {" - " box-shadow: 0 0 0 2px transparent;" - " background-color: #" - + aThemeColors.GetInactiveColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetInactiveTextColor().AsRGBHexString() - + ";" - "}" - - // this one still needs some digging - "button.small-button, toolbar.small-button button, box.small-button button {" - " background-color: #" - + aThemeColors.GetMenuBarColor().AsRGBHexString() - + ";" - "}" - - // for the file picker dialog - "list {" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "treeview.view header button {" - " background-color: #" - + aThemeColors.GetWindowColor().AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - /************ - * Tooltips * - ************/ - "tooltip {" - " background-color: #" - + aThemeColors.GetBaseColor().AsRGBHexString() - + ";" - "}" - - "tooltip * {" - " color: #" - + aThemeColors.GetWindowTextColor().AsRGBHexString() - + ";" - "}" - - "actionbar > revealer > box .linked > " - "button:not(.suggested-action):not(.destructive-action), button {" - " background-color: #" - + aThemeColors.GetButtonColor().AsRGBHexString() - + ";" - " background-image: radial-gradient(circle, transparent 10%, transparent 0%);" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - "" - "" - "actionbar > revealer > box .linked > " - "button:checked:not(.suggested-action):not(.destructive-action), button:checked {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - - "tabbox>tab button," - "treeview.view header button button.circular," - "scrollbar button," - "notebook>header>tabs>arrow," - "spinbutton>button," - "toolbar button," - "button.flat {" - " background-color: transparent;" - "}" - - "button.flat:hover {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " border: 1px solid #" - + aThemeColors.GetSeparatorColor().AsRGBHexString() - + ";" - "}" - - // this alone won't do - ".toolbar button:checked," - ".toolbar button:hover," - "toolbar button:checked," - "toolbar button:hover," - "button.flat:checked," - "button.label-button," - "button.flat:checked:hover {" - " background-color: #" - + aPressedColor.AsRGBHexString() - + ";" - " text-shadow: none;" - "}" - - "button.destructive-action:not(:disabled) {" - " background-color: #f38ba8;" - " color: #" - + aThemeColors.GetButtonTextColor().AsRGBHexString() - + ";" - "}" - - ".view:selected {" - " background-color: #" - + aThemeColors.GetAccentColor().AsRGBHexString() - + ";" - "}"; + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + ".view {" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "textview text {" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + /********* + * Links * + *********/ + "*:link," + "link {" + " color: #" + aThemeColors.GetActiveColor().AsRGBHexString() + ";" + "}" + + "*:visited {" + " color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + /************ + * Toolbars * + ************/ + "toolbar {" + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + "}" + + ".toolbar {" + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + "}" + + /************** + * Tree Views * + **************/ + "treeview.view:selected {" + " background-color: #" + aThemeColors.GetAccentColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "treeview.view:drop(active) {" + " border-style: solid none;" + " border-color: alpha(currentColor, 0.08);" + "}" + + "treeview.view.expander {" + " color: #" + aThemeColors.GetFaceColor().AsRGBHexString() + ";" + "}" + + "treeview.view.expander:hover," + "treeview.view.expander:active {" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "treeview.view.expander:disabled {" + " color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + "}" + + // this part is still left + "treeview.view.trough {" + " background-color: rgba(239, 241, 245, 0.12);" + "}" + + "treeview.view header button:not(:focus):not(:hover):not(:active) {" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "treeview.view header button," + "treeview.view header button:disabled {" + " background-color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + "}" + + "treeview.view header button:last-child {" + " border-right-style: none;" + "}" + + "treeview.view button.dnd," + "treeview.view header.button.dnd {" + " background-color: #ff0000;" + " color: #89b4fa;" + "}" + + /********* + * Menus * + *********/ + "menubar," + ".menubar {" + " background-color: #" + aThemeColors.GetMenuBarColor().AsRGBHexString() + ";" + "}" + + "menubar > menuitem," + ".menubar > menuitem {" + " color: #" + aThemeColors.GetMenuBarTextColor().AsRGBHexString() + ";" + "}" + + "menubar > menuitem:hover," + ".menubar > menuitem:hover {" + " background-color: #" + aThemeColors.GetMenuBarHighlightColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetMenuBarHighlightTextColor().AsRGBHexString() + ";" + "}" + + "menubar > menuitem:disabled," + ".menubar > menuitem:disabled {" + " color: #" + aThemeColors.GetInactiveTextColor().AsRGBHexString() + ";" + "}" + + "menubar > menuitem label:disabled," + ".menubar > menuitem label:disabled {" + " color: inherit;" + "}" + + "menu {" + " background-color: #" + aThemeColors.GetMenuColor().AsRGBHexString() + ";" + " border: 1px solid #" + aThemeColors.GetMenuBorderColor().AsRGBHexString() + ";" + "}" + + "menu menuitem {" + " color: #" + aThemeColors.GetMenuTextColor().AsRGBHexString() + ";" + "}" + + "menu menuitem:hover {" + " background-color: #" + aThemeColors.GetMenuHighlightColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetMenuHighlightTextColor().AsRGBHexString() + ";" + "}" + + "menu menuitem:active {" + " background-color: alpha(currentColor, 0.12);" + "}" + + "menu menuitem:disabled {" + " background-color: #" + aThemeColors.GetMenuColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetDisabledTextColor().AsRGBHexString() + ";" + " border-left: 1px solid #" + aThemeColors.GetMenuBorderColor().AsRGBHexString() + ";" + " border-right: 1px solid #" + aThemeColors.GetMenuBorderColor().AsRGBHexString() + ";" + "}" + + "menu menuitem accelerator {" + " color: rgba(239, 241, 245, 0.7);" // ??? + "}" + + "menu menuitem:disabled accelerator {" + " color: rgba(239, 241, 245, 0.32);" // ??? + "}" + + "menu menuitem label:dir(rtl)," + "menu menuitem label:dir(ltr) {" + " color: inherit;" + "}" + + /************* + * Notebooks * + *************/ + + "tabbox > tab:hover," + "notebook > header tab:hover {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " border: 1px solid #" + aThemeColors.GetSeparatorColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "tabbox > tab:checked, notebook > header tab:checked {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " border: 1px solid #" + aThemeColors.GetSeparatorColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "notebook {" + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + "}" + + "notebook > header {" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + " border-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + "notebook > stack:not(:only-child) {" + " background-color: transparent;" + "}" + + /************ + * Scrollbar* + *************/ + + "scrollbar {" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + "scrollbar slider {" + " border: 4px solid transparent;" + " background-clip: padding-box;" + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + "}" + + "scrollbar slider:hover {" + " background-color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "scrollbar slider:active {" + " background-color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "scrollbar slider:disabled {" + " background-color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + "}" + + "scrollbar.overlay-indicator:not(.dragging):not(.hovering) {" + " background-color: transparent;" + "}" + + /***************** + * Check n Radio * + * ***************/ + + "check:disabled," + "radio:disabled {" + " background-color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + "}" + + "check:checked," + "check:indeterminate," + "radio:checked," + "radio:indeterminate {" + " color: rgba(17, 17, 27, 0.87);" + " background-color: #" + aThemeColors.GetActiveColor().AsRGBHexString() + ";" + "}" + + "check:checked:hover," + "check:indeterminate:hover," + "radio:checked:hover," + "radio:indeterminate:hover {" + " box-shadow: 0 0 0 6px rgba(137, 180, 250, 0.15);" + " background-color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "check:checked:active," + "check:indeterminate:active," + "radio:checked:active," + "radio:indeterminate:active {" + " box-shadow: 0 0 0 6px rgba(137, 180, 250, 0.2);" + " background-color: #" + aThemeColors.GetActiveColor().AsRGBHexString() + ";" + "}" + + "check:checked:disabled," + "check:indeterminate:disabled," + "radio:checked:disabled," + "radio:indeterminate:disabled {" + " color: rgba(17, 17, 27, 0.38);" + " background-color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + "}" + + /*************** + * Progressbar * + * *************/ + + "progressbar {" + " color: rgba(239, 241, 245, 0.7);" + " font-size: smaller;" + "}" + + "progressbar trough {" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + "progressbar progress {" + " background-color: #" + aThemeColors.GetActiveColor().AsRGBHexString() + ";" + "}" + + "frame > border," + ".frame {" + " border-radius: 0;" + " box-shadow: none;" + "}" + + ".frame.view {" + " border-radius: 6px;" + "}" + + ".frame.flat {" + " border-style: none;" + "}" + + "separator {" + " min-width: 1px;" + " min-height: 1px;" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + /*********** + * Buttons * + ***********/ + + ".toolbar button:checked," + "#buttonbox_frame button:checked," + "layouttabbar button:checked," + "messagedialog .dialog-action-box button:checked," + "messagedialog .dialog-action-box .linked:not(.vertical) > button:checked," + "popover.background.menu button:checked," + "popover.background button.model:checked," + "headerbar button:checked:not(.suggested-action):not(.destructive-action)," + "toolbar button:checked," + "combobox > .linked:not(.vertical) > button:checked:not(:only-child)," + "button.flat:checked," + "button.flat:checked:hover {" + " background-color: alpha(#" + aThemeColors.GetButtonColor().AsRGBHexString() + ", 0.1);" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + "" + "button:active {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + "button:disabled {" + " background-color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetInactiveTextColor().AsRGBHexString() + ";" + " border: 1px solid #" + aThemeColors.GetInactiveBorderColor().AsRGBHexString() + ";" + "}" + + /***************** + * GtkSpinButton * + *****************/ + + "spinbutton > entry," + "spinbutton > entry:focus," + "spinbutton > entry:disabled," + ".background:not(.csd) spinbutton > entry," + ".background:not(.csd) spinbutton > entry:focus," + ".background:not(.csd) spinbutton > entry:disabled {" + " border: none;" + " box-shadow: none;" + " background-color: transparent;" + "}" + + "spinbutton > button {" + " border: solid 6px transparent;" + "}" + + "spinbutton > button:focus:not(:hover):not(:active):not(:disabled) {" + " box-shadow: inset 0 0 0 9999px transparent;" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + "spinbutton," + "entry {" + " background-color: #" + aSpinBack.AsRGBHexString() + ";" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + "spinbutton:focus," + "entry:focus {" + " background-color: #" + aSpinBack.AsRGBHexString() + ";" + " box-shadow: inset 0 0 0 2px #" + aThemeColors.GetActiveColor().AsRGBHexString() + ";" + "}" + + "spinbutton:disabled," + "entry:disabled {" + " box-shadow: inset 0 0 0 2px transparent;" + " background-color: #" + aSpinBack.AsRGBHexString() + ";" + " color: #" + aThemeColors.GetInactiveTextColor().AsRGBHexString() + ";" + "}" + + /************** + * ComboBoxes * + **************/ + "button.combo:only-child {" + " background-color: #" + aThemeColors.GetButtonColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + "button.combo:only-child:checked {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " box-shadow: 0 0 0 2px #" + aThemeColors.GetButtonColor().AsRGBHexString() + ";" + "}" + + "button.combo:only-child:disabled {" + " box-shadow: 0 0 0 2px transparent;" + " background-color: #" + aThemeColors.GetInactiveColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetInactiveTextColor().AsRGBHexString() + ";" + "}" + + // this one still needs some digging + "button.small-button, toolbar.small-button button, box.small-button button {" + " background-color: #" + aThemeColors.GetMenuBarColor().AsRGBHexString() + ";" + "}" + + // for the file picker dialog + "list {" + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "treeview.view header button {" + " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + /************ + * Tooltips * + ************/ + "tooltip {" + " background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" + "}" + + "tooltip * {" + " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" + "}" + + "actionbar > revealer > box .linked > " + "button:not(.suggested-action):not(.destructive-action), button {" + " background-color: #" + aThemeColors.GetButtonColor().AsRGBHexString() + ";" + " background-image: radial-gradient(circle, transparent 10%, transparent 0%);" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + + "actionbar > revealer > box .linked > " + "button:checked:not(.suggested-action):not(.destructive-action), button:checked {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + "tabbox>tab button," + "treeview.view header button button.circular," + "scrollbar button," + "notebook>header>tabs>arrow," + "spinbutton>button," + "toolbar button," + "button.flat {" + " background-color: transparent;" + "}" + + "button.flat:hover {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " border: 1px solid #" + aThemeColors.GetSeparatorColor().AsRGBHexString() + ";" + "}" + + // this alone won't do + ".toolbar button:checked," + ".toolbar button:hover," + "toolbar button:checked," + "toolbar button:hover," + "button.flat:checked," + "button.label-button," + "button.flat:checked:hover {" + " background-color: #" + aPressedColor.AsRGBHexString() + ";" + " text-shadow: none;" + "}" + + "button.destructive-action:not(:disabled) {" + " background-color: #f38ba8;" + " color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" + "}" + + ".view:selected {" + " background-color: #" + aThemeColors.GetAccentColor().AsRGBHexString() + ";" + "}"; + // clang-format on return OUStringToOString(aStr, RTL_TEXTENCODING_UTF8); }
