1 #ifndef DALI_ADAPTOR_ATSPI_APPLICATION_H
2 #define DALI_ADAPTOR_ATSPI_APPLICATION_H
5 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
24 #include <dali/devel-api/atspi-interfaces/accessible.h>
26 namespace Dali::Accessibility
29 * @brief An interface identifying the root object
30 * associated with a running application.
32 * @note Provides global properties describing
33 * application's runtime environment.
35 class DALI_ADAPTOR_API Application : public virtual Accessible
39 * @brief Gets name of graphic user interface framework used by an application.
41 * @return String with name
43 virtual std::string GetToolkitName() const = 0;
46 * @brief Gets version of graphic user interface framework used by an application.
48 * @return String with version
50 virtual std::string GetVersion() const = 0;
53 * @brief Downcasts an Accessible to an Application.
55 * @param obj The Accessible
56 * @return An Application or null
58 * @see Dali::Accessibility::Accessible::DownCast()
60 static inline Application* DownCast(Accessible* obj);
66 struct AtspiInterfaceTypeHelper<AtspiInterface::APPLICATION>
68 using Type = Application;
70 } // namespace Internal
72 inline Application* Application::DownCast(Accessible* obj)
74 return Accessible::DownCast<AtspiInterface::APPLICATION>(obj);
77 } // namespace Dali::Accessibility
79 #endif // DALI_ADAPTOR_ATSPI_APPLICATION_H