Hello,

i try to create a new plugin for dia in C.
But I have a little problem with PropDescription.
I have two question ?

1=>
See in the end of this mail for an extract of my code.
In this code i have a table dtmf[2] of enumerate (BayMenuDtmfResponse) 
and i would use it for store parameter.
What's the method for use a table ? It is good ?

2=>
What is PROP_TYPE_DARRAY ? I don't found a simple example only with uml 
plugin and this plugin is complicated...

thanks for your help !

Lidiriel


/* Object Menu definition */
typedef struct _Menu {
   Element element;

   ConnectionPoint connections[BAY_MENU_NUM_CNX];

   /* menu genral parameter */
   BayMenuType type; /* menu type */
   gchar *name; /* menu name */

   ***

   /* menu fonctionnal parameter */
   BayMenuDtmfResponse dtmf[2];

} Menu;

***

PropEnumData menu_dtmf[] = {
        { N_("wrong"), BAY_MENU_WRONG },
        { N_("ok return dtmf"), BAY_MENU_RETURN_DTMF },
        { NULL}};

/* all property description */
static PropDescription menu_props[] = {
   ELEMENT_COMMON_PROPERTIES,
        { "type", PROP_TYPE_ENUM, PROP_FLAG_VISIBLE, N_("Type"), NULL, 
menu_style },
        { "name", PROP_TYPE_STRING, PROP_FLAG_VISIBLE, N_("Name"), NULL, NULL },
        { "dtmf1", PROP_TYPE_ENUM, PROP_FLAG_VISIBLE, N_("DTMF 1"), NULL, 
menu_dtmf },
        { "dtmf2", PROP_TYPE_ENUM, PROP_FLAG_VISIBLE, N_("DTMF 2"), NULL, 
menu_dtmf },
   PROP_DESC_END
};

static PropDescription *
menu_describe_props(Menu *menu)
{
   if (menu_props[0].quark == 0)
     prop_desc_list_calculate_quarks(menu_props);
   return menu_props;
}

static PropOffset menu_offsets[] = {
   ELEMENT_COMMON_PROPERTIES_OFFSETS,
   { "type", PROP_TYPE_ENUM, offsetof(Menu, type) },
        { "name", PROP_TYPE_STRING, offsetof(Menu, name) },
        { "dtmf1", PROP_TYPE_ENUM, offsetof(Menu, dtmf[0]) },
        { "dtmf2", PROP_TYPE_ENUM, offsetof(Menu, dtmf[1]) },
   { NULL, 0, 0}
};
_______________________________________________
Dia-list mailing list
Dia-list@gnome.org
http://mail.gnome.org/mailman/listinfo/dia-list
FAQ at http://www.gnome.org/projects/dia/faq.html
Main page at http://www.gnome.org/projects/dia

Reply via email to