#include "Waiter.h"
#include "ISearchable.h"
#include "IDevice.h"
+#include "IObject.h"
#include "Accessible.h"
#include "Point2D.h"
#include "Size2D.h"
void updateValue() override;
/**
+ * @copydoc UiObject::updateToolkitName()
+ */
+ void updateToolkitName() override;
+
+ /**
* @copydoc UiObject::setFocus()
*/
bool setFocus() override;
/**
* @brief TBD
+ * @since_tizen 6.5
+ */
+ void updateToolkitName() override;
+
+ /**
+ * @brief TBD
* @since_tizen 7.0
*/
bool setFocus() override;
std::string getXPath() const;
/**
+ * @brief Gets object's Toolkit name.
+ *
+ * @return string
+ *
+ * @since_tizen 6.5
+ */
+ std::string getToolkitName() const;
+
+ /**
* @brief Sets object's text.
*
* @param[in] text string
void updateValue() const;
/**
+ * @brief Updates object's toolkit name information from atspi server.
+ *
+ * @since_tizen 6.5
+ */
+ void updateToolkitName() const;
+
+ /**
* @brief Sets focus to object.
*
* @since_tizen 7.0
UiSelector *text(std::string text);
/**
+ * @brief Sets the search criteria to match the object's text.
+ *
+ * @param[in] text object text
+ *
+ * @return UiSelector class instance
+ *
+ * @since_tizen 6.5
+ */
+ UiSelector *ocrText(std::string text);
+
+ /**
* @brief Sets the search criteria to match the object's text has given text.
*
* @param[in] text object text
std::string mStyle;
std::string mTextPartialMatch;
std::string mXPath;
+ std::string mOcrText;
bool mMatchId;
bool mMatchAutomationId;
bool mMatchStyle;
bool mMatchTextPartialMatch;
bool mMatchXPath;
+ bool mMatchOcrText;
bool mMatchChecked;
bool mMatchCheckable;
return mXPath;
}
+std::string AccessibleNode::getToolkitName() const
+{
+ return mToolkitName;
+}
+
Rect<int> AccessibleNode::getScreenBoundingBox() const
{
return mScreenBoundingBox;
}
}
+void AtspiAccessibleNode::updateToolkitName()
+{
+ AtspiWrapper::Atspi_accessible_clear_cache(mNode);
+
+ gchar *toolkitName = AtspiWrapper::Atspi_accessible_get_toolkit_name(mNode, NULL);
+ if (toolkitName) {
+ mToolkitName = toolkitName;
+ g_free(toolkitName);
+ }
+}
+
void AtspiAccessibleNode::updateApplication()
{
AtspiWrapper::Atspi_accessible_clear_cache(mNode);
g_free(name);
}
+ gchar *toolkitName = AtspiWrapper::Atspi_accessible_get_toolkit_name(mNode, NULL);
+ if (toolkitName) {
+ mToolkitName = toolkitName;
+ g_free(toolkitName);
+ }
+
AtspiAccessible *app = AtspiWrapper::Atspi_accessible_get_application(mNode, NULL);
if (app) {
gchar *pkg = AtspiWrapper::Atspi_accessible_get_name(app, NULL);
{
std::unique_lock<std::recursive_mutex> lock(mMutex);
return atspi_value_get_minimum_increment(iface, error);
-}
\ No newline at end of file
+}
+
+gchar *AtspiWrapper::Atspi_accessible_get_toolkit_name(AtspiAccessible *node, GError **error)
+{
+ std::unique_lock<std::recursive_mutex> lock(mMutex);
+ return atspi_accessible_get_toolkit_name(node, error);
+}
{
}
+void MockAccessibleNode::updateToolkitName()
+{
+}
+
bool MockAccessibleNode::setFocus()
{
return false;
return getAccessibleNode()->getOcrText();
}
+std::string UiObject::getToolkitName() const
+{
+ getAccessibleNode()->updateToolkitName();
+ return getAccessibleNode()->getToolkitName();
+}
+
bool UiObject::setText(std::string text)
{
return getAccessibleNode()->setValue(text);
mNode->updateValue();
}
+void UiObject::updateToolkitName() const
+{
+ mNode->updateToolkitName();
+}
+
bool UiObject::setFocus() const
{
return mNode->setFocus();
::grpc::Status setFocus(::grpc::ServerContext *context,
const ::aurum::ReqSetFocus *request,
::aurum::RspSetFocus *response) override;
+ ::grpc::Status getActiveAppToolkitName(::grpc::ServerContext *context,
+ const ::aurum::ReqGetActiveAppToolkitName *request,
+ ::aurum::RspGetActiveAppToolkitName *response) override;
};
#endif
#include "Commands/GetScreenSizeCommand.h"
#include "Commands/ActionAndWaitEventCommand.h"
#include "Commands/SetFocusCommand.h"
+#include "Commands/GetActiveAppToolkitNameCommand.h"
--- /dev/null
+/*
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <gio/gio.h>
+#include <grpcpp/grpcpp.h>
+#include "Commands/Command.h"
+#include "ObjectMapper.h"
+#include <aurum.grpc.pb.h>
+#include "config.h"
+
+class GetActiveAppToolkitNameCommand : public Command {
+private:
+ const ::aurum::ReqGetActiveAppToolkitName *mRequest;
+ ::aurum::RspGetActiveAppToolkitName *mResponse;
+
+public:
+ GetActiveAppToolkitNameCommand(const ::aurum::ReqGetActiveAppToolkitName *request,
+ ::aurum::RspGetActiveAppToolkitName *response);
+ ::grpc::Status execute() override;
+};
files('src/Commands/GetScreenSizeCommand.cc'),
files('src/Commands/ActionAndWaitEventCommand.cc'),
files('src/Commands/SetFocusCommand.cc'),
+ files('src/Commands/GetActiveAppToolkitNameCommand.cc'),
]
bootstrap_svr_dep = [
std::unique_ptr<SetFocusCommand> cmd = std::make_unique<SetFocusCommand>(request, response);
return execute(cmd.get(), true);
}
+
+::grpc::Status aurumServiceImpl::getActiveAppToolkitName(::grpc::ServerContext *context,
+ const ::aurum::ReqGetActiveAppToolkitName *request,
+ ::aurum::RspGetActiveAppToolkitName *response)
+{
+ std::unique_ptr<GetActiveAppToolkitNameCommand> cmd = std::make_unique<GetActiveAppToolkitNameCommand>(request, response);
+ return execute(cmd.get(), true);
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "bootstrap.h"
+#include "GetActiveAppToolkitNameCommand.h"
+#include "UiDevice.h"
+
+GetActiveAppToolkitNameCommand::GetActiveAppToolkitNameCommand(const ::aurum::ReqGetActiveAppToolkitName *request,
+ ::aurum::RspGetActiveAppToolkitName *response)
+ : mRequest{request}, mResponse{response}
+{
+}
+
+::grpc::Status GetActiveAppToolkitNameCommand::execute()
+{
+ LOGI("GetActiveAppToolkitName --------------- ");
+
+ return grpc::Status::OK;
+}
rpc actionAndWaitEvent(ReqActionAndWaitEvent) returns (RspActionAndWaitEvent) {}
rpc setFocus(ReqSetFocus) returns (RspSetFocus) {}
rpc findElements(ReqFindElements) returns (RspFindElements) {}
+ rpc getActiveAppToolkitName(ReqGetActiveAppToolkitName) returns (RspGetActiveAppToolkitName) {}
}
// ------------------------------------ //
string automationId = 9;
string package = 10;
string role = 11;
+ string toolkit = 12;
bool isChecked = 12;
bool isCheckable = 13;
message RspSetFocus {
RspStatus status = 1;
}
+
+message ReqGetActiveAppToolkitName {
+}
+
+message RspGetActiveAppToolkitName {
+ RspStatus status = 1;
+ string toolkitName = 2;
+}
+