| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Known Implementations | Signals | ||||
| GtkEditableGtkEditable Интерфейс для виджетов редактирования текста | 
#include <gtk/gtk.h>
            GtkEditable;
void        gtk_editable_select_region      (GtkEditable *editable,
                                             gint start,
                                             gint end);
gboolean    gtk_editable_get_selection_bounds
                                            (GtkEditable *editable,
                                             gint *start,
                                             gint *end);
void        gtk_editable_insert_text        (GtkEditable *editable,
                                             const gchar *new_text,
                                             gint new_text_length,
                                             gint *position);
void        gtk_editable_delete_text        (GtkEditable *editable,
                                             gint start_pos,
                                             gint end_pos);
gchar*      gtk_editable_get_chars          (GtkEditable *editable,
                                             gint start_pos,
                                             gint end_pos);
void        gtk_editable_cut_clipboard      (GtkEditable *editable);
void        gtk_editable_copy_clipboard     (GtkEditable *editable);
void        gtk_editable_paste_clipboard    (GtkEditable *editable);
void        gtk_editable_delete_selection   (GtkEditable *editable);
void        gtk_editable_set_position       (GtkEditable *editable,
                                             gint position);
gint        gtk_editable_get_position       (GtkEditable *editable);
void        gtk_editable_set_editable       (GtkEditable *editable,
                                             gboolean is_editable);
gboolean    gtk_editable_get_editable       (GtkEditable *editable);
GInterface +----GtkEditable
GtkEditable реализуется GtkEntry, GtkOldEditable, GtkSpinButton и GtkText.
"changed"   void        user_function      (GtkEditable *editable,
                                            gpointer     user_data)      : Run last
"delete-text"
            void        user_function      (GtkEditable *editable,
                                            gint         start_pos,
                                            gint         end_pos,
                                            gpointer     user_data)      : Run last
"insert-text"
            void        user_function      (GtkEditable *editable,
                                            gchar       *new_text,
                                            gint         new_text_length,
                                            gint        *position,
                                            gpointer     user_data)            : Run last
GtkEditable интерфейс это интерфейс реализуемый виджетами редактирования текста, такими как GtkEntry и GtkText. Он содержит функции для основных манипуляций редактируемых виджетов, большое число сигналов действий используемых для привязок клавиш и несколько сигналов которые приложение может подключать к виджетам редактирования.
Как пример последнего, подключая нижеследующий обработчик к "insert_text", приложение может преобразовать весь ввод в виджет в верхний регистр.
Пример 3. Преобразование ввода в верхний регистр.
include <ctype.h> void insert_text_handler (GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data) { int i; gchar *result = g_utf8_strup (text, length); g_signal_handlers_block_by_func (editable, (gpointer) insert_text_handler, data); gtk_editable_insert_text (editable, result, length, position); g_signal_handlers_unblock_by_func (editable, (gpointer) insert_text_handler, data); g_signal_stop_emission_by_name (editable, "insert_text"); g_free (result); }
typedef struct _GtkEditable GtkEditable;
Структура GtkEditable содержит нижеследующие поля. (Эти поля должны рассматриваться только для чтения. Они никогда не должны устанавливаться приложением.)
| guint selection_start; | Начальная позиция выделения символов в виджете. | 
| guint selection_end; | Конечная позиция выделения символов в виджете. | 
| guint editable; | Флажок указывающий редактируемый или нет виджет. | 
void        gtk_editable_select_region      (GtkEditable *editable,
                                             gint start,
                                             gint end);
Выделяет область текста. Выделяются
символы из позиции start_pos,
но не включая позицию end_pos.
Если end_pos отрицательное,
то когда символы выделяются из позиции
start_pos до конца текста. 
| 
 | GtkEditable виджет. | 
| 
 | Начальная позиция. | 
| 
 | Конечная позиция. | 
gboolean    gtk_editable_get_selection_bounds
                                            (GtkEditable *editable,
                                             gint *start,
                                             gint *end);Определяет границы текущемго выделения, если оно существует.
| 
 | GtkEditable виджет. | 
| 
 | Начальная позиция, или  | 
| 
 | Конечная позиция, или  | 
| Возвращает : | 
 | 
void        gtk_editable_insert_text        (GtkEditable *editable,
                                             const gchar *new_text,
                                             gint new_text_length,
                                             gint *position);Вставляет текст в данную позицию.
| 
 | GtkEditable виджет. | 
| 
 | Вставляемый текст. | 
| 
 | Длина вставляемого текста, в байтах | 
| 
 | Параметр ввода вывода. Вызывающая программа инициализирует его в позицию для вставки текста. После вызова он указывает на позицию после вставленного текста. | 
void        gtk_editable_delete_text        (GtkEditable *editable,
                                             gint start_pos,
                                             gint end_pos);
Удаляет участок символов. Символы
удаляются начиная с позиции start_pos,
но не включая позицию end_pos.
Если end_pos отрицательное,
то когда символы удаляются начиная с
позиции start_pos и до конца
текста. 
| 
 | GtkEditable виджет. | 
| 
 | начальная позиция. | 
| 
 | конечная позиция. | 
gchar*      gtk_editable_get_chars          (GtkEditable *editable,
                                             gint start_pos,
                                             gint end_pos);
Определяет последовательность символов.
Символы получаются из позиции start_pos,
но не включая end_pos. Если
end_pos отрицательное, то когда
символы получаются из позиции start_pos
до конца текста. 
| 
 | GtkEditable виджет. | 
| 
 | начальная позиция. | 
| 
 | конечная позиция. | 
| Возвращает : | Символы в указанной области. Результат
			должен быть освобожден с помощью
			 | 
void gtk_editable_cut_clipboard (GtkEditable *editable);
Копирует символы текущемго выделения в буфер и удаляет их из виджета.
| 
 | GtkEditable виджет. | 
void gtk_editable_copy_clipboard (GtkEditable *editable);
Копирует символы текущемго выделения в буфер.
| 
 | GtkEditable виджет. | 
void gtk_editable_paste_clipboard (GtkEditable *editable);
Вставляет содержимое буфера в данный виджет в текущую позицию курсора.
| 
 | GtkEditable виджет. | 
void gtk_editable_delete_selection (GtkEditable *editable);
Удаляет текущеме выделение виджета и отменяет выделение.
| 
 | GtkEditable виджет. | 
void        gtk_editable_set_position       (GtkEditable *editable,
                                             gint position);Устанавливает позицию курсора.
| 
 | GtkEditable виджет. | 
| 
 | Позиция курсора. Курсор отображается после данного символа (начиная 0) в виджете. Значение должно быть меньше или эквивалентно числу символов в виджете. Значение -1 указывает позицию после последнего символа ввода. Помните, это позиция в символах а не в байтах. | 
gint gtk_editable_get_position (GtkEditable *editable);
Определяет текущую позицию курсора.
| 
 | GtkEditable виджет. | 
| Возвращает : | Позиция курсора. Курсор отображается после данного символа (начиная 0) в виджете. Значение должно быть меньше или эквивалентно числу символов в виджете. Значение -1 указывает позицию после последнего символа ввода. Помните, это позиция в символах а не в байтах. | 
void        gtk_editable_set_editable       (GtkEditable *editable,
                                             gboolean is_editable);Определяет может ли пользователь редактировать текст в редактируемом виджете.
| 
 | GtkEditable виджет. | 
| 
 | 
 | 
gboolean gtk_editable_get_editable (GtkEditable *editable);
Определяет редактируем ли editable.
Смотрите gtk_editable_set_editable().
| 
 | |
| Возвращает : | 
 | 
void        user_function                  (GtkEditable *editable,
                                            gpointer     user_data)      : Run lastУказывает что пользователь изменил содержимое виджета.
| 
 | объект получающий сигнал. | 
| 
 | пользовательские данные помещаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkEditable *editable,
                                            gint         start_pos,
                                            gint         end_pos,
                                            gpointer     user_data)      : Run last
Этот сигнал издаётся когда пользователь
удаляет текст из виджета. Обработчик
сигнала по умолчанию обычно будет
отвечать за вставку текста, таким образом
подключая этот сигнал и останавливая
его с помощью gtk_signal_emit_stop(),
это нужно для изменения вставляемого
текста, или препятствовать вставке
полностью. Параметры start_pos
и end_pos интерпретируются как
для gtk_editable_delete_text()
| 
 | объект получающий сигнал. | 
| 
 | начальная позиция. | 
| 
 | конечная позиция. | 
| 
 | пользовательские данные помещаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkEditable *editable,
                                            gchar       *new_text,
                                            gint         new_text_length,
                                            gint        *position,
                                            gpointer     user_data)            : Run last
Этот сигнал издаётся когда пользователь
вставляет текст в виджет. Обработчик
сигнала по умолчанию обычно будет
отвечать за вставку текста, таким образом
подключая этот сигнал и останавливая
его с помощью gtk_signal_emit_stop(),
это нужно для изменения вставляемого
текста, или запрещению полной вставки.
| 
 | Объект получающий сигнал. | 
| 
 | Новый текст для вставки. | 
| 
 | Длина нового текста в байтах, или -1 если новый текст не nul-terminated | 
| 
 | Позиция в символах, в которую вставляется новый текст. Это параметр ввода вывода(in-out). После окончания эмиссии сигнала, она должна находиться после вновь вставленного текста. | 
| 
 | пользовательские данные помещаемые при подключении обработчика сигнала. | 
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |