diff options
-rw-r--r-- | icon-themes/breeze/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/breeze_dark/links.txt | 4 | ||||
-rw-r--r-- | icon-themes/colibre/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/colibre_dark/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/elementary/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/karasa_jaga/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/sifr/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/sifr_dark/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/sukapura/links.txt | 3 | ||||
-rw-r--r-- | icon-themes/sukapura_dark/links.txt | 3 | ||||
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 11 | ||||
-rw-r--r-- | sc/uiconfig/scalc/ui/notebookbar.ui | 54 | ||||
-rw-r--r-- | sd/uiconfig/sdraw/ui/notebookbar.ui | 54 | ||||
-rw-r--r-- | sd/uiconfig/simpress/ui/notebookbar.ui | 54 | ||||
-rw-r--r-- | sfx2/sdi/appslots.sdi | 1 | ||||
-rw-r--r-- | sfx2/sdi/sfx.sdi | 5 | ||||
-rw-r--r-- | sfx2/source/appl/appserv.cxx | 55 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/notebookbar.ui | 54 |
18 files changed, 313 insertions, 6 deletions
diff --git a/icon-themes/breeze/links.txt b/icon-themes/breeze/links.txt index 8eaca399a5f0..23ba813b7107 100644 --- a/icon-themes/breeze/links.txt +++ b/icon-themes/breeze/links.txt @@ -1486,16 +1486,19 @@ cmd/sc_leftpara.png cmd/sc_alignleft.png cmd/sc_rightpara.png cmd/sc_alignright.png # View menu +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/gridmenu.png cmd/32/gridvisible.png cmd/32/navigatemenu.png cmd/32/navigator.png cmd/32/scrollbarmenu.png cmd/32/scrollbar.png cmd/32/sidebarmenu.png cmd/32/sidebar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_gridmenu.png cmd/lc_gridvisible.png cmd/lc_navigatemenu.png cmd/lc_navigator.png cmd/lc_scrollbarmenu.png cmd/lc_scrollbar.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_gridmenu.png cmd/sc_gridvisible.png cmd/sc_navigatemenu.png cmd/sc_navigator.png cmd/sc_scrollbarmenu.png cmd/sc_scrollbar.png diff --git a/icon-themes/breeze_dark/links.txt b/icon-themes/breeze_dark/links.txt index 8eaca399a5f0..748bc16ab2d2 100644 --- a/icon-themes/breeze_dark/links.txt +++ b/icon-themes/breeze_dark/links.txt @@ -1486,16 +1486,20 @@ cmd/sc_leftpara.png cmd/sc_alignleft.png cmd/sc_rightpara.png cmd/sc_alignright.png # View menu + +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/gridmenu.png cmd/32/gridvisible.png cmd/32/navigatemenu.png cmd/32/navigator.png cmd/32/scrollbarmenu.png cmd/32/scrollbar.png cmd/32/sidebarmenu.png cmd/32/sidebar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_gridmenu.png cmd/lc_gridvisible.png cmd/lc_navigatemenu.png cmd/lc_navigator.png cmd/lc_scrollbarmenu.png cmd/lc_scrollbar.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_gridmenu.png cmd/sc_gridvisible.png cmd/sc_navigatemenu.png cmd/sc_navigator.png cmd/sc_scrollbarmenu.png cmd/sc_scrollbar.png diff --git a/icon-themes/colibre/links.txt b/icon-themes/colibre/links.txt index d7de3b9fdd55..ede4f262cddb 100644 --- a/icon-themes/colibre/links.txt +++ b/icon-themes/colibre/links.txt @@ -1279,12 +1279,15 @@ cmd/sc_thesaurusdialog.png cmd/sc_thesaurus.png # View cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/sidebarmenu.png cmd/32/sidebar.png cmd/32/toolbarsmenu.png cmd/32/showtoolbar.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png cmd/lc_toolbarsmenu.png cmd/lc_showtoolbar.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_sidebarmenu.png cmd/sc_sidebar.png cmd/sc_toolbarsmenu.png cmd/sc_showtoolbar.png diff --git a/icon-themes/colibre_dark/links.txt b/icon-themes/colibre_dark/links.txt index d7de3b9fdd55..ede4f262cddb 100644 --- a/icon-themes/colibre_dark/links.txt +++ b/icon-themes/colibre_dark/links.txt @@ -1279,12 +1279,15 @@ cmd/sc_thesaurusdialog.png cmd/sc_thesaurus.png # View cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/sidebarmenu.png cmd/32/sidebar.png cmd/32/toolbarsmenu.png cmd/32/showtoolbar.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png cmd/lc_toolbarsmenu.png cmd/lc_showtoolbar.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_sidebarmenu.png cmd/sc_sidebar.png cmd/sc_toolbarsmenu.png cmd/sc_showtoolbar.png diff --git a/icon-themes/elementary/links.txt b/icon-themes/elementary/links.txt index 9ad6b73033fb..0c320f04ccbe 100644 --- a/icon-themes/elementary/links.txt +++ b/icon-themes/elementary/links.txt @@ -2472,6 +2472,7 @@ cmd/sc_pastespecialmenu.png cmd/sc_pastespecial.png # View menu cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/gridmenu.png cmd/32/gridvisible.png cmd/32/rulermenu.png cmd/32/ruler.png cmd/32/scrollbarmenu.png cmd/32/scrollbar.png @@ -2482,6 +2483,7 @@ cmd/32/viewtrackchanges.png cmd/32/showtrackedchanges.png cmd/32/zoommenu.png cmd/32/zoom.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_gridmenu.png cmd/lc_gridvisible.png cmd/lc_rulermenu.png cmd/lc_ruler.png cmd/lc_scrollbarmenu.png cmd/lc_scrollbar.png @@ -2492,6 +2494,7 @@ cmd/lc_viewtrackchanges.png cmd/lc_showtrackedchanges.png cmd/lc_zoommenu.png cmd/lc_zoom.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_gridmenu.png cmd/sc_gridvisible.png cmd/sc_rulermenu.png cmd/sc_ruler.png cmd/sc_scrollbarmenu.png cmd/sc_scrollbar.png diff --git a/icon-themes/karasa_jaga/links.txt b/icon-themes/karasa_jaga/links.txt index e52e4529e576..d71263a1f279 100644 --- a/icon-themes/karasa_jaga/links.txt +++ b/icon-themes/karasa_jaga/links.txt @@ -64,6 +64,7 @@ cmd/32/cellvertcenter.png cmd/32/alignverticalcenter.png cmd/32/cellverttop.png cmd/32/aligntop.png cmd/32/centerpara.png cmd/32/alignhorizontalcenter.png cmd/32/changesmenu.png cmd/32/accepttrackedchange.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/charactermenu.png cmd/32/fontdialog.png cmd/32/charbackcolor.png cmd/32/backcolor.png cmd/32/charmapcontrol.png cmd/32/insertsymbol.png @@ -808,6 +809,7 @@ cmd/lc_cellvertcenter.png cmd/lc_alignverticalcenter.png cmd/lc_cellverttop.png cmd/lc_aligntop.png cmd/lc_centerpara.png cmd/lc_alignhorizontalcenter.png cmd/lc_changesmenu.png cmd/lc_accepttrackedchange.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_charactermenu.png cmd/lc_fontdialog.png cmd/lc_charbackcolor.png cmd/lc_backcolor.png cmd/lc_charmapcontrol.png cmd/lc_insertsymbol.png @@ -1226,6 +1228,7 @@ cmd/sc_cellvertcenter.png cmd/sc_alignverticalcenter.png cmd/sc_cellverttop.png cmd/sc_aligntop.png cmd/sc_centerpara.png cmd/sc_alignhorizontalcenter.png cmd/sc_changesmenu.png cmd/sc_accepttrackedchange.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_charactermenu.png cmd/sc_fontdialog.png cmd/sc_charbackcolor.png cmd/sc_backcolor.png cmd/sc_charmapcontrol.png cmd/sc_insertsymbol.png diff --git a/icon-themes/sifr/links.txt b/icon-themes/sifr/links.txt index 29d15a01a93e..5733722da4cb 100644 --- a/icon-themes/sifr/links.txt +++ b/icon-themes/sifr/links.txt @@ -1356,16 +1356,19 @@ cmd/sc_rightpara.png cmd/sc_alignright.png # View cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/sidebarmenu.png cmd/32/sidebar.png cmd/32/toolbarsmenu.png cmd/32/showtoolbar.png cmd/32/viewbounds.png cmd/32/charfontname.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png cmd/lc_toolbarsmenu.png cmd/lc_showtoolbar.png cmd/lc_viewbounds.png cmd/lc_charfontname.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_sidebarmenu.png cmd/sc_sidebar.png cmd/sc_toolbarsmenu.png cmd/sc_showtoolbar.png cmd/sc_viewbounds.png cmd/sc_charfontname.png diff --git a/icon-themes/sifr_dark/links.txt b/icon-themes/sifr_dark/links.txt index 29d15a01a93e..5733722da4cb 100644 --- a/icon-themes/sifr_dark/links.txt +++ b/icon-themes/sifr_dark/links.txt @@ -1356,16 +1356,19 @@ cmd/sc_rightpara.png cmd/sc_alignright.png # View cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/sidebarmenu.png cmd/32/sidebar.png cmd/32/toolbarsmenu.png cmd/32/showtoolbar.png cmd/32/viewbounds.png cmd/32/charfontname.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png cmd/lc_toolbarsmenu.png cmd/lc_showtoolbar.png cmd/lc_viewbounds.png cmd/lc_charfontname.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_sidebarmenu.png cmd/sc_sidebar.png cmd/sc_toolbarsmenu.png cmd/sc_showtoolbar.png cmd/sc_viewbounds.png cmd/sc_charfontname.png diff --git a/icon-themes/sukapura/links.txt b/icon-themes/sukapura/links.txt index 22ffbd1529ea..9552ccb3dbf5 100644 --- a/icon-themes/sukapura/links.txt +++ b/icon-themes/sukapura/links.txt @@ -1314,12 +1314,15 @@ cmd/sc_thesaurusdialog.png cmd/sc_thesaurus.png # View cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/sidebarmenu.png cmd/32/sidebar.png cmd/32/toolbarsmenu.png cmd/32/showtoolbar.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png cmd/lc_toolbarsmenu.png cmd/lc_showtoolbar.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_sidebarmenu.png cmd/sc_sidebar.png cmd/sc_toolbarsmenu.png cmd/sc_showtoolbar.png diff --git a/icon-themes/sukapura_dark/links.txt b/icon-themes/sukapura_dark/links.txt index 22ffbd1529ea..9552ccb3dbf5 100644 --- a/icon-themes/sukapura_dark/links.txt +++ b/icon-themes/sukapura_dark/links.txt @@ -1314,12 +1314,15 @@ cmd/sc_thesaurusdialog.png cmd/sc_thesaurus.png # View cmd/32/availabletoolbars.png cmd/32/showtoolbar.png +cmd/32/changetheme.png cmd/32/symbolshapes.moon.png cmd/32/sidebarmenu.png cmd/32/sidebar.png cmd/32/toolbarsmenu.png cmd/32/showtoolbar.png cmd/lc_availabletoolbars.png cmd/lc_showtoolbar.png +cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png cmd/lc_sidebarmenu.png cmd/lc_sidebar.png cmd/lc_toolbarsmenu.png cmd/lc_showtoolbar.png cmd/sc_availabletoolbars.png cmd/sc_showtoolbar.png +cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png cmd/sc_sidebarmenu.png cmd/sc_sidebar.png cmd/sc_toolbarsmenu.png cmd/sc_showtoolbar.png diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 4c4365a5ad9a..6567f42c538e 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -1396,6 +1396,17 @@ bit 3 (0x8): #define UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON 8 <value xml:lang="en-US">Undo</value> </prop> </node> + <node oor:name=".uno:ChangeTheme" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Dark Mode</value> + </prop> + <prop oor:name="TooltipLabel" oor:type="xs:string"> + <value xml:lang="en-US">Toggle between dark and light modes</value> + </prop> + <prop oor:name="Properties" oor:type="xs:int"> + <value>1</value> + </prop> + </node> <node oor:name=".uno:ToggleControlFocus" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Control Focus</value> diff --git a/sc/uiconfig/scalc/ui/notebookbar.ui b/sc/uiconfig/scalc/ui/notebookbar.ui index cdbe495a3fd2..9215cf584de3 100644 --- a/sc/uiconfig/scalc/ui/notebookbar.ui +++ b/sc/uiconfig/scalc/ui/notebookbar.ui @@ -9709,6 +9709,60 @@ </packing> </child> <child> + <object class="VclOptionalBox" id="View-Section-DarkMode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <child> + <object class="GtkSeparator" id="separator-section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_top">5</property> + <property name="margin_bottom">5</property> + <property name="orientation">vertical</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="sfxlo-NotebookbarToolBox" id="Section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <property name="toolbar_style">both</property> + <property name="show_arrow">False</property> + <property name="icon_size">3</property> + <child> + <object class="GtkToolButton" id="View-DarkMode"> + <property name="visible">False</property> + <property name="action_name">.uno:ChangeTheme</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">4</property> + </packing> + </child> + <child> <object class="VclOptionalBox" id="View-Section-Zoom"> <property name="visible">True</property> <property name="can_focus">False</property> diff --git a/sd/uiconfig/sdraw/ui/notebookbar.ui b/sd/uiconfig/sdraw/ui/notebookbar.ui index 32e7212d5e70..c3923c4daa5f 100644 --- a/sd/uiconfig/sdraw/ui/notebookbar.ui +++ b/sd/uiconfig/sdraw/ui/notebookbar.ui @@ -7903,6 +7903,60 @@ </packing> </child> <child> + <object class="VclOptionalBox" id="View-Section-DarkMode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <child> + <object class="GtkSeparator" id="separator-section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_top">5</property> + <property name="margin_bottom">5</property> + <property name="orientation">vertical</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="sfxlo-NotebookbarToolBox" id="Section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <property name="toolbar_style">both</property> + <property name="show_arrow">False</property> + <property name="icon_size">3</property> + <child> + <object class="GtkToolButton" id="View-DarkMode"> + <property name="visible">False</property> + <property name="action_name">.uno:ChangeTheme</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">11</property> + </packing> + </child> + <child> <object class="VclOptionalBox" id="View-Section-DisplayQuality"> <property name="visible">True</property> <property name="can_focus">False</property> diff --git a/sd/uiconfig/simpress/ui/notebookbar.ui b/sd/uiconfig/simpress/ui/notebookbar.ui index 18530c457d7a..6fe56e76ac92 100644 --- a/sd/uiconfig/simpress/ui/notebookbar.ui +++ b/sd/uiconfig/simpress/ui/notebookbar.ui @@ -9148,6 +9148,60 @@ </packing> </child> <child> + <object class="VclOptionalBox" id="View-Section-DarkMode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <child> + <object class="GtkSeparator" id="separator-section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_top">5</property> + <property name="margin_bottom">5</property> + <property name="orientation">vertical</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="sfxlo-NotebookbarToolBox" id="Section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <property name="toolbar_style">both</property> + <property name="show_arrow">False</property> + <property name="icon_size">3</property> + <child> + <object class="GtkToolButton" id="View-DarkMode"> + <property name="visible">False</property> + <property name="action_name">.uno:ChangeTheme</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">14</property> + </packing> + </child> + <child> <object class="VclOptionalBox" id="View-Section-DisplayQuality"> <property name="visible">True</property> <property name="can_focus">False</property> diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi index 2ea5dd7a7580..45166d3376f6 100644 --- a/sfx2/sdi/appslots.sdi +++ b/sfx2/sdi/appslots.sdi @@ -67,6 +67,7 @@ interface Application FN_CHANGE_THEME // ole(no) api(final/play/rec) [ ExecMethod = MiscExec_Impl ; + StateMethod = MiscState_Impl ; ] FN_INVERT_BACKGROUND // ole(no) api(final/play/rec) [ diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 23e97115b737..b8e116a7a042 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -5901,12 +5901,15 @@ SfxVoidItem ChangeTheme FN_CHANGE_THEME [ AutoUpdate = FALSE, FastCall = FALSE, - ReadOnlyDoc = FALSE, + ReadOnlyDoc = TRUE, Toggle = FALSE, Container = FALSE, RecordAbsolute = FALSE, RecordPerSet; + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, GroupId = SfxGroupId::Application; ] diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx index 8da1edce2c1f..8407e0248594 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -601,20 +601,57 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) case FN_CHANGE_THEME: { const SfxStringItem* pNewThemeArg = rReq.GetArg<SfxStringItem>(FN_PARAM_NEW_THEME); + OUString sSchemeName + = pNewThemeArg ? pNewThemeArg->GetValue() : "COLOR_SCHEME_LIBREOFFICE_AUTOMATIC"; if (!pNewThemeArg) { - SAL_WARN("sfx.appl", "FN_CHANGE_THEME: no theme name"); - break; + // toggle between light and dark mode + + // There are two separate things that can be dark mode themed: UI and document + // The modes can be 0 (automatic - what the OS/VCL asks for), 1 (light), or 2 (dark) + + // Since only gtk/osx/win support UI theme, toggle based on document colors + // Automatic in this case means "whatever GetUseDarkMode() says" + const bool bWasInDarkMode + = MiscSettings::GetAppColorMode() == 2 + || (MiscSettings::GetAppColorMode() == 0 && MiscSettings::GetUseDarkMode()); + + // Set the UI theme. It would be nicest to use automatic whenever possible + sal_Int32 nUseMode = 0; // automatic + if (MiscSettings::GetDarkMode() != 0) + MiscSettings::SetDarkMode(nUseMode); + + if (MiscSettings::GetUseDarkMode() == bWasInDarkMode) + { + // automatic didn't toggle, so force the desired theme + nUseMode = bWasInDarkMode ? 1 : 2; + MiscSettings::SetDarkMode(nUseMode); + } + + // Now set the document theme + // If the UI can be themed, then the document theme can always remain on automatic. + nUseMode = 0; + // NOTE: since SetDarkMode has run, GetUseDarkMode might return a different result. + if (MiscSettings::GetUseDarkMode() == bWasInDarkMode) + { + nUseMode = bWasInDarkMode ? 1 : 2; + sSchemeName = bWasInDarkMode ? u"Light" : u"Dark"; + } + MiscSettings::SetAppColorMode(nUseMode); } - const OUString& rSchemeName = pNewThemeArg->GetValue(); svtools::EditableColorConfig aEditableConfig; // kit explicitly ignores changes to the global color scheme, except for the current ViewShell, // so an attempted change to the same global color scheme when the now current ViewShell ignored // the last change requires re-sending the change. In which case individual shells will have to // decide if this color-scheme change is a change from their perspective to avoid unnecessary // invalidations. - if (aEditableConfig.GetCurrentSchemeName() != rSchemeName || comphelper::LibreOfficeKit::isActive()) - aEditableConfig.LoadScheme(rSchemeName); + if (!pNewThemeArg || comphelper::LibreOfficeKit::isActive() + || aEditableConfig.GetCurrentSchemeName() != sSchemeName) + { + aEditableConfig.LoadScheme(sSchemeName); + } + + Invalidate(FN_CHANGE_THEME); break; } case FN_INVERT_BACKGROUND: @@ -1222,6 +1259,14 @@ void SfxApplication::MiscState_Impl(SfxItemSet &rSet) break; #endif + case FN_CHANGE_THEME: + { + const bool bIsDarkMode + = MiscSettings::GetAppColorMode() == 2 + || (!MiscSettings::GetAppColorMode() && MiscSettings::GetUseDarkMode()); + rSet.Put(SfxBoolItem(FN_CHANGE_THEME, bIsDarkMode)); + break; + } case SID_HELPTIPS: { rSet.Put( SfxBoolItem( SID_HELPTIPS, Help::IsQuickHelpEnabled() ) ); diff --git a/sw/uiconfig/swriter/ui/notebookbar.ui b/sw/uiconfig/swriter/ui/notebookbar.ui index b6a99ef1a79b..60581d7f0442 100644 --- a/sw/uiconfig/swriter/ui/notebookbar.ui +++ b/sw/uiconfig/swriter/ui/notebookbar.ui @@ -9074,6 +9074,60 @@ </packing> </child> <child> + <object class="VclOptionalBox" id="View-Section-DarkMode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <child> + <object class="GtkSeparator" id="separator-section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_top">5</property> + <property name="margin_bottom">5</property> + <property name="orientation">vertical</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="sfxlo-NotebookbarToolBox" id="Section-darkmode"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="valign">center</property> + <property name="vexpand">True</property> + <property name="toolbar_style">both</property> + <property name="show_arrow">False</property> + <property name="icon_size">3</property> + <child> + <object class="GtkToolButton" id="View-DarkMode"> + <property name="visible">False</property> + <property name="action_name">.uno:ChangeTheme</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">4</property> + </packing> + </child> + <child> <object class="VclOptionalBox" id="View-Section-Zoom"> <property name="visible">True</property> <property name="can_focus">False</property> |