diff --git a/Base/res/icons/SystemMenu.ini b/Base/res/icons/SystemMenu.ini new file mode 100644 index 00000000000..4c2d7a2be2a --- /dev/null +++ b/Base/res/icons/SystemMenu.ini @@ -0,0 +1,9 @@ +[16x16] +Demos=/res/icons/16x16/app-demo.png +#Development= +#Games= +#Graphics= +#Internet= +Settings=/res/icons/gear16.png +Sound=/res/icons/16x16/filetype-music.png +#Utilities= diff --git a/Services/SystemMenu/main.cpp b/Services/SystemMenu/main.cpp index c7085bd7a86..0d0e6822fc5 100644 --- a/Services/SystemMenu/main.cpp +++ b/Services/SystemMenu/main.cpp @@ -132,10 +132,16 @@ NonnullRefPtr build_system_menu() // First we construct all the necessary app category submenus. HashMap> app_category_menus; + auto category_icons = Core::ConfigFile::open("/res/icons/SystemMenu.ini"); for (const auto& category : sorted_app_categories) { if (app_category_menus.contains(category)) continue; auto& category_menu = system_menu->add_submenu(category); + auto category_icon_path = category_icons->read_entry("16x16", category); + if (!category_icon_path.is_empty()) { + auto icon = Gfx::Bitmap::load_from_file(category_icon_path); + category_menu.set_icon(icon); + } app_category_menus.set(category, category_menu); }