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.
18 #ifndef __SCL_CORE_UI_EFL_H__
19 #define __SCL_CORE_UI_EFL_H__
21 #include "sclcoreui.h"
26 #include "legacy_support/websocket.h"
38 struct CoreUIEFLCallback : public ISCLCoreEventCallback {
41 virtual void on_init();
42 virtual void on_run(int argc, char **argv);
43 virtual void on_exit();
44 virtual void on_attach_input_context(sclint ic, const sclchar *ic_uuid);
45 virtual void on_detach_input_context(sclint ic, const sclchar *ic_uuid);
46 virtual void on_reload_config(sclint ic, const sclchar *ic_uuid);
47 virtual void on_update_spot_location(sclint ic, const sclchar *ic_uuid, sclint x, sclint y);
48 virtual void on_update_cursor_position(sclint ic, const sclchar *ic_uuid, sclint cursor_pos);
49 virtual void on_update_surrounding_text(sclint ic, const sclchar *text, sclint cursor);
50 virtual void on_focus_out(sclint ic, const sclchar *ic_uuid);
51 virtual void on_focus_in(sclint ic, const sclchar *ic_uuid);
52 virtual void on_ise_show(sclint ic, const int degree, Ise_Context &context);
53 virtual void on_ise_hide(sclint ic, const sclchar *ic_uuid);
54 virtual void on_get_geometry(sclu32 *pos_x, sclu32 *pos_y, sclu32 *width, sclu32 *height);
55 virtual void on_set_mode(sclu32 mode);
56 virtual void on_set_language(sclu32 language);
57 virtual void on_set_imdata(sclchar *buf, sclu32 len);
58 virtual void on_get_imdata(sclchar **buf, sclu32 *len);
59 virtual void on_get_language_locale(sclint ic, sclchar **locale);
60 virtual void on_set_return_key_type(sclu32 type);
61 virtual void on_get_return_key_type(sclu32 *type);
62 virtual void on_set_return_key_disable(sclu32 disabled);
63 virtual void on_get_return_key_disable(sclu32 *disabled);
64 virtual void on_set_layout(sclu32 layout);
65 virtual void on_get_layout(sclu32 *layout);
66 virtual void on_set_caps_mode(sclu32 mode);
67 virtual void on_reset_input_context(sclint ic, const sclchar *uuid);
68 virtual void on_update_candidate_geometry(sclint ic, const sclchar *uuid, sclu32 pos_x, sclu32 pos_y, sclu32 width, sclu32 height);
69 virtual void on_update_keyboard_ise(sclint ic, const sclchar *uuid, const sclchar *ise_name, const sclchar *ise_uuid);
70 virtual void on_candidate_more_window_show(sclint ic, const sclchar *uuid);
71 virtual void on_candidate_more_window_hide(sclint ic, const sclchar *uuid);
72 virtual void on_select_aux(sclint ic, const sclchar *uuid, sclint index);
73 virtual void on_select_candidate(sclint ic, const sclchar *uuid, sclint index);
74 virtual void on_candidate_table_page_up(sclint ic, const sclchar *uuid);
75 virtual void on_candidate_table_page_down(sclint ic, const sclchar *uuid);
76 virtual void on_update_lookup_table(SclCandidateTable& table);
77 virtual void on_update_candidate_table_page_size(sclint ic, const sclchar *uuid, sclint page_size);
78 virtual void on_select_associate(sclint ic, const sclchar *uuid, sclint index);
79 virtual void on_associate_table_page_up(sclint ic, const sclchar *uuid);
80 virtual void on_associate_table_page_down(sclint ic, const sclchar *uuid);
81 virtual void on_update_associate_table_page_size(sclint ic, const sclchar *uuid, sclint page_size);
82 virtual void on_process_key_event(scim::KeyEvent &key, sclu32 *ret);
84 virtual void on_set_display_language(const sclchar *language);
85 virtual void on_set_rotation_degree(sclint degree);
86 virtual void on_set_accessibility_state(sclboolean state);
88 virtual void on_create_option_window(sclwindow window, SCLOptionWindowType type);
89 virtual void on_destroy_option_window(sclwindow window);
90 virtual void on_check_option_window_availability(sclboolean *avail);
92 virtual void on_candidate_show(sclint ic, const sclchar *ic_uuid);
93 virtual void on_candidate_hide(sclint ic, const sclchar *ic_uuid);
95 /* Added in callback interface version 1.1 */
96 virtual void on_process_input_device_event(sclu32 &type, sclchar *data, size_t &len, sclu32 *ret);
98 virtual void on_set_prediction_hint(const sclchar *prediction_hint);
99 virtual void on_set_mime_type(const sclchar *mime_type);
101 ISCLCoreEventCallback *app_callback;
102 sclboolean initialized;
103 sclwindow main_window;
106 class CSCLCoreUIEFL : public CSCLCoreUI
112 int create(void *data);
113 int terminate(void *data);
115 virtual sclboolean init(sclwindow main_window);
118 virtual void run(const sclchar *display);
119 virtual sclwindow get_main_window();
120 virtual void set_keyboard_size_hints(SclSize portrait, SclSize landscape);
121 virtual int get_screen_rotation_degree();
123 virtual sclwindow create_option_window(SCLOptionWindowType type);
124 virtual bool show_option_window(SCLOptionWindowType type);
125 virtual void destroy_option_window(sclwindow window);
127 void set_screen_rotation_degree(int degree);
129 void process_keyboard_ui_state_change(KEYBOARD_UI_STATE state);
131 virtual sclboolean prepare(sclwindow main_window);
134 sclboolean m_initialized;
136 sclint m_rotation_degree;
137 sclwindow m_main_window;
138 const sclchar *m_appid;
139 const sclchar *m_display;
141 OptionWindowInfo m_option_window_info[OPTION_WINDOW_TYPE_MAX];
143 CoreUIEFLCallback m_event_callback;
150 #endif //__SCL_CORE_UI_EFL_H__