mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 03:37:43 +00:00
LibGUI: Store Menu names as new String
This commit is contained in:
parent
f8d6a67294
commit
c4c1df7621
3 changed files with 21 additions and 8 deletions
|
@ -33,11 +33,16 @@ Menu* Menu::from_menu_id(int menu_id)
|
||||||
return (*it).value;
|
return (*it).value;
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu::Menu(DeprecatedString name)
|
Menu::Menu(String name)
|
||||||
: m_name(move(name))
|
: m_name(move(name))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Menu::Menu(DeprecatedString name)
|
||||||
|
: m_name(String::from_deprecated_string(name).release_value_but_fixme_should_propagate_errors())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Menu::~Menu()
|
Menu::~Menu()
|
||||||
{
|
{
|
||||||
unrealize_menu();
|
unrealize_menu();
|
||||||
|
@ -90,10 +95,15 @@ void Menu::update_parent_menu_item()
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::set_name(DeprecatedString name)
|
void Menu::set_name(DeprecatedString name)
|
||||||
|
{
|
||||||
|
set_name(String::from_deprecated_string(name).release_value_but_fixme_should_propagate_errors());
|
||||||
|
}
|
||||||
|
|
||||||
|
void Menu::set_name(String name)
|
||||||
{
|
{
|
||||||
m_name = move(name);
|
m_name = move(name);
|
||||||
if (m_menu_id != -1) {
|
if (m_menu_id != -1) {
|
||||||
ConnectionToWindowServer::the().async_set_menu_name(m_menu_id, m_name);
|
ConnectionToWindowServer::the().async_set_menu_name(m_menu_id, m_name.to_deprecated_string());
|
||||||
update_parent_menu_item();
|
update_parent_menu_item();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -168,7 +178,7 @@ int Menu::realize_menu(RefPtr<Action> default_action)
|
||||||
unrealize_menu();
|
unrealize_menu();
|
||||||
m_menu_id = s_menu_id_allocator.allocate();
|
m_menu_id = s_menu_id_allocator.allocate();
|
||||||
|
|
||||||
ConnectionToWindowServer::the().async_create_menu(m_menu_id, m_name);
|
ConnectionToWindowServer::the().async_create_menu(m_menu_id, m_name.to_deprecated_string());
|
||||||
|
|
||||||
dbgln_if(MENU_DEBUG, "GUI::Menu::realize_menu(): New menu ID: {}", m_menu_id);
|
dbgln_if(MENU_DEBUG, "GUI::Menu::realize_menu(): New menu ID: {}", m_menu_id);
|
||||||
VERIFY(m_menu_id > 0);
|
VERIFY(m_menu_id > 0);
|
||||||
|
@ -242,7 +252,7 @@ void Menu::realize_menu_item(MenuItem& item, int item_id)
|
||||||
auto& submenu = *item.submenu();
|
auto& submenu = *item.submenu();
|
||||||
submenu.realize_if_needed(m_current_default_action.strong_ref());
|
submenu.realize_if_needed(m_current_default_action.strong_ref());
|
||||||
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
|
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
|
||||||
ConnectionToWindowServer::the().async_add_menu_item(m_menu_id, item_id, submenu.menu_id(), submenu.name(), true, true, false, false, false, "", icon, false);
|
ConnectionToWindowServer::the().async_add_menu_item(m_menu_id, item_id, submenu.menu_id(), submenu.name().to_deprecated_string(), true, true, false, false, false, "", icon, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MenuItem::Type::Invalid:
|
case MenuItem::Type::Invalid:
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <AK/String.h>
|
||||||
#include <AK/WeakPtr.h>
|
#include <AK/WeakPtr.h>
|
||||||
#include <LibCore/Object.h>
|
#include <LibCore/Object.h>
|
||||||
#include <LibGUI/Action.h>
|
#include <LibGUI/Action.h>
|
||||||
|
@ -32,8 +33,9 @@ public:
|
||||||
static Menu* from_menu_id(int);
|
static Menu* from_menu_id(int);
|
||||||
int menu_id() const { return m_menu_id; }
|
int menu_id() const { return m_menu_id; }
|
||||||
|
|
||||||
DeprecatedString const& name() const { return m_name; }
|
String const& name() const { return m_name; }
|
||||||
void set_name(DeprecatedString);
|
void set_name(DeprecatedString);
|
||||||
|
void set_name(String);
|
||||||
|
|
||||||
Gfx::Bitmap const* icon() const { return m_icon.ptr(); }
|
Gfx::Bitmap const* icon() const { return m_icon.ptr(); }
|
||||||
void set_icon(Gfx::Bitmap const*);
|
void set_icon(Gfx::Bitmap const*);
|
||||||
|
@ -67,7 +69,8 @@ public:
|
||||||
private:
|
private:
|
||||||
friend class Menubar;
|
friend class Menubar;
|
||||||
|
|
||||||
explicit Menu(DeprecatedString name = "");
|
explicit Menu(String name = {});
|
||||||
|
explicit Menu(DeprecatedString name);
|
||||||
|
|
||||||
int realize_menu(RefPtr<Action> default_action = nullptr);
|
int realize_menu(RefPtr<Action> default_action = nullptr);
|
||||||
void unrealize_menu();
|
void unrealize_menu();
|
||||||
|
@ -79,7 +82,7 @@ private:
|
||||||
void update_parent_menu_item();
|
void update_parent_menu_item();
|
||||||
|
|
||||||
int m_menu_id { -1 };
|
int m_menu_id { -1 };
|
||||||
DeprecatedString m_name;
|
String m_name;
|
||||||
RefPtr<Gfx::Bitmap const> m_icon;
|
RefPtr<Gfx::Bitmap const> m_icon;
|
||||||
Vector<NonnullOwnPtr<MenuItem>> m_items;
|
Vector<NonnullOwnPtr<MenuItem>> m_items;
|
||||||
WeakPtr<Action> m_current_default_action;
|
WeakPtr<Action> m_current_default_action;
|
||||||
|
|
|
@ -91,7 +91,7 @@ void MenuItem::update_window_server()
|
||||||
case MenuItem::Type::Submenu: {
|
case MenuItem::Type::Submenu: {
|
||||||
auto& submenu = *m_submenu;
|
auto& submenu = *m_submenu;
|
||||||
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
|
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
|
||||||
ConnectionToWindowServer::the().async_update_menu_item(m_menu_id, m_identifier, submenu.menu_id(), submenu.name(), m_enabled, m_visible, false, false, m_default, "", icon);
|
ConnectionToWindowServer::the().async_update_menu_item(m_menu_id, m_identifier, submenu.menu_id(), submenu.name().to_deprecated_string(), m_enabled, m_visible, false, false, m_default, "", icon);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue