SCIMBridge 0.4.x

agent/utils/scim-bridge-agent-panel-client.h

Go to the documentation of this file.
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*/