Convert PidginStatusBox to a GtkMenuButton

Review Request #2386 — Created April 4, 2023 and submitted — Latest diff uploaded

Information

pidgin/pidgin
default

Reviewers

This moves to a menu system to populate the list of statuses, and the new PidginStatusDisplay to show them. I tried a GtkDropDown previously, but that was unable to show the separators that we previously had. Consequently, it uses actions a bit more then before.

However, since menus don't support icons+text at the same time, and doesn't have a factory property, we do need to manually create custom widgets a bit, but it's mostly only a button + the PidginStatusDisplay.

The main display is now centred, but there seems to be nothing we can do about that, as the box with that alignment is internal to the GtkMenuButton. If we don't want that, we could switch to managing a GtkToggleButton and GtkPopoverMenu ourselves.

Opened status box and confirmed that all primitives and saved statuses were there as expected.
Modified a status, and confirmed that the menu updated to match.
Added/deleted statuses from the manager and confirmed they menu updated to match.
Chose the New Status/Saved Statuses menu items and confirmed they opened the correct dialogs.
Picked a bunch of statuses from the menu items and confirmed the main display updated, and some updates were sent out to protocols (e.g. Demo disconnecting when offline, etc.)

Commits

Files