00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00027 #ifndef SCIMBRIDGEAGENTPANELCLIENT_H
00028 #define SCIMBRIDGEAGENTPANELCLIENT_H
00029
00030 #define Uses_SCIM_EVENT
00031 #define Uses_SCIM_PANEL_CLIENT
00032 #define Uses_SCIM_SIGNAL
00033 #define Uses_SCIM_SOCKET
00034 #define Uses_SCIM_TRANSACTION
00035 #define Uses_SCIM_TRANS_COMMANDS
00036
00037 #include <scim.h>
00038
00039 #include "scim-bridge.h"
00040 #include "scim-bridge-display.h"
00041 #include "scim-bridge-imcontext.h"
00042
00043 typedef scim::Slot1<void, int> ScimBridgeAgentPanelClientSlotVoid;
00044 typedef scim::Slot2<void, int, int> ScimBridgeAgentPanelClientSlotInt;
00045 typedef scim::Slot2<void, int, const scim::String&> ScimBridgeAgentPanelClientSlotString;
00046 typedef scim::Slot2<void, int, const scim::WideString&> ScimBridgeAgentPanelClientSlotWideString;
00047 typedef scim::Slot4<void, int, const scim::String&, const scim::String&, const scim::Transaction&> ScimBridgeAgentPanelClientSlotStringStringTransaction;
00048 typedef scim::Slot2<void, int, const scim::KeyEvent&> ScimBridgeAgentPanelClientSlotKeyEvent;
00049
00050
00054 class ScimBridgeAgentPanelClient
00055 {
00056
00057 public:
00058
00066 static ScimBridgeAgentPanelClient *alloc (const scim::String &config_name, const ScimBridgeDisplay *display);
00067
00068
00072 virtual ~ScimBridgeAgentPanelClient ();
00073
00074
00078 virtual int open_connection () = 0;
00079
00080
00084 virtual void close_connection () = 0;
00085
00086
00092 virtual int get_connection_number () const = 0;
00093
00094
00100 virtual bool is_connected () const = 0;
00101
00102
00108 virtual bool has_pending_event () const = 0;
00109
00110
00116 virtual retval_t filter_event () = 0;
00117
00118
00125 virtual retval_t prepare (scim_bridge_imcontext_id_t imcontext_id) = 0;
00126
00127
00133 virtual retval_t send () = 0;
00134
00135
00139 virtual void turn_on () = 0;
00140
00144 virtual void turn_off () = 0;
00145
00146
00150 virtual void update_screen () = 0;
00151
00152
00158 virtual void show_help (const scim::String &help_text) = 0;
00159
00160
00166 virtual void show_factory_menu (const std::vector<scim::PanelFactoryInfo> &menu) = 0;
00167
00168
00174 virtual void focus_in (const scim::String &uuid) = 0;
00175
00176
00180 virtual void focus_out () = 0;
00181
00182
00188 virtual void update_factory_info (const scim::PanelFactoryInfo &info) = 0;
00189
00190
00197 virtual void update_spot_location (int x, int y) = 0;
00198
00199
00203 virtual void show_preedit_string () = 0;
00204
00205
00209 virtual void show_aux_string () = 0;
00210
00214 virtual void show_lookup_table () = 0;
00215
00216
00220 virtual void hide_preedit_string () = 0;
00221
00222
00226 virtual void hide_aux_string () = 0;
00227
00228
00232 virtual void hide_lookup_table () = 0;
00233
00234
00241 virtual void update_preedit_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0;
00242
00248 virtual void update_preedit_caret (int cursor_position) = 0;
00249
00256 virtual void update_aux_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0;
00257
00258
00264 virtual void update_lookup_table (const scim::LookupTable &table) = 0;
00265
00271 virtual void register_properties (const scim::PropertyList &properties) = 0;
00272
00278 virtual void update_property (const scim::Property &property) = 0;
00279
00280
00286 virtual void start_helper (const scim::String &helper_uuid) = 0;
00287
00288
00294 virtual void stop_helper (const scim::String &helper_uuid) = 0;
00295
00296
00303 virtual void send_helper_event (const scim::String &helper_uuid, const scim::Transaction &trans) = 0;
00304
00305
00311 virtual void register_input_context (const scim::String &uuid) = 0;
00312
00313
00317 virtual void remove_input_context () = 0;
00318
00319
00326 virtual scim::Connection signal_connect_reload_config (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00327
00328
00335 virtual scim::Connection signal_connect_exit (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00336
00337
00344 virtual scim::Connection signal_connect_update_lookup_table_page_size (ScimBridgeAgentPanelClientSlotInt *slot) = 0;
00345
00346
00353 virtual scim::Connection signal_connect_lookup_table_page_up (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00354
00355
00362 virtual scim::Connection signal_connect_lookup_table_page_down (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00363
00364
00371 virtual scim::Connection signal_connect_trigger_property (ScimBridgeAgentPanelClientSlotString *slot) = 0;
00372
00373
00380 virtual scim::Connection signal_connect_process_helper_event (ScimBridgeAgentPanelClientSlotStringStringTransaction *slot) = 0;
00381
00382
00389 virtual scim::Connection signal_connect_move_preedit_caret (ScimBridgeAgentPanelClientSlotInt *slot) = 0;
00390
00391
00398 virtual scim::Connection signal_connect_select_candidate (ScimBridgeAgentPanelClientSlotInt *slot) = 0;
00399
00400
00407 virtual scim::Connection signal_connect_process_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) = 0;
00408
00409
00416 virtual scim::Connection signal_connect_commit_string (ScimBridgeAgentPanelClientSlotWideString *slot) = 0;
00417
00418
00425 virtual scim::Connection signal_connect_forward_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) = 0;
00426
00427
00434 virtual scim::Connection signal_connect_request_help (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00435
00436
00443 virtual scim::Connection signal_connect_request_factory_menu (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00444
00445
00452 virtual scim::Connection signal_connect_change_factory (ScimBridgeAgentPanelClientSlotString *slot) = 0;
00453
00454 protected:
00455
00456 ScimBridgeAgentPanelClient ();
00457 };
00458 #endif