Exemple #1
0
static void
constructed (GObject *object)
{
  GtkInspectorPropEditor *editor = GTK_INSPECTOR_PROP_EDITOR (object);
  GParamSpec *spec;
  GtkWidget *label;
  gboolean can_modify;

  spec = find_property (editor);

  label = gtk_label_new (g_param_spec_get_nick (spec));
  gtk_widget_show (label);
  gtk_container_add (GTK_CONTAINER (editor), label);

  can_modify = ((spec->flags & G_PARAM_WRITABLE) != 0 &&
                (spec->flags & G_PARAM_CONSTRUCT_ONLY) == 0);

  if (!can_modify)
    return;

  editor->priv->editor = property_editor (editor->priv->object, spec, editor);
  gtk_widget_show (editor->priv->editor);
  gtk_container_add (GTK_CONTAINER (editor), editor->priv->editor);

  if (GTK_IS_CELL_RENDERER (editor->priv->object))
    gtk_container_add (GTK_CONTAINER (editor),
                       attribute_editor (editor->priv->object, spec, editor));

  if (GTK_IS_ACTIONABLE (editor->priv->object) &&
      g_strcmp0 (editor->priv->name, "action-name") == 0)
    gtk_container_add (GTK_CONTAINER (editor),
                       action_editor (editor->priv->object, editor));

  add_binding_info (editor);
  add_settings_info (editor);
  add_gtk_settings_info (editor);
}
void CTransformationsDialog::ConfigureTransformation(int transform_index)
{
	ASSERT(transform_index >= 0);
	ASSERT(transform_index < m_SelectedList.GetCount());

	CElementManager & m = ((CReportAsistentApp *) AfxGetApp())->m_pGeneralManager->ElementManager;

	//element info
	int element_id = m.IdentifyElement(m_active_element);
	CAElInfo * element_info = m.getActiveElementInfo(element_id);


	//tranformation
	CString query_str;
	query_str.Format("transformation[%d]", transform_index);
	MSXML2::IXMLDOMElementPtr transformation_element = m_cloned_output_element->selectSingleNode((LPCTSTR) query_str);

	//options definition
	MSXML2::IXMLDOMNodePtr options_node = 
		element_info->getTranformationOptionsDoc(
			element_info->FindTransformationByName((_bstr_t) transformation_element->getAttribute("name")));

	//single options
	MSXML2::IXMLDOMNodeListPtr option_nodes = options_node->selectNodes("/visualization/visualization_options/*");



	
	//napln property editor

	//label
	CString label;
	label.Format("%s (%s) properties", 
	(LPCTSTR) options_node->selectSingleNode("/visualization/visualization_options/@visualization_label")->text,
	(LPCTSTR) (_bstr_t) m_active_element->getAttribute("id"));

	CPropertyEditor property_editor(label, this);


	//pridej jednotlive properties
	for (int a=0; a < option_nodes->length; a++)
	{
		MSXML2::IXMLDOMElementPtr option_element = option_nodes->item[a];

		AddOptionToPropetryEditor(option_element, transformation_element, property_editor);
		
		option_element.Release();
	}


	//vytvor modalni dialog
	if (IDOK == property_editor.DoModal())
	{
		
		
		//uloz hodnoty z property editoru
		for (int a=0; a < option_nodes->length; a++)
		{
		    MSXML2::IXMLDOMElementPtr option_element = option_nodes->item[a];
			CString variable_name = (LPCTSTR) (_bstr_t) option_element->getAttribute("variable_name");
			
			CString value_query_str;
		    value_query_str.Format("visualization_values/variable[@name=\"%s\"]/@value", (LPCTSTR) variable_name);
			
			//nastav hodnotu parametru value
			if (option_element->nodeName == _bstr_t("enum_option"))
			{
				transformation_element->selectSingleNode((LPCTSTR) value_query_str)->text = 
					(LPCTSTR) FindOptionEnumItemValueFromLabel(
						options_node, variable_name, property_editor.GetValueOfProperty(a)->GetValue());
			}
			else
			{
				transformation_element->selectSingleNode((LPCTSTR) value_query_str)->text = 
					property_editor.GetValueOfProperty(a)->GetValue();
			}
			option_element.Release();
		}
	}

	option_nodes.Release();
}