SCIMBridge 0.4.x

agent/scim-bridge-agent-protected.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 #ifndef SCIMBRIDGEAGENTPROTECTED_H_
00021 #define SCIMBRIDGEAGENTPROTECTED_H_
00022 
00029 #define Uses_SCIM_EVENT
00030 #define Uses_SCIM_TRANSACTION
00031 
00032 #include <scim.h>
00033 
00034 #include "scim-bridge-display.h"
00035 #include "scim-bridge-imcontext.h"
00036 
00037 class ScimBridgeAgentClientListener;
00038 class ScimBridgeAgentIMContext;
00039 class ScimBridgeAgentPanelListener;
00040 
00044 class ScimBridgeAgentProtected
00045 {
00046 
00047     public:
00048 
00052         virtual ~ScimBridgeAgentProtected () {}
00053 
00057         virtual void interrupt () = 0;
00058 
00062         virtual void quit () = 0;
00063 
00067         virtual void load_config () = 0;
00068 
00072         virtual void save_config () = 0;
00073 
00079         virtual void add_client_listener (ScimBridgeAgentClientListener *client_listener) = 0;
00080 
00086         virtual void remove_client_listener (ScimBridgeAgentClientListener *client_listener) = 0;
00087 
00095         virtual bool filter_hotkeys (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0;
00096 
00104         virtual bool filter_key_event (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0;
00105 
00109         virtual void request_factory_menu () = 0;
00110 
00117         virtual scim_bridge_imcontext_id_t alloc_imcontext (ScimBridgeAgentClientListener *client_listener) = 0;
00118 
00125         virtual void free_imcontext (scim_bridge_imcontext_id_t imcontext_id, const ScimBridgeAgentClientListener *client_listener) = 0;
00126 
00132         virtual void reset_imcontext (scim_bridge_imcontext_id_t imcontext_id) = 0;
00133 
00141         virtual void set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y) = 0;
00142 
00149         virtual void set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode) = 0;
00150 
00157         virtual void change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in) = 0;
00158 
00159     protected:
00160 
00164         ScimBridgeAgentProtected () {}
00165 
00166 };
00167 #endif                                            /*SCIMBRIDGEAGENTPROTECTED_H_*/