static void _prop_list_extend_for_meta (GPtrArray *props) { static PropDescription extras[] = { PROP_STD_NOTEBOOK_BEGIN, PROP_NOTEBOOK_PAGE("general_page",PROP_FLAG_DONT_MERGE,N_("General")), PROP_NOTEBOOK_PAGE("meta_page",0,N_("Meta")), { "meta", PROP_TYPE_DICT, PROP_FLAG_VISIBLE|PROP_FLAG_SELF_ONLY, "", ""}, PROP_STD_NOTEBOOK_END, {NULL} }; /* Some objects have no properties in case of defaults */ Property *p = props->len > 0 ? g_ptr_array_index(props,0) : NULL; GPtrArray *pex = prop_list_from_descs(extras,pdtpp_is_visible); if (!p || strcmp (p->descr->type, PROP_TYPE_NOTEBOOK_BEGIN) != 0) { int i, olen = props->len; /* wrap everything into a first notebook page */ g_ptr_array_set_size (props, olen + 2); /* make room for 2 at the beginning */ for (i = olen - 1; i >= 0; --i) g_ptr_array_index (props, i + 2) = g_ptr_array_index (props, i); g_ptr_array_index (props, 0) = g_ptr_array_index (pex, 0); g_ptr_array_index (props, 1) = g_ptr_array_index (pex, 1); } else { p = g_ptr_array_index (props, props->len - 1); g_assert (strcmp (p->descr->type, PROP_TYPE_NOTEBOOK_END) == 0); /* drop the end, we'll add it again below */ g_ptr_array_set_size (props, props->len - 1); } g_ptr_array_add (props, g_ptr_array_index (pex, 2)); g_ptr_array_add (props, g_ptr_array_index (pex, 3)); g_ptr_array_add (props, g_ptr_array_index (pex, 4)); /* free the array, but not the reused segments */ g_ptr_array_free (pex, FALSE); }
(MoveHandleFunc) objet_move_handle, (GetPropertiesFunc) object_create_props_dialog, (ApplyPropertiesDialogFunc) object_apply_props_from_dialog, (ObjectMenuFunc) NULL, (DescribePropsFunc) objet_describe_props, (GetPropsFunc) objet_get_props, (SetPropsFunc) objet_set_props, (TextEditFunc) 0, (ApplyPropertiesListFunc) object_apply_props, }; static PropDescription objet_props[] = { ELEMENT_COMMON_PROPERTIES, PROP_STD_NOTEBOOK_BEGIN, PROP_NOTEBOOK_PAGE("assoc", PROP_FLAG_DONT_MERGE, N_("General")), { "stereotype", PROP_TYPE_STRING, PROP_FLAG_VISIBLE, N_("Stereotype"), NULL, NULL }, { "exstate", PROP_TYPE_STRING, PROP_FLAG_VISIBLE, N_("Explicit state"),NULL, NULL }, { "attribstr", PROP_TYPE_MULTISTRING, PROP_FLAG_VISIBLE|PROP_FLAG_DONT_SAVE, N_("Attributes"),NULL, GINT_TO_POINTER(6) }, { "attrib", PROP_TYPE_TEXT, 0, NULL,NULL, NULL }, { "is_active", PROP_TYPE_BOOL, PROP_FLAG_VISIBLE, N_("Active object"),NULL,NULL}, { "show_attribs", PROP_TYPE_BOOL, PROP_FLAG_VISIBLE, N_("Show attributes"),NULL,NULL}, { "multiple", PROP_TYPE_BOOL, PROP_FLAG_VISIBLE, N_("Multiple instance"),NULL,NULL}, PROP_NOTEBOOK_PAGE("style", PROP_FLAG_DONT_MERGE, N_("Style")),