+ if_list = capture_interface_list(&err, &err_str);
+ if (g_list_length(if_list) > 0) {
+ item_hb = welcome_button(WIRESHARK_STOCK_CAPTURE_INTERFACES,
+ "Interface List",
+ "Live list of the capture interfaces\n(counts incoming packets)",
+ "Same as Capture/Interfaces menu or toolbar item",
+ welcome_button_callback_helper, capture_if_cb);
+ gtk_box_pack_start(GTK_BOX(topic_to_fill), item_hb, FALSE, FALSE, 5);
+
+ swindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_set_size_request(swindow, FALSE, 100);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(swindow), GTK_SHADOW_IN);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+ if_view = gtk_tree_view_new ();
+ g_object_set(GTK_OBJECT(if_view), "headers-visible", FALSE, NULL);
+ g_object_set_data(G_OBJECT(welcome_hb), TREE_VIEW_INTERFACES, if_view);
+ renderer = gtk_cell_renderer_pixbuf_new();
+ column = gtk_tree_view_column_new_with_attributes ("",
+ GTK_CELL_RENDERER(renderer),
+ "pixbuf", ICON,
+ NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(if_view), column);
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes ("",
+ GTK_CELL_RENDERER(renderer),
+ "text", IFACE_DESCR,
+ NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(if_view), column);
+ gtk_tree_view_column_set_resizable(gtk_tree_view_get_column(GTK_TREE_VIEW(if_view), 0), TRUE);
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes ("",
+ GTK_CELL_RENDERER(renderer),
+ "text", IFACE_NAME,
+ NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(if_view), column);
+ gtk_tree_view_column_set_visible(column, FALSE);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(if_view));
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
+#ifdef USE_THREADS
+ item_hb = welcome_button(WIRESHARK_STOCK_CAPTURE_START,
+ "Start",
+ "Choose one or more interfaces to capture from, then <b>Start</b>",
+ "Same as Capture/Interfaces with default options",
+ (welcome_button_callback_t)capture_if_start, (gpointer)if_view);
+#else
+ item_hb = welcome_button(WIRESHARK_STOCK_CAPTURE_START,
+ "Start",
+ "Choose exactly one interface to capture from, then <b>Start</b>",
+ "Same as Capture/Interfaces with default options",
+ (welcome_button_callback_t)capture_if_start, (gpointer)if_view);
+#endif
+ gtk_box_pack_start(GTK_BOX(topic_to_fill), item_hb, FALSE, FALSE, 5);
+ welcome_if_tree_load();
+ gtk_container_add (GTK_CONTAINER (swindow), if_view);
+ gtk_container_add(GTK_CONTAINER(topic_to_fill), swindow);
+
+ item_hb = welcome_button(WIRESHARK_STOCK_CAPTURE_OPTIONS,
+ "Capture Options",
+ "Start a capture with detailed options",
+ "Same as Capture/Options menu or toolbar item",
+ welcome_button_callback_helper, capture_prep_cb);
+ gtk_box_pack_start(GTK_BOX(topic_to_fill), item_hb, FALSE, FALSE, 5);
+#ifdef _WIN32
+ /* Check for chimney offloading */
+ reg_ret = RegQueryValueEx(HKEY_LOCAL_MACHINE,
+ _T("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\EnableTCPChimney"),
+ NULL, NULL, (LPBYTE) &chimney_enabled, &ce_size);
+ if (reg_ret == ERROR_SUCCESS && chimney_enabled) {
+ item_hb = welcome_button(WIRESHARK_STOCK_WIKI,
+ "Offloading Detected",
+ "TCP Chimney offloading is enabled. You \nmight not capture much data.",
+ topic_online_url(ONLINEPAGE_CHIMNEY),
+ topic_menu_cb, GINT_TO_POINTER(ONLINEPAGE_CHIMNEY));
+ gtk_box_pack_start(GTK_BOX(topic_to_fill), item_hb, FALSE, FALSE, 5);
+ }
+#endif /* _WIN32 */
+ } else {
+ label_text = g_strdup("No interface can be used for capturing in\n"
+ "this system with the current configuration.\n\n"
+ "See Capture Help below for details.");
+ w = gtk_label_new(label_text);
+ gtk_label_set_markup(GTK_LABEL(w), label_text);
+ g_free (label_text);
+ gtk_misc_set_alignment (GTK_MISC(w), 0.0f, 0.0f);
+ gtk_box_pack_start(GTK_BOX(topic_to_fill), w, FALSE, FALSE, 5);
+ }