From da536c8d2271efda24d3d0275bcbea3ac1ca8073 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 4 Jan 2021 23:31:08 +0100 Subject: [PATCH] LibGUI: Add CommonActions::make_about_action() This creates an "About" menu action given the app name and icon. It takes care of showing the about dialog for you. --- Libraries/LibGUI/Action.cpp | 10 ++++++++++ Libraries/LibGUI/Action.h | 1 + 2 files changed, 11 insertions(+) diff --git a/Libraries/LibGUI/Action.cpp b/Libraries/LibGUI/Action.cpp index f71354fc5d..5a9743df7e 100644 --- a/Libraries/LibGUI/Action.cpp +++ b/Libraries/LibGUI/Action.cpp @@ -24,10 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include #include #include #include #include +#include #include #include @@ -35,6 +37,14 @@ namespace GUI { namespace CommonActions { +NonnullRefPtr make_about_action(const String& app_name, const Icon& app_icon, Window* parent) +{ + WeakPtr weak_parent = parent ? parent->make_weak_ptr() : nullptr; + return Action::create(String::formatted("About {}", app_name), app_icon.bitmap_for_size(16), [=](auto&) { + AboutDialog::show(app_name, app_icon.bitmap_for_size(32), weak_parent.ptr()); + }); +} + NonnullRefPtr make_open_action(Function callback, Core::Object* parent) { return Action::create("Open...", { Mod_Ctrl, Key_O }, Gfx::Bitmap::load_from_file("/res/icons/16x16/open.png"), move(callback), parent); diff --git a/Libraries/LibGUI/Action.h b/Libraries/LibGUI/Action.h index 486aa6b999..9b006031bb 100644 --- a/Libraries/LibGUI/Action.h +++ b/Libraries/LibGUI/Action.h @@ -42,6 +42,7 @@ namespace GUI { namespace CommonActions { +NonnullRefPtr make_about_action(const String& app_name, const Icon& app_icon, Window* parent = nullptr); NonnullRefPtr make_open_action(Function, Core::Object* parent = nullptr); NonnullRefPtr make_save_action(Function, Core::Object* parent = nullptr); NonnullRefPtr make_save_as_action(Function, Core::Object* parent = nullptr);