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; either 00010 * version 2 of the License, or (at your option) any later version.* 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 00014 * GNU Lesser General Public License for more details.* 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this program; if not, write to the 00017 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 00018 * Boston, MA 02111-1307 USA 00019 */ 00020 00021 #ifndef SCIMBRIDGEAGENTPROTECTED_H_ 00022 #define SCIMBRIDGEAGENTPROTECTED_H_ 00023 00030 #define Uses_SCIM_EVENT 00031 #define Uses_SCIM_TRANSACTION 00032 00033 #include <scim.h> 00034 00035 #include "scim-bridge-display.h" 00036 #include "scim-bridge-imcontext.h" 00037 00038 class ScimBridgeAgentClientListener; 00039 class ScimBridgeAgentIMContext; 00040 class ScimBridgeAgentPanelListener; 00041 00045 class ScimBridgeAgentProtected 00046 { 00047 00048 public: 00049 00053 virtual ~ScimBridgeAgentProtected () {} 00054 00058 virtual void interrupt () = 0; 00059 00063 virtual void quit () = 0; 00064 00068 virtual void load_config () = 0; 00069 00073 virtual void save_config () = 0; 00074 00080 virtual void add_client_listener (ScimBridgeAgentClientListener *client_listener) = 0; 00081 00087 virtual void remove_client_listener (ScimBridgeAgentClientListener *client_listener) = 0; 00088 00096 virtual bool filter_hotkeys (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0; 00097 00105 virtual bool filter_key_event (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0; 00106 00110 virtual void request_factory_menu () = 0; 00111 00118 virtual scim_bridge_imcontext_id_t alloc_imcontext (ScimBridgeAgentClientListener *client_listener) = 0; 00119 00126 virtual void free_imcontext (scim_bridge_imcontext_id_t imcontext_id, const ScimBridgeAgentClientListener *client_listener) = 0; 00127 00133 virtual void reset_imcontext (scim_bridge_imcontext_id_t imcontext_id) = 0; 00134 00142 virtual void set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y) = 0; 00143 00150 virtual void set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode) = 0; 00151 00158 virtual void change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in) = 0; 00159 00160 protected: 00161 00165 ScimBridgeAgentProtected () {} 00166 00167 }; 00168 #endif /*SCIMBRIDGEAGENTPROTECTED_H_*/