|
SCIMBridge 0.4.x
|
00001 /* 00002 * SCIM Bridge 00003 * 00004 * Copyright (c) 2006 Ryo Dairiki <ryo-dairiki@users.sourceforge.net> 00005 * 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation and 00010 * appearing in the file LICENSE.LGPL included in the package of this file. 00011 * You can also redistribute it and/or modify it under the terms of 00012 * the GNU General Public License as published by the Free Software Foundation and 00013 * appearing in the file LICENSE.GPL included in the package of this file. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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 /*SCIMBRIDGEAGENTPANELCLIENT_H*/
1.7.3