<!-- ##### SECTION Title ##### -->
MateComponentControlFrame

<!-- ##### SECTION Short_Description ##### -->
An implementation of the container's frame containing a Control

<!-- ##### SECTION Long_Description ##### -->
<para>
The MateComponentControlFrame object is used to embed a Control. Most
people will want to use #MateComponentWidget instead of the control frame
since it provides lots of nice auxiliary features to make embedding
easy.
</para>

<figure id="control-frame-img">
    <title>The MateComponent::ControlFrame interface</title>
    <mediaobject>
	<imageobject>
	    <imagedata fileref="control-frame.png" format="PNG"/>
	</imageobject>
    </mediaobject>
</figure>

<para>
The control frame is coupled to an embedded control and is used
to allow the Control to communicate with its environment, particuarly
getting the #MateComponentUIContainer for merging its menu / toolbar
UI elements.
</para>

<para>
  <example>
    <title>A nice use of a MateComponentControlFrame</title>
    <programlisting>
MateComponentWidget *
matecomponent_widget_construct_control_from_objref (MateComponentWidget      *bw,
					     MateComponent_Control     control,
					     MateComponent_UIContainer uic)
{
	GtkWidget    *control_frame_widget;

	/*
	 * Create a local ControlFrame for it.
	 */
	bw->priv->control_frame = matecomponent_control_frame_new (uic);

	matecomponent_control_frame_bind_to_control (bw->priv->control_frame, control);

	...

	matecomponent_control_frame_set_autoactivate (bw->priv->control_frame, TRUE);

	/*
	 * Grab the actual widget which visually contains the remote
	 * Control.  This is a GtkSocket, in reality.
	 */
	control_frame_widget = matecomponent_control_frame_get_widget (bw->priv->control_frame);

	/*
	 * Now stick it into this MateComponentWidget.
	 */
	gtk_container_add (GTK_CONTAINER (bw),
			   control_frame_widget);

	/*
	 * Always remember to show the widget before reporting bugs.
	 */
	gtk_widget_show (control_frame_widget);

	if (uic != CORBA_OBJECT_NIL)
		bw->priv->uic = matecomponent_object_dup_ref (uic, NULL);

	return bw;
}
    </programlisting>
  </example>
</para>

<!-- ##### SECTION See_Also ##### -->
<para>
  #MateComponentWidget, matecomponent_widget_new ()
</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### STRUCT MateComponentControlFrame ##### -->
<para>

</para>


<!-- ##### SIGNAL MateComponentControlFrame::activate-uri ##### -->
<para>

</para>

@matecomponentcontrolframe: the object which received the signal.
@arg1: 
@arg2: 

<!-- ##### SIGNAL MateComponentControlFrame::activated ##### -->
<para>

</para>

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

<!-- ##### STRUCT MateComponentControlFramePrivate ##### -->
<para>

</para>


<!-- ##### STRUCT MateComponentControlFrameClass ##### -->
<para>

</para>

@parent_class: 
@epv: 
@dummy: 
@activated: 
@activate_uri: 

<!-- ##### MACRO MATECOMPONENT_CONTROL_FRAME_TOPLEVEL_PROP ##### -->
<para>

</para>



<!-- ##### FUNCTION matecomponent_control_frame_construct ##### -->
<para>

</para>

@control_frame: 
@ui_container: 
@ev: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_new ##### -->
<para>

</para>

@ui_container: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_get_widget ##### -->
<para>

</para>

@frame: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_set_ui_container ##### -->
<para>

</para>

@control_frame: 
@uic: 
@ev: 


<!-- ##### FUNCTION matecomponent_control_frame_control_activate ##### -->
<para>

</para>

@control_frame: 


<!-- ##### FUNCTION matecomponent_control_frame_control_deactivate ##### -->
<para>

</para>

@control_frame: 


<!-- ##### FUNCTION matecomponent_control_frame_set_autoactivate ##### -->
<para>

</para>

@control_frame: 
@autoactivate: 


<!-- ##### FUNCTION matecomponent_control_frame_get_autoactivate ##### -->
<para>

</para>

@control_frame: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_get_control_property_bag ##### -->
<para>

</para>

@control_frame: 
@opt_ev: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_set_propbag ##### -->
<para>

</para>

@control_frame: 
@propbag: 


<!-- ##### FUNCTION matecomponent_control_frame_get_propbag ##### -->
<para>

</para>

@control_frame: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_control_set_state ##### -->
<para>

</para>

@control_frame: 
@state: 


<!-- ##### FUNCTION matecomponent_control_frame_set_autostate ##### -->
<para>

</para>

@control_frame: 
@autostate: 


<!-- ##### FUNCTION matecomponent_control_frame_get_autostate ##### -->
<para>

</para>

@control_frame: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_bind_to_control ##### -->
<para>

</para>

@control_frame: 
@control: 
@opt_ev: 


<!-- ##### FUNCTION matecomponent_control_frame_get_control ##### -->
<para>

</para>

@control_frame: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_get_ui_container ##### -->
<para>

</para>

@control_frame: 
@Returns: 


<!-- ##### FUNCTION matecomponent_control_frame_get_popup_component ##### -->
<para>

</para>

@control_frame: 
@opt_ev: 
@Returns: 


