📄 wizserver.c
字号:
GtkHexView_SetBufferData(&wizspy_areaa2,(unsigned char *)(retinsert->data),retinsert->length,0);
GtkHexView_SetSelOption(&wizspy_areaa2, 0,0,1);
}
}
}
GtkWidget* wizserv_areaa1_create(GtkWidget *window)
{
listctrl_createnew(NULL,&wizserv_areaa1list,3,wizserv_areaa1_defaulttitles);
gtk_widget_set_size_request (GTK_WIDGET (wizserv_areaa1list.scrolled_window), 400, 150);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaa1list.ctrl),0,80);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaa1list.ctrl),1,120);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaa1list.ctrl),2,120);
gtk_clist_column_titles_show(GTK_CLIST(wizserv_areaa1list.ctrl));
g_signal_connect (G_OBJECT (wizserv_areaa1list.ctrl), "select_row",
G_CALLBACK (wizserv_areaa1_selection),
NULL);
return wizserv_areaa1list.scrolled_window;
}
/* list ctrl for area E */
GtkScrollCtrl wizserv_areaelist={0,0,0};
gchar *wizserv_areae_defaulttitles[]=
{
"Socket", "IP", "Paket-in", "Packet-out", "Flow-in", "Flow-out"
};
void wizserv_areae_selection( GtkWidget *clist,
gint row,
gint column,
GdkEventButton *event,
gpointer data )
{
REQLIST *lpuser=NULL;
if(row>=0)
{
lpuser= (REQLIST *)gtk_clist_get_row_data (GTK_CLIST(clist), row);
if(lpuser!=NULL&&lpuser!=curClient)
{
int index=0;
struct tm *lptm=0;;
time_t ctimet;
char itemsg[256];
ClientDataInfo *retinsert=0;
/* set data to this areaa1 list*/
curClient=lpuser;
gtk_clist_clear(GTK_CLIST(wizserv_areaa1list.ctrl));
if(CheckConnectClient(lpuser)!=NULL)
{
int count=GetClientDataCount(lpuser);
retinsert=GetClientFirstData(lpuser);
areaa1_packetrownum=0;
if(retinsert!=NULL) do
{
index=gtk_clist_insert(GTK_CLIST(wizserv_areaa1list.ctrl),0,wizserv_areaa1_defaulttitles);
gtk_clist_set_row_data (GTK_CLIST(wizserv_areaa1list.ctrl), index ,(gpointer)retinsert);
areaa1_packetrownum++;
sprintf(itemsg,"%ld",retinsert->nID);
gtk_clist_set_text(GTK_CLIST(wizserv_areaa1list.ctrl),index,0,(gchar *)itemsg);
ctimet=retinsert->dtime;
lptm=gmtime(&ctimet);
sprintf(itemsg,"%04d-%02d-%02d %02d:%02d:%02d",
lptm->tm_year+1900,lptm->tm_mon+1,lptm->tm_mday,
lptm->tm_hour+8,lptm->tm_min,lptm->tm_sec);
gtk_clist_set_text(GTK_CLIST(wizserv_areaa1list.ctrl),index,1,(gchar *)itemsg);
sprintf(itemsg,"%d",retinsert->length);
gtk_clist_set_text(GTK_CLIST(wizserv_areaa1list.ctrl),index,2,(gchar *)itemsg);
retinsert=GetClientNextData(lpuser);
}while(areaa1_packetrownum<count&&retinsert!=NULL);
}//if(retinsert!=BULL)
}//if(lpuser!=NULL&&lpuser!=curClient)
}//if(row>=0)
}
GtkWidget* wizserv_areae_create(GtkWidget *window)
{
listctrl_createnew(NULL,&wizserv_areaelist,6,wizserv_areae_defaulttitles);
gtk_widget_set_size_request (GTK_WIDGET (wizserv_areaelist.scrolled_window), -1, 150);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaelist.ctrl),0,120);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaelist.ctrl),1,120);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaelist.ctrl),2,120);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaelist.ctrl),3,120);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaelist.ctrl),4,120);
gtk_clist_set_column_width (GTK_CLIST(wizserv_areaelist.ctrl),5,120);
gtk_clist_column_titles_show(GTK_CLIST(wizserv_areaelist.ctrl));
g_signal_connect (G_OBJECT (wizserv_areaelist.ctrl), "select_row",
G_CALLBACK (wizserv_areae_selection),
NULL);
return wizserv_areaelist.scrolled_window;
}
/* The Widgets list for setting :
1.dialog preview:
______________________________________________________
/v| _ X \
--------------------------------------------------------
| populor port list : |
| |
| |
| |
| |
| |
|------------------------------------------------------|
| current port: | | |
|------------------------------------------------------|
| |X| auto send |
| |X| auto disconnect |
|------------------------------------------------------|
| __________ ___________ _______ |
| | Open now | | Close now | | O K | |
| ---------- ----------- ------- |
-------------------------------------------------------
2.main gtk ctrl relations :
+vbox
|-list ctrl, populor port
|+hbox
| |-label
| |-entry
|+vbox
| |-check button, auto send
| |-check button, auto disconnect
|+hbox
|-button, open now
|-button, close now
*/
gint ifwizserv_setting_autosend=0;
gint ifwizserv_setting_autodisconnect=0;
gushort wizserv_setting_port=0;
gint ifwizserv_setting_open=0;
void wizserv_setting_ondestroy(GtkWidget *window)
{
gtk_grab_remove(window);
gtk_widget_destroy(window);
ifwizserv_setting_open=0;
}
void wizserv_setting_portselection( GtkWidget *clist,
gint row,
gint column,
GdkEventButton *event,
gpointer data )
{
gchar itemsg[60];
GtkWidget *entryctrl= (GtkWidget *)data;
if(GTK_IS_ENTRY(entryctrl)&&row>=0)
wizserv_setting_port=(gulong)gtk_clist_get_row_data(GTK_CLIST(clist),row);
sprintf(itemsg,"%d",wizserv_setting_port);
gtk_entry_set_text (GTK_ENTRY (entryctrl), (gchar *)(itemsg));
}
void wizserv_setting_clickautosend(GtkWidget *window, gpointer fundata)
{
ifwizserv_setting_autosend=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window));
}
void wizserv_setting_clickautodisconnect(GtkWidget *window, gpointer fundata)
{
ifwizserv_setting_autodisconnect=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window));
}
void wizserv_setting_clickopen(GtkWidget *window, gpointer fundata)
{
ifwizserv_autosend=ifwizserv_setting_autosend;
ifwizserv_autodisconnect=ifwizserv_setting_autodisconnect;
Server_SetPort(wizserv_setting_port);
Server_Open();
}
void wizserv_setting_clickclose(GtkWidget *window, gpointer fundata)
{
Server_Close();
}
void wizserv_setting_clickok(GtkWidget *window, gpointer fundata)
{
ifwizserv_autosend=ifwizserv_setting_autosend;
ifwizserv_autodisconnect=ifwizserv_setting_autodisconnect;
Server_SetPort(wizserv_setting_port);
wizserv_setting_ondestroy((GtkWidget *)fundata);
}
GtkWidget* wizserv_setting_create(GtkWidget *window)
{
guint freei,index;
GtkWidget *ctrl, *vbox, *box;
GtkScrollCtrl listctrl;
gchar itemsg[60];
gchar *listitle[]=
{"name","port","describe"};
/* create new vbox for main */
vbox = gtk_vbox_new (FALSE, 0);
/* add code here */
ifwizserv_setting_autosend=ifwizserv_autosend;
ifwizserv_setting_autodisconnect=ifwizserv_autodisconnect;
wizserv_setting_port=Server_GetPort();
// add list ctrl
ctrl=listctrl_createnew(NULL,&listctrl,3,listitle);
gtk_widget_set_size_request (GTK_WIDGET (ctrl), 500, 160);
gtk_clist_set_column_width (GTK_CLIST(listctrl.ctrl),0,60);
gtk_clist_set_column_width (GTK_CLIST(listctrl.ctrl),1,60);
gtk_clist_set_column_width (GTK_CLIST(listctrl.ctrl),2,300);
gtk_box_pack_start (GTK_BOX (vbox), ctrl, TRUE, TRUE, 0);
for(freei=0;freei<MAX_POPULERPORT;freei++)
{
index=gtk_clist_insert(GTK_CLIST(listctrl.ctrl),freei,listitle);
gtk_clist_set_text(GTK_CLIST(listctrl.ctrl),index,0,(gchar *)populer_port[freei].name);
sprintf(itemsg,"%d",populer_port[freei].type);
gtk_clist_set_text(GTK_CLIST(listctrl.ctrl),index,1,(gchar *)itemsg);
gtk_clist_set_text(GTK_CLIST(listctrl.ctrl),index,2,(gchar *)populer_port[freei].info);
gtk_clist_set_row_data(GTK_CLIST(listctrl.ctrl),index,(gpointer)((gulong)populer_port[freei].type));
}
// add labal and entry
box = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box), 10);
gtk_box_pack_start (GTK_BOX (vbox), box, TRUE, TRUE, 0);
ctrl=gtk_label_new("Current port:");
gtk_box_pack_start (GTK_BOX (box), ctrl, TRUE, TRUE, 0);
ctrl=gtk_entry_new ();
gtk_entry_set_max_length (GTK_ENTRY (ctrl),10);
gtk_widget_set_size_request (GTK_WIDGET (ctrl), 80, 22);
sprintf(itemsg,"%d",wizserv_setting_port);
gtk_entry_set_text (GTK_ENTRY (ctrl), (gchar *)itemsg);
gtk_box_pack_start (GTK_BOX (box),ctrl, TRUE, TRUE, 1);
g_signal_connect (G_OBJECT (listctrl.ctrl), "select_row",
G_CALLBACK (wizserv_setting_portselection),
ctrl);
// add auto buttons
ctrl = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (vbox), ctrl, FALSE, TRUE, 0);
box = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box), 10);
gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, TRUE, 0);
ctrl = gtk_check_button_new_with_label ("Auto send when receive packet");
g_signal_connect (G_OBJECT (ctrl), "clicked",G_CALLBACK (wizserv_setting_clickautosend), window);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctrl), ifwizserv_setting_autosend);
gtk_box_pack_start (GTK_BOX (box), ctrl, TRUE, TRUE, 0);
ctrl = gtk_check_button_new_with_label ("Auto disconnect when sucessfully send ");
g_signal_connect (G_OBJECT (ctrl), "clicked",G_CALLBACK (wizserv_setting_clickautodisconnect), window);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctrl), ifwizserv_setting_autodisconnect);
gtk_box_pack_start (GTK_BOX (box), ctrl, TRUE, TRUE, 0);
ctrl = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (vbox), ctrl, FALSE, TRUE, 0);
box = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box), 10);
gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, TRUE, 0);
ctrl = gtk_button_new_with_label ("Open Now");
g_signal_connect (G_OBJECT (ctrl), "clicked",G_CALLBACK (wizserv_setting_clickopen), window);
gtk_box_pack_start (GTK_BOX (box), ctrl, TRUE, TRUE, 0);
ctrl = gtk_button_new_with_label ("Close Now");
g_signal_connect (G_OBJECT (ctrl), "clicked",G_CALLBACK (wizserv_setting_clickclose), window);
gtk_box_pack_start (GTK_BOX (box), ctrl, TRUE, TRUE, 0);
ctrl = gtk_vseparator_new ();
gtk_widget_set_size_request (GTK_WIDGET (ctrl), 60, 22);
gtk_box_pack_start (GTK_BOX (box), ctrl, FALSE, TRUE, 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -