GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkIMContextGtkIMContext Базовый класс для системы ввода контекста |
#include <gtk/gtk.h>
GtkIMContext;
void gtk_im_context_set_client_window
(GtkIMContext *context,
GdkWindow *window);
void gtk_im_context_get_preedit_string
(GtkIMContext *context,
gchar **str,
PangoAttrList **attrs,
gint *cursor_pos);
gboolean gtk_im_context_filter_keypress (GtkIMContext *context,
GdkEventKey *event);
void gtk_im_context_focus_in (GtkIMContext *context);
void gtk_im_context_focus_out (GtkIMContext *context);
void gtk_im_context_reset (GtkIMContext *context);
void gtk_im_context_set_cursor_location
(GtkIMContext *context,
GdkRectangle *area);
void gtk_im_context_set_use_preedit (GtkIMContext *context,
gboolean use_preedit);
void gtk_im_context_set_surrounding (GtkIMContext *context,
const gchar *text,
gint len,
gint cursor_index);
gboolean gtk_im_context_get_surrounding (GtkIMContext *context,
gchar **text,
gint *cursor_index);
gboolean gtk_im_context_delete_surrounding
(GtkIMContext *context,
gint offset,
gint n_chars);
GObject
+----GtkIMContext
+----GtkIMContextSimple
+----GtkIMMulticontext
"commit" void user_function (GtkIMContext *imcontext,
gchar *arg1,
gpointer user_data) : Run last
"delete-surrounding"
gboolean user_function (GtkIMContext *imcontext,
gint arg1,
gint arg2,
gpointer user_data) : Run last
"preedit-changed"
void user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
"preedit-end"
void user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
"preedit-start"
void user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
"retrieve-surrounding"
gboolean user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
typedef struct _GtkIMContext GtkIMContext;
gtk_im_context_set_client_window ()
void gtk_im_context_set_client_window (GtkIMContext *context, GdkWindow *window);
Устанавливает клиентское окно для ввода контекста; это GdkWindow в котором появляется ввод. Это окно используется для правильного позиционирования окон, а также может использоваться для внутренних целей системы ввода.
|
|
|
Клиентское окно. Может быть |
void gtk_im_context_get_preedit_string
(GtkIMContext *context,
gchar **str,
PangoAttrList **attrs,
gint *cursor_pos);
Определяет предварительно отредактированную строку введенного контекста, а также список атрибутов применяемых к строке. Эта строка должна отображаться в расположении курсора.
|
|
|
Определяемая строка. Определяемая
строка должна освобождаться с помощью
|
|
Определяемый список атрибутов. После
использования этого списка вы должны
отменить ссылки на него с помощью
|
|
Позиция для курсора (в символах) внутри предварительно редактируемой строки. |
gboolean gtk_im_context_filter_keypress (GtkIMContext *context,
GdkEventKey *event);
Позволяет системе ввода внутренне
обрабатывать нажатие клавиши и производить
события. Если эта функция возвращает
TRUE
,
то никакая дальнейшая обработка для
данного ключевого события не производится.
|
|
|
Ключевое событие |
Возвращает : |
|
void gtk_im_context_focus_in (GtkIMContext *context);Уведомляет о том, что виджет системы ввода находится в фокусе. Система ввода может, например, изменить отображение для отражения этого изменения.
|
void gtk_im_context_focus_out (GtkIMContext *context);Уведомляет о том, что виджет системы ввода потерял фокус. Система ввода может, например, изменить отображение или освободить пространство контекста для отражения этих изменений.
|
void gtk_im_context_reset (GtkIMContext *context);Уведомляет систему ввода о некоторых изменениях, таких как смена позиции курсора. Это обычно заставляет систему ввода очищать пространство предварительного редактирования.
|
void gtk_im_context_set_cursor_location
(GtkIMContext *context,
GdkRectangle *area);
Уведомляет систему ввода о смене позиции курсора. Расположение относительно клиентского окна.
|
|
|
Новое расположение |
void gtk_im_context_set_use_preedit (GtkIMContext *context,
gboolean use_preedit);
Устанавливает должен ли IM context использовать
предварительное редактирование строки
для отображения. Если use_preedit
это FALSE (по умолчанию TRUE), то IM context может
использовать другой метод отображения,
например отображение в дочернем элементе
основного окна.
|
|
|
Должен ли IM context использовать предварительное редактирование строки. |
void gtk_im_context_set_surrounding (GtkIMContext *context,
const gchar *text,
gint len,
gint cursor_index);
Устанавливает текст возле курсора и строки предварительного редактирования. Эта функция вызывается в ответ на сигнал GtkIMContext::retrieve_surrounding, и не имеет эффекта в любом другом случае.
|
|
|
Текст рядом с курсором, в кодировке
UTF-8. Строка предварительного
редактирования не должна помещаться
в |
|
Длина |
|
Указатель вставки курсора в тексте
|
gboolean gtk_im_context_get_surrounding (GtkIMContext *context,
gchar **text,
gint *cursor_index);
Определяет содержимое возле курсора. Системам ввода обычно нужен контекст для ограничения ввода текста основываясь на существующем тексте; это важно для языков типа Тайского (Thai), в котором позволяются только некоторые последовательности символов.
Эта функция реализуется изданием
сигнала GtkIMContext::retrieve_surrounding в системе
ввода; в ответ на этот сигнал, виджет
должен обеспечить максимально возможное
количество контекста, до полного
параграфа, вызывая gtk_im_context_set_surrounding()
.
Помните что виджет не обязан отвечать
на сигнал ::retrieve_surrounding, поэтому система
ввода должна быть готова функционировать
без контекста.
|
|
|
UTF-8 строка текста содержимого
контекста возле курсора. Если функция
возвращает |
|
Указатель курсора внутри текста
|
Возвращает : |
|
gboolean gtk_im_context_delete_surrounding
(GtkIMContext *context,
gint offset,
gint n_chars);
Запрашивает виджет, к которому прикреплён
контекст ввода, на предмет удаления
символов возле курсора, в ответ на сигнал
GtkIMContext::delete_surrounding. Помните что offset
и n_chars
измеряются в символах
а не байтах, что отличается от использования
в других местах GtkIMContext.
Для использования этой функции, вы
должны сначала вызвать
gtk_im_context_get_surrounding()
для получения текущемго контекста, а
сразу после этого вызвать эту функцию,
чтобы быть уверенным в том что удаляете.
Вы также должны учитывать тот факт, что
даже если сигнал был обработан, контекст
ввода возможно удалит не все символы
которые были запрошены для удаления.
Эта функция используется системой ввода, которая хочет создать замещение существующего текста в ответ на новый ввод. Это не очень полезно для приложений.
|
|
|
Смещение от позиции курсора в символах; отрицательное значение означает о позиции сразу после курсора. |
|
Количество символов для удаления. |
Возвращает : |
|
void user_function (GtkIMContext *imcontext,
gchar *arg1,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
|
|
данные устанавливаемые при подключении обработчика сигнала. |
gboolean user_function (GtkIMContext *imcontext,
gint arg1,
gint arg2,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
|
|
|
|
данные устанавливаемые при подключении обработчика сигнала. |
Возвращает : |
void user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
данные устанавливаемые при подключении обработчика сигнала. |
gboolean user_function (GtkIMContext *imcontext,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
данные устанавливаемые при подключении обработчика сигнала. |
|