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

📄 interface.c

📁 wifi 无线网络路由协议OLSR linux下C代码
💻 C
📖 第 1 页 / 共 3 页
字号:
/* * OLSR ad-hoc routing table management protocol GUI front-end * Copyright (C) 2003 Andreas T鴑nesen (andreto@ifi.uio.no) * * This file is part of olsr.org. * * uolsrGUI 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. * * uolsrGUI 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 olsr.org; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * */#include "common.h"#include "interface.h"#include "pixmaps.h"/* Global widgets *//* GtkWidget *text1; */GdkBitmap *mask;int packet_list_size = 0;int route_list_size = 0;int node_list_size = 0;GtkWidget *main_window;GtkWidget*create_main_window (void){  GtkWidget *notebook1;  GtkWidget *frame3;  GtkWidget *frame4;  GtkWidget *hbox1;  GtkWidget *vbox1;  GtkWidget *scrolledwindow1;  GtkWidget *node_label1;  GtkWidget *node_label2;  GtkWidget *node_label3;  GtkWidget *node_label4;  GtkWidget *node_label7;  GtkWidget *node_label8;  GtkWidget *node_label9;  GtkWidget *mid_frame;  GtkWidget *mpr_frame;  GtkWidget *hna_frame;  GtkWidget *mid_scrolledwindow;  GtkWidget *mpr_scrolledwindow;  GtkWidget *hna_scrolledwindow;  GtkWidget *Main;  GtkWidget *label_routes;  GtkWidget *hbox2;  GtkWidget *frame2;  GtkWidget *scrolledwindow4;  GtkWidget *label17;  GtkWidget *label18;  GtkWidget *label19;  GtkWidget *scrolledwindow3;  GtkWidget *label13;  GtkWidget *label14;  GtkWidget *label15;  GtkWidget *label16;  GtkWidget *label_packets;  //GtkWidget *empty_notebook_page2;  GtkWidget *label3;  GtkWidget *net_vbox;  GtkWidget *pack_vbox;  GtkWidget *pack_disp_vbox;  GtkWidget *disp_frame;  GtkWidget *route_frame;  GtkWidget *route_stats_frame;  GtkWidget *route_scrolledwindow;  GtkWidget *route_label1;  GtkWidget *route_label2;  GtkWidget *route_label3;  GtkWidget *route_label4;  GtkWidget *route_hbox1;  GtkWidget *traffic_label;  GtkWidget *settings_label;  GtkWidget *settings_hbox1;  GtkWidget *about_hbox1;  GtkWidget *about_label;  GtkWidget *empty1;  GdkPixmap *unik_logo_gdk;  GtkWidget *unik_logo;  /*   *The main window   */  main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  gtk_object_set_data (GTK_OBJECT (main_window), "main_window", main_window);  gtk_window_set_title (GTK_WINDOW (main_window), (olsrd_version));  gtk_window_set_default_size(GTK_WINDOW (main_window), 600, 550);  gtk_signal_connect(GTK_OBJECT(main_window),		     "destroy",		     GTK_SIGNAL_FUNC(gui_shutdown),		     //GTK_SIGNAL_FUNC(gtk_main_quit),		     NULL);  gtk_window_set_position(GTK_WINDOW(main_window), GTK_WIN_POS_CENTER); /* Position window in center */  gtk_window_set_policy(GTK_WINDOW(main_window), FALSE, TRUE, TRUE); /* No user-resizing */  /*   *Initialize the pixmaps   */  unik_logo_gdk = gdk_pixmap_colormap_create_from_xpm_d (NULL, gtk_widget_get_colormap(main_window), &mask, NULL, (gchar **)logo_xpm);  unik_logo = gtk_pixmap_new(unik_logo_gdk, mask);  /*   *The notebook   */  notebook1 = gtk_notebook_new ();  gtk_widget_ref (notebook1);  gtk_object_set_data_full (GTK_OBJECT (main_window), "notebook1", notebook1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (notebook1);  gtk_container_add (GTK_CONTAINER (main_window), notebook1);  /*   *The first vbox   */  vbox1 = gtk_vbox_new (FALSE, 0);  gtk_widget_ref (vbox1);  gtk_object_set_data_full (GTK_OBJECT (main_window), "vbox1", vbox1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (vbox1);  //gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 1);  gtk_container_add (GTK_CONTAINER (notebook1), vbox1);  /*   *The nodes frame   */  frame3 = gtk_frame_new ("Registered nodes:");  gtk_widget_ref (frame3);  gtk_object_set_data_full (GTK_OBJECT (main_window), "frame3", frame3,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (frame3);  gtk_box_pack_start (GTK_BOX (vbox1), frame3, TRUE, TRUE, 0);  gtk_widget_set_size_request(frame3, -1, 300);  gtk_container_set_border_width (GTK_CONTAINER (frame3), 1);  /*   *The scrolled window to contain the node list   */  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_ref (scrolledwindow1);  gtk_object_set_data_full (GTK_OBJECT (main_window), "scrolledwindow1", scrolledwindow1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (scrolledwindow1);  gtk_container_add (GTK_CONTAINER (frame3), scrolledwindow1);  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);  //gtk_box_pack_start (GTK_BOX (frame3), scrolledwindow1, TRUE, TRUE, 0);  //gtk_widget_set_usize (scrolledwindow1, -2, 332);  /*   *The node list   */    node_list = gtk_clist_new (7);  gtk_widget_ref (node_list);  gtk_object_set_data_full (GTK_OBJECT (main_window), "node_list", node_list,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_list);  gtk_container_add (GTK_CONTAINER (scrolledwindow1), node_list);  gtk_clist_set_column_width (GTK_CLIST (node_list), 0, 150); /* IP */  //gtk_clist_set_column_justification(GTK_CLIST(node_list), 0, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_width (GTK_CLIST (node_list), 1, 150); /* gateway */  //gtk_clist_set_column_justification(GTK_CLIST(node_list), 1, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_width (GTK_CLIST (node_list), 2, 50); /* hopcount */  gtk_clist_set_column_justification(GTK_CLIST(node_list), 2, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_width (GTK_CLIST (node_list), 3, 80); /* dev */  gtk_clist_set_column_justification(GTK_CLIST(node_list), 3, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_width (GTK_CLIST (node_list), 4, 70); /* timer */  gtk_clist_set_column_justification(GTK_CLIST(node_list), 4, GTK_JUSTIFY_CENTER);  //gtk_clist_set_column_width (GTK_CLIST (node_list), 7, 100); /* last about */  //gtk_clist_set_column_justification(GTK_CLIST(node_list), 7, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_width (GTK_CLIST (node_list), 5, 40); /* MID */  gtk_clist_set_column_justification(GTK_CLIST(node_list), 5, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_width (GTK_CLIST (node_list), 6, 40); /* HNA */  gtk_clist_set_column_justification(GTK_CLIST(node_list), 6, GTK_JUSTIFY_CENTER);  gtk_clist_column_titles_show (GTK_CLIST (node_list));  /*   *Row selection callback   */  gtk_signal_connect(GTK_OBJECT(node_list), "select_row",		     GTK_SIGNAL_FUNC(selection_made),		     NULL);  /*   *Column selection callback   */  gtk_signal_connect(GTK_OBJECT(node_list),		     "click_column",		     GTK_SIGNAL_FUNC(column_clicked_callback),		     NULL);  node_label1 = gtk_label_new ("Dest");  gtk_widget_ref (node_label1);  gtk_object_set_data_full (GTK_OBJECT (main_window), "IP", node_label1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label1);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 0, node_label1);  node_label2 = gtk_label_new ("Gateway");  gtk_widget_ref (node_label2);  gtk_object_set_data_full (GTK_OBJECT (main_window), "hops", node_label2,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label2);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 1, node_label2);  node_label3 = gtk_label_new ("Metric");  gtk_widget_ref (node_label3);  gtk_object_set_data_full (GTK_OBJECT (main_window), "info", node_label3,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label3);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 2, node_label3);  node_label4 = gtk_label_new ("Device");  gtk_widget_ref (node_label4);  gtk_object_set_data_full (GTK_OBJECT (main_window), "Device", node_label4,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label4);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 3, node_label4);  node_label7 = gtk_label_new ("Timer");  gtk_widget_ref (node_label7);  gtk_object_set_data_full (GTK_OBJECT (main_window), "LMF", node_label7,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label7);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 4, node_label7);  /*  node_label8 = gtk_label_new ("LMA");  gtk_widget_ref (node_label8);  gtk_object_set_data_full (GTK_OBJECT (main_window), "LMA", node_label8,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label8);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 7, node_label8);  */  node_label8 = gtk_label_new ("MID");  gtk_widget_ref (node_label8);  gtk_object_set_data_full (GTK_OBJECT (main_window), "MID", node_label8,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label8);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 5, node_label8);  node_label9 = gtk_label_new ("HNA");  gtk_widget_ref (node_label9);  gtk_object_set_data_full (GTK_OBJECT (main_window), "HNA", node_label9,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (node_label9);  gtk_clist_set_column_widget (GTK_CLIST (node_list), 6, node_label9);  gtk_clist_column_titles_active(GTK_CLIST (node_list));  gtk_widget_show_now(node_list);  /*   *Row selection callback   */  gtk_signal_connect(GTK_OBJECT(node_list), "select_row",		     GTK_SIGNAL_FUNC(node_selection),		     NULL);  /*   *The first hbox   */  hbox1 = gtk_hbox_new (FALSE, 0);  gtk_widget_ref (hbox1);  gtk_object_set_data_full (GTK_OBJECT (main_window), "hbox1", hbox1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (hbox1);  gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);  //gtk_container_add (GTK_CONTAINER (notebook1), hbox1);  gtk_container_set_border_width (GTK_CONTAINER (hbox1), 4);  gtk_widget_set_size_request(hbox1, -1, 200);  /*   *The net-info frame   */  frame4 = gtk_frame_new ("Info:");  gtk_widget_ref (frame4);  gtk_object_set_data_full (GTK_OBJECT (main_window), "frame4", frame4,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (frame4);  gtk_box_pack_start (GTK_BOX (hbox1), frame4, TRUE, TRUE, 0);  //gtk_widget_set_size_request(frame4, 200, -1);  gtk_container_set_border_width (GTK_CONTAINER (frame4), 1);  /*   *The net-info hbox   */  net_vbox = gtk_vbox_new (FALSE, 0);  gtk_widget_ref (net_vbox);  gtk_object_set_data_full (GTK_OBJECT (main_window), "net_vbox", net_vbox,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (net_vbox);  gtk_container_add (GTK_CONTAINER (frame4), net_vbox);  /*   *The net-info label field   */  net_label = gtk_label_new(NULL);  gtk_widget_ref (net_label);  gtk_misc_set_alignment((GtkMisc *)net_label, 0, 0);  //gtk_label_set_justify((GtkLabel *)net_label,GTK_JUSTIFY_LEFT);  gtk_object_set_data_full (GTK_OBJECT (main_window), "net_label", net_label,                            (GtkDestroyNotify) gtk_widget_unref);  //set_net_info("Not connected...");  gtk_widget_show (net_label);  gtk_box_pack_start (GTK_BOX (net_vbox), net_label, TRUE, TRUE, 0);  //gtk_container_add (GTK_CONTAINER (frame4), net_label);  /*   *The connect button   */  connect_button = gtk_button_new_with_label ("Connect to host");  gtk_widget_ref (connect_button);  gtk_object_set_data_full (GTK_OBJECT (main_window), "connect_button", connect_button,                            (GtkDestroyNotify) gtk_widget_unref);  /* Connect the "clicked" signal of the button to our callback */  gtk_signal_connect (GTK_OBJECT (connect_button), "clicked",		      GTK_SIGNAL_FUNC (connect_callback), NULL);  gtk_widget_show (connect_button);  gtk_box_pack_start (GTK_BOX (net_vbox), connect_button, FALSE, FALSE, 1);  gtk_container_set_border_width (GTK_CONTAINER (connect_button), 5);  /*   *The node MPR info frame   */  mpr_frame = gtk_frame_new ("MPR:");  gtk_widget_ref (mpr_frame);  gtk_object_set_data_full (GTK_OBJECT (main_window), "mpr_frame", mpr_frame,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (mpr_frame);  gtk_box_pack_start (GTK_BOX (hbox1), mpr_frame, FALSE, FALSE, 0);  //gtk_widget_set_size_request(mid_frame, 125, -1);  gtk_container_set_border_width (GTK_CONTAINER (mpr_frame), 1);  /*   *The scrolledwindow to contain the MPR node info   */  mpr_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_ref (mpr_scrolledwindow);  gtk_object_set_data_full (GTK_OBJECT (main_window), "mpr_scrolledwindow", mpr_scrolledwindow,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (mpr_scrolledwindow);  gtk_container_add (GTK_CONTAINER (mpr_frame), mpr_scrolledwindow);  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (mpr_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);  gtk_container_set_border_width (GTK_CONTAINER (mpr_scrolledwindow), 3);  /*   *The node MID info frame   */  mid_frame = gtk_frame_new ("MID:");  gtk_widget_ref (mid_frame);  gtk_object_set_data_full (GTK_OBJECT (main_window), "mid_frame", mid_frame,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (mid_frame);  gtk_box_pack_start (GTK_BOX (hbox1), mid_frame, FALSE, FALSE, 0);  //gtk_widget_set_size_request(mid_frame, 125, -1);  gtk_container_set_border_width (GTK_CONTAINER (mid_frame), 1);  /*   *The scrolledwindow to contain the MID node info   */  mid_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_ref (mid_scrolledwindow);  gtk_object_set_data_full (GTK_OBJECT (main_window), "mid_scrolledwindow", mid_scrolledwindow,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (mid_scrolledwindow);  gtk_container_add (GTK_CONTAINER (mid_frame), mid_scrolledwindow);  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (mid_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);  gtk_container_set_border_width (GTK_CONTAINER (mid_scrolledwindow), 3);

⌨️ 快捷键说明

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