Add new interfaces to pass event to ise-engine-loader
[platform/core/uifw/libscl-core.git] / src / sclconnection.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_CONNECTION_H__
19 #define __SCL_CONNECTION_H__
20
21 #define Uses_SCIM_ATTRIBUTE
22 #define Uses_SCIM_UTILITY
23 #define Uses_SCIM_CONFIG_BASE
24 #define Uses_SCIM_OBJECT
25 #define Uses_SCIM_POINTER
26 #define Uses_SCIM_EVENT
27 #define Uses_SCIM_HELPER
28
29 #include <string>
30 #include <scim.h>
31 #include "scltypes.h"
32 //SCL_BEGIN_DECLS
33
34 namespace scl
35 {
36 /**
37  * @brief The base class to work as a soft-based keyboard
38  *
39  * This class implements all functions for working as a soft-based keyboard
40  * In side of ISE developer, they can modify it by their requirements.
41  */
42 class CSCLConnection
43 {
44 public:
45     CSCLConnection();
46     virtual ~CSCLConnection();
47
48     std::string get_backend_identifier();
49
50     virtual sclboolean init();
51     virtual void fini();
52
53     virtual void open_connection(const sclchar *display);
54     virtual void close_connection();
55
56     virtual void config_reload();
57     virtual sclboolean config_read_int(const sclchar *name, sclint &value);
58     virtual sclboolean config_read_string(const sclchar *name, std::string &value);
59     virtual sclboolean config_write_int(const sclchar *name, sclint value);
60     virtual sclboolean config_write_string(const sclchar *name, const std::string value);
61     virtual sclboolean config_erase(const sclchar *name);
62     virtual sclboolean config_flush(void);
63
64     virtual void send_imengine_event(sclint ic, const sclchar *ic_uuid, const sclint command, const sclu32 value);
65     virtual void reset_keyboard_ise();
66     virtual void flush_keyboard_ise();
67     virtual void send_key_event(sclint ic, const sclchar *ic_uuid, sclu32 keycode, sclu16 keymask);
68     virtual void forward_key_event(sclint ic, const sclchar *ic_uuid, sclu32 keycode, sclu16 keymask);
69     virtual void commit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str);
70     virtual void select_candidate(int index);
71     virtual void show_preedit_string(sclint ic, const sclchar *ic_uuid);
72     virtual void show_aux_string(void);
73     virtual void show_candidate_string(void);
74     virtual void show_associate_string(void);
75     virtual void hide_preedit_string(sclint ic, const sclchar *ic_uuid);
76     virtual void hide_aux_string(void);
77     virtual void hide_candidate_string(void);
78     virtual void hide_associate_string(void);
79     virtual void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str);
80     virtual void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs);
81     virtual void update_preedit_caret(sclint caret);
82     virtual void update_aux_string(const sclchar *str);
83     virtual void update_input_context(sclu32 type, sclu32 value);
84     virtual void update_geometry(sclint x, sclint y, sclint width, sclint height);
85     virtual void get_surrounding_text(const sclchar *ic_uuid, sclint maxlen_before, sclint maxlen_after) const;
86     virtual void delete_surrounding_text(sclint offset, sclint len) const;
87     virtual void set_candidate_position(sclint left, sclint top);
88     virtual void enable_soft_candidate(sclboolean enable);
89     virtual void candidate_hide(void);
90     virtual void set_keyboard_ise_by_uuid(const sclchar *uuid);
91     virtual void get_keyboard_ise(const sclchar *uuid);
92     virtual void set_selection(sclint start, sclint end);
93     virtual void send_private_command(const sclchar *command);
94     virtual sclint get_surrounding_text(sclint maxlen_before, sclint maxlen_after, sclchar **text, int &cursor);
95     virtual void get_selection_text(sclchar **text);
96     virtual void request_ise_hide();
97     virtual void commit_content(const sclchar *content, const sclchar *description, const sclchar *mime_types);
98     virtual void update_preedit_string_with_commit(const sclchar *preedit, const sclchar *commit, const scim::AttributeList &attrs, sclint caret);
99     virtual void recapture_string(sclint offset, sclint len, const sclchar *preedit, const sclchar *commit, const scim::AttributeList &attrs);
100     virtual void update_lookup_table(const scim::LookupTable &table);
101     virtual void register_properties(const scim::PropertyList &properties);
102     virtual void update_property(const scim::Property &property);
103     virtual void expand_candidate(void);
104     virtual void contract_candidate(void);
105     virtual void set_candidate_style(scim::ISF_CANDIDATE_PORTRAIT_LINE_T portrait_line, scim::ISF_CANDIDATE_MODE_T mode);
106 protected:
107     std::string m_backend_identifier;
108
109 private:
110     CSCLConnection *m_impl;
111 };
112
113 }
114
115 //SCL_END_DECLS
116
117 #endif //__SCL_CONNECTION_H__