}
}
-static void slot_process_key_event_with_imengine(const scim::HelperAgent *agent, scim::KeyEvent &key, scim::uint32 &ret) {
+static void slot_process_key_event_with_imengine(const scim::HelperAgent *agent, scim::KeyEvent &key, scim::uint32 serial) {
CSCLCoreImpl *impl = CSCLCoreImpl::get_instance();
if (impl) {
ISCLCoreEventCallback *callback = impl->get_core_event_callback();
if (callback) {
- callback->on_process_key_event_with_imengine(key, &ret);
+ callback->on_process_key_event_with_imengine(key, serial);
}
}
}
callback->on_update_associate_table_page_size(0, NULL, 0);
callback->on_process_key_event(key, NULL);
callback->on_process_key_event_with_keycode(key, NULL, 0);
- callback->on_process_key_event_with_imengine(key, NULL);
+ callback->on_process_key_event_with_imengine(key, 0);
callback->on_set_display_language(NULL);
callback->on_set_rotation_degree(0);
}
}
+void CSCLConnectionISF::send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success)
+{
+ if (m_initialized) {
+ m_helper_agent.send_key_event_processing_result(key, serial, is_success);
+ }
+}
+
extern "C"
{
EXAPI void scim_module_init(void) {
void contract_candidate(void);
void set_candidate_style(scim::ISF_CANDIDATE_PORTRAIT_LINE_T portrait_line, scim::ISF_CANDIDATE_MODE_T mode);
void set_engine_loader_flag(sclboolean flag);
+ void send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success);
private:
sclboolean m_initialized;
if (m_impl) {
m_impl->set_engine_loader_flag(flag);
}
+}
+
+void CSCLConnection::send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success)
+{
+ if (m_impl) {
+ m_impl->send_key_event_processing_result(key, serial, is_success);
+ }
}
\ No newline at end of file
virtual void contract_candidate(void);
virtual void set_candidate_style(scim::ISF_CANDIDATE_PORTRAIT_LINE_T portrait_line, scim::ISF_CANDIDATE_MODE_T mode);
virtual void set_engine_loader_flag(sclboolean flag);
+ virtual void send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success);
protected:
std::string m_backend_identifier;
m_impl->set_engine_loader_flag(flag);
}
}
+
+void CSCLCore::send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success)
+{
+ if (m_impl) {
+ m_impl->send_key_event_processing_result(key, serial, is_success);
+ }
+}
\ No newline at end of file
*/
void set_engine_loader_flag(sclboolean flag);
+ /**
+ * @brief Request to send key event processing result
+ */
+ void send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success);
+
private:
CSCLCoreImpl *m_impl;
virtual void on_update_associate_table_page_size(sclint ic, const sclchar *uuid, sclint page_size) {}
virtual void on_process_key_event(scim::KeyEvent &key, sclu32 *ret) {}
virtual void on_process_key_event_with_keycode(scim::KeyEvent &key, sclu32 *ret, sclu32 keycode) {}
- virtual void on_process_key_event_with_imengine(scim::KeyEvent &key, sclu32 *ret) {}
+ virtual void on_process_key_event_with_imengine(scim::KeyEvent &key, sclu32 serial) {}
virtual void on_set_display_language(const sclchar *language) {}
virtual void on_set_rotation_degree(sclint degree) {}
{
m_connection.set_engine_loader_flag(flag);
}
+
+void CSCLCoreImpl::send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success)
+{
+ m_connection.send_key_event_processing_result(key, serial, is_success);
+}
\ No newline at end of file
void contract_candidate(void);
void set_candidate_style(scim::ISF_CANDIDATE_PORTRAIT_LINE_T portrait_line, scim::ISF_CANDIDATE_MODE_T mode);
void set_engine_loader_flag(sclboolean flag);
+ void send_key_event_processing_result(scim::KeyEvent &key, sclu32 serial, sclboolean is_success);
private:
ISCLCoreEventCallback *m_event_callback;