Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Signals

GtkIMContext

GtkIMContext Базовый класс для системы ввода контекста

Краткое описание

#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

Описание

Детали

GtkIMContext

typedef struct _GtkIMContext GtkIMContext;

gtk_im_context_set_client_window ()

void gtk_im_context_set_client_window (GtkIMContext *context, GdkWindow *window);

Устанавливает клиентское окно для ввода контекста; это GdkWindow в котором появляется ввод. Это окно используется для правильного позиционирования окон, а также может использоваться для внутренних целей системы ввода.

context :

GtkIMContext

window :

Клиентское окно. Может быть NULL указывая что предварительно установленное клиентское окно больше не существует.


gtk_im_context_get_preedit_string ()

void gtk_im_context_get_preedit_string (GtkIMContext *context, gchar **str, PangoAttrList **attrs, gint *cursor_pos);

Определяет предварительно отредактированную строку введенного контекста, а также список атрибутов применяемых к строке. Эта строка должна отображаться в расположении курсора.

context :

GtkIMContext

str :

Определяемая строка. Определяемая строка должна освобождаться с помощью g_free().

attrs :

Определяемый список атрибутов. После использования этого списка вы должны отменить ссылки на него с помощью pango_attr_list_unref().

cursor_pos :

Позиция для курсора (в символах) внутри предварительно редактируемой строки.


gtk_im_context_filter_keypress ()

gboolean gtk_im_context_filter_keypress (GtkIMContext *context, GdkEventKey *event);

Позволяет системе ввода внутренне обрабатывать нажатие клавиши и производить события. Если эта функция возвращает TRUE, то никакая дальнейшая обработка для данного ключевого события не производится.

context :

GtkIMContext

event :

Ключевое событие

Возвращает :

TRUE если метод ввода обработал ключевое событие.


gtk_im_context_focus_in ()

void        gtk_im_context_focus_in         (GtkIMContext *context);

Уведомляет о том, что виджет системы ввода находится в фокусе. Система ввода может, например, изменить отображение для отражения этого изменения.

context :

GtkIMContext


gtk_im_context_focus_out ()

void        gtk_im_context_focus_out        (GtkIMContext *context);

Уведомляет о том, что виджет системы ввода потерял фокус. Система ввода может, например, изменить отображение или освободить пространство контекста для отражения этих изменений.

context :

GtkIMContext


gtk_im_context_reset ()

void        gtk_im_context_reset            (GtkIMContext *context);

Уведомляет систему ввода о некоторых изменениях, таких как смена позиции курсора. Это обычно заставляет систему ввода очищать пространство предварительного редактирования.

context :

GtkIMContext


gtk_im_context_set_cursor_location ()

void gtk_im_context_set_cursor_location (GtkIMContext *context, GdkRectangle *area);

Уведомляет систему ввода о смене позиции курсора. Расположение относительно клиентского окна.

context :

GtkIMContext

area :

Новое расположение


gtk_im_context_set_use_preedit ()

void gtk_im_context_set_use_preedit (GtkIMContext *context, gboolean use_preedit);

Устанавливает должен ли IM context использовать предварительное редактирование строки для отображения. Если use_preedit это FALSE (по умолчанию TRUE), то IM context может использовать другой метод отображения, например отображение в дочернем элементе основного окна.

context :

GtkIMContext

use_preedit :

Должен ли IM context использовать предварительное редактирование строки.


gtk_im_context_set_surrounding ()

void gtk_im_context_set_surrounding (GtkIMContext *context, const gchar *text, gint len, gint cursor_index);

Устанавливает текст возле курсора и строки предварительного редактирования. Эта функция вызывается в ответ на сигнал GtkIMContext::retrieve_surrounding, и не имеет эффекта в любом другом случае.

context :

GtkIMContext

text :

Текст рядом с курсором, в кодировке UTF-8. Строка предварительного редактирования не должна помещаться в text.

len :

Длина text, или -1 если text завершается nul-terminated

cursor_index :

Указатель вставки курсора в тексте text.


gtk_im_context_get_surrounding ()

gboolean gtk_im_context_get_surrounding (GtkIMContext *context, gchar **text, gint *cursor_index);

Определяет содержимое возле курсора. Системам ввода обычно нужен контекст для ограничения ввода текста основываясь на существующем тексте; это важно для языков типа Тайского (Thai), в котором позволяются только некоторые последовательности символов.

Эта функция реализуется изданием сигнала GtkIMContext::retrieve_surrounding в системе ввода; в ответ на этот сигнал, виджет должен обеспечить максимально возможное количество контекста, до полного параграфа, вызывая gtk_im_context_set_surrounding(). Помните что виджет не обязан отвечать на сигнал ::retrieve_surrounding, поэтому система ввода должна быть готова функционировать без контекста.

context :

GtkIMContext

text :

UTF-8 строка текста содержимого контекста возле курсора. Если функция возвращает TRUE, то вы должны освободить эту строку с помощью g_free().

cursor_index :

Указатель курсора внутри текста text.

Возвращает :

TRUE если близлежащий текст был предоставлен; в этом случае вы должны освободить *text.


gtk_im_context_delete_surrounding ()

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() для получения текущемго контекста, а сразу после этого вызвать эту функцию, чтобы быть уверенным в том что удаляете. Вы также должны учитывать тот факт, что даже если сигнал был обработан, контекст ввода возможно удалит не все символы которые были запрошены для удаления.

Эта функция используется системой ввода, которая хочет создать замещение существующего текста в ответ на новый ввод. Это не очень полезно для приложений.

context :

GtkIMContext

offset :

Смещение от позиции курсора в символах; отрицательное значение означает о позиции сразу после курсора.

n_chars :

Количество символов для удаления.

Возвращает :

TRUE если сигнал был обработан.

Детали сигналов

Сигнал "commit"

void user_function (GtkIMContext *imcontext, gchar *arg1, gpointer user_data) : Run last

imcontext :

объект получающий сигнал.

arg1 :

user_data :

данные устанавливаемые при подключении обработчика сигнала.


Сигнал "delete-surrounding"

gboolean user_function (GtkIMContext *imcontext, gint arg1, gint arg2, gpointer user_data) : Run last

imcontext :

объект получающий сигнал.

arg1 :

arg2 :

user_data :

данные устанавливаемые при подключении обработчика сигнала.

Возвращает :


Сигнал "preedit-changed"

void user_function (GtkIMContext *imcontext, gpointer user_data) : Run last

imcontext :

объект получающий сигнал.

user_data :

данные устанавливаемые при подключении обработчика сигнала.


Сигнал "preedit-end"

void user_function (GtkIMContext *imcontext, gpointer user_data) : Run last

imcontext :

объект получающий сигнал.

user_data :

данные устанавливаемые при подключении обработчика сигнала.


Сигнал "preedit-start"

void user_function (GtkIMContext *imcontext, gpointer user_data) : Run last

imcontext :

объект получающий сигнал.

user_data :

данные устанавливаемые при подключении обработчика сигнала.


Сигнал "retrieve-surrounding"

gboolean user_function (GtkIMContext *imcontext, gpointer user_data) : Run last

imcontext :

объект получающий сигнал.

user_data :

данные устанавливаемые при подключении обработчика сигнала.