📄 gtkobject.html
字号:
HREF=../glib/glib-basic-types.html#GPOINTER>gpointer</A> data);</PRE></TD></TR></TABLE><P>Adds a weak reference callback to an object.</P><P>Weak references are a mechanism to safely keep a pointer toan object without using the reference countingmechansim. They use a callback function to receivenotice that the object is about to be freed (aka finalized).This happens <ICLASS="EMPHASIS">after</I> the destroycallback has been run.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34301"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>object</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">object to weakly reference.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>notify</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">callback to invoke before the object is freed.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>data</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">extra data to pass to notify. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34319"></A><H3><ANAME="GTK-OBJECT-WEAKUNREF"></A>gtk_object_weakunref ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_object_weakunref (<AHREF="gtkobject.html">GtkObject</A> *object, <AHREF="gtk-types.html#GTKDESTROYNOTIFY">GtkDestroyNotify</A> notify, <AHREF=../glib/glib-basic-types.html#GPOINTER>gpointer</A> data);</PRE></TD></TR></TABLE><P>Removes a weak reference callback to an object.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34327"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>object</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">object stop weakly referencing.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>notify</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">callback to search for.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>data</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">data to search for. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34344"></A><H3><ANAME="GTK-OBJECT-DESTROY"></A>gtk_object_destroy ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_object_destroy (<AHREF="gtkobject.html">GtkObject</A> *object);</PRE></TD></TR></TABLE><P>Calls the object's shutdown handler.</P><P>The memory for the object itself won't be deleted untilits reference count drops to 0, though.See <AHREF="gtkobject.html#GTK-OBJECT-UNREF">gtk_object_unref</A>().</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34352"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>object</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the object to destroy. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34361"></A><H3><ANAME="GTK-OBJECT-GETV"></A>gtk_object_getv ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_object_getv (<AHREF="gtkobject.html">GtkObject</A> *object, <AHREF=../glib/glib-basic-types.html#GUINT>guint</A> n_args, <AHREF="gtk-types.html#GTKARG">GtkArg</A> *args);</PRE></TD></TR></TABLE><P>Gets an array of argument values from an object.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34369"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>object</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the object to get arguments from.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>n_args</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the number of arguments to query.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>args</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the arguments to fill in. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34386"></A><H3><ANAME="GTK-OBJECT-SET"></A>gtk_object_set ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_object_set (<AHREF="gtkobject.html">GtkObject</A> *object, const <AHREF=../glib/glib-basic-types.html#GCHAR>gchar</A> *first_arg_name, ...);</PRE></TD></TR></TABLE><P>This function sets multiple arguments of an object.</P><P>It takes an object, then a list of name/value pairsin a list, followed by NULL.</P><P><DIVCLASS="INFORMALEXAMPLE"><ANAME="AEN34395"></A><P></P><TABLEBORDER="0"BGCOLOR="#D8F8D8"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void set_box_properties(GtkBox* box){ gtk_object_set(GTK_OBJECT(box), "homogeneous", TRUE, "spacing", 8, NULL);}</PRE></TD></TR></TABLE><P></P></DIV></P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34397"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>object</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the object whose arguments should be set.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>first_arg_name</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the name of the first argument to set.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>...</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the value of the first argument, followed optionallyby more name/value pairs, followed by NULL. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34414"></A><H3><ANAME="GTK-OBJECT-SETV"></A>gtk_object_setv ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_object_setv (<AHREF="gtkobject.html">GtkObject</A> *object, <AHREF=../glib/glib-basic-types.html#GUINT>guint</A> n_args, <AHREF="gtk-types.html#GTKARG">GtkArg</A> *args);</PRE></TD></TR></TABLE><P>Set an array of arguments.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34422"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>object</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the object whose arguments should be set.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>n_args</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the number of arguments to set.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>args</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the desired values, as an array of GtkArgs (which contain the names, types, and values of the arguments). </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34440"></A><H3><ANAME="GTK-OBJECT-QUERY-ARGS"></A>gtk_object_query_args ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gtk-types.html#GTKARG">GtkArg</A>* gtk_object_query_args (<AHREF="gtk-types.html#GTKTYPE">GtkType</A> class_type, <AHREF=../glib/glib-basic-types.html#GUINT32>guint32</A> **arg_flags, <AHREF=../glib/glib-basic-types.html#GUINT>guint</A> *n_args);</PRE></TD></TR></TABLE><P>Get all the arguments that may be used for a given type.</P><P>In Java, this type of mechanism is called <ICLASS="WORDASWORD">introspection</I>. It is used by applicationslike Glade, that have to determine what can be done to an objectat run-time.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN34451"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>class_type</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the GtkType of the ObjectClass(returned from GTK_OBJECT_CLASS(class)->type for example).</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>arg_flags</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">if non-NULL, obtains the <AHREF="gtkobject.html#GTKARGFLAGS">GtkArgFlags</A> that apply toeach argument. You must <AHREF=../glib/glib-memory-allocation.html#G-FREE>g_free</A>() this if you request it.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>n_args</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">the number of arguments is returned in this field.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><ICLASS="EMPHASIS">Returns</I> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">an array of arguments, that you must deallocate with <AHREF=../glib/glib-memory-allocation.html#G-FREE>g_free</A>(). </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN34475"></A><H3><ANAME="GTK-OBJECT-SET-DATA"></A>gtk_object_set_data ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_object_set_data (<AHREF="gtkobject.html">GtkObject</A> *object, const <AHREF=../glib/glib-basic-types.html#GCHAR>gchar</A> *key, <AHREF=../glib/glib-basic-types.html#GPOINTER>gpointer</A> data);</PRE></TD></TR></TABLE><P>Each object carries around a table of associations fromstrings to pointers. This function lets you set
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -