<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MixDisplay</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Mi-X Video Reference Manual">
<link rel="up" href="ch01.html" title="MI-X Video API">
<link rel="prev" href="MixDrmParams.html" title="MixDrmParams">
<link rel="next" href="MixDisplayX11.html" title="MixDisplayX11">
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="ch01.html" title="MI-X Video API">
<link rel="chapter" href="object-tree.html" title="Object Hierarchy">
<link rel="index" href="api-index-full.html" title="API Index">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="MixDrmParams.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Mi-X Video Reference Manual</th>
<td><a accesskey="n" href="MixDisplayX11.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#MixDisplay.synopsis" class="shortcut">Top</a>
                 | 
                <a href="#MixDisplay.description" class="shortcut">Description</a>
                 | 
                <a href="#MixDisplay.object-hierarchy" class="shortcut">Object Hierarchy</a>
</td></tr>
</table>
<div class="refentry" title="MixDisplay">
<a name="MixDisplay"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="MixDisplay.top_of_page"></a>MixDisplay</span></h2>
<p>MixDisplay — Lightweight Base Object for MI-X Video Display</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="MixDisplay.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#define             <a class="link" href="MixDisplay.html#MIX-DISPLAY-CLASS--CAPS" title="MIX_DISPLAY_CLASS()">MIX_DISPLAY_CLASS</a>                   (klass)
#define             <a class="link" href="MixDisplay.html#MIX-DISPLAY-CAST--CAPS" title="MIX_DISPLAY_CAST()">MIX_DISPLAY_CAST</a>                    (obj)
<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        (<a class="link" href="MixDisplay.html#MixDisplayDupFunction" title="MixDisplayDupFunction ()">*MixDisplayDupFunction</a>)            (const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
bool            (<a class="link" href="MixDisplay.html#MixDisplayCopyFunction" title="MixDisplayCopyFunction ()">*MixDisplayCopyFunction</a>)           (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *target,
                                                         const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *src);
void                (<a class="link" href="MixDisplay.html#MixDisplayFinalizeFunction" title="MixDisplayFinalizeFunction ()">*MixDisplayFinalizeFunction</a>)       (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
bool            (<a class="link" href="MixDisplay.html#MixDisplayEqualFunction" title="MixDisplayEqualFunction ()">*MixDisplayEqualFunction</a>)          (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *first,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *second);
#define             <a class="link" href="MixDisplay.html#MIX-VALUE-HOLDS-DISPLAY--CAPS" title="MIX_VALUE_HOLDS_DISPLAY()">MIX_VALUE_HOLDS_DISPLAY</a>             (value)
#define             <a class="link" href="MixDisplay.html#MIX-DISPLAY-REFCOUNT--CAPS" title="MIX_DISPLAY_REFCOUNT()">MIX_DISPLAY_REFCOUNT</a>                (obj)
#define             <a class="link" href="MixDisplay.html#MIX-DISPLAY-REFCOUNT-VALUE--CAPS" title="MIX_DISPLAY_REFCOUNT_VALUE()">MIX_DISPLAY_REFCOUNT_VALUE</a>          (obj)
                    <a class="link" href="MixDisplay.html#MixDisplay-struct" title="MixDisplay">MixDisplay</a>;
<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        <a class="link" href="MixDisplay.html#mix-display-new" title="mix_display_new ()">mix_display_new</a>                     ();
bool            <a class="link" href="MixDisplay.html#mix-display-copy" title="mix_display_copy ()">mix_display_copy</a>                    (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *target,
                                                         const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *src);
<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        <a class="link" href="MixDisplay.html#mix-display-ref" title="mix_display_ref ()">mix_display_ref</a>                     (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
void                <a class="link" href="MixDisplay.html#mix-display-unref" title="mix_display_unref ()">mix_display_unref</a>                   (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
void                <a class="link" href="MixDisplay.html#mix-display-replace" title="mix_display_replace ()">mix_display_replace</a>                 (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> **olddata,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *newdata);
<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        <a class="link" href="MixDisplay.html#mix-display-dup" title="mix_display_dup ()">mix_display_dup</a>                     (const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
bool            <a class="link" href="MixDisplay.html#mix-display-equal" title="mix_display_equal ()">mix_display_equal</a>                   (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *first,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *second);
#define             <a class="link" href="MixDisplay.html#MIX-TYPE-PARAM-DISPLAY--CAPS" title="MIX_TYPE_PARAM_DISPLAY">MIX_TYPE_PARAM_DISPLAY</a>
#define             <a class="link" href="MixDisplay.html#MIX-IS-PARAM-SPEC-DISPLAY--CAPS" title="MIX_IS_PARAM_SPEC_DISPLAY()">MIX_IS_PARAM_SPEC_DISPLAY</a>           (pspec)
#define             <a class="link" href="MixDisplay.html#MIX-PARAM-SPEC-DISPLAY--CAPS" title="MIX_PARAM_SPEC_DISPLAY()">MIX_PARAM_SPEC_DISPLAY</a>              (pspec)
                    <a class="link" href="MixDisplay.html#MixParamSpecDisplay" title="MixParamSpecDisplay">MixParamSpecDisplay</a>;
GType               <a class="link" href="MixDisplay.html#mix-param-spec-display-get-type" title="mix_param_spec_display_get_type ()">mix_param_spec_display_get_type</a>     (void);
GParamSpec *        <a class="link" href="MixDisplay.html#mix-param-spec-display" title="mix_param_spec_display ()">mix_param_spec_display</a>              (const char *name,
                                                         const char *nick,
                                                         const char *blurb,
                                                         GType object_type,
                                                         GParamFlags flags);
void                <a class="link" href="MixDisplay.html#mix-value-set-display" title="mix_value_set_display ()">mix_value_set_display</a>               (GValue *value,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
void                <a class="link" href="MixDisplay.html#mix-value-take-display" title="mix_value_take_display ()">mix_value_take_display</a>              (GValue *value,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);
<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        <a class="link" href="MixDisplay.html#mix-value-get-display" title="mix_value_get_display ()">mix_value_get_display</a>               (const GValue *value);
<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        <a class="link" href="MixDisplay.html#mix-value-dup-display" title="mix_value_dup_display ()">mix_value_dup_display</a>               (const GValue *value);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="MixDisplay.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  MixDisplay
   +----<a class="link" href="MixDisplayX11.html" title="MixDisplayX11">MixDisplayX11</a>
</pre>
</div>
<div class="refsect1" title="Description">
<a name="MixDisplay.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1" title="Details">
<a name="MixDisplay.details"></a><h2>Details</h2>
<div class="refsect2" title="MIX_DISPLAY_CLASS()">
<a name="MIX-DISPLAY-CLASS--CAPS"></a><h3>MIX_DISPLAY_CLASS()</h3>
<pre class="programlisting">#define MIX_DISPLAY_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST ((klass), MIX_TYPE_DISPLAY, MixDisplayClass))
</pre>
</div>
<hr>
<div class="refsect2" title="MIX_DISPLAY_CAST()">
<a name="MIX-DISPLAY-CAST--CAPS"></a><h3>MIX_DISPLAY_CAST()</h3>
<pre class="programlisting">#define MIX_DISPLAY_CAST(obj)     ((MixDisplay*)(obj))
</pre>
</div>
<hr>
<div class="refsect2" title="MixDisplayDupFunction ()">
<a name="MixDisplayDupFunction"></a><h3>MixDisplayDupFunction ()</h3>
<pre class="programlisting"><a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        (*MixDisplayDupFunction)            (const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Virtual function prototype for methods to create duplicate of instance.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> Display to duplicate
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> reference to cloned instance. 
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MixDisplayCopyFunction ()">
<a name="MixDisplayCopyFunction"></a><h3>MixDisplayCopyFunction ()</h3>
<pre class="programlisting">bool            (*MixDisplayCopyFunction)           (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *target,
                                                         const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *src);</pre>
<p>
Virtual function prototype for methods to create copies of instance.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
<td> target of the copy
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td> source of the copy
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> boolean indicates if copy is successful.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MixDisplayFinalizeFunction ()">
<a name="MixDisplayFinalizeFunction"></a><h3>MixDisplayFinalizeFunction ()</h3>
<pre class="programlisting">void                (*MixDisplayFinalizeFunction)       (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Virtual function prototype for methods to free ressources used by
object.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> Display to finalize
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MixDisplayEqualFunction ()">
<a name="MixDisplayEqualFunction"></a><h3>MixDisplayEqualFunction ()</h3>
<pre class="programlisting">bool            (*MixDisplayEqualFunction)          (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *first,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *second);</pre>
</div>
<hr>
<div class="refsect2" title="MIX_VALUE_HOLDS_DISPLAY()">
<a name="MIX-VALUE-HOLDS-DISPLAY--CAPS"></a><h3>MIX_VALUE_HOLDS_DISPLAY()</h3>
<pre class="programlisting">#define MIX_VALUE_HOLDS_DISPLAY(value)  (G_VALUE_HOLDS(value, MIX_TYPE_DISPLAY))
</pre>
<p>
Checks if the given <span class="type">GValue</span> contains a <span class="type">MIX_TYPE_PARAM</span> value.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td> the <span class="type">GValue</span> to check
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MIX_DISPLAY_REFCOUNT()">
<a name="MIX-DISPLAY-REFCOUNT--CAPS"></a><h3>MIX_DISPLAY_REFCOUNT()</h3>
<pre class="programlisting">#define MIX_DISPLAY_REFCOUNT(obj)           ((MIX_DISPLAY_CAST(obj))-&gt;refcount)
</pre>
<p>
Get access to the reference count field of the object.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> a <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MIX_DISPLAY_REFCOUNT_VALUE()">
<a name="MIX-DISPLAY-REFCOUNT-VALUE--CAPS"></a><h3>MIX_DISPLAY_REFCOUNT_VALUE()</h3>
<pre class="programlisting">#define MIX_DISPLAY_REFCOUNT_VALUE(obj)     (g_atomic_int_get (&amp;(MIX_DISPLAY_CAST(obj))-&gt;refcount))
</pre>
<p>
Get the reference count value of the object</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> a <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MixDisplay">
<a name="MixDisplay-struct"></a><h3>MixDisplay</h3>
<pre class="programlisting">typedef struct {
  int refcount;
} MixDisplay;
</pre>
<p>
Base class for a refcounted parameter objects.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term">int <em class="structfield"><code>refcount</code></em>;</span></p></td>
<td> atomic refcount
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_new ()">
<a name="mix-display-new"></a><h3>mix_display_new ()</h3>
<pre class="programlisting"><a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        mix_display_new                     ();</pre>
<p>
Create new instance of the object.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> return a newly allocated object.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_copy ()">
<a name="mix-display-copy"></a><h3>mix_display_copy ()</h3>
<pre class="programlisting">bool            mix_display_copy                    (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *target,
                                                         const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *src);</pre>
<p>
Copy data from one instance to the other. This method internally invoked the <span class="type">"copy"</span> method such that derived object will be copied correctly.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
<td> copy to target
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td> copy from source
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> boolean indicating if copy is successful.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_ref ()">
<a name="mix-display-ref"></a><h3>mix_display_ref ()</h3>
<pre class="programlisting"><a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        mix_display_ref                     (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Increment reference count.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> a <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a> object.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> the object with reference count incremented.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_unref ()">
<a name="mix-display-unref"></a><h3>mix_display_unref ()</h3>
<pre class="programlisting">void                mix_display_unref                   (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Decrement reference count.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> a <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a> object.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_replace ()">
<a name="mix-display-replace"></a><h3>mix_display_replace ()</h3>
<pre class="programlisting">void                mix_display_replace                 (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> **olddata,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *newdata);</pre>
<p>
Replace a pointer of the object with the new one.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>olddata</code></em> :</span></p></td>
<td> old data
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>newdata</code></em> :</span></p></td>
<td> new data
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_dup ()">
<a name="mix-display-dup"></a><h3>mix_display_dup ()</h3>
<pre class="programlisting"><a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        mix_display_dup                     (const <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Duplicate the given <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a> and allocate a new instance. This method is chained up properly and derive object will be dupped properly.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a> object to duplicate.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> A newly allocated duplicate of the object, or NULL if failed.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_display_equal ()">
<a name="mix-display-equal"></a><h3>mix_display_equal ()</h3>
<pre class="programlisting">bool            mix_display_equal                   (<a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *first,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *second);</pre>
<p>
Note that the parameter comparison compares the values that are hold inside the object, not for checking if the 2 pointers are of the same instance.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>first</code></em> :</span></p></td>
<td> first object to compare
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>second</code></em> :</span></p></td>
<td> second object to compare
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> boolean indicates if the 2 object contains same data.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="MIX_TYPE_PARAM_DISPLAY">
<a name="MIX-TYPE-PARAM-DISPLAY--CAPS"></a><h3>MIX_TYPE_PARAM_DISPLAY</h3>
<pre class="programlisting">#define MIX_TYPE_PARAM_DISPLAY (mix_param_spec_display_get_type())
</pre>
</div>
<hr>
<div class="refsect2" title="MIX_IS_PARAM_SPEC_DISPLAY()">
<a name="MIX-IS-PARAM-SPEC-DISPLAY--CAPS"></a><h3>MIX_IS_PARAM_SPEC_DISPLAY()</h3>
<pre class="programlisting">#define MIX_IS_PARAM_SPEC_DISPLAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), MIX_TYPE_PARAM_DISPLAY))
</pre>
</div>
<hr>
<div class="refsect2" title="MIX_PARAM_SPEC_DISPLAY()">
<a name="MIX-PARAM-SPEC-DISPLAY--CAPS"></a><h3>MIX_PARAM_SPEC_DISPLAY()</h3>
<pre class="programlisting">#define MIX_PARAM_SPEC_DISPLAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), MIX_TYPE_PARAM_DISPLAY, MixParamSpecDisplay))
</pre>
</div>
<hr>
<div class="refsect2" title="MixParamSpecDisplay">
<a name="MixParamSpecDisplay"></a><h3>MixParamSpecDisplay</h3>
<pre class="programlisting">typedef struct {
  GParamSpec parent;
} MixParamSpecDisplay;
</pre>
<p>
A <span class="type">GParamSpec</span> derived structure that contains the meta data
for <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a> properties.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term">GParamSpec <em class="structfield"><code>parent</code></em>;</span></p></td>
<td> <span class="type">GParamSpec</span> portion
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_param_spec_display_get_type ()">
<a name="mix-param-spec-display-get-type"></a><h3>mix_param_spec_display_get_type ()</h3>
<pre class="programlisting">GType               mix_param_spec_display_get_type     (void);</pre>
</div>
<hr>
<div class="refsect2" title="mix_param_spec_display ()">
<a name="mix-param-spec-display"></a><h3>mix_param_spec_display ()</h3>
<pre class="programlisting">GParamSpec *        mix_param_spec_display              (const char *name,
                                                         const char *nick,
                                                         const char *blurb,
                                                         GType object_type,
                                                         GParamFlags flags);</pre>
<p>
Creates a new <span class="type">GParamSpec</span> instance that hold <a class="link" href="MixDisplay.html" title="MixDisplay"><span class="type">MixDisplay</span></a> references.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td> the canonical name of the property
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
<td> the nickname of the property
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>blurb</code></em> :</span></p></td>
<td> a short description of the property
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object_type</code></em> :</span></p></td>
<td> the <span class="type">MixDisplayType</span> for the property
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td> a combination of <span class="type">GParamFlags</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> a newly allocated <span class="type">GParamSpec</span> instance
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_value_set_display ()">
<a name="mix-value-set-display"></a><h3>mix_value_set_display ()</h3>
<pre class="programlisting">void                mix_value_set_display               (GValue *value,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Set the contents of a <code class="literal">MIX_TYPE_DISPLAY</code> derived <span class="type">GValue</span> to
<em class="parameter"><code>obj</code></em>.
The caller retains ownership of the reference.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>       a valid <span class="type">GValue</span> of <code class="literal">MIX_TYPE_DISPLAY</code> derived type
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> object value to set
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_value_take_display ()">
<a name="mix-value-take-display"></a><h3>mix_value_take_display ()</h3>
<pre class="programlisting">void                mix_value_take_display              (GValue *value,
                                                         <a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *obj);</pre>
<p>
Set the contents of a <span class="type">MIX_TYPE_DISPLAY</span> derived <span class="type">GValue</span> to
<em class="parameter"><code>obj</code></em>.
Takes over the ownership of the caller's reference to <em class="parameter"><code>obj</code></em>;
the caller doesn't have to unref it any more.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td> a valid <span class="type">GValue</span> of <span class="type">MIX_TYPE_DISPLAY</span> derived type
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> object value to take
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_value_get_display ()">
<a name="mix-value-get-display"></a><h3>mix_value_get_display ()</h3>
<pre class="programlisting"><a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        mix_value_get_display               (const GValue *value);</pre>
<p>
refcount of the MixDisplay is not increased.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td> a valid <span class="type">GValue</span> of <span class="type">MIX_TYPE_DISPLAY</span> derived type
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td>object contents of <em class="parameter"><code>value</code></em> 
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_value_dup_display ()">
<a name="mix-value-dup-display"></a><h3>mix_value_dup_display ()</h3>
<pre class="programlisting"><a class="link" href="MixDisplay.html" title="MixDisplay">MixDisplay</a> *        mix_value_dup_display               (const GValue *value);</pre>
<p>
refcount of MixDisplay is increased.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>   a valid <span class="type">GValue</span> of <code class="literal">MIX_TYPE_DISPLAY</code> derived type
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> object contents of <em class="parameter"><code>value</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.11</div>
</body>
</html>
