1
/***************************************************************************
2
* Copyright (C) 2010~2011 by CSSlayer *
4
* This program is free software; you can redistribute it and/or modify *
5
* it under the terms of the GNU General Public License as published by *
6
* the Free Software Foundation; either version 2 of the License, or *
7
* (at your option) any later version. *
9
* This program is distributed in the hope that it will be useful, *
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12
* GNU General Public License for more details. *
14
* You should have received a copy of the GNU General Public License *
15
* along with this program; if not, write to the *
16
* Free Software Foundation, Inc., *
17
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
18
***************************************************************************/
20
#ifndef FCITX_CLIENT_H
21
#define FCITX_CLIENT_H
23
#include <dbus/dbus-glib.h>
24
#include <fcitx-config/fcitx-config.h>
25
#include <fcitx/ime.h>
26
#include <fcitx/frontend.h>
32
typedef struct _FcitxIMClient FcitxIMClient;
33
typedef void (*FcitxIMClientDestroyCallback)(FcitxIMClient* client, void* data);
34
typedef void (*FcitxIMClientConnectCallback)(FcitxIMClient* client, void* data);
37
FcitxIMClient* FcitxIMClientOpen(FcitxIMClientConnectCallback connectcb, FcitxIMClientDestroyCallback destroycb, GObject* data);
38
boolean IsFcitxIMClientValid(FcitxIMClient* client);
39
void FcitxIMClientClose(FcitxIMClient* client);
40
void FcitxIMClientEnableIC(FcitxIMClient* client);
41
void FcitxIMClientCloseIC(FcitxIMClient* client);
42
void FcitxIMClientFocusIn(FcitxIMClient* client);
43
void FcitxIMClientFocusOut(FcitxIMClient* client);
44
void FcitxIMClientSetCursorLocation(FcitxIMClient* client, int x, int y);
45
void FcitxIMClientSetCapacity(FcitxIMClient* client, CapacityFlags flags);
46
void FcitxIMClientReset(FcitxIMClient* client);
47
int FcitxIMClientProcessKey(FcitxIMClient* client, uint32_t keyval, uint32_t keycode, uint32_t state, FcitxKeyEventType type, uint32_t t);
48
void FcitxIMClientConnectSignal(FcitxIMClient* imclient,
51
GCallback commitString,
53
GCallback updatePreedit,
55
GClosureNotify freefunc
57
HOTKEYS* FcitxIMClientGetTriggerKey(FcitxIMClient* client);
64
// kate: indent-mode cstyle; space-indent on; indent-width 0;