diff --git a/Applications/Launcher/main.cpp b/Applications/Launcher/main.cpp index 6f70de68f9..4224730eac 100644 --- a/Applications/Launcher/main.cpp +++ b/Applications/Launcher/main.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -60,22 +61,25 @@ private: GWindow* make_launcher_window() { + auto config = CConfigFile::get_for_app("Launcher"); + auto* window = new GWindow; window->set_title("Launcher"); - window->set_rect(50, 50, 300, 60); + window->set_rect(50, 50, + 50, config->groups().size() * 55); auto* widget = new GWidget; widget->set_fill_with_background_color(true); - widget->set_layout(make(Orientation::Horizontal)); + widget->set_layout(make(Orientation::Vertical)); widget->layout()->set_margins({ 5, 5, 5, 5 }); window->set_main_widget(widget); - new LauncherButton("Terminal", "/res/icons/Terminal.png", "/bin/Terminal", widget); - new LauncherButton("FontEditor", "/res/icons/FontEditor.png", "/bin/FontEditor", widget); - new LauncherButton("FileManager", "/res/icons/32x32/filetype-folder.png", "/bin/FileManager", widget); - new LauncherButton("TextEditor", "/res/icons/TextEditor.png", "/bin/TextEditor", widget); - new LauncherButton("VisualBuilder", "/res/icons/32x32/app-visual-builder.png", "/bin/VisualBuilder", widget); - new LauncherButton("IRCClient", "/res/icons/32x32/app-irc-client.png", "/bin/IRCClient", widget); + for (auto& group : config->groups()) { + new LauncherButton(config->read_entry(group, "Name", group), + config->read_entry(group, "Icon", ""), + config->read_entry(group, "Path", ""), + widget); + } return window; } diff --git a/Base/home/anon/Launcher.ini b/Base/home/anon/Launcher.ini new file mode 100644 index 0000000000..e3dd364162 --- /dev/null +++ b/Base/home/anon/Launcher.ini @@ -0,0 +1,35 @@ +[Terminal] +Path=/bin/Terminal +Icon=/res/icons/Terminal.png + +[FontEditor] +Path=/bin/FontEditor +Icon=/res/icons/FontEditor.png + +[TextEditor] +Path=/bin/TextEditor +Icon=/res/icons/TextEditor.png + +[VisualBuilder] +Path=/bin/VisualBuilder +Icon=/res/icons/32x32/app-visual-builder.png + +[IRCClient] +Path=/bin/IRCClient +Icon=/res/icons/32x32/app-irc-client.png + +[FileManager] +Path=/bin/FileManager +Icon=/res/icons/32x32/filetype-folder.png + +[Minesweeper] +Path=/bin/Minesweeper +Icon=/res/icons/minesweeper/mine.png + +[Snake] +Path=/bin/Snake +Icon=/res/icons/snake/eggplant.png + +[ProcessManager] +Path=/bin/ProcessManager +Icon=/res/icons/32x32/msgbox-warning.png diff --git a/Kernel/init.cpp b/Kernel/init.cpp index 0081b88ece..386ba1ed36 100644 --- a/Kernel/init.cpp +++ b/Kernel/init.cpp @@ -27,7 +27,7 @@ #include #define SPAWN_TERMINAL -//#define SPAWN_LAUNCHER +#define SPAWN_LAUNCHER //#define SPAWN_GUITEST2 //#define SPAWN_FILE_MANAGER //#define SPAWN_PROCESS_MANAGER diff --git a/Servers/WindowServer/WSWindowManager.cpp b/Servers/WindowServer/WSWindowManager.cpp index db9528934b..47ad351ccc 100644 --- a/Servers/WindowServer/WSWindowManager.cpp +++ b/Servers/WindowServer/WSWindowManager.cpp @@ -72,15 +72,8 @@ WSWindowManager::WSWindowManager() Vector apps; apps.append({ "/bin/Terminal", "Open Terminal..." }); - apps.append({ "/bin/FontEditor", "Open FontEditor..." }); - apps.append({ "/bin/TextEditor", "Open TextEditor..." }); - apps.append({ "/bin/VisualBuilder", "Open VisualBuilder..." }); - apps.append({ "/bin/IRCClient", "Open IRCClient..." }); apps.append({ "/bin/FileManager", "Open FileManager..." }); apps.append({ "/bin/ProcessManager", "Open ProcessManager..." }); - apps.append({ "/bin/HelloWorld", "Open HelloWorld..." }); - apps.append({ "/bin/Minesweeper", "Play Minesweeper..." }); - apps.append({ "/bin/Snake", "Play Snake..." }); { byte system_menu_name[] = { 0xf8, 0 };