00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00028 #ifndef SCIMBRIDGEAGENTPANELCLIENT_H
00029 #define SCIMBRIDGEAGENTPANELCLIENT_H
00030
00031 #define Uses_SCIM_EVENT
00032 #define Uses_SCIM_PANEL_CLIENT
00033 #define Uses_SCIM_SIGNAL
00034 #define Uses_SCIM_SOCKET
00035 #define Uses_SCIM_TRANSACTION
00036 #define Uses_SCIM_TRANS_COMMANDS
00037
00038 #include <scim.h>
00039
00040 #include "scim-bridge.h"
00041 #include "scim-bridge-display.h"
00042 #include "scim-bridge-imcontext.h"
00043
00044 typedef scim::Slot1<void, int> ScimBridgeAgentPanelClientSlotVoid;
00045 typedef scim::Slot2<void, int, int> ScimBridgeAgentPanelClientSlotInt;
00046 typedef scim::Slot2<void, int, const scim::String&> ScimBridgeAgentPanelClientSlotString;
00047 typedef scim::Slot2<void, int, const scim::WideString&> ScimBridgeAgentPanelClientSlotWideString;
00048 typedef scim::Slot4<void, int, const scim::String&, const scim::String&, const scim::Transaction&> ScimBridgeAgentPanelClientSlotStringStringTransaction;
00049 typedef scim::Slot2<void, int, const scim::KeyEvent&> ScimBridgeAgentPanelClientSlotKeyEvent;
00050
00051
00055 class ScimBridgeAgentPanelClient
00056 {
00057
00058 public:
00059
00067 static ScimBridgeAgentPanelClient *alloc (const scim::String &config_name, const ScimBridgeDisplay *display);
00068
00069
00073 virtual ~ScimBridgeAgentPanelClient ();
00074
00075
00079 virtual int open_connection () = 0;
00080
00081
00085 virtual void close_connection () = 0;
00086
00087
00093 virtual int get_connection_number () const = 0;
00094
00095
00101 virtual bool is_connected () const = 0;
00102
00103
00109 virtual bool has_pending_event () const = 0;
00110
00111
00117 virtual retval_t filter_event () = 0;
00118
00119
00126 virtual retval_t prepare (scim_bridge_imcontext_id_t imcontext_id) = 0;
00127
00128
00134 virtual retval_t send () = 0;
00135
00136
00140 virtual void turn_on () = 0;
00141
00145 virtual void turn_off () = 0;
00146
00147
00151 virtual void update_screen () = 0;
00152
00153
00159 virtual void show_help (const scim::String &help_text) = 0;
00160
00161
00167 virtual void show_factory_menu (const std::vector<scim::PanelFactoryInfo> &menu) = 0;
00168
00169
00175 virtual void focus_in (const scim::String &uuid) = 0;
00176
00177
00181 virtual void focus_out () = 0;
00182
00183
00189 virtual void update_factory_info (const scim::PanelFactoryInfo &info) = 0;
00190
00191
00198 virtual void update_spot_location (int x, int y) = 0;
00199
00200
00204 virtual void show_preedit_string () = 0;
00205
00206
00210 virtual void show_aux_string () = 0;
00211
00215 virtual void show_lookup_table () = 0;
00216
00217
00221 virtual void hide_preedit_string () = 0;
00222
00223
00227 virtual void hide_aux_string () = 0;
00228
00229
00233 virtual void hide_lookup_table () = 0;
00234
00235
00242 virtual void update_preedit_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0;
00243
00249 virtual void update_preedit_caret (int cursor_position) = 0;
00250
00257 virtual void update_aux_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0;
00258
00259
00265 virtual void update_lookup_table (const scim::LookupTable &table) = 0;
00266
00272 virtual void register_properties (const scim::PropertyList &properties) = 0;
00273
00279 virtual void update_property (const scim::Property &property) = 0;
00280
00281
00287 virtual void start_helper (const scim::String &helper_uuid) = 0;
00288
00289
00295 virtual void stop_helper (const scim::String &helper_uuid) = 0;
00296
00297
00304 virtual void send_helper_event (const scim::String &helper_uuid, const scim::Transaction &trans) = 0;
00305
00306
00312 virtual void register_input_context (const scim::String &uuid) = 0;
00313
00314
00318 virtual void remove_input_context () = 0;
00319
00320
00327 virtual scim::Connection signal_connect_reload_config (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00328
00329
00336 virtual scim::Connection signal_connect_exit (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00337
00338
00345 virtual scim::Connection signal_connect_update_lookup_table_page_size (ScimBridgeAgentPanelClientSlotInt *slot) = 0;
00346
00347
00354 virtual scim::Connection signal_connect_lookup_table_page_up (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00355
00356
00363 virtual scim::Connection signal_connect_lookup_table_page_down (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00364
00365
00372 virtual scim::Connection signal_connect_trigger_property (ScimBridgeAgentPanelClientSlotString *slot) = 0;
00373
00374
00381 virtual scim::Connection signal_connect_process_helper_event (ScimBridgeAgentPanelClientSlotStringStringTransaction *slot) = 0;
00382
00383
00390 virtual scim::Connection signal_connect_move_preedit_caret (ScimBridgeAgentPanelClientSlotInt *slot) = 0;
00391
00392
00399 virtual scim::Connection signal_connect_select_candidate (ScimBridgeAgentPanelClientSlotInt *slot) = 0;
00400
00401
00408 virtual scim::Connection signal_connect_process_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) = 0;
00409
00410
00417 virtual scim::Connection signal_connect_commit_string (ScimBridgeAgentPanelClientSlotWideString *slot) = 0;
00418
00419
00426 virtual scim::Connection signal_connect_forward_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) = 0;
00427
00428
00435 virtual scim::Connection signal_connect_request_help (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00436
00437
00444 virtual scim::Connection signal_connect_request_factory_menu (ScimBridgeAgentPanelClientSlotVoid *slot) = 0;
00445
00446
00453 virtual scim::Connection signal_connect_change_factory (ScimBridgeAgentPanelClientSlotString *slot) = 0;
00454
00455 protected:
00456
00457 ScimBridgeAgentPanelClient ();
00458 };
00459 #endif