Some ATSPI interface should become internal and not be exposed to user. Overall cleanup would be necessary.
- Mentioned In
- D5213: elm: add prefixes to Efl.Access.Action to avoid clashes
T5301: Make EFL easier to use by improving its interface
- Mentioned Here
- D5365: elm: mark access interfaces as beta
D3565: eina: add all test cases for eina_vector2.
D5213: elm: add prefixes to Efl.Access.Action to avoid clashes
D5167: elm: rename Elm.Interface.Atspi.Text => Efl.Access.Text
D5165: elm: rename Elm.Interface.Atspi.Selection => Efl.Access.Selection
D5166: elm: rename Elm.Interface.Atspi_Action => Efl.Access.Action
D5164: elm: rename Elm.Interface.Atspi.Component => Efl.Access.Component
D5163: elm: rename Elm.Interface.Atspi.Image => Efl.Access.Image
D5162: elm: rename Elm.Interface.Atspi.Window => Efl.Access.Window
D5161: elm: rename Elm.Interface.Atspi.Value => Efl.Access.Value
The following would be cared.
Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent)
void elm_access_object_unregister(Evas_Object *obj)
Evas_Object *elm_access_object_get(const Evas_Object *obj)
Evas_Object * elm_object_part_access_object_get(const Evas_Object *obj, const char *part)
void elm_atspi_accessible_name_set(Elm_Interface_Atspi_Accessible *obj, char *name)
char *elm_atspi_accessible_name_get(const Elm_Interface_Atspi_Accessible *obj)
void elm_atspi_accessible_description_set(Elm_Interface_Atspi_Accessible *obj, const char *description)
const char *elm_atspi_accessible_description_get(const Elm_Interface_Atspi_Accessible *obj)
void elm_atspi_accessible_translation_domain_set(Elm_Interface_Atspi_Accessible *obj, const char *domain)
const char *elm_atspi_accessible_translation_domain_get(const Elm_Interface_Atspi_Accessible *obj)
Eina_Bool elm_atspi_accessible_relationship_append(Elm_Interface_Atspi_Accessible *obj, Elm_Atspi_Relation_Type type, const Elm_Interface_Atspi_Accessible *relation_object)
void elm_atspi_accessible_relationship_remove(Elm_Interface_Atspi_Accessible *obj, Elm_Atspi_Relation_Type type, const Elm_Interface_Atspi_Accessible *relation_object)
The following would be minimal set(?).
As said somewhere else:
Access (atspi) is a major blocker for C++ usage as many API names clash. Could you dress a list of APIs that need to be accessible by applications, or potentially overridden by widgets?
If all APIs need to be potentially overridden, then please make a patch to prefix the names with "access_" :)
See also D5213
A couple of things:
- What about renaming elm_interface_atspi_accessible and elm_interface_atspi_widget_action?
- Could you just add @beta tags first to all the APIs that aren't public (i.e. not in the list proposed by @kimcinoo) ? I believe that should be enough to unlock a great part of C++ APIs.
- I'm not sure how to prefix the APIs :) it sounds like they should all be in the "access" namespace but I understand that the names in C would then not make any sense... hmm :(
- Can you rename Elm.Interface.Atspi_Widget_Action?
- Efl.Access.Component -> too many non-beta non-prefixed APIs that conflict with base classes (eg. "size" or "position").
- Many non beta APIs in other interfaces & mixins. I suspect many name clashes:
@jpeg elm_atspi_bridge should not be renamed in my opinion, it is bridge between efl_access_* and at-spi in elementary, so name sounds sensible. What can be done is to de-EOBJECTify bridge, however I'm not sure what current politics are? Can eo be used internally?
I will rename elm_atspi_app_object
I think you're the boss.
Everything right now is marked as beta, except for:
But the last two are actually protected behind an extra EFL_BETA_API_SUPPORT. There are some C API's inside efl_access.h as well, also behind EFL_BETA_API_SUPPORT.
In other words, nothing except Efl.Ui.Widget.access_info is stable, assuming we release the EO API.