2 * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <scim_visibility.h>
20 #include <scim_types.h>
21 #include <scim_event.h>
22 #include <ise_context.h>
24 #include "sclcoretypes.h"
26 #ifndef __SCL_CORE_CALLBACK_H__
27 #define __SCL_CORE_CALLBACK_H__
34 struct ISCLCoreEventCallback {
35 virtual void on_init() {}
36 virtual void on_run(int argc, char **argv) {}
37 virtual void on_exit() {}
38 virtual void on_attach_input_context(sclint ic, const sclchar *ic_uuid) {}
39 virtual void on_detach_input_context(sclint ic, const sclchar *ic_uuid) {}
40 virtual void on_reload_config(sclint ic, const sclchar *ic_uuid) {}
41 virtual void on_update_spot_location(sclint ic, const sclchar *ic_uuid, sclint x, sclint y) {}
42 virtual void on_update_cursor_position(sclint ic, const sclchar *ic_uuid, sclint cursor_pos) {}
43 virtual void on_update_surrounding_text(sclint ic, const sclchar *text, sclint cursor) {}
44 virtual void on_focus_out(sclint ic, const sclchar *ic_uuid) {}
45 virtual void on_focus_in(sclint ic, const sclchar *ic_uuid) {}
46 virtual void on_ise_show(sclint ic, const int degree, Ise_Context &context) {}
47 virtual void on_ise_hide(sclint ic, const sclchar *ic_uuid) {}
48 virtual void on_get_geometry(sclu32 *pos_x, sclu32 *pos_y, sclu32 *width, sclu32 *height) {}
49 virtual void on_set_mode(sclu32 mode) {}
50 virtual void on_set_language(sclu32 language) {}
51 virtual void on_set_imdata(sclchar *buf, sclu32 len) {}
52 virtual void on_get_imdata(sclchar **buf, sclu32 *len) {}
53 virtual void on_get_language_locale(sclint ic, sclchar **locale) {}
54 virtual void on_set_return_key_type(sclu32 type) {}
55 virtual void on_get_return_key_type(sclu32 *type) {}
56 virtual void on_set_return_key_disable(sclu32 disabled) {}
57 virtual void on_get_return_key_disable(sclu32 *disabled) {}
58 virtual void on_set_layout(sclu32 layout) {}
59 virtual void on_get_layout(sclu32 *layout) {}
60 virtual void on_set_caps_mode(sclu32 mode) {}
61 virtual void on_reset_input_context(sclint ic, const sclchar *uuid) {}
62 virtual void on_update_candidate_geometry(sclint ic, const sclchar *uuid, sclu32 pos_x, sclu32 pos_y, sclu32 width, sclu32 height) {}
63 virtual void on_update_keyboard_ise(sclint ic, const sclchar *uuid, const sclchar *ise_name, const sclchar *ise_uuid) {}
64 virtual void on_candidate_more_window_show(sclint ic, const sclchar *uuid) {}
65 virtual void on_candidate_more_window_hide(sclint ic, const sclchar *uuid) {}
66 virtual void on_select_aux(sclint ic, const sclchar *uuid, sclint index) {}
67 virtual void on_select_candidate(sclint ic, const sclchar *uuid, sclint index) {}
68 virtual void on_candidate_table_page_up(sclint ic, const sclchar *uuid) {}
69 virtual void on_candidate_table_page_down(sclint ic, const sclchar *uuid) {}
70 virtual void on_update_lookup_table(SclCandidateTable& table) {}
71 virtual void on_update_candidate_table_page_size(sclint ic, const sclchar *uuid, sclint page_size) {}
72 virtual void on_update_candidate_item_layout(const std::vector<sclu32> item) {}
73 virtual void on_update_displayed_candidate_number(sclu32 size) {}
74 virtual void on_longpress_candidate(sclu32 index) {}
75 virtual void on_select_associate(sclint ic, const sclchar *uuid, sclint index) {}
76 virtual void on_associate_table_page_up(sclint ic, const sclchar *uuid) {}
77 virtual void on_associate_table_page_down(sclint ic, const sclchar *uuid) {}
78 virtual void on_update_associate_table_page_size(sclint ic, const sclchar *uuid, sclint page_size) {}
79 virtual void on_process_key_event(scim::KeyEvent &key, sclu32 *ret) {}
80 virtual void on_process_key_event_with_imengine(scim::KeyEvent &key, sclu32 *ret) {}
82 virtual void on_set_display_language(const sclchar *language) {}
83 virtual void on_set_rotation_degree(sclint degree) {}
84 virtual void on_set_accessibility_state(sclboolean state) {}
86 virtual void on_create_option_window(sclwindow window, SCLOptionWindowType type) {}
87 virtual void on_destroy_option_window(sclwindow window) {}
88 virtual void on_check_option_window_availability(sclboolean *avail) { if (avail) *avail = false;}
90 virtual void on_candidate_show(sclint ic, const sclchar *ic_uuid) {}
91 virtual void on_candidate_hide(sclint ic, const sclchar *ic_uuid) {}
93 /* Added in callback interface version 1.1 */
94 virtual void on_process_input_device_event(sclu32 &type, sclchar *data, size_t &len, sclu32 *ret) {}
96 virtual void on_set_autocapital_type(sclu32 type) {}
97 virtual void on_set_prediction_allow(sclu32 prediction_allow) {}
98 virtual void on_trigger_property(const sclchar *property) {}
100 ISCLCoreEventCallback() {
101 /* Current callback interface version is 1.1 */
105 sclint get_version_major() { return m_version_major; }
106 sclint get_version_minor() { return m_version_minor; }
112 inline sclboolean check_interface_version(ISCLCoreEventCallback *callback, int version_major, int version_minor)
115 if (callback->get_version_major() >= version_major) {
116 if (callback->get_version_minor() >= version_minor) {
128 #endif //__SCL_CORE_CALLBACK_H__