Added missing callback in CoreUIEFLCallback
[platform/core/uifw/libscl-core.git] / src / sclcoreui-efl.h
1 /*
2  * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #ifndef __SCL_CORE_UI_EFL_H__
19 #define __SCL_CORE_UI_EFL_H__
20
21 #include "sclcoreui.h"
22
23 #include <Ecore.h>
24
25 #ifdef WEBSOCKET
26 #include "legacy_support/websocket.h"
27 #endif
28
29 //SCL_BEGIN_DECLS
30
31 namespace scl
32 {
33
34 typedef struct {
35     sclwindow window;
36 } OptionWindowInfo;
37
38 struct CoreUIEFLCallback : public ISCLCoreEventCallback {
39     CoreUIEFLCallback();
40
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);
83
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);
87
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);
91
92     virtual void on_candidate_show(sclint ic, const sclchar *ic_uuid);
93     virtual void on_candidate_hide(sclint ic, const sclchar *ic_uuid);
94
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);
97
98     virtual void on_set_prediction_hint(const sclchar *prediction_hint);
99     virtual void on_set_mime_type(const sclchar *mime_type);
100
101     ISCLCoreEventCallback *app_callback;
102     sclboolean initialized;
103     sclwindow main_window;
104 };
105
106 class CSCLCoreUIEFL : public CSCLCoreUI
107 {
108 public:
109     CSCLCoreUIEFL();
110     ~CSCLCoreUIEFL();
111
112     int create(void *data);
113     int terminate(void *data);
114
115     virtual sclboolean init(sclwindow main_window);
116     virtual void fini();
117
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();
122
123     virtual sclwindow create_option_window(SCLOptionWindowType type);
124     virtual bool show_option_window(SCLOptionWindowType type);
125     virtual void destroy_option_window(sclwindow window);
126
127     void set_screen_rotation_degree(int degree);
128
129     void process_keyboard_ui_state_change(KEYBOARD_UI_STATE state);
130 protected:
131     virtual sclboolean prepare(sclwindow main_window);
132
133 private:
134     sclboolean m_initialized;
135
136     sclint m_rotation_degree;
137     sclwindow m_main_window;
138     const sclchar *m_appid;
139     const sclchar *m_display;
140
141     OptionWindowInfo m_option_window_info[OPTION_WINDOW_TYPE_MAX];
142
143     CoreUIEFLCallback m_event_callback;
144 };
145
146 }
147
148 //SCL_END_DECLS
149
150 #endif //__SCL_CORE_UI_EFL_H__