<!-- ##### SECTION Title ##### -->
MateComponentClientSite

<!-- ##### SECTION Short_Description ##### -->
Container side object embedding server.

<!-- ##### SECTION Long_Description ##### -->
<para>
   The <classname>MateComponentClientSite</classname> implements the
   <classname>MateComponent::ClientSite</classname> CORBA interface.  It acts
   as the container-side contact for
   <classname>MateComponentEmbeddable</classname> objects.
</para>

<para>
   For each object embedded in your application, you should create a
   <classname>MateComponentClientSite</classname> object.  
</para>

<para>
   Once you have a handle on a remote object that implements the
   <classname>MateComponent::Embeddable</classname> interface (typically
   returned by matecomponent_object_activate() or
   matecomponent_get_object () or wrapper with
   matecomponent_object_client_from_corba ()) of type
   <classname>MateComponentObjectClient</classname>), you will have to bind
   this object to the <classname>MateComponentClientSite</classname> using the
   matecomponent_client_site_bind_embeddable ().  Once this is done, you will
   be able to request a #MateComponentView on the #MateComponentClientSite.  
</para>

<para>
   The #MateComponentClientSite object also provides access to the remote
   MateComponentEmbeddable object's verb list.  
</para>

<example>
   <title>Sample usage</title>

   <para>
      This demostrates the use of the #MateComponentClientSite object.  This
      launches the object specified, creates a #MateComponentClientSite,
      then requests a new #MateComponentViewFrame and finally it returns the
      widget that represents that component.
   </para>
      
   <programlisting>
GtkWidget *
create_widget_from_component (MateComponentContainer *container, const char *id)
{
	MateComponentObjectClient *server;
	MateComponentClientSite   *client_site;
	MateComponentViewFrame    *view_frame;

	/*
	 * Launch the requested component
	 */
	server = matecomponent_object_activate (id, 0);
	if (!server){
		printf ("Could not activate the server");
		return NULL;
	}

	client_site = matecomponent_client_site_new (app->container);

	/*
	 * Add this client site to the container
	 */
	matecomponent_container_add (container, MATECOMPONENT_OBJECT (client_site));

	/*
	 * Bind the component to the client site
	 */
	matecomponent_client_site_bind_embeddable (client_site, server);

	/*
	 * Create a new MateComponentView, and then get a GtkWidget
	 */
	view_frame = matecomponent_client_site_embeddable_new_view (client_site);

	/*
	 * Get the widget for this view.
	 */

	 return matecomponent_view_frame_get_wrapper (view_frame);
}

   </programlisting>
</example>

<!-- ##### SECTION See_Also ##### -->
<para>
  #MateComponentEmbeddable, #MateComponentContainer, #MateComponentObjectClient, #MateComponentViewFrame
</para>

<!-- ##### STRUCT MateComponentClientSite ##### -->
<para>

</para>


<!-- ##### TYPEDEF MateComponentClientSiteClass ##### -->
<para>

</para>


<!-- ##### FUNCTION matecomponent_client_site_new ##### -->
<para>

</para>

@container: 
@Returns: 


<!-- ##### FUNCTION matecomponent_client_site_construct ##### -->
<para>

</para>

@client_site: 
@container: 
@Returns: 
<!-- # Unused Parameters # -->
@corba_client_site: 


<!-- ##### FUNCTION matecomponent_client_site_bind_embeddable ##### -->
<para>

</para>

@client_site: 
@object: 
@Returns: 


<!-- ##### FUNCTION matecomponent_client_site_get_embeddable ##### -->
<para>

</para>

@client_site: 
@Returns: 


<!-- ##### FUNCTION matecomponent_client_site_get_container ##### -->
<para>

</para>

@client_site: 
@Returns: 


<!-- ##### FUNCTION matecomponent_client_site_new_view_full ##### -->
<para>

</para>

@client_site: 
@uic: 
@visible_cover: 
@active_view: 
@Returns: 
<!-- # Unused Parameters # -->
@uih: 


<!-- ##### FUNCTION matecomponent_client_site_new_view ##### -->
<para>

</para>

@client_site: 
@uic: 
@Returns: 
<!-- # Unused Parameters # -->
@uih: 


<!-- ##### FUNCTION matecomponent_client_site_new_item ##### -->
<para>

</para>

@client_site: 
@uic: 
@group: 
@Returns: 


<!-- ##### FUNCTION matecomponent_client_site_get_verbs ##### -->
<para>

</para>

@client_site: 
@Returns: 


<!-- ##### FUNCTION matecomponent_client_site_free_verbs ##### -->
<para>

</para>

@verb_list: 


<!-- ##### SIGNAL MateComponentClientSite::show-window ##### -->
<para>

</para>

@matecomponentclientsite: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL MateComponentClientSite::save-object ##### -->
<para>

</para>

@matecomponentclientsite: the object which received the signal.
@arg1: 

