⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.c

📁 Linux 上的socket嗅探器
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * * Copyright (C) 2003 Xiangbin Lee <honeycombs@sina.com> <honeycombs@263.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */#include "common.h"/* create a new GtkAccelGroup */GtkAccelGroup *create_menu_accelgroup(GtkWidget *widget){    GtkAccelGroup *accel;    accel = gtk_accel_group_new();    _gtk_accel_group_attach(accel, G_OBJECT(widget));    return accel;}/* Insert new submenu to a top menu */GtkWidget *create_menu_item(        GtkMenu *menu, guchar *label,        GtkSignalFunc func,  gpointer data,        GtkAccelGroup *accel, guint key, guint mods)    {    GtkWidget *menu_item;    if (label == NULL)    {        menu_item =gtk_menu_item_new();        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);        gtk_widget_show(menu_item);        return menu_item;        }    else    {        menu_item = gtk_menu_item_new_with_label(label);        if(func==NULL)        {            GtkWidget *submenu=gtk_menu_new();            gtk_menu_set_accel_group(GTK_MENU(submenu), accel);            gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item),submenu);            gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);                 gtk_widget_show(menu_item);            menu_item = gtk_tearoff_menu_item_new();            gtk_widget_show(menu_item);            gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menu_item);            return submenu;         }        else        {            gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);                 g_signal_connect(GTK_OBJECT(menu_item), "activate", func, data);             gtk_widget_add_accelerator(menu_item, "activate",  accel, key, mods, GTK_ACCEL_VISIBLE);            gtk_widget_show(menu_item);            return menu_item;        }    }                     return NULL;}/* Add a new button to a bar */GtkWidget *AppAddButoBar(        GtkWidget *Toolbar,        gchar *title, gchar *tip,gchar *icofile,        GtkSignalFunc func,        gpointer data){    GtkWidget *iconw, *ret;       iconw = gtk_image_new_from_file (icofile);      ret=gtk_toolbar_append_item (        GTK_TOOLBAR (Toolbar),        title,tip,"Private",iconw,        GTK_SIGNAL_FUNC (func),(gpointer)data);    return ret ;}gint app_menu_default(APP_MAIN  *hMain)/* APP_MENUBAR(hMain) */{                /* create new main menu and it's submenu for app main, sample:     *     * GtkAccelGroup *accel;     * GtkWidget *menu, *menu_item;     * accel = gtk_accel_group_new();     * _gtk_accel_group_attach(accel, G_OBJECT(APP_HMAIN(hMain)));     *     * menu = create_menu(GTK_MENU_BAR(APP_MENUBAR(hMain)), "MENU-1", accel);     * menu_item= create_menu_item(GTK_MENU(menu), "MENU-1-1",     *     GTK_SIGNAL_FUNC(MENU_1_1),NULL,accel,GDK_F2,0);     * menu_item= create_menu_item(GTK_MENU(menu), NULL,NULL,NULL,NULL,0,0);     * menu_item= create_menu_item(GTK_MENU(menu), "MENU-1-2",     *     GTK_SIGNAL_FUNC(MENU_1_2),NULL,accel,GDK_F3,0);     *     * gboolean MENU_1_1(GtkWidget *widget, gpointer data);     * gboolean MENU_1_2(GtkWidget *widget, gpointer data);     *     */    return 1;}   gint app_toolbar_default(APP_MAIN  *hMain) /* APP_TOOLBAR(hMain) */{    /* Add buttons to your toolbar, sample:     *     * if(AppAddButoBar(APP_TOOLBAR(hMain),"Title","Tip","X.ico",     *      GTK_SIGNAL_FUNC (TOOLBAR_FUN1),LPDATA)==NULL)return 0;     *     * gboolean TOOLBAR_FUN1(GtkWidget *widget, gpointer data);     *     * --- Add your codes here :     */    return 1;}gint app_status_default(APP_MAIN  *hMain) /* APP_STATUSBAR(hMain) */{    /* Add new icon and it's function to a statusbar, sample:     *     * GtkWidget *iconw;     * iconw = gtk_image_new_from_file ("help.ico");     * if(gtk_toolbar_append_item (GTK_TOOLBAR (APP_STATUSBAR(hMain)),     *     "Help","help","Private",iconw,GTK_SIGNAL_FUNC (Main_Help),     *      NULL)==NULL)return 0;     *     * gboolean Main_Help(GtkWidget *widget, gpointer data);     *     * --- Add your codes here :     */    return 1;}gint app_frame_default(APP_MAIN  *hMain)/* APP_MAINFRAME(hMain) */{                /*  add a new wizard to main view , sample :     *     *  GtkWidget *frame,*label;     *  label = gtk_label_new (char *labalname);     *  frame = a new GtkWidget;     *  gtk_notebook_append_page (GTK_NOTEBOOK(APP_MAINFRAME(hMain)), frame, label);     *     * --- Add your codes here :     */        return 1;}GtkWidget *app_init(APP_MAIN  *hMain, gchar *title){    GtkWidget *handToolbar, *handMenubar, *handStatusbar,*main_vbox,*tool_hbox;    if(APP_IFREGISTER(hMain)==GTK_WIDGET_REG)         return  APP_HMAIN(hMain);    else        APP_IFREGISTER(hMain)=GTK_WIDGET_REG;    /* Create a new window */    APP_HMAIN(hMain) = gtk_window_new (GTK_WINDOW_TOPLEVEL);    gtk_window_set_title (GTK_WINDOW (APP_HMAIN(hMain)), title);    /* maximize of the window. */    gtk_window_maximize(GTK_WINDOW(APP_HMAIN(hMain)));    /* Sets the border width of the window. */    gtk_container_set_border_width (GTK_CONTAINER(APP_HMAIN(hMain)), 10);    /* create menubar of the window. */    handMenubar= gtk_handle_box_new ();    APP_MENUBAR(hMain) = gtk_menu_bar_new();    gtk_container_add(GTK_CONTAINER(handMenubar),APP_MENUBAR(hMain));    /* create toolbar of the window. */    handToolbar= gtk_handle_box_new ();    APP_TOOLBAR(hMain) = gtk_toolbar_new ();    gtk_toolbar_set_orientation (GTK_TOOLBAR (APP_TOOLBAR(hMain)), GTK_ORIENTATION_HORIZONTAL);    gtk_toolbar_set_style (GTK_TOOLBAR (APP_TOOLBAR(hMain)), GTK_TOOLBAR_BOTH);    gtk_container_set_border_width (GTK_CONTAINER (APP_TOOLBAR(hMain)), 1);    gtk_container_add(GTK_CONTAINER(handToolbar),APP_TOOLBAR(hMain));    /* create mainview of the window. */        APP_MAINFRAME(hMain) = gtk_notebook_new ();    gtk_notebook_set_tab_pos (GTK_NOTEBOOK (APP_MAINFRAME(hMain)), GTK_POS_BOTTOM);    gtk_notebook_set_show_tabs( GTK_NOTEBOOK (APP_MAINFRAME(hMain)),FALSE );    gtk_notebook_set_show_border(  GTK_NOTEBOOK (APP_MAINFRAME(hMain)),FALSE );        /* create statusbar of the window. */    handStatusbar= gtk_handle_box_new ();    tool_hbox = gtk_hbox_new(FALSE, 2);    gtk_box_set_spacing (GTK_BOX (tool_hbox),0);    gtk_container_add(GTK_CONTAINER(handStatusbar),tool_hbox);    APP_STATUSBAR(hMain) = gtk_toolbar_new ();    gtk_toolbar_set_orientation (GTK_TOOLBAR (APP_STATUSBAR(hMain)), GTK_ORIENTATION_HORIZONTAL);    gtk_toolbar_set_style (GTK_TOOLBAR (APP_STATUSBAR(hMain)), GTK_TOOLBAR_BOTH);    gtk_container_set_border_width (GTK_CONTAINER (APP_STATUSBAR(hMain)), 1);    gtk_box_pack_start(GTK_BOX(tool_hbox), APP_STATUSBAR(hMain), FALSE, FALSE, 0);    /* adding menubar, toolbar, mainview & statusbar into main_vbox */    main_vbox = gtk_vbox_new(FALSE, 2);    gtk_box_pack_start(GTK_BOX(main_vbox), handMenubar, FALSE, FALSE, 0);    gtk_box_pack_start(GTK_BOX(main_vbox), handToolbar, FALSE, FALSE, 0);    gtk_box_pack_start(GTK_BOX(main_vbox), APP_MAINFRAME(hMain), TRUE, TRUE, 0);    gtk_box_pack_end(GTK_BOX(main_vbox),   handStatusbar, FALSE, FALSE, 0);        gtk_container_add(GTK_CONTAINER(APP_HMAIN(hMain)),main_vbox);          return APP_HMAIN(hMain);}GtkWidget *gtk_append_scrollctrl(GtkWidget *ctrl){    GtkWidget * scrolled_window;    scrolled_window = gtk_scrolled_window_new (NULL, NULL);    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),		    	   GTK_POLICY_AUTOMATIC,				    GTK_POLICY_AUTOMATIC);    if(ctrl!=NULL)        gtk_container_add (GTK_CONTAINER (scrolled_window),ctrl);    return  scrolled_window;}GtkWidget *gtk_append_scrollviewport(GtkWidget *ctrl){    GtkWidget * scrolled_window;    scrolled_window = gtk_scrolled_window_new (NULL, NULL);    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolled_window),		    	   GTK_POLICY_AUTOMATIC,				    GTK_POLICY_AUTOMATIC);    if(ctrl!=NULL)        gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(scrolled_window),ctrl);    return  scrolled_window;}/*           text area GtkWidget           */GtkWidget *textarea_createlist(GtkWidget *window,GTK_TextArea *lptextarea){   if(lptextarea->regsignal==GTK_WIDGET_REG)       return (lptextarea->scrolled_window);   else lptextarea->regsignal=GTK_WIDGET_REG;   lptextarea->view = gtk_text_view_new ();   lptextarea->buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (lptextarea->view));   lptextarea->scrolled_window =  gtk_append_scrollctrl(lptextarea->view);    if(window!=NULL)        gtk_container_add (GTK_CONTAINER (window), lptextarea->scrolled_window);   gtk_widget_show_all (lptextarea->scrolled_window);   return lptextarea->scrolled_window;}GtkWidget *listctrl_createnew(GtkWidget *window,GtkScrollCtrl *lpctrl,gint column,gchar *titles[]){    if(lpctrl->regsignal==GTK_WIDGET_REG)        return (lpctrl->scrolled_window);    else lpctrl->regsignal=GTK_WIDGET_REG;    if(titles==NULL)        lpctrl->ctrl  = gtk_clist_new(column);    else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -