forked from osmocom/wireshark
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:
parent
ee4cf097ad
commit
b26c1c4ca2
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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**) ¯os,
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
39
epan/uat.h
39
epan/uat.h
|
@ -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}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue