📄 interface.c
字号:
/* *The MPR list */ mpr_list = gtk_clist_new (1); gtk_widget_ref (mpr_list); gtk_object_set_data_full (GTK_OBJECT (main_window), "mpr_list", mpr_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (mpr_list); gtk_container_add (GTK_CONTAINER (mpr_scrolledwindow), mpr_list); gtk_clist_set_column_width (GTK_CLIST (mpr_list), 0, 120); /* IP */ gtk_clist_column_titles_hide (GTK_CLIST (mpr_list)); /* *The MID list */ mid_list = gtk_clist_new (1); gtk_widget_ref (mid_list); gtk_object_set_data_full (GTK_OBJECT (main_window), "mid_list", mid_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (mid_list); gtk_container_add (GTK_CONTAINER (mid_scrolledwindow), mid_list); gtk_clist_set_column_width (GTK_CLIST (mid_list), 0, 120); /* IP */ gtk_clist_column_titles_hide (GTK_CLIST (mid_list)); /* *The node HNA info frame */ hna_frame = gtk_frame_new ("HNA:"); gtk_widget_ref (hna_frame); gtk_object_set_data_full (GTK_OBJECT (main_window), "hna_frame", hna_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hna_frame); gtk_box_pack_start (GTK_BOX (hbox1), hna_frame, FALSE, FALSE, 0); //gtk_widget_set_size_request(mid_frame, 125, -1); gtk_container_set_border_width (GTK_CONTAINER (hna_frame), 1); /* *The HNA scrolled window */ hna_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (hna_scrolledwindow); gtk_object_set_data_full (GTK_OBJECT (main_window), "hna_scrolledwindow", hna_scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hna_scrolledwindow); gtk_container_add (GTK_CONTAINER (hna_frame), hna_scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (hna_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width (GTK_CONTAINER (hna_scrolledwindow), 3); /* *The HNA list */ hna_list = gtk_clist_new (1); gtk_widget_ref (hna_list); gtk_object_set_data_full (GTK_OBJECT (main_window), "hna_list", hna_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hna_list); gtk_container_add (GTK_CONTAINER (hna_scrolledwindow), hna_list); gtk_clist_set_column_width (GTK_CLIST (hna_list), 0, 120); /* IP */ gtk_clist_column_titles_hide (GTK_CLIST (hna_list)); /* *The "main" notebook page */ Main = gtk_label_new ("Main"); gtk_widget_ref (Main); gtk_object_set_data_full (GTK_OBJECT (main_window), "Main", Main, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Main); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), Main); /* *The main hbox of the Packet page */ hbox2 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox2); gtk_object_set_data_full (GTK_OBJECT (main_window), "hbox2", hbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox2); gtk_container_add (GTK_CONTAINER (notebook1), hbox2); /* *The packet hbox */ pack_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_ref (pack_vbox); gtk_object_set_data_full (GTK_OBJECT (main_window), "pack_vbox", pack_vbox, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (pack_vbox); gtk_box_pack_start (GTK_BOX (hbox2), pack_vbox, TRUE, TRUE, 0); /* *The packet frame */ frame2 = gtk_frame_new ("Packet"); gtk_widget_ref (frame2); gtk_object_set_data_full (GTK_OBJECT (main_window), "frame2", frame2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (frame2); gtk_box_pack_start (GTK_BOX (pack_vbox), frame2, TRUE, TRUE, 0); /* Do not expand */ /* *Packet list scrolled window */ scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow4); gtk_object_set_data_full (GTK_OBJECT (main_window), "scrolledwindow4", scrolledwindow4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (frame2), scrolledwindow4); /* *The packet list */ packet_list = gtk_clist_new (3); gtk_widget_ref (packet_list); gtk_object_set_data_full (GTK_OBJECT (main_window), "packet_list", packet_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (packet_list); gtk_container_add (GTK_CONTAINER (scrolledwindow4), packet_list); gtk_clist_set_column_width (GTK_CLIST (packet_list), 0, 80); /* Type */ gtk_clist_set_column_width (GTK_CLIST (packet_list), 1, 150); /* Origin IP */ gtk_clist_set_column_width (GTK_CLIST (packet_list), 2, 20); /* size */ gtk_clist_column_titles_show (GTK_CLIST (packet_list)); label17 = gtk_label_new ("Type"); gtk_widget_ref (label17); gtk_object_set_data_full (GTK_OBJECT (main_window), "label17", label17, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label17); gtk_clist_set_column_widget (GTK_CLIST (packet_list), 0, label17); label18 = gtk_label_new ("Origin"); gtk_widget_ref (label18); gtk_object_set_data_full (GTK_OBJECT (main_window), "label18", label18, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label18); gtk_clist_set_column_widget (GTK_CLIST (packet_list), 1, label18); label19 = gtk_label_new ("Size"); gtk_widget_ref (label19); gtk_object_set_data_full (GTK_OBJECT (main_window), "label19", label19, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label19); gtk_clist_set_column_widget (GTK_CLIST (packet_list), 2, label19); /* *Row selection callback */ gtk_signal_connect(GTK_OBJECT(packet_list), "select_row", GTK_SIGNAL_FUNC(packet_selection), NULL); /* *The packet button */ packet_button = gtk_button_new_with_label ("Grab packets"); gtk_widget_ref (packet_button); gtk_object_set_data_full (GTK_OBJECT (main_window), "packet_button", packet_button, (GtkDestroyNotify) gtk_widget_unref); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect (GTK_OBJECT (packet_button), "clicked", GTK_SIGNAL_FUNC (packet_callback), NULL); gtk_widget_show (packet_button); gtk_box_pack_start (GTK_BOX (pack_vbox), packet_button, FALSE, FALSE, 5); /* *The packet disp hbox */ pack_disp_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_ref (pack_disp_vbox); gtk_object_set_data_full (GTK_OBJECT (main_window), "pack_disp_vbox", pack_disp_vbox, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (pack_disp_vbox); gtk_box_pack_start (GTK_BOX (hbox2), pack_disp_vbox, TRUE, TRUE, 0); /* *The packet disp frame */ disp_frame = gtk_frame_new ("Packet content"); gtk_widget_ref (disp_frame); gtk_object_set_data_full (GTK_OBJECT (main_window), "disp_frame", disp_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (disp_frame); gtk_box_pack_start (GTK_BOX (pack_disp_vbox), disp_frame, TRUE, TRUE, 0); /* Do not expand */ /* *Scrolled window for the packet display *list */ scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow3); gtk_object_set_data_full (GTK_OBJECT (main_window), "scrolledwindow3", scrolledwindow3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (disp_frame), scrolledwindow3); //gtk_box_pack_start (GTK_BOX (disp_frame), scrolledwindow3, TRUE, TRUE, 0); /* *The packet display list */ packet_content_list = gtk_clist_new (4); gtk_widget_ref (packet_content_list); gtk_object_set_data_full (GTK_OBJECT (main_window), "packet_content_list", packet_content_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (packet_content_list); gtk_container_add (GTK_CONTAINER (scrolledwindow3), packet_content_list); gtk_clist_set_column_width (GTK_CLIST (packet_content_list), 0, 70); /* 0-7 */ gtk_clist_set_column_justification(GTK_CLIST (packet_content_list), 0, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width (GTK_CLIST (packet_content_list), 1, 70); /* 8-15 */ gtk_clist_set_column_justification(GTK_CLIST (packet_content_list), 1, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width (GTK_CLIST (packet_content_list), 2, 70); /* 16-23 */ gtk_clist_set_column_justification(GTK_CLIST (packet_content_list), 2, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width (GTK_CLIST (packet_content_list), 3, 70); /* 24-31 */ gtk_clist_set_column_justification(GTK_CLIST (packet_content_list), 3, GTK_JUSTIFY_CENTER); gtk_clist_column_titles_show (GTK_CLIST (packet_content_list)); label13 = gtk_label_new ("0 - 7"); gtk_widget_ref (label13); gtk_object_set_data_full (GTK_OBJECT (main_window), "label13", label13, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label13); gtk_clist_set_column_widget (GTK_CLIST (packet_content_list), 0, label13); label14 = gtk_label_new ("8 - 15"); gtk_widget_ref (label14); gtk_object_set_data_full (GTK_OBJECT (main_window), "label14", label14, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label14); gtk_clist_set_column_widget (GTK_CLIST (packet_content_list), 1, label14); label15 = gtk_label_new ("16 - 23"); gtk_widget_ref (label15); gtk_object_set_data_full (GTK_OBJECT (main_window), "label15", label15, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label15); gtk_clist_set_column_widget (GTK_CLIST (packet_content_list), 2, label15); label16 = gtk_label_new ("24 - 31"); gtk_widget_ref (label16); gtk_object_set_data_full (GTK_OBJECT (main_window), "label16", label16, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label16); gtk_clist_set_column_widget (GTK_CLIST (packet_content_list), 3, label16); //gtk_clist_set_selection_mode(GTK_CLIST (packet_content_list), GTK_SELECTION_NONE); /* no selections */ /* *The packet button */ packet_disp_button = gtk_button_new_with_label ("Display hex"); gtk_widget_ref (packet_disp_button); gtk_object_set_data_full (GTK_OBJECT (main_window), "packet_disp_button", packet_disp_button, (GtkDestroyNotify) gtk_widget_unref); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect (GTK_OBJECT (packet_disp_button), "clicked", GTK_SIGNAL_FUNC (packet_disp_callback), NULL); gtk_widget_show (packet_disp_button); gtk_box_pack_start (GTK_BOX (pack_disp_vbox), packet_disp_button, FALSE, FALSE, 5); /* *The "packets" notebook */ label_packets = gtk_label_new ("Packets"); gtk_widget_ref (label_packets); gtk_object_set_data_full (GTK_OBJECT (main_window), "label_packets", label_packets, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label_packets); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label_packets); /* *The route hbox */ route_hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (route_hbox1); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_hbox1", route_hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_hbox1); //gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 1); gtk_container_add (GTK_CONTAINER (notebook1), route_hbox1); /* *The routes frame */ route_frame = gtk_frame_new ("OLSR routes in kernel:"); gtk_widget_ref (route_frame); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_frame", route_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_frame); //gtk_container_add (GTK_CONTAINER (notebook1), route_frame); gtk_widget_set_size_request(route_frame, 200, -1); gtk_box_pack_start (GTK_BOX (route_hbox1), route_frame, TRUE, TRUE, 0); /* Do not expand */ /* *Scrolled window for the packet display *list */ route_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (route_scrolledwindow); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_scrolledwindow", route_scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (route_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (route_frame), route_scrolledwindow); //gtk_box_pack_start (GTK_BOX (route_frame), scrolledwindow3, TRUE, TRUE, 0); /* *The routes display list */ route_list = gtk_clist_new (4); gtk_widget_ref (route_list); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_list", route_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_list); gtk_container_add (GTK_CONTAINER (route_scrolledwindow), route_list); gtk_clist_set_column_width (GTK_CLIST (route_list), 0, 120); /* dest */ //gtk_clist_set_column_justification(GTK_CLIST (route_list), 0, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width (GTK_CLIST (route_list), 1, 120); /* gw */ //gtk_clist_set_column_justification(GTK_CLIST (route_list), 1, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width (GTK_CLIST (route_list), 2, 50); /* weight */ gtk_clist_set_column_justification(GTK_CLIST (route_list), 2, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width (GTK_CLIST (route_list), 3, 70); /* interface */ gtk_clist_set_column_justification(GTK_CLIST (route_list), 3, GTK_JUSTIFY_CENTER); gtk_clist_column_titles_show (GTK_CLIST (route_list)); route_label1 = gtk_label_new ("Destination"); gtk_widget_ref (route_label1); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_label1", route_label1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_label1); gtk_clist_set_column_widget (GTK_CLIST (route_list), 0, route_label1); route_label2 = gtk_label_new ("Gateway"); gtk_widget_ref (route_label2); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_label2", route_label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_label2); gtk_clist_set_column_widget (GTK_CLIST (route_list), 1, route_label2); route_label3 = gtk_label_new ("Weight"); gtk_widget_ref (route_label3); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_label3", route_label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_label3); gtk_clist_set_column_widget (GTK_CLIST (route_list), 2, route_label3); route_label4 = gtk_label_new ("Interface"); gtk_widget_ref (route_label4); gtk_object_set_data_full (GTK_OBJECT (main_window), "route_label4", route_label4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (route_label4); gtk_clist_set_column_widget (GTK_CLIST (route_list), 3, route_label4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -