Amtk notes
==========

TODO list
---------

- Support detailed GAction names in factory functions:
	- In AmtkActionInfo, document that the "action name" can be a detailed
	  action name, with a reference to g_action_parse_detailed_name().
	- In AmtkFactory, call gtk_actionable_set_detailed_action_name() and
	  adapt docs.
	- Adapt docs and code in other classes if needed (but I think it's only
	  in AmtkActionInfo and AmtkFactory).

- Implement more factory functions.

Other possible things to do
---------------------------

- When calling amtk_menu_item_set_icon_name(), do not have a large margin on
  the left. GtkUIManager was able to put the icon without the large margin (in
  the same column as the check or radio drawing). Maybe only GtkImageMenuItem
  is able to do that, but is deprecated (and removed in GTK 4).

- Add convenient API to replace a placeholder by a list of menu/toolbar items?
  And be able to update the placeholder content when the application runs (so
  mark items to recognize them later, to know that they are part of the
  placeholder). Or create a Placeholder object that contains the list of items,
  so when the Placeholder object is modified, the menu/toolbar is updated
  accordingly.

- Add one more sanity check: check that a GAction is *implemented* when (or
  after) creating a menu or toolbar item for that action? Because currently
  when the GAction is not implemented, the menu/toolbar item is just
  insensitive, there is no warning.

- An AmtkActionInfo could have a field for the default AmtkFactoryFlags (or to
  force some flags). For example setting AMTK_FACTORY_IGNORE_ACCELS_FOR_APP for
  the tepl-cut/copy/paste/select-all actions.

- To prevent apps from modifying ActionInfos of libs, maybe seal an ActionInfo
  when it is added to a store, except for mark_as_used(). But it's maybe a bit
  too paranoid. Or instead of sealing, have a builder, see:
  https://blogs.gnome.org/otte/2018/02/03/builders/

- ActionInfo and ActionInfoEntry could have one more field for an identifier,
  because when using a detailed GAction name the name is less "greppable" and
  less easy to understand. The detailed GAction name would be the equivalent of
  the callback in a GtkActionEntry.
