office-gobmx/icon-themes
Justin Luth da86bfd89e tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode
A temporary (ugly, but appropriate) icon has been assigned.

The toggle can be customize-assigned to keyboard, menu, and toolbar,
and can be found by searching for "Dark Mode".

In the menu, it is checked when in Dark mode,
and in the toolbar it is "depressed" or highlighted as active.

Dark mode has been added to the view tab of notebookbar.ui.
I added it as NOT VISIBLE, for several reasons.
- dark mode is rather new and not so stable, so don't over-promote it.
- notebookbars cannot be infinitely customized by the end user,
  so developers have to add all items. Users only enable or disable.
- toggling dark mode really ought to be done at the OS level,
  and typically should be a one-time setting,
  therefore not appropriate to waste precious toolbar space.

The primary benefit of making it available in the menu
is for QA testers who want to easily switch back and forth.
WARNING: by customizing the notebookbar, you prevent seeing
any future NBB changes made to the program
(until you reset to defaults or blow away the user profile).

Dark Mode can easily be added to a menu, toolbar or keyboard shortcut
by the end user, so I didn't bother adding it anywhere else.

To avoid completely cluttering up this commit,
I only added Dark mode to the main notebookbar.
Once this commit has been finalized,
the other writer-apps and notebookbars can
also gain this command.

Change-Id: Ia7594ad81e305ead922abd0ad7b41d6fc0413053
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166781
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2024-05-03 17:58:15 +02:00
..
breeze tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
breeze_dark tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
breeze_dark_svg Removed executable bits from png and svg files 2023-06-06 22:48:40 +02:00
breeze_svg Removed executable bits from png and svg files 2023-06-06 22:48:40 +02:00
colibre tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
colibre_dark tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
colibre_dark_svg tdf#50998 tdf#87892 Add sinusoid shape 2024-04-08 09:54:55 +02:00
colibre_svg tdf#50998 tdf#87892 Add sinusoid shape 2024-04-08 09:54:55 +02:00
elementary tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
elementary_svg Removed executable bits from png and svg files 2023-06-06 22:48:40 +02:00
karasa_jaga tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
karasa_jaga_svg tdf#158939 icon-themes/karasa_jaga_svg: simplify some db icons 2024-01-28 22:48:55 +01:00
sifr tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
sifr_dark tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
sifr_dark_svg Removed executable bits from png and svg files 2023-06-06 22:48:40 +02:00
sifr_svg Removed executable bits from png and svg files 2023-06-06 22:48:40 +02:00
sukapura tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
sukapura_dark tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode 2024-05-03 17:58:15 +02:00
sukapura_dark_svg tdf#158939 icon-themes: remove leftover reference images from SVGs 2024-01-27 20:46:31 +01:00
sukapura_svg tdf#158939 icon-themes: remove leftover reference images from SVGs 2024-01-27 20:46:31 +01:00
README.md

Icon Repository for the Applications

All of the icons, separated by themes are included in this directory. These icons are built into .zip files, and re-ordered / packed for efficiency reasons based on our UI configuration by the postprocess/CustomTarget_images.mk.

An icon theme does not need to contain all images, since these can be layered one on top of another.

In general the layering is done like this:

<leaf theme>
breeze
colibre

Icon naming convention

sc_* icons are 16x16 px (small) lc_* icons are 24x24 px (large) There is also an 32px folder at cmd/ with 32 px icons

16x16 px icons are used in the menus 24x24 px icons are used in toolbars and sidebar Notebook bar use 24x24 px icons when there is only one icon, and 16x16 px everywhere else

sc_ and lc_ icon are followed by the .uno:CommandName (see below)

How to Add a New Image Set

  • Create a directory for it here (let's call it e.g. new_set)

    FIXME: It is important to use an underscore _ to delimit more words. scp2 compilation crashes when using a dash -. It evidently splits the name into two strings.

    • It's probably not true anymore with filelists.
    • if this gets changed, IconThemeSelector::SetPreferredIconTheme needs to change too
  • Add its name (new_set) to WITH_THEMES variable in configure.ac

  • The fallback for particular icons is defined be packimages_CUSTOM_FALLBACK_1 in packimages/CustomTarget_images.mk

How to Add a New Icon for a New Command

  • Assume you defined a dispatch command in officecfg like the following:

in officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu

<node oor:name=".uno:OpenFromCalc" oor:op="replace">
    <prop oor:name="Label" oor:type="xs:string">
        <value xml:lang="en-US">~Open...</value>
    </prop>
    <prop oor:name="Properties" oor:type="xs:int">
        <value>1</value>
    </prop>
</node>

Here, you need to define a property named "Properties", with its value set to 1 so that the icons show up.

  • Now, you need to add 2 new icon images under icon-themes/colibre/cmd/, one for the large size and one for the smaller size. The name of each image must be lc_<command name>.png and sc_<command name>.png. Here, the command name is the name given in the above .xcu file without the .uno: prefix and all its letters lower-cased. In this example, the file names will be lc_openfromcalc.png and sc_openfromcalc.png. Note that you need to add new images to the colibre theme for them to show up in any themes at all.

How to Call optipng to Optimize Size

8 bit palettes are on the slow path for quartz/svp/gtk3 so avoid using palettes with...

$ optipng -nc <file>