mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:27:44 +00:00
WindowServer: Add IPC call to remove a menu's item
This commit is contained in:
parent
b6eaefa87d
commit
8ede1a6a6f
5 changed files with 20 additions and 0 deletions
|
@ -192,6 +192,18 @@ void ClientConnection::update_menu_item(i32 menu_id, i32 identifier, [[maybe_unu
|
||||||
menu_item->set_checked(checked);
|
menu_item->set_checked(checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClientConnection::remove_menu_item(i32 menu_id, i32 identifier)
|
||||||
|
{
|
||||||
|
auto it = m_menus.find(menu_id);
|
||||||
|
if (it == m_menus.end()) {
|
||||||
|
did_misbehave("RemoveMenuItem: Bad menu ID");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto& menu = *(*it).value;
|
||||||
|
if (!menu.remove_item_with_identifier(identifier))
|
||||||
|
did_misbehave("RemoveMenuItem: Bad menu item identifier");
|
||||||
|
}
|
||||||
|
|
||||||
void ClientConnection::flash_menubar_menu(i32 window_id, i32 menu_id)
|
void ClientConnection::flash_menubar_menu(i32 window_id, i32 menu_id)
|
||||||
{
|
{
|
||||||
auto itw = m_windows.find(window_id);
|
auto itw = m_windows.find(window_id);
|
||||||
|
|
|
@ -97,6 +97,7 @@ private:
|
||||||
virtual void add_menu_item(i32, i32, i32, String const&, bool, bool, bool, bool, String const&, Gfx::ShareableBitmap const&, bool) override;
|
virtual void add_menu_item(i32, i32, i32, String const&, bool, bool, bool, bool, String const&, Gfx::ShareableBitmap const&, bool) override;
|
||||||
virtual void add_menu_separator(i32) override;
|
virtual void add_menu_separator(i32) override;
|
||||||
virtual void update_menu_item(i32, i32, i32, String const&, bool, bool, bool, bool, String const&) override;
|
virtual void update_menu_item(i32, i32, i32, String const&, bool, bool, bool, bool, String const&) override;
|
||||||
|
virtual void remove_menu_item(i32 menu_id, i32 identifier) override;
|
||||||
virtual void flash_menubar_menu(i32, i32) override;
|
virtual void flash_menubar_menu(i32, i32) override;
|
||||||
virtual void create_window(i32, Gfx::IntRect const&, bool, bool, bool, bool, bool,
|
virtual void create_window(i32, Gfx::IntRect const&, bool, bool, bool, bool, bool,
|
||||||
bool, bool, bool, bool, bool, float, float, Gfx::IntSize const&, Gfx::IntSize const&, Gfx::IntSize const&,
|
bool, bool, bool, bool, bool, float, float, Gfx::IntSize const&, Gfx::IntSize const&, Gfx::IntSize const&,
|
||||||
|
|
|
@ -562,6 +562,11 @@ MenuItem* Menu::item_with_identifier(unsigned identifier)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Menu::remove_item_with_identifier(unsigned identifier)
|
||||||
|
{
|
||||||
|
return m_items.remove_first_matching([&](auto& item) { return item->identifier() == identifier; });
|
||||||
|
}
|
||||||
|
|
||||||
int Menu::item_index_at(const Gfx::IntPoint& position)
|
int Menu::item_index_at(const Gfx::IntPoint& position)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
|
@ -97,6 +97,7 @@ public:
|
||||||
const Gfx::Font& font() const;
|
const Gfx::Font& font() const;
|
||||||
|
|
||||||
MenuItem* item_with_identifier(unsigned);
|
MenuItem* item_with_identifier(unsigned);
|
||||||
|
bool remove_item_with_identifier(unsigned);
|
||||||
void redraw();
|
void redraw();
|
||||||
void redraw(MenuItem const&);
|
void redraw(MenuItem const&);
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ endpoint WindowServer
|
||||||
add_menu_separator(i32 menu_id) =|
|
add_menu_separator(i32 menu_id) =|
|
||||||
|
|
||||||
update_menu_item(i32 menu_id, i32 identifier, i32 submenu_id, [UTF8] String text, bool enabled, bool checkable, bool checked, bool is_default, [UTF8] String shortcut) =|
|
update_menu_item(i32 menu_id, i32 identifier, i32 submenu_id, [UTF8] String text, bool enabled, bool checkable, bool checked, bool is_default, [UTF8] String shortcut) =|
|
||||||
|
remove_menu_item(i32 menu_id, i32 identifier) =|
|
||||||
flash_menubar_menu(i32 window_id, i32 menu_id) =|
|
flash_menubar_menu(i32 window_id, i32 menu_id) =|
|
||||||
|
|
||||||
create_window(
|
create_window(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue