📄 wizspy.c
字号:
*/
GtkScrollCtrl wizspy_areab3={0,0,0,};
GtkScrollCtrl wizspy_areab3_listboxused={0,0,0,};
GtkScrollCtrl wizspy_areab3_listboxunused={0,0,0,};
GTK_TextArea wizspy_areab3_info={0,0,0,0,};
void wizspy_areab3_setinfo(gchar *msg)
{
if(wizspy_areab3_info.regsignal!=GTK_WIDGET_REG)
return ;
gtk_text_buffer_set_text (wizspy_areab3_info.buffer, msg,strlen(msg));
}
GtkListBoxItemData iptype_used[MAX_IPPROTOCOL_NUM];
GtkListBoxItemData iptype_unused[MAX_IPPROTOCOL_NUM];
void wizspy_areab3_clickbutton(GtkWidget *widget,gpointer fundata)
{
gint freei,index,found;
GtkListBoxItemData itemdata;
GtkScrollCtrl *fromctrl, *toctrl;
GtkListBoxItemData *fromdata, *todata;
if(fundata==NULL) // delete
{
fromctrl=&wizspy_areab3_listboxused;
fromdata=iptype_used;
toctrl=&wizspy_areab3_listboxunused;
todata=iptype_unused;
}
else // add
{
fromctrl=&wizspy_areab3_listboxunused;
fromdata=iptype_unused;
toctrl=&wizspy_areab3_listboxused;
todata=iptype_used;
}
index=listbox_getselectitem(*fromctrl,&itemdata);
if(index>=0)
{
found=0;
for(freei=0;freei<MAX_IPPROTOCOL_NUM;freei++)
{
if(ip_p_type[freei].type==itemdata.itemdata)
{
found=1;
break;
}
}
if(!found) return ;
for(freei=0;freei<MAX_IPPROTOCOL_NUM;freei++)
{
if(fromdata[freei].itemdata==itemdata.itemdata
&&(strcmp(fromdata[freei].itemname,itemdata.itemname)==0))
{
fromdata[freei].itemdata=0;
fromdata[freei].itemname[0]=0;
listbox_deleteitem(*fromctrl,index);
found=1;
break;
}
}
if(!found) return ;
for(freei=0;freei<MAX_IPPROTOCOL_NUM;freei++)
{
if(todata[freei].itemdata==0 &&todata[freei].itemname[0]==0)
{
todata[freei].itemdata=itemdata.itemdata;
strcpy(todata[freei].itemname,itemdata.itemname);
listbox_insertitem(*toctrl,itemdata,0);
break;
}
}
}
}
void wizspy_areab3_onclicklist( GtkWidget *gtklist, gpointer func_data )
{
static gchar itemsg[512];
gint ret, freei;
GtkListBoxItemData itemdata;
GtkScrollCtrl *selctrl=(GtkScrollCtrl *)func_data;
if(selctrl==NULL)
return;
ret=listbox_getselectitem(*selctrl,&itemdata);
if(ret>=0)
{
for(freei=0;freei<MAX_IPPROTOCOL_NUM;freei++)
{
if(ip_p_type[freei].type==itemdata.itemdata)
{
sprintf(itemsg," Name: '%s' \n Data: '%d' \n Info: '%s'",
ip_p_type[freei].name,
ip_p_type[freei].type,
ip_p_type[freei].info
);
wizspy_areab3_setinfo(itemsg);
return;
}
}//for(freei=0;freei<MAX_ETHER_TYPE_NUM;freei++)
}//if(ret>=0)
}
GtkWidget *wizspy_areab3_create(GtkWidget *window)
{
gint freei;
GtkWidget *vbox, *hbox, *bbox, *ctrl;
if(wizspy_areab3.regsignal==GTK_WIDGET_REG)
return (wizspy_areab3.scrolled_window);
else wizspy_areab3.regsignal=GTK_WIDGET_REG;
wizspy_areab3.ctrl=gtk_frame_new(NULL);
vbox=gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 1);
gtk_container_add (GTK_CONTAINER (wizspy_areab3.ctrl), vbox);
/* h box*/
hbox = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 1);
gtk_box_pack_start (GTK_BOX (vbox),hbox, TRUE, TRUE, 1);
// add used list box, and add data to this listctrl
ctrl=listbox_createnew(NULL,&wizspy_areab3_listboxused);
gtk_widget_set_size_request (GTK_WIDGET (ctrl), 120, 120);
gtk_box_pack_start (GTK_BOX (hbox),ctrl, TRUE, TRUE, 1);
g_signal_connect (G_OBJECT (wizspy_areab3_listboxused.ctrl), "selection_changed",
G_CALLBACK (wizspy_areab3_onclicklist),
&wizspy_areab3_listboxused);
for(freei=0;freei<MAX_IPPROTOCOL_NUM;freei++)
{
if(iptype_used[freei].itemdata>0&&iptype_used[freei].itemname[0]!=0)
listbox_insertitem(wizspy_areab3_listboxused,iptype_used[freei],0);
}
// add buttons 'add' and 'delete'
bbox= gtk_vbutton_box_new();
gtk_box_pack_start (GTK_BOX (hbox),bbox, TRUE, TRUE, 1);
gtk_container_set_border_width (GTK_CONTAINER (bbox), 20);
gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_START);
gtk_box_set_spacing (GTK_BOX (bbox), 20);
// button delete
ctrl=gtk_button_new_with_label("--dismiss-->");
gtk_container_add (GTK_CONTAINER (bbox), ctrl);
g_signal_connect (G_OBJECT (ctrl), "clicked",
G_CALLBACK (wizspy_areab3_clickbutton), NULL);
// button add
ctrl=gtk_button_new_with_label("<--transfer-");
gtk_container_add (GTK_CONTAINER (bbox), ctrl);
g_signal_connect (G_OBJECT (ctrl), "clicked",
G_CALLBACK (wizspy_areab3_clickbutton), wizspy_areab3_clickbutton);
// add unused list box
ctrl=listbox_createnew(NULL,&wizspy_areab3_listboxunused);
gtk_widget_set_size_request (GTK_WIDGET (ctrl), 120, 120);
gtk_box_pack_start (GTK_BOX (hbox),ctrl, TRUE, TRUE, 1);
g_signal_connect (G_OBJECT (wizspy_areab3_listboxunused.ctrl), "selection_changed",
G_CALLBACK (wizspy_areab3_onclicklist),
&wizspy_areab3_listboxunused);
for(freei=0;freei<MAX_IPPROTOCOL_NUM;freei++)
{
if(iptype_unused[freei].itemdata>0&&iptype_unused[freei].itemname[0]!=0)
listbox_insertitem(wizspy_areab3_listboxunused,iptype_unused[freei],0);
}
/* add info texarea */
ctrl= textarea_createlist(NULL,&wizspy_areab3_info);
gtk_widget_set_size_request (GTK_WIDGET (ctrl), 300, 60);
gtk_box_pack_start (GTK_BOX (vbox),ctrl, TRUE, TRUE, 1);
// add main frame to scrool window, and quit
wizspy_areab3.scrolled_window=gtk_append_scrollviewport(wizspy_areab3.ctrl);
if(window!=NULL)
gtk_container_add (GTK_CONTAINER (window), wizspy_areab3.scrolled_window);
gtk_widget_show_all (wizspy_areab3.scrolled_window);
return wizspy_areab3.scrolled_window;
}
/*---------------- B4 ------------------------*/
/*
1.dialog preview:
____________
| ip invald \
--------------------------------------------------------------
| ( )Accept all expcet in list | ( )Accept all expcet in list |
| (o)Ignore all expcet in list | (o)Ignore all expcet in list |
|------------------------------|------------------------------|
| | |
| source ip list | dest ip list |
| | |
|----------------------------- | -----------------------------|
| ______ ______ | ______ ______ |
| | add | |remove| | | add | |remove| |
| ------ ------ | ------ ------ |
--------------------------------------------------------------
2.main gtk ctrl relations :
-hbox_main
|+vbox_src
| |+radio frame
| | |-radio Ignore (Ignore all packet expcet that in list)
| | |-radio Accept (Accept all packet expcet that in list)
| |-listbox (source ip list)
| |+button box
| |-button add (source)
| |-button remove (source)
|+vbox_dest
| |+radio frame
| | |-radio Ignore (Ignore all packet expcet that in list)
| | |-radio Accept (Accept all packet expcet that in list)
|-listbox (dest ip list)
|+button box
|-button add (dest)
|-button remove (dest)
*/
GtkScrollCtrl wizspy_areab4={0,0,0,};
GtkScrollCtrl wizspy_areab4_listboxsource={0,0,0,};
GtkScrollCtrl wizspy_areab4_listboxdest={0,0,0,};
#define MAX_NOUSEIPNUM 200
GtkListBoxItemData wizspy_areab4_srcip[MAX_NOUSEIPNUM];
GtkListBoxItemData wizspy_areab4_destip[MAX_NOUSEIPNUM];
gushort ifsrcenableall=0;
gushort ifdestenableall=0;
void wizspy_areab4_clickradioaccept(GtkWidget *widget,gpointer fundata)
{
if(fundata==(&wizspy_areab4_listboxsource))
ifsrcenableall=1;
else if(fundata==(&wizspy_areab4_listboxdest))
ifdestenableall=1;
}
void wizspy_areab4_clickradioignore(GtkWidget *widget,gpointer fundata)
{
if(fundata==(&wizspy_areab4_listboxsource))
ifsrcenableall=0;
else if(fundata==(&wizspy_areab4_listboxdest))
ifdestenableall=0;
}
void wizspy_areab4_add(IPDLG_PARAM* iparam, gpointer fundata)
{
gint freei;
GtkListBoxItemData itemdata;
if(fundata==(&wizspy_areab4_listboxsource))
{
if(ipdialog_ifsetip(iparam))
{
itemdata.itemdata= ipdialog_getip(iparam,itemdata.itemname);
if(itemdata.itemdata)
{
for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
{
if(wizspy_areab4_srcip[freei].itemdata==0
&&wizspy_areab4_srcip[freei].itemname[0]==0)
{
wizspy_areab4_srcip[freei].itemdata=itemdata.itemdata;
strcpy(wizspy_areab4_srcip[freei].itemname,itemdata.itemname);
listbox_insertitem(wizspy_areab4_listboxsource,itemdata,0);
break;
}
} // for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
} // if(itemdata.itemdata)
} //if(ipdialog_ifsetip(iparam))
}
else if(fundata==(&wizspy_areab4_listboxdest))
{
if(ipdialog_ifsetip(iparam))
{
itemdata.itemdata= ipdialog_getip(iparam,itemdata.itemname);
if(itemdata.itemdata)
{
for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
{
if(wizspy_areab4_destip[freei].itemdata==0
&&wizspy_areab4_destip[freei].itemname[0]==0)
{
wizspy_areab4_destip[freei].itemdata=itemdata.itemdata;
strcpy(wizspy_areab4_destip[freei].itemname,itemdata.itemname);
listbox_insertitem(wizspy_areab4_listboxdest,itemdata,0);
break;
}
} // for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
} // if(itemdata.itemdata)
} //if(ipdialog_ifsetip(iparam))
}
}
void wizspy_areab4_clickadd(GtkWidget *widget,gpointer fundata)
{
ipdialog_new(wizspy_areab4_add,fundata);
}
void wizspy_areab4_clickremove(GtkWidget *widget,gpointer fundata)
{
gint index, freei;
GtkListBoxItemData itemdata;
if(fundata==(&wizspy_areab4_listboxsource))
{
index= listbox_getselectitem(wizspy_areab4_listboxsource,&itemdata);
if(index>=0)
{
for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
{
if(wizspy_areab4_srcip[freei].itemdata==itemdata.itemdata)
{
wizspy_areab4_srcip[freei].itemdata=0;
wizspy_areab4_srcip[freei].itemname[0]=0;
listbox_deleteitem(wizspy_areab4_listboxsource,index);
break;
} //if(wizspy_areab4_srcip[freei].itemdata==itemdata.itemdata)
} // for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
}//if(index>=0)
}
else if(fundata==(&wizspy_areab4_listboxdest))
{
index= listbox_getselectitem(wizspy_areab4_listboxdest,&itemdata);
if(index>=0)
{
for(freei=0;freei<MAX_NOUSEIPNUM;freei++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -