1 /** @file isf_panel_agent_base.cpp
2 * @brief Implementation of class PanelAgentBase.
5 /* ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable. */
8 * Smart Common Input Method
10 * Copyright (c) 2005 James Su <suzhe@tsinghua.org.cn>
11 * Copyright (c) 2012-2016 Samsung Electronics Co., Ltd.
14 * This library is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 2 of the License, or (at your option) any later version.
19 * This library is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU Lesser General Public License for more details.
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with this program; if not, write to the
26 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
27 * Boston, MA 02111-1307 USA
31 #define Uses_SCIM_TRANSACTION
32 #define Uses_SCIM_TRANS_COMMANDS
33 #define Uses_SCIM_PANEL_AGENT
34 #define Uses_SCIM_HELPER
35 #define Uses_SCIM_SOCKET
36 #define Uses_SCIM_EVENT
37 #define Uses_SCIM_CONFIG
38 #define Uses_SCIM_CONFIG_MODULE
39 #define Uses_SCIM_CONFIG_PATH
40 #define Uses_SCIM_UTILITY
43 #include <sys/types.h>
44 #include <sys/times.h>
47 #include "scim_private.h"
49 #include "scim_stl_map.h"
50 #include "isf_debug.h"
55 #define LOG_TAG "ISF_PANEL_AGENT_BASE"
62 PanelAgentBase::PanelAgentBase (const String& name)
68 PanelAgentBase::~PanelAgentBase ()
72 bool PanelAgentBase::initialize (InfoManager* info_manager, const String& display, bool resident)
74 LOGW ("not implemented for %s", m_name.c_str ());
78 bool PanelAgentBase::valid (void) const
80 LOGW ("not implemented for %s", m_name.c_str ());
84 void PanelAgentBase::stop (void)
86 LOGW ("not implemented for %s", m_name.c_str ());
90 void PanelAgentBase::update_panel_event (int client, uint32 context, int cmd, uint32 nType, uint32 nValue)
92 LOGW ("not implemented for %s", m_name.c_str ());
95 void PanelAgentBase::reset_keyboard_ise (int client, uint32 context)
97 LOGW ("not implemented for %s", m_name.c_str ());
100 void PanelAgentBase::update_keyboard_ise_list (int client, uint32 context)
102 LOGW ("not implemented for %s", m_name.c_str ());
105 void PanelAgentBase::change_factory (int client, uint32 context, const String& uuid)
107 LOGW ("not implemented for %s", m_name.c_str ());
110 void PanelAgentBase::helper_candidate_show (int client, uint32 context, const String& uuid)
112 LOGW ("not implemented for %s", m_name.c_str ());
115 void PanelAgentBase::helper_candidate_hide (int client, uint32 context, const String& uuid)
117 LOGW ("not implemented for %s", m_name.c_str ());
120 /* if the uuid is empty, it must send to panelclient otherwise HelperAgent
122 void PanelAgentBase::candidate_more_window_show (int client, uint32 context)
124 LOGW ("not implemented for %s", m_name.c_str ());
126 /* if the uuid is empty, it must send to panelclient otherwise HelperAgent
128 void PanelAgentBase::candidate_more_window_hide (int client, uint32 context)
130 LOGW ("not implemented for %s", m_name.c_str ());
133 void PanelAgentBase::update_helper_lookup_table (int client, uint32 context, const String& uuid, const LookupTable& table)
135 LOGW ("not implemented for %s", m_name.c_str ());
140 //SCIM_TRANS_CMD_SELECT_AUX
141 //this function called by two places, will send message to help(with uuid) or app
142 void PanelAgentBase::select_aux (int client, uint32 context, uint32 item)
144 LOGW ("not implemented for %s", m_name.c_str ());
146 //SCIM_TRANS_CMD_SELECT_CANDIDATE
147 //this function called by two places, will send message to help(with uuid) or app
148 void PanelAgentBase::select_candidate (int client, uint32 context, uint32 item)
150 LOGW ("not implemented for %s", m_name.c_str ());
153 void PanelAgentBase::lookup_table_page_up (int client, uint32 context)
155 LOGW ("not implemented for %s", m_name.c_str ());
158 void PanelAgentBase::lookup_table_page_down (int client, uint32 context)
160 LOGW ("not implemented for %s", m_name.c_str ());
163 void PanelAgentBase::update_lookup_table_page_size (int client, uint32 context, uint32 size)
165 LOGW ("not implemented for %s", m_name.c_str ());
168 void PanelAgentBase::update_candidate_item_layout (int client, uint32 context, const std::vector<uint32>& row_items)
170 LOGW ("not implemented for %s", m_name.c_str ());
173 void PanelAgentBase::select_associate (int client, uint32 context, uint32 item)
175 LOGW ("not implemented for %s", m_name.c_str ());
178 void PanelAgentBase::associate_table_page_up (int client, uint32 context)
180 LOGW ("not implemented for %s", m_name.c_str ());
183 void PanelAgentBase::associate_table_page_down (int client, uint32 context)
185 LOGW ("not implemented for %s", m_name.c_str ());
188 void PanelAgentBase::update_associate_table_page_size (int client, uint32 context, uint32 size)
190 LOGW ("not implemented for %s", m_name.c_str ());
193 void PanelAgentBase::update_displayed_candidate_number (int client, uint32 context, uint32 size)
195 LOGW ("not implemented for %s", m_name.c_str ());
198 void PanelAgentBase::send_longpress_event (int client, uint32 context, uint32 index)
200 LOGW ("not implemented for %s", m_name.c_str ());
203 void PanelAgentBase::trigger_property (int client, uint32 context, const String& property)
205 LOGW ("not implemented for %s", m_name.c_str ());
208 void PanelAgentBase::socket_start_helper (int client, uint32 context, const String& ic_uuid)
210 LOGW ("not implemented for %s", m_name.c_str ());
214 void PanelAgentBase::exit (int client, uint32 context)
216 LOGW ("not implemented for %s", m_name.c_str ());
219 void PanelAgentBase::focus_out_helper (int client, uint32 context, const String& uuid)
221 LOGW ("not implemented for %s", m_name.c_str ());
224 void PanelAgentBase::focus_in_helper (int client, uint32 context, const String& uuid)
226 LOGW ("not implemented for %s", m_name.c_str ());
229 void PanelAgentBase::show_helper (int client, uint32 context, const String& uuid, char* data, size_t& len)
231 LOGW ("not implemented for %s", m_name.c_str ());
234 void PanelAgentBase::hide_helper (int client, uint32 context, const String& uuid)
236 LOGW ("not implemented for %s", m_name.c_str ());
239 void PanelAgentBase::set_helper_mode (int client, uint32 context, const String& uuid, uint32& mode)
241 LOGW ("not implemented for %s", m_name.c_str ());
244 void PanelAgentBase::set_helper_language (int client, uint32 context, const String& uuid, uint32& language)
246 LOGW ("not implemented for %s", m_name.c_str ());
249 void PanelAgentBase::set_helper_imdata (int client, uint32 context, const String& uuid, const char* imdata, size_t& len)
251 LOGW ("not implemented for %s", m_name.c_str ());
254 void PanelAgentBase::set_helper_return_key_type (int client, uint32 context, const String& uuid, uint32 type)
256 LOGW ("not implemented for %s", m_name.c_str ());
259 void PanelAgentBase::get_helper_return_key_type (int client, uint32 context, const String& uuid, _OUT_ uint32& type)
261 LOGW ("not implemented for %s", m_name.c_str ());
264 void PanelAgentBase::set_helper_return_key_disable (int client, uint32 context, const String& uuid, uint32 disabled)
266 LOGW ("not implemented for %s", m_name.c_str ());
269 void PanelAgentBase::get_helper_return_key_disable (int client, uint32 context, const String& uuid, _OUT_ uint32& disabled)
271 LOGW ("not implemented for %s", m_name.c_str ());
274 void PanelAgentBase::set_helper_layout (int client, uint32 context, const String& uuid, uint32& layout)
276 LOGW ("not implemented for %s", m_name.c_str ());
279 void PanelAgentBase::set_helper_input_mode (int client, uint32 context, const String& uuid, uint32& mode)
281 LOGW ("not implemented for %s", m_name.c_str ());
284 void PanelAgentBase::set_helper_input_hint (int client, uint32 context, const String& uuid, uint32& hint)
286 LOGW ("not implemented for %s", m_name.c_str ());
289 void PanelAgentBase::set_helper_bidi_direction (int client, uint32 context, const String& uuid, uint32& direction)
291 LOGW ("not implemented for %s", m_name.c_str ());
294 void PanelAgentBase::set_helper_caps_mode (int client, uint32 context, const String& uuid, uint32& mode)
296 LOGW ("not implemented for %s", m_name.c_str ());
299 void PanelAgentBase::show_helper_option_window (int client, uint32 context, const String& uuid)
301 LOGW ("not implemented for %s", m_name.c_str ());
304 void PanelAgentBase::resume_helper_option_window (int client, uint32 context, const String& uuid)
306 LOGW ("not implemented for %s", m_name.c_str ());
309 void PanelAgentBase::set_helper_keyboard_mode (int client, uint32 context, const String& uuid, uint32& mode)
311 LOGW ("not implemented for %s", m_name.c_str ());
314 bool PanelAgentBase::process_key_event (int client, uint32 context, const String& uuid, KeyEvent& key, uint32 serial)
316 LOGW ("not implemented for %s", m_name.c_str ());
320 bool PanelAgentBase::get_helper_geometry (int client, uint32 context, String& uuid, _OUT_ struct rectinfo& info)
322 LOGW ("not implemented for %s", m_name.c_str ());
326 void PanelAgentBase::get_helper_imdata (int client, uint32 context, String& uuid, _OUT_ char** imdata, _OUT_ size_t& len)
328 LOGW ("not implemented for %s", m_name.c_str ());
331 void PanelAgentBase::get_helper_layout (int client, uint32 context, String& uuid, uint32& layout)
333 LOGW ("not implemented for %s", m_name.c_str ());
337 void PanelAgentBase::get_ise_language_locale (int client, uint32 context, String& uuid, _OUT_ char** data, _OUT_ size_t& len)
339 LOGW ("not implemented for %s", m_name.c_str ());
342 void PanelAgentBase::check_option_window (int client, uint32 context, String& uuid, _OUT_ uint32& avail)
344 LOGW ("not implemented for %s", m_name.c_str ());
347 void PanelAgentBase::reset_ise_option (int client, uint32 context)
349 LOGW ("not implemented for %s", m_name.c_str ());
352 void PanelAgentBase::reset_helper_context (int client, uint32 context, const String& uuid)
354 LOGW ("not implemented for %s", m_name.c_str ());
357 void PanelAgentBase::reload_config (int client)
359 LOGW ("not implemented for %s", m_name.c_str ());
362 void PanelAgentBase::socket_update_surrounding_text (int client, uint32 context, const String& uuid, String& text, uint32 cursor)
364 LOGW ("not implemented for %s", m_name.c_str ());
367 void PanelAgentBase::socket_remoteinput_focus_in (int client)
369 LOGW ("not implemented for %s", m_name.c_str ());
372 void PanelAgentBase::socket_remoteinput_focus_out (int client)
374 LOGW ("not implemented for %s", m_name.c_str ());
377 void PanelAgentBase::socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
379 LOGW ("not implemented for %s", m_name.c_str ());
382 void PanelAgentBase::socket_remoteinput_surrounding_text (int client, String& text, uint32 cursor)
384 LOGW ("not implemented for %s", m_name.c_str ());
387 void PanelAgentBase::socket_remoteinput_input_resource (int client, uint32 input_resource)
389 LOGW ("not implemented for %s", m_name.c_str ());
392 void PanelAgentBase::socket_update_selection (int client, uint32 context, String& uuid, String text)
394 LOGW ("not implemented for %s", m_name.c_str ());
397 void PanelAgentBase::socket_get_keyboard_ise_list (int client, uint32 context, const String& uuid, std::vector<String>& list)
399 LOGW ("not implemented for %s", m_name.c_str ());
402 void PanelAgentBase::socket_get_candidate_ui (int client, uint32 context, const String& uuid, int style, int mode)
404 LOGW ("not implemented for %s", m_name.c_str ());
407 void PanelAgentBase::socket_get_candidate_geometry (int client, uint32 context, const String& uuid, struct rectinfo& info)
409 LOGW ("not implemented for %s", m_name.c_str ());
411 void PanelAgentBase::socket_get_keyboard_ise (int client, uint32 context, const String& uuid, String& ise_name, String& ise_uuid)
413 LOGW ("not implemented for %s", m_name.c_str ());
416 void PanelAgentBase::helper_detach_input_context (int client, uint32 context, const String& ic_uuid)
418 LOGW ("not implemented for %s", m_name.c_str ());
421 void PanelAgentBase::helper_process_imengine_event (int client, uint32 context, const String& ic_uuid, const Transaction& nest_transaction)
423 LOGW ("not implemented for %s", m_name.c_str ());
426 void PanelAgentBase::process_helper_event (int client, uint32 context, String target_uuid, String active_uuid, Transaction& nest_trans)
428 LOGW ("not implemented for %s", m_name.c_str ());
431 void PanelAgentBase::socket_helper_key_event (int client, uint32 context, int cmd , KeyEvent& key)
433 LOGW ("not implemented for %s", m_name.c_str ());
436 //SCIM_TRANS_CMD_GET_SURROUNDING_TEXT
437 //socket_helper_get_surrounding_text
438 void PanelAgentBase::socket_helper_get_surrounding_text (int client, uint32 context, uint32 maxlen_before, uint32 maxlen_after)
440 LOGW ("not implemented for %s", m_name.c_str ());
442 //SCIM_TRANS_CMD_DELETE_SURROUNDING_TEXT
443 //socket_helper_delete_surrounding_text
444 void PanelAgentBase::socket_helper_delete_surrounding_text (int client, uint32 context, uint32 offset, uint32 len)
446 LOGD ("not implemented ");
448 //SCIM_TRANS_CMD_GET_SELECTION
449 void PanelAgentBase::socket_helper_get_selection (int client, uint32 context)
451 LOGW ("not implemented for %s", m_name.c_str ());
453 //SCIM_TRANS_CMD_SET_SELECTION
454 void PanelAgentBase::socket_helper_set_selection (int client, uint32 context, uint32 start, uint32 end)
456 LOGW ("not implemented for %s", m_name.c_str ());
459 //socket_helper_update_input_context
460 //ISM_TRANS_CMD_UPDATE_ISE_INPUT_CONTEXT
461 void PanelAgentBase::update_ise_input_context (int client, uint32 context, uint32 type, uint32 value)
463 LOGW ("not implemented for %s", m_name.c_str ());
466 //socket_helper_send_private_command
467 //SCIM_TRANS_CMD_SEND_PRIVATE_COMMAND
468 void PanelAgentBase::send_private_command (int client, uint32 context, const String& command)
470 LOGW ("not implemented for %s", m_name.c_str ());
473 //SCIM_TRANS_CMD_UPDATE_SPOT_LOCATION
474 void PanelAgentBase::helper_all_update_spot_location (int client, uint32 context, String uuid, int x, int y)
476 LOGW ("not implemented for %s", m_name.c_str ());
478 //ISM_TRANS_CMD_UPDATE_CURSOR_POSITION
479 void PanelAgentBase::helper_all_update_cursor_position (int client, uint32 context, String uuid, int cursor_pos)
481 LOGW ("not implemented for %s", m_name.c_str ());
483 //SCIM_TRANS_CMD_UPDATE_SCREEN
484 void PanelAgentBase::helper_all_update_screen (int client, uint32 context, String uuid, int screen)
486 LOGW ("not implemented for %s", m_name.c_str ());
489 //socket_helper_commit_string
490 //SCIM_TRANS_CMD_COMMIT_STRING
491 void PanelAgentBase::commit_string (int client, uint32 context,const WideString& wstr)
493 LOGW ("not implemented for %s", m_name.c_str ());
495 //socket_helper_show_preedit_string
496 //SCIM_TRANS_CMD_SHOW_PREEDIT_STRING
497 void PanelAgentBase::show_preedit_string (int client, uint32 context)
499 LOGW ("not implemented for %s", m_name.c_str ());
501 //socket_helper_hide_preedit_string
502 //SCIM_TRANS_CMD_HIDE_PREEDIT_STRING
503 void PanelAgentBase::hide_preedit_string (int client, uint32 context)
505 LOGW ("not implemented for %s", m_name.c_str ());
507 //socket_helper_update_preedit_string
508 //SCIM_TRANS_CMD_UPDATE_PREEDIT_STRING
509 void PanelAgentBase::update_preedit_string (int client, uint32 context, WideString preedit, WideString commit, AttributeList& attrs, uint32 caret)
511 LOGW ("not implemented for %s", m_name.c_str ());
513 //socket_helper_update_preedit_caret
514 //SCIM_TRANS_CMD_UPDATE_PREEDIT_CARET
515 void PanelAgentBase::update_preedit_caret (int client, uint32 context, uint32 caret)
517 LOGW ("not implemented for %s", m_name.c_str ());
519 //socket_helper_recapture_string
520 //ISM_TRANS_CMD_RECAPTURE_STRING
521 void PanelAgentBase::recapture_string (int client, uint32 context, int offset, int len, WideString preedit, WideString commit, AttributeList& attrs)
523 LOGW ("not implemented for %s", m_name.c_str ());
525 //socket_helper_register_helper
526 //SCIM_TRANS_CMD_HELPER_ATTACH_INPUT_CONTEXT
527 //SCIM_TRANS_CMD_UPDATE_SCREEN
528 void PanelAgentBase::helper_attach_input_context_and_update_screen (int client, std::vector < std::pair <uint32, String> >& helper_ic_index,
529 uint32 current_screen)
531 LOGW ("not implemented for %s", m_name.c_str ());
534 void PanelAgentBase::hide_helper_ise (int client, uint32 context)
536 LOGW ("not implemented for %s", m_name.c_str ());
539 bool PanelAgentBase::process_input_device_event(int client, uint32 context, const String& uuid, uint32 type, const char *data, size_t len, _OUT_ uint32& result)
541 LOGW("not implemented for %s", m_name.c_str());
545 void PanelAgentBase::process_key_event_done(int client, uint32 context, KeyEvent &key, uint32 ret, uint32 serial)
547 LOGW("not implemented for %s", m_name.c_str());
550 void PanelAgentBase::request_ise_hide(int client, uint32 context)
552 LOGW("not implemented for %s", m_name.c_str());
555 void PanelAgentBase::set_autocapital_type(int client, uint32 context, String uuid, int mode)
557 LOGW("not implemented for %s", m_name.c_str());
560 void PanelAgentBase::update_ise_geometry (int client, uint32 context, uint32 x, uint32 y, uint32 width, uint32 height)
562 LOGW ("not implemented for %s", m_name.c_str ());
565 void PanelAgentBase::remote_update_preedit_string (int client, uint32 context, const WideString str, const WideString commit, const AttributeList &attrs, uint32 caret)
567 LOGW ("not implemented for %s", m_name.c_str ());
570 void PanelAgentBase::remote_send_key_event (int client, uint32 context, const KeyEvent &key)
572 LOGW ("not implemented for %s", m_name.c_str ());
575 void PanelAgentBase::remote_forward_key_event (int client, uint32 context, const KeyEvent &key)
577 LOGW ("not implemented for %s", m_name.c_str ());
580 void PanelAgentBase::remote_commit_string (int client, uint32 context,const WideString& wstr)
582 LOGW ("not implemented for %s", m_name.c_str ());
585 void PanelAgentBase::remote_delete_surrounding_text (int client, uint32 context, uint32 offset, uint32 len)
587 LOGD ("not implemented ");
590 void PanelAgentBase::set_prediction_allow (int client, uint32 context, String uuid, int mode)
592 LOGW ("not implemented for %s", m_name.c_str ());
595 void PanelAgentBase::send_fail_reply (int client)
597 LOGW ("not implemented for %s", m_name.c_str ());
599 } /* namespace scim */
602 vi:ts=4:nowrap:ai:expandtab