The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties

GtkAccelLabel

GtkAccelLabel Метка которая отображает ключ акселератора справа от текста.

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

#include <gtk/gtk.h>


            GtkAccelLabel;
GtkWidget*  gtk_accel_label_new             (const gchar *string);
void        gtk_accel_label_set_accel_closure

                                            (GtkAccelLabel *accel_label,
                                             GClosure *accel_closure);
GtkWidget*  gtk_accel_label_get_accel_widget
                                            (GtkAccelLabel *accel_label);
void        gtk_accel_label_set_accel_widget

                                            (GtkAccelLabel *accel_label,
                                             GtkWidget *accel_widget);
guint       gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label);
gboolean    gtk_accel_label_refetch         (GtkAccelLabel *accel_label);

Иерархия объектов

  GObject
   +----GInitiallyUnowned
         +----GtkObject

               +----GtkWidget
                     +----GtkMisc
                           +----GtkLabel
                                 +----GtkAccelLabel

Осуществляемые интерфейсы

GtkAccelLabel осуществляет AtkImplementorIface.

Свойства

  "accel-closure"        GClosure              : Read / Write
  "accel-widget"         GtkWidget             : Read / Write

Описание

GtkAccelLabel виджет подкласс GtkLabel который также отображает ключ акселератора справа от текста метки, например 'Ctl+S'. Он обычно используется в меню для отображения сочетаний клавиш для быстрого доступа к коммандам.

Отображение акселератора не устанавливается явно. Вместо этого, GtkAccelLabel отображает акселераторы которые были добавлены к отдельному виджету. Этот виджет устанавливается вызовом gtk_accel_label_set_accel_widget().

Например, GtkMenuItem виджет может добавить акселератор для издания сигнала "activate" когда нажата ключевая комбинация 'Ctl+S'. GtkAccelLabel создаётся и добавляется к GtkMenuItem, а gtk_accel_label_set_accel_widget() вызывается с GtkMenuItem в качестве второго аргумента. GtkAccelLabel теперь отобразит 'Ctl+S' после метки.

Помните что создаваемый GtkMenuItem с помощью gtk_menu_item_new_with_label() (или одной из подобных функций для GtkCheckMenuItem и GtkRadioMenuItem) автоматически добавляет GtkAccelLabel к GtkMenuItem и вызывает gtk_accel_label_set_accel_widget() настраивая их для вас.

GtkAccelLabel отображает только акселераторы имеющие установку GTK_ACCEL_VISIBLE (смотрите GtkAccelFlags). GtkAccelLabel может отображать множество акселераторов и даже сообщать имена, хотя почти всегда используется для отображения только одного акселератора.

Пример 1. Создание простого меню с акселератором.

  GtkWidget *save_item;
  GtkAccelGroup *accel_group;

  /* Создаём GtkAccelGroup и добавляем к окну. */
  accel_group = gtk_accel_group_new ();
  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);

  /* Создаём пункты меню используя функцию удобства. */
  save_item = gtk_menu_item_new_with_label ("Save");
  gtk_widget_show (save_item);
  gtk_container_add (GTK_CONTAINER (menu), save_item);

  /* Теперь добавляем акселератор к GtkMenuItem. Помните что с тех пор как мы вызвали
     gtk_menu_item_new_with_label() для создания GtkMenuItem
     GtkAccelLabel автоматически устанавливается для отображения GtkMenuItem
     акселераторов. Нам просто нужно удостовериться в использовании GTK_ACCEL_VISIBLE. */
  gtk_widget_add_accelerator (save_item, "activate", accel_group,
                              GDK_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);

Детали

GtkAccelLabel

typedef struct _GtkAccelLabel GtkAccelLabel;

GtkAccelLabel структура содержит только закрытые данные и должна использоваться только функциями приведенными ниже.


gtk_accel_label_new ()

GtkWidget*  gtk_accel_label_new             (const gchar *string);

Создаёт новый GtkAccelLabel.

string :

Строка метка. Должна быть не-NULL.

Возвращает:

новый GtkAccelLabel.


gtk_accel_label_set_accel_closure ()

void        gtk_accel_label_set_accel_closure
                                            (GtkAccelLabel *accel_label,
                                             GClosure *accel_closure);

Устанавливает замкнутое выражение проверяемое этой меткой акселератора. Замкнутое выражение должно быть подключено к группе акселератора; смотрите gtk_accel_group_connect().

accel_label :

GtkAccelLabel

accel_closure :

Замкнутое выражение контролирующее изменение акселератора.


gtk_accel_label_get_accel_widget ()

GtkWidget*  gtk_accel_label_get_accel_widget
                                            (GtkAccelLabel *accel_label);

Извлекает виджет контролируемый меткой акселератора. Смотрите gtk_accel_label_set_accel_widget().

accel_label :

GtkAccelLabel

Возвращает:

Объект контролируемый меткой акселератора, или NULL.


gtk_accel_label_set_accel_widget ()

void        gtk_accel_label_set_accel_widget
                                            (GtkAccelLabel *accel_label,
                                             GtkWidget *accel_widget);

Устанавливает виджет контролируемый меткой акселератора.

accel_label :

GtkAccelLabel

accel_widget :

Виджет для контроля.


gtk_accel_label_get_accel_width ()

guint       gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label);

Возвращает ширину необходимую для отображения ключа акселератора. Это используется в меню для выравнивания всех GtkMenuItem виджетов и не должно быть необходимым для приложений.

accel_label :

GtkAccelLabel.

Возвращает:

Ширину для отображения ключа акселератора.


gtk_accel_label_refetch ()

gboolean    gtk_accel_label_refetch         (GtkAccelLabel *accel_label);

Пере-создаёт строку представляющую клавиши акселератора. В основном это не нужно, так как строка автоматически обновляется когда акселераторы добавляются или удаляются из связанного с ними виджета.

accel_label :

GtkAccelLabel.

Возвращает:

Всегда возвращается FALSE.

Детали свойств

Свойство "accel-closure"

  "accel-closure"        GClosure              : Read / Write

Закрытое выражение контролирующее изменение акселератора.


Свойство "accel-widget"

  "accel-widget"         GtkWidget             : Read / Write

Виджет контролируемый изменение акселератора.

Смотрите также

Keyboard Accelerators

Установка и использование клавиатурных short-cuts.

GtkItemFactory

Простой способ создания меню.






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру