| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Known Derived Interfaces | Properties | Signals | ||||
| GtkObjectGtkObject Базовый класс иерархии типов GTK+ | 
#include <gtk/gtk.h>
            GtkObject;
#define     GTK_OBJECT_TYPE                 (object)
#define     GTK_OBJECT_TYPE_NAME            (object)
enum        GtkObjectFlags;
#define     GTK_OBJECT_FLAGS                (obj)
#define     GTK_OBJECT_FLOATING             (obj)
enum        GtkArgFlags;
GtkObject*  gtk_object_new                  (GtkType type,
                                             const gchar *first_property_name,
                                             ...);
void        gtk_object_sink                 (GtkObject *object);
GtkObject*  gtk_object_ref                  (GtkObject *object);
void        gtk_object_unref                (GtkObject *object);
void        gtk_object_weakref              (GtkObject *object,
                                             GtkDestroyNotify notify,
                                             gpointer data);
void        gtk_object_weakunref            (GtkObject *object,
                                             GtkDestroyNotify notify,
                                             gpointer data);
void        gtk_object_destroy              (GtkObject *object);
void        gtk_object_get                  (GtkObject *object,
                                             const gchar *first_property_name,
                                             ...);
void        gtk_object_set                  (GtkObject *object,
                                             const gchar *first_property_name,
                                             ...);
void        gtk_object_set_data             (GtkObject *object,
                                             const gchar *key,
                                             gpointer data);
void        gtk_object_set_data_full        (GtkObject *object,
                                             const gchar *key,
                                             gpointer data,
                                             GtkDestroyNotify destroy);
void        gtk_object_remove_data          (GtkObject *object,
                                             const gchar *key);
gpointer    gtk_object_get_data             (GtkObject *object,
                                             const gchar *key);
void        gtk_object_remove_no_notify     (GtkObject *object,
                                             const gchar *key);
void        gtk_object_set_user_data        (GtkObject *object,
                                             gpointer data);
gpointer    gtk_object_get_user_data        (GtkObject *object);
void        gtk_object_add_arg_type         (const gchar *arg_name,
                                             GtkType arg_type,
                                             guint arg_flags,
                                             guint arg_id);
void        gtk_object_set_data_by_id       (GtkObject *object,
                                             GQuark data_id,
                                             gpointer data);
void        gtk_object_set_data_by_id_full  (GtkObject *object,
                                             GQuark data_id,
                                             gpointer data,
                                             GtkDestroyNotify destroy);
gpointer    gtk_object_get_data_by_id       (GtkObject *object,
                                             GQuark data_id);
void        gtk_object_remove_data_by_id    (GtkObject *object,
                                             GQuark data_id);
void        gtk_object_remove_no_notify_by_id
                                            (GtkObject *object,
                                             GQuark key_id);
#define     gtk_object_data_try_key
#define     gtk_object_data_force_id
  GObject
   +----GInitiallyUnowned
         +----GtkObject
               +----GtkWidget
               +----GtkAdjustment
               +----GtkCellRenderer
               +----GtkFileFilter
               +----GtkItemFactory
               +----GtkTooltips
               +----GtkTreeViewColumn
               +----GtkRecentFilterGtkObject требует GtkRecentChooser.
"user-data" gpointer : Read / Write
"destroy"   void        user_function      (GtkObject *object,
                                            gpointer   user_data)      : Cleanup / No recursion / No hooks
GtkObject это базовый класс для всех виджетов, а также объектов таких как GtkAdjustment. GtkObject предшественник GObject; не виджеты происходящие из GtkObject вместо GObject необходимы для обратной совместимости.
GtkObjects создаётся с "плавающим"
подсчетом ссылок. Это означает, что
начальная ссылка не принадлежит никому.
Вызов g_object_unref()
для вновь созданного GtkObject
некорректен, сначала должна удаляться
плавающая ссылка. Это может сделать кто
угодно в любое время, вызвав
g_object_ref_sink()
для преобразования плавающей ссылки в
обычную. g_object_ref_sink()
возвращает новую ссылку если объект
уже не имеет плавающей ссылки. 
Когда вы добавляете виджет в его родительский контейнер, родительский контейнер выполняет следующее:
g_object_ref_sink (G_OBJECT (child_widget));
Это значит что контейнер теперь владеет ссылкой на дочерний виджет и дочерний виджет имеет плавающую ссылку.
Цель плавающей ссылки заключается в том, чтобы поддержать существование виджета до добавления его в родительский контейнер:
button = gtk_button_new (); /* кнопка имеет одну плавающую ссылку для своего существования */ gtk_container_add (GTK_CONTAINER (container), button); /* кнопка имеет одну не плавающую ссылку которой владеет контейнер */
GtkWindow  особый случай,
потому что GTK+ самостоятельно будет
ссылаться и/или снимать ссылку на него
при создании. Таким образом, после вызова
gtk_window_new(),
GtkWindow будет иметь одну
ссылку которой владеет GTK+, а не плавающую
ссылку. 
Ещё один фактор входит в соблюдение
правил: сигнал "destroy", издаваемый
с помощью gtk_object_destroy().
Сигнал "destroy" запрашивает весь код
имея ссылку объекта для освобождения
ссылки. Таким образом, например, если
вы вызовите gtk_object_destroy()
на GtkWindow, GTK+ освободит
ссылки которыми он владеет; если вы
вызовите gtk_object_destroy()
на GtkButton, то кнопка будет
удалена из родительского контейнера а
родительский контейнер будет освобожден
от ссылки на кнопку. Поскольку ссылка
освобождена, вызов gtk_object_destroy()
должен освободить всю память связанную
с объектом, за исключением ошибочного
кода который не в состоянии освободить
собственные ссылки в ответ на сигнал
"destroy". Освобождение памяти
(упоминается как finalization) происходит
только если количество ссылок равно
нулю. 
Некоторые простые правила для обработки GtkObject:
Никогда не вызывайте g_object_unref(),
	если предварительно не вызвали
	g_object_ref(),
	даже если вы создали GtkObject.
	(ПОМНИТЕ: это не правильно для GObject;
	для GObject,
	создатель объекта владеет ссылкой.) 
	
Вызывайте gtk_object_destroy()
	для избавления от большинства объектов
	в большинстве случаев. В частности,
	виджеты практически всегда разрушаются
	подобным способом. 
	
Из-за плавающего счета ссылок, вы
	не должны беспокоиться о счете ссылок
	для виджетов и окон верхнего уровня,
	если вы не вызовите g_object_ref()
	самостоятельно.
typedef struct _GtkObject GtkObject;
Непосредственно сам объект. Для доступа к нему используйте макрос.
#define GTK_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
Определяет тип объекта.
| 
 | 
#define GTK_OBJECT_TYPE_NAME(object) (g_type_name (GTK_OBJECT_TYPE (object)))
Определяет типовое имя объекта.
| 
 | 
typedef enum { GTK_IN_DESTRUCTION = 1 << 0, /* Used internally during dispose */ #if !defined (GTK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION) GTK_FLOATING = 1 << 1, #endif GTK_RESERVED_1 = 1 << 2, GTK_RESERVED_2 = 1 << 3 } GtkObjectFlags;
Сообщает о состоянии объекта.
| Объект в текущий момент находится в состоянии разрушения. Это используется внутренне GTK+ для предотвращения повторных вызовов разрушения. | |
| Зарезервировано для использования в будущем. | 
#define GTK_OBJECT_FLAGS(obj) (GTK_OBJECT (obj)->flags)
Определяет GtkObjectFlags для объекта, не обращаясь к его членам.
| 
 | Объект из которого возвращаются флажки. | 
#define GTK_OBJECT_FLOATING(obj) (g_object_is_floating (obj))
GTK_OBJECT_FLOATING
устарела и не должна использоваться во
вновь создаваемом коде.
Возвращает TRUE
если объект всё ещё имеет плавающие
ссылки. Смотрите краткий обзор GtkObject.
| 
 | Объект для проверки. | 
typedef enum { GTK_ARG_READABLE = G_PARAM_READABLE, GTK_ARG_WRITABLE = G_PARAM_WRITABLE, GTK_ARG_CONSTRUCT = G_PARAM_CONSTRUCT, GTK_ARG_CONSTRUCT_ONLY = G_PARAM_CONSTRUCT_ONLY, GTK_ARG_CHILD_ARG = 1 << 4 } GtkArgFlags;
GtkArgFlags
устарела и не должна использоваться во
вновь создаваемом коде. В будущем
используйте вместо неё  GParamSpec
Возможные флажки указывающие какие аргументы должны быть обработаны.
| Читабельный. (то есть может выполняться запрос) | |
| Записываемый. (то есть может устанавливаться) | |
| Нуждается в конструкции. | |
| Нуждается в конструкции (и создаётся один раз во время создания объекта) и по другому не может быть установлен. Следовательно этот флажок не допускает GTK_ARG_WRITABLE, и избыточен для GTK_ARG_CONSTRUCT. | |
| Тип параметра применяемый к каждому дочернему элементу. Используется для GtkContainer. | 
GtkObject*  gtk_object_new                  (GtkType type,
                                             const gchar *first_property_name,
                                             ...);gtk_object_new
устарела и не должна использоваться во
вновь создаваемом коде. Используйте
вместо неё g_object_new().
Создаёт объект определяя его аргументы, перечисленные в вызове функции.
| 
 | Тип идентифицирующий этот объект.
			Возвращённый  | 
| 
 | Имя первого свойства для установки при конструировании объекта. | 
| 
 | Значение первого аргумента, далее
			любое количество пар имя/значение-аргумента,
			заканчивается  | 
| Возвращает : | новый GtkObject. | 
void gtk_object_sink (GtkObject *object);
gtk_object_sink
устарела начиная с версии 2.10 и не должна
использоваться во вновь создаваемом
коде. Вместо неё используйте
g_object_ref_sink().
Удаляет плавающую ссылку из GtkObject, если есть; иначе ничего не делает. Смотрите краткое описание GtkObject.
| 
 | Объект для снятия плавающей ссылки. | 
GtkObject* gtk_object_ref (GtkObject *object);
gtk_object_ref
устарела и не должна использоваться во
вновь создаваемом коде. Используйте
вместо неё g_object_ref().
Увеличивает количество плавающих ссылок объекта.
| 
 | Объект для ссылки. | 
| Возвращает : | 
 | 
void gtk_object_unref (GtkObject *object);
gtk_object_unref
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_unref().
Уменьшает количество ссылок на объект. Когда количество ссылок доходит до 0, объект удаляется (то есть память освобождается).
| 
 | Объект для уменьшения ссылок. | 
void        gtk_object_weakref              (GtkObject *object,
                                             GtkDestroyNotify notify,
                                             gpointer data);gtk_object_weakref
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_weak_ref().
Добавляет слабую ссылку для объекта.
Слабая ссылка используется как уведомление
о завершении цикла существования
объекта. Их называют "weak references",
потому что они позволяют удерживать
указатель на объект без вызова
g_object_ref()
(g_object_ref()
добавляет жесткую ссылку, то есть,
заставляет объект существовать). 
| 
 | Объект для слабой ссылки. | 
| 
 | Callback-функция вызываемая перед освобождением объекта. | 
| 
 | Дополнительные данные для помещения в уведомление (notify). | 
void        gtk_object_weakunref            (GtkObject *object,
                                             GtkDestroyNotify notify,
                                             gpointer data);gtk_object_weakunref
устарела и не должна использоваться во
вновь создаваемом коде. Используйте
вместо неё g_object_weak_unref().
Удаляет слабые ссылки для объекта.
| 
 | Объект слабые ссылки на который удаляются. | 
| 
 | Callback-функция для поиска. | 
| 
 | Данные для поиска. | 
void gtk_object_destroy (GtkObject *object);
Издаёт сигнал "destroy" уведомляющий что все ссылки на объект GtkObject освобождаются. Смотрите краткое описание.
Память для самого объекта не будет
освобождена до тех пор, пока количество
ссылок не достигнет 0; gtk_object_destroy()
просто освобождает ссылки, она не создаёт
пустого объекта. 
| 
 | Объект для удаления ссылок. | 
void        gtk_object_get                  (GtkObject *object,
                                             const gchar *first_property_name,
                                             ...);gtk_object_get
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_get().
Определяет свойства объекта.
| 
 | |
| 
 | Имя первого свойства для определения значения. | 
| 
 | 
 | 
void        gtk_object_set                  (GtkObject *object,
                                             const gchar *first_property_name,
                                             ...);gtk_object_set
устарела и не должна использоваться во
вновь создаваемом коде. Используйте
вместо неё g_object_set().
Устанавливает свойства для объекта.
void set_box_properties (GtkBox* box) { gtk_object_set (GTK_OBJECT (box), "homogeneous", TRUE, "spacing", 8, NULL); }
| 
 | |
| 
 | Имя первого свойства для установки | 
| 
 | Значение первого аргумента, далее
			опционально следует большое количество
			пар имя/значение, завершается  | 
void        gtk_object_set_data             (GtkObject *object,
                                             const gchar *key,
                                             gpointer data);gtk_object_set_data
устарела и не должна использоваться во
вновь создаваемом коде. Вместо ней
используйте g_object_set_data().
Каждый объект сопровождают ассоциации от строк до указателей. Эта функция позволяет установить ассоциацию.
Если объект уже имеет ассоциацию с именем, то она будет уничтожена.
| 
 | Объект содержащий ассоциации. | 
| 
 | Имя ключа. | 
| 
 | Данные связанные с ключом. | 
void        gtk_object_set_data_full        (GtkObject *object,
                                             const gchar *key,
                                             gpointer data,
                                             GtkDestroyNotify destroy);gtk_object_set_data_full
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_set_data_full().
Тоже самое что gtk_object_set_data(),
но добавляет уведомление при разрушении
ассоциации, с помощью gtk_object_remove_data()
или когда разрушается объект. 
| 
 | Объект содержащий ассоциации. | 
| 
 | Имя ключа. | 
| 
 | Данные связанные с ключом. | 
| 
 | Функция вызываемая при уничтожении ассоциации. | 
void        gtk_object_remove_data          (GtkObject *object,
                                             const gchar *key);gtk_object_remove_data
устарела и не должна использоваться во
вновь создаваемом коде. Используйте
g_object_set_data()
для установки данных объекта в NULL.
Удаляет определённые данные из
ассоциированных данных объекта
(object_data). Последующие вызовы
gtk_object_get_data()
вернут NULL.
Если вы определили уничтожающий
обработчик с помощью gtk_object_set_data_full(),
он будет вызван. 
| 
 | Объект поддерживающий ассоциацию. | 
| 
 | Имя ключа для ассоциации. | 
gpointer    gtk_object_get_data             (GtkObject *object,
                                             const gchar *key);gtk_object_get_data
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_get_data().
Определяет именованное поле из объектной таблицы ассоциаций (object_data).
| 
 | объект поддерживающий ассоциации. | 
| 
 | Имя ключа для этой ассоциации. | 
| Возвращает : | Данные если найдены, или  | 
void        gtk_object_remove_no_notify     (GtkObject *object,
                                             const gchar *key);gtk_object_remove_no_notify
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_steal_data().
Удаляет данные из ассоциаций объекта (object_data), не вызывает уничтожающий обработчик.
Тоже что и gtk_object_remove_data(),
за исключением игнорирования уничтожающего
обработчика. Поэтому данная функция
затрагивает только данные установленные
с помощью gtk_object_set_data_full().
| 
 | объект поддерживающий ассоциации. | 
| 
 | Имя ключа для ассоциации. | 
void        gtk_object_set_user_data        (GtkObject *object,
                                             gpointer data);gtk_object_set_user_data
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_set_data().
Ля удобства, каждый объект предлагает основной указатель пользовательских данных. Эта функция устанавливает их.
| 
 | Объект для установки пользовательских данных. | 
| 
 | Новое значение пользовательских данных. | 
gpointer gtk_object_get_user_data (GtkObject *object);
gtk_object_get_user_data
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_get_data().
Определяет указатель пользовательских данных.
Этот указатель предназначен для удобства при написании вашего приложения.
| 
 | объект. | 
| Возвращает : | Область пользовательских данных для объекта. | 
void        gtk_object_add_arg_type         (const gchar *arg_name,
                                             GtkType arg_type,
                                             guint arg_flags,
                                             guint arg_id);gtk_object_add_arg_type
устарела и не должна использоваться во
вновь создаваемом коде.
Устарела, вместо неё используется система свойств GObject включая GParamSpec. Добавляет новый тип аргумента для объектного класса. Обычно вызывается при регистрации нового типа объекта.
| 
 | Полностью квалифицированное имя объекта, например GtkObject::user_data. | 
| 
 | Тип аргумента. | 
| 
 | поразрядное-ИЛИ перечисления GtkArgFlags. (Является ли аргумент settable или gettable, устанавливается ли при конструировании объекта.) | 
| 
 | Внутренний номер, передаётся в или из "set_arg" и "get_arg" обработчиков объекта. | 
void        gtk_object_set_data_by_id       (GtkObject *object,
                                             GQuark data_id,
                                             gpointer data);gtk_object_set_data_by_id
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_set_qdata().
То же, что и gtk_object_set_data(),
но вместо строки принимает GQuark,
поэтому немного быстрее. 
Используйте gtk_object_data_try_key()
и gtk_object_data_force_id()
для определения id из строки. 
| 
 | Объект содержащий ассоциации. | 
| 
 | Кварк (quark) ключа. | 
| 
 | Данные ассоциированные с ключом. | 
void        gtk_object_set_data_by_id_full  (GtkObject *object,
                                             GQuark data_id,
                                             gpointer data,
                                             GtkDestroyNotify destroy);gtk_object_set_data_by_id_full
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_set_qdata_full().
То же, что и gtk_object_set_data_full(),
за исключение м использования GQuark
вместо строки, что немного быстрее. 
Используйте gtk_object_data_try_key()
и gtk_object_data_force_id()
для получения id из строки. 
| 
 | Объект содержащий ассоциации. | 
| 
 | Кварк (quark) ключа. | 
| 
 | Данные связанные с ключом. | 
| 
 | Функция вызываемая при разрушении ассоциации. | 
gpointer    gtk_object_get_data_by_id       (GtkObject *object,
                                             GQuark data_id);gtk_object_get_data_by_id
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_get_qdata().
То же, что и gtk_object_get_data(),
за исключением использования GQuark
вместо строки, что немного быстрее. 
Используйте gtk_object_data_try_key()
и gtk_object_data_force_id()
для получения id из строки. 
| 
 | Объект содержащий ассоциации. | 
| 
 | Кварк (quark) ключа. | 
| Возвращает : | Данные если найдены, или  | 
void        gtk_object_remove_data_by_id    (GtkObject *object,
                                             GQuark data_id);gtk_object_remove_data_by_id
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_set_qdata()
с NULL
вместо данных.
Тоже самое, что и gtk_object_remove_data(),
за исключением использования GQuark
вместо строки, что немного быстрее. 
Удаляет определённые данные из
ассоциированных данных объекта.
Последующие вызовы gtk_object_get_data()
возвратят NULL.
Используйте gtk_object_data_try_key()
и gtk_object_data_force_id()
для получения id из строки. 
| 
 | Объект содержащий ассоциации. | 
| 
 | Кварк (quark) ключа. | 
void        gtk_object_remove_no_notify_by_id
                                            (GtkObject *object,
                                             GQuark key_id);gtk_object_remove_no_notify_by_id
устарела и не должна использоваться во
вновь создаваемом коде. Вместо неё
используйте g_object_steal_qdata().
Тоже что и gtk_object_remove_no_notify(),
за исключением использования GQuark
вместо строки, что немного быстрее. 
Используйте gtk_object_data_try_key()
и gtk_object_data_force_id()
для получения id из строки. 
| 
 | Объект содержащий ассоциации. | 
| 
 | Кварк (quark) ключа. | 
#define gtk_object_data_try_key g_quark_try_string
gtk_object_data_try_key
устарела и не должна использоваться во
вновь создаваемом коде.
Устаревший макрос. Игнорируйте его.
#define gtk_object_data_force_id g_quark_from_string
gtk_object_data_force_id
устарела и не должна использоваться во
вновь создаваемом коде.
Устаревший макрос. Игнорируйте его.
user-data""user-data" gpointer : Read / Write
Анонимный указатель используемых данных (Anonymous User Data Pointer).
void        user_function                  (GtkObject *object,
                                            gpointer   user_data)      : Cleanup / No recursion / No hooksСигнализирует об освобождении всех ссылок на GtkObject. Может привести к уничтожению объекта если освободит все ссылки.
| 
 | Объект получающий сигнал. | 
| 
 | Данные используемые для установки при подключении обработчика сигнала. | 
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |