GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkTooltipsGtkTooltips Добавляет подсказки к вашим виджетам |
#include <gtk/gtk.h>
GtkTooltips;
GtkTooltipsData;
GtkTooltips* gtk_tooltips_new (void);
void gtk_tooltips_enable (GtkTooltips *tooltips);
void gtk_tooltips_disable (GtkTooltips *tooltips);
void gtk_tooltips_set_delay (GtkTooltips *tooltips,
guint delay);
void gtk_tooltips_set_tip (GtkTooltips *tooltips,
GtkWidget *widget,
const gchar *tip_text,
const gchar *tip_private);
GtkTooltipsData* gtk_tooltips_data_get (GtkWidget *widget);
void gtk_tooltips_force_window (GtkTooltips *tooltips);
gboolean gtk_tooltips_get_info_from_tip_window
(GtkWindow *tip_window,
GtkTooltips **tooltips,
GtkWidget **current_widget);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkTooltips
Подсказки являются сообщениями которые появляются рядом с виджетом, когда указатель мыши на короткое время фиксируется над ним. Они очень полезны для добавления более подробного описания к кнопкам на панели инструментов.
Индивидуальная подсказка принадлежит
группе подсказок. Группа создаётся с
помощью вызова gtk_tooltips_new()
.
Каждая подсказка в группе может быть
отключена с помощью gtk_tooltips_disable()
и включена с помошью gtk_tooltips_enable()
.
Продолжительность времени фиксации
указателя мыши над виджетом, перед
появлением подсказки, может изменяться
с помощью gtk_tooltips_set_delay()
.
Это в основном устанавливается 'через
группу подсказок'.
Для назначения подсказки для
определенного GtkWidget,
используйте gtk_tooltips_set_tip()
.
Подсказки
могут устанавливаться только для
виджетов имеющих собственное окно X
и получают события входа и выхода. Для
проверки имеет ли виджет собственное
окно используйте GTK_WIDGET_NO_WINDOW()
.
Для добавления подсказки к виджету
который не имеет собственного окна,
поместите этот виджет в GtkEventBox
и добавьте к нему подсказку.
По умолчанию появление подсказок в программе определяется текущемй темой GTK+, которую выбрал пользователь.
Информация о подсказке (если есть)
связанной с произвольным виджетом может
быть получена используя gtk_tooltips_data_get()
.
Пример 2. Добавление подсказок к кнопкам.
GtkWidget *load_button, *save_button, *hbox;
GtkTooltips *button_bar_tips;
button_bar_tips = gtk_tooltips_new ();
/* Создаём кнопки и упаковываем их в GtkHBox */
hbox = gtk_hbox_new (TRUE, 2);
load_button = gtk_button_new_with_label ("Load a file");
gtk_box_pack_start (GTK_BOX (hbox), load_button, TRUE, TRUE, 2);
gtk_widget_show (load_button);
save_button = gtk_button_new_with_label ("Save a file");
gtk_box_pack_start (GTK_BOX (hbox), save_button, TRUE, TRUE, 2);
gtk_widget_show (save_button);
gtk_widget_show (hbox);
/* Добавляем подсказки */
gtk_tooltips_set_tip (GTK_TOOLTIPS (button_bar_tips), load_button,
"Load a new document into this window",
"Requests the filename of a document.
This will then be loaded into the current
window, replacing the contents of whatever
is already loaded.");
gtk_tooltips_set_tip (GTK_TOOLTIPS (button_bar_tips), save_button,
"Saves the current document to a file",
"If you have saved the document previously,
then the new version will be saved over the
old one. Otherwise, you will be prompted for
a filename.");
typedef struct _GtkTooltips GtkTooltips;Содержит информацию о группе подсказок. Поля должны изменяться специальными функциями.
GtkTooltipsData
typedef struct { GtkTooltips *tooltips; GtkWidget *widget; gchar *tip_text; gchar *tip_private; } GtkTooltipsData;
tooltips
это группа GtkTooltips в которую входит данная подсказка.widget
это GtkWidget с которым связана данная подсказка.tip_text
это строка содержащая непосредственно сообщение подсказки.
tip_private
это строка которая не показывается как подсказка по умолчанию. Вместо этого, данное сообщение более информативно и обеспечивает формирование контекстно-зависимой системы помощи вашего приложения. (ПОПРАВЬТЕ МЕНЯ: как фактически "включить" скрытые подсказки?)
gtk_tooltips_new ()
GtkTooltips* gtk_tooltips_new (void);Создаёт новую группу подсказок. Эта функция инициализирует GtkTooltips структуру. Не имея ни одной такой структуры вы не сможете добавлять подсказки к вашему приложению.
Возвращает : |
Новая GtkTooltips группа для использования. |
void gtk_tooltips_enable (GtkTooltips *tooltips);Позволяет пользователю увидеть ваши подсказки, поскольку они управляются вашим приложением.
|
void gtk_tooltips_disable (GtkTooltips *tooltips);Делает все подсказки в
tooltips
неактивными. Любые виджеты имеющие подсказки связанные с этой группой не будут отображать их до тех пор, пока они не будут снова включены с помощьюgtk_tooltips_enable()
.
|
void gtk_tooltips_set_delay (GtkTooltips *tooltips,
guint delay);
gtk_tooltips_set_delay
устарела и не должна использоваться во
вновь создаваемом коде.
Устанавливает промежуток времени после которого появляется подсказка для виджета.
|
|
|
Целочисленное значение представляющее миллисекунды. |
void gtk_tooltips_set_tip (GtkTooltips *tooltips,
GtkWidget *widget,
const gchar *tip_text,
const gchar *tip_private);
Добавляет подсказку содержащую сообщение
tip_text
к определённому виджету
GtkWidget.
|
|
|
GtkWidget с которым вы связываете подсказку. |
|
Строка содержащая непосредственно подсказку. |
|
Строка которая выдаёт дополнительную информацию для пользователя. |
GtkTooltipsData* gtk_tooltips_data_get (GtkWidget *widget);Определяет любую GtkTooltipsData предварительно связанную с полученным виджетом.
|
|
Возвращает : |
GtkTooltipsData структура,
или |
void gtk_tooltips_force_window (GtkTooltips *tooltips);Гарантирует создание окна которое используется для отображения
tooltips
.Приложение никогда не должно вызывать эту функцию, так как GTK+ заботится об этом.
|
GtkToolTips |
gboolean gtk_tooltips_get_info_from_tip_window
(GtkWindow *tip_window,
GtkTooltips **tooltips,
GtkWidget **current_widget);
Определяет подсказки и связанные с ними виджеты, используя окно в котором они отображаются.
Эта функция главным образом для технологии доступности; приложения мало используют это.
|
|
|
Место для хранения возвращаемых
подсказок которые отображаются в
|
|
Место для хранения возвращаемого
виджета для которого отображается
подсказка, или |
Возвращает : |
Начиная с версии 2.4
Создаёт группы виджетов с собственными подсказками. |
|
Запрос подсказок для создания контекстно-зависимой помощи. |