краткое описание#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); } деталиgtkeditabletypedef struct _gtkeditable gtkeditable; структура gtkeditable содержит нижеследующие поля. (эти поля должны рассматриваться только для чтения. они никогда не должны устанавливаться приложением.)
gtk_editable_select_region ()void gtk_editable_select_region (gtkeditable *editable, gint start, gint end);
выделяет область текста. выделяются
символы из позиции
gtk_editable_get_selection_bounds ()gboolean gtk_editable_get_selection_bounds (gtkeditable *editable, gint *start, gint *end); определяет границы текущемго выделения, если оно существует.
gtk_editable_insert_text ()void gtk_editable_insert_text (gtkeditable *editable, const gchar *new_text, gint new_text_length, gint *position); вставляет текст в данную позицию.
gtk_editable_delete_text ()void gtk_editable_delete_text (gtkeditable *editable, gint start_pos, gint end_pos);
удаляет участок символов. символы
удаляются начиная с позиции
gtk_editable_get_chars ()gchar* gtk_editable_get_chars (gtkeditable *editable, gint start_pos, gint end_pos);
определяет последовательность символов.
символы получаются из позиции
gtk_editable_cut_clipboard ()void gtk_editable_cut_clipboard (gtkeditable *editable); копирует символы текущемго выделения в буфер и удаляет их из виджета.
gtk_editable_copy_clipboard ()void gtk_editable_copy_clipboard (gtkeditable *editable); копирует символы текущемго выделения в буфер.
gtk_editable_paste_clipboard ()void gtk_editable_paste_clipboard (gtkeditable *editable); вставляет содержимое буфера в данный виджет в текущую позицию курсора.
gtk_editable_delete_selection ()void gtk_editable_delete_selection (gtkeditable *editable); удаляет текущеме выделение виджета и отменяет выделение.
gtk_editable_set_position ()void gtk_editable_set_position (gtkeditable *editable, gint position); устанавливает позицию курсора.
gtk_editable_get_position ()gint gtk_editable_get_position (gtkeditable *editable); определяет текущую позицию курсора.
gtk_editable_set_editable ()void gtk_editable_set_editable (gtkeditable *editable, gboolean is_editable); определяет может ли пользователь редактировать текст в редактируемом виджете.
gtk_editable_get_editable ()gboolean gtk_editable_get_editable (gtkeditable *editable);
определяет редактируем ли
детали сигналовсигнал "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
этот сигнал издаётся когда пользователь
вставляет текст в виджет. обработчик
сигнала по умолчанию обычно будет
отвечать за вставку текста, таким образом
подключая этот сигнал и останавливая
его с помощью
|