Esempio n. 1
0
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);
}
Esempio n. 2
0
  (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")),