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(); }