Add a description of UAT fields, and have it as a tooltip in the New/Edit Dialog.

svn path=/trunk/; revision=20797
This commit is contained in:
Luis Ontanon 2007-02-12 19:57:41 +00:00
parent ee4cf097ad
commit b26c1c4ca2
7 changed files with 60 additions and 45 deletions

View File

@ -2070,12 +2070,12 @@ void proto_register_snmp(void) {
};
module_t *snmp_module;
static uat_field_t fields[] = {
UAT_FLD_BUFFER(snmp_users,engine_id),
UAT_FLD_LSTRING(snmp_users,userName),
UAT_FLD_VS(snmp_users,auth_model,auth_types),
UAT_FLD_LSTRING(snmp_users,authPassword),
UAT_FLD_VS(snmp_users,priv_proto,priv_types),
UAT_FLD_LSTRING(snmp_users,privPassword),
UAT_FLD_BUFFER(snmp_users,engine_id,"Engine-id for this entry (empty = any)"),
UAT_FLD_LSTRING(snmp_users,userName,"The username"),
UAT_FLD_VS(snmp_users,auth_model,auth_types,"Algorithm to be used for authentication."),
UAT_FLD_LSTRING(snmp_users,authPassword,"The password used for authenticating packets for this entry"),
UAT_FLD_VS(snmp_users,priv_proto,priv_types,"Algorithm to be used for privacy."),
UAT_FLD_LSTRING(snmp_users,privPassword,"The password used for encrypting packets for this entry"),
UAT_END_FIELDS
};

View File

@ -463,12 +463,12 @@ UAT_CSTRING_CB_DEF(macro,text,dfilter_macro_t)
void dfilter_macro_init(void) {
static uat_field_t uat_fields[] = {
UAT_FLD_CSTRING_OTHER(macro,name,macro_name_chk),
UAT_FLD_CSTRING_ISPRINT(macro,text),
UAT_FLD_CSTRING_OTHER(macro,name,macro_name_chk,"The name of the macro."),
UAT_FLD_CSTRING_ISPRINT(macro,text,"The text this macro resolves to."),
UAT_END_FIELDS
};
dfilter_macro_uat = uat_new(" Display Filter Macros",
dfilter_macro_uat = uat_new("Display Filter Macros",
sizeof(dfilter_macro_t),
DFILTER_MACRO_FILENAME,
(void**) &macros,

View File

@ -397,8 +397,12 @@ proto_register_k12(void)
};
static uat_field_t uat_k12_flds[] = {
UAT_FLD_CSTRING_ISPRINT(k12,match),
UAT_FLD_CSTRING_OTHER(k12,protos,protos_chk_cb),
UAT_FLD_CSTRING_ISPRINT(k12,match,
"A string that will be matched (a=A) against an .stk filename.\n"
"The first match wins, the order of entries in the table is important!."),
UAT_FLD_CSTRING_OTHER(k12,protos,protos_chk_cb,
"The lowest layer protocol described by this .stk file (eg: mtp2).\n"
"Use (sscop:sscf-nni) for sscf-nni (MTP3b) with sscop"),
UAT_END_FIELDS
};

View File

@ -4193,12 +4193,12 @@ void proto_register_snmp(void) {
};
module_t *snmp_module;
static uat_field_t fields[] = {
UAT_FLD_BUFFER(snmp_users,engine_id),
UAT_FLD_LSTRING(snmp_users,userName),
UAT_FLD_VS(snmp_users,auth_model,auth_types),
UAT_FLD_LSTRING(snmp_users,authPassword),
UAT_FLD_VS(snmp_users,priv_proto,priv_types),
UAT_FLD_LSTRING(snmp_users,privPassword),
UAT_FLD_BUFFER(snmp_users,engine_id,"Engine-id for this entry (empty = any)"),
UAT_FLD_LSTRING(snmp_users,userName,"The username"),
UAT_FLD_VS(snmp_users,auth_model,auth_types,"Algorithm to be used for authentication."),
UAT_FLD_LSTRING(snmp_users,authPassword,"The password used for authenticating packets for this entry"),
UAT_FLD_VS(snmp_users,priv_proto,priv_types,"Algorithm to be used for privacy."),
UAT_FLD_LSTRING(snmp_users,privPassword,"The password used for encrypting packets for this entry"),
UAT_END_FIELDS
};

View File

@ -148,12 +148,12 @@ void proto_register_user_encap(void)
module_t *module;
static uat_field_t user_flds[] = {
UAT_FLD_VS(user_encap,encap,user_dlts),
UAT_FLD_PROTO(user_encap,payload_proto),
UAT_FLD_DEC(user_encap,header_size),
UAT_FLD_PROTO(user_encap,header_proto),
UAT_FLD_DEC(user_encap,trailer_size),
UAT_FLD_PROTO(user_encap,trailer_proto),
UAT_FLD_VS(user_encap,encap,user_dlts,"The DLT"),
UAT_FLD_PROTO(user_encap,payload_proto,"Protocol to be used for the payload of this DLT"),
UAT_FLD_DEC(user_encap,header_size,"Size of an eventual header that precedes the actual payload, 0 means none"),
UAT_FLD_PROTO(user_encap,header_proto,"Protocol to be used for the header (empty = data)"),
UAT_FLD_DEC(user_encap,trailer_size,"Size of an eventual trailer that follows the actual payload, 0 means none"),
UAT_FLD_PROTO(user_encap,trailer_proto,"Protocol to be used for the trailer (empty = data)"),
UAT_END_FIELDS
};

View File

@ -194,11 +194,12 @@ typedef struct _uat_field_t {
void* fld_data;
char* desc;
struct _fld_data_t* priv;
} uat_field_t;
#define FLDFILL NULL
#define UAT_END_FIELDS {0,PT_TXTMOD_NONE,{0,0,0},{0,0,0},0,FLDFILL}
#define UAT_END_FIELDS {0,PT_TXTMOD_NONE,{0,0,0},{0,0,0},0,0,FLDFILL}
#define UAT_CAT_GENERAL "General"
@ -302,14 +303,14 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
} else { \
*out_ptr = ""; *out_len = 0; } }
#define UAT_FLD_CSTRING(basename,field_name) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_str,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_CSTRING(basename,field_name,desc) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_str,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
#define UAT_FLD_CSTRING_ISPRINT(basename,field_name) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_str_isprint,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_CSTRING_ISPRINT(basename,field_name,desc) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_str_isprint,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
#define UAT_FLD_CSTRING_OTHER(basename,field_name,chk) \
{#field_name, PT_TXTMOD_STRING,{ chk ,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_CSTRING_OTHER(basename,field_name,chk,desc) \
{#field_name, PT_TXTMOD_STRING,{ chk ,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
/*
* LSTRING MACROS
@ -325,8 +326,8 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
} else { \
*out_ptr = ""; *out_len = 0; } }
#define UAT_FLD_LSTRING(basename,field_name) \
{#field_name, PT_TXTMOD_STRING,{NULL,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_LSTRING(basename,field_name,desc) \
{#field_name, PT_TXTMOD_STRING,{0,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
/*
@ -344,8 +345,8 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
*out_ptr = ((rec_t*)rec)->ptr_element ? ep_memdup(((rec_t*)rec)->ptr_element,((rec_t*)rec)->len_element) : ""; \
*out_len = ((rec_t*)rec)->len_element; }
#define UAT_FLD_BUFFER(basename,field_name) \
{#field_name, PT_TXTMOD_HEXBYTES,{NULL,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_BUFFER(basename,field_name,desc) \
{#field_name, PT_TXTMOD_HEXBYTES,{0,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
/*
@ -359,8 +360,8 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
*out_ptr = ep_strdup_printf("%d",((rec_t*)rec)->field_name); \
*out_len = strlen(*out_ptr); }
#define UAT_FLD_DEC(basename,field_name) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_num_dec,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_DEC(basename,field_name,desc) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_num_dec,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
/*
@ -374,8 +375,8 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
*out_ptr = ep_strdup_printf("%x",((rec_t*)rec)->field_name); \
*out_len = strlen(*out_ptr); }
#define UAT_FLD_HEX(basename,field_name) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_num_hex,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_HEX(basename,field_name,desc) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_num_hex,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
/*
@ -402,8 +403,8 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
*out_len = strlen(*out_ptr); return; } } }
#define UAT_FLD_VS(basename,field_name,enum) \
{#field_name, PT_TXTMOD_ENUM,{uat_fld_chk_enum,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{&(enum),&(enum),&(enum)},&(enum),FLDFILL}
#define UAT_FLD_VS(basename,field_name,enum,desc) \
{#field_name, PT_TXTMOD_ENUM,{uat_fld_chk_enum,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{&(enum),&(enum),&(enum)},&(enum),desc,FLDFILL}
/*
@ -424,8 +425,8 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
*out_ptr = ""; *out_len = 0; } }
#define UAT_FLD_PROTO(basename,field_name) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_proto,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{NULL,NULL,NULL},NULL,FLDFILL}
#define UAT_FLD_PROTO(basename,field_name,desc) \
{#field_name, PT_TXTMOD_STRING,{uat_fld_chk_proto,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,FLDFILL}

View File

@ -398,6 +398,9 @@ static void uat_edit_dialog(uat_t* uat, gint row) {
struct _uat_dlg_data* dd = g_malloc(sizeof(struct _uat_dlg_data));
uat_field_t* f = uat->fields;
guint colnum;
GtkTooltips *tooltips;
tooltips = gtk_tooltips_new();
dd->entries = g_ptr_array_new();
dd->win = dlg_window_new(uat->name);
@ -428,12 +431,19 @@ static void uat_edit_dialog(uat_t* uat, gint row) {
gtk_table_set_col_spacings(GTK_TABLE(main_tb), 10);
for ( colnum = 0; colnum < uat->ncols; colnum++ ) {
GtkWidget *entry, *label;
GtkWidget *entry, *label, *event_box;
char* text = fld_tostr(dd->rec,&(f[colnum]));
event_box = gtk_event_box_new();
label = gtk_label_new(f[colnum].name);
if (f[colnum].desc != NULL)
gtk_tooltips_set_tip(tooltips, event_box, f[colnum].desc, NULL);
gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
gtk_table_attach_defaults(GTK_TABLE(main_tb), label, 0, 1, colnum+1, colnum + 2);
gtk_table_attach_defaults(GTK_TABLE(main_tb), event_box, 0, 1, colnum+1, colnum + 2);
gtk_container_add(GTK_CONTAINER(event_box), label);
gtk_widget_show(event_box);
gtk_widget_show(label);