Exemplo n.º 1
0
void capture_start(GtkWidget *widget,gpointer data)
{
	GtkWidget *isenable;
	uint8_t i = 0;
	guint text_len = 0;

	pthread_mutex_lock(&capture_state_mtx);
	if (capture_state == 0)
		capture_state = 1;
	pthread_mutex_unlock(&capture_state_mtx);

	init_file();
	capture_packet();

	pthread_mutex_lock(&packet_stat_mtx);
	tot_packet = 0;
	ip_packet = 0;
	tcp_packet = 0;
	udp_packet = 0;
	arp_packet = 0;
	icmp_packet = 0;
	igmp_packet = 0;
	capture_pre_packet = 0;
	pthread_mutex_unlock(&packet_stat_mtx);

	isenable = capture_menu[0].widget;
	gtk_widget_set_sensitive(isenable,FALSE);
	isenable = capture_menu[1].widget;
	gtk_widget_set_sensitive(isenable,TRUE);
	gtk_clist_clear((GtkCList *)clist);

	for (i = 0;i < 5;i++)
	{
		if (item[i]) {
			gtk_tree_item_remove_subtree((GtkTreeItem *)item[i]);
			gtk_container_remove (GTK_CONTAINER(tree), item[i]);
			item[i] = NULL;
		}
	}

	gtk_text_freeze(GTK_TEXT(hex_text));
	text_len = gtk_text_get_length(GTK_TEXT(hex_text));
	gtk_text_backward_delete(GTK_TEXT(hex_text),text_len);
	gtk_text_thaw(GTK_TEXT(hex_text));

	gtk_text_freeze(GTK_TEXT(hex_text));
	text_len = gtk_text_get_length(GTK_TEXT(hex_text));
	gtk_text_backward_delete(GTK_TEXT(hex_text),text_len);
	gtk_text_thaw(GTK_TEXT(hex_text));
}
Exemplo n.º 2
0
/*
 * FindFunction
 *
 * Looks for the string in the notepad.
 */
void FindFunction (GtkWidget *widget, gpointer data)
{
    int nIndex;
    GtkWidget *text = GetTextWidget ();
    char *szHaystack;   

    /* --- Get the text from the widget --- */
    szHaystack = GetText ();

    /* --- Free up the old needle (text) --- */
    if (szNeedle) {
        g_free (szNeedle);
    }

    /* --- Get text to search for.  --- */
    szNeedle = gtk_editable_get_chars (
                 	GTK_EDITABLE (entry), 0, -1);

    /* --- Get cursor position --- */
    nIndex = GTK_EDITABLE (text)->selection_end_pos;

    /* --- Find the string --- */
    nIndex = LookForString (szHaystack, szNeedle, nIndex);

    if (nIndex >= 0) {

        /* --- Move the cursor to a position --- */
        gtk_text_set_point (GTK_TEXT (text), nIndex);

        /* --- These two lines will force the widget to --- */
        /*     scroll to the position where the text is. --- */
        gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL, " ", 1);
        gtk_text_backward_delete (GTK_TEXT (text), 1);

        /* --- Select the field found. --- */
        gtk_editable_select_region (GTK_EDITABLE (text), 
                                nIndex, nIndex + strlen (szNeedle));

        /* --- Allow it to be created again --- */
        dialog_window = NULL;
    } else {

        ShowMessage ("Find...", "Not found.  Reached the end of the file.");
    }

    /* --- Release memory. --- */
    g_free (szHaystack);
}
Exemplo n.º 3
0
static void replace_word(GtkWidget *w, gpointer d) {
	int start, end;
	char *newword;
	char buf[BUFSIZE];

	/* we don't save their position, 
	 * because the cursor is moved by the click. */

	gtk_text_freeze(GTK_TEXT(d));

	gtk_label_get(GTK_LABEL(GTK_BIN(w)->child), &newword);
	get_curword(GTK_TEXT(d), buf, &start, &end);

	gtk_text_set_point(GTK_TEXT(d), end);
	gtk_text_backward_delete(GTK_TEXT(d), end-start);
	gtk_text_insert(GTK_TEXT(d), NULL, NULL, NULL, newword, strlen(newword));

	gtk_text_thaw(GTK_TEXT(d));
}
Exemplo n.º 4
0
void 
clearlog (gpointer data)
{
  gint len;

#if GTK_MAJOR_VERSION == 1
  len = gtk_text_get_length (GTK_TEXT (logwdw));
  gtk_text_set_point (GTK_TEXT (logwdw), len);
  gtk_text_backward_delete (GTK_TEXT (logwdw), len);
#else
  GtkTextBuffer * textbuf;
  GtkTextIter iter, iter2;

  textbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (logwdw));
  len = gtk_text_buffer_get_char_count (textbuf);
  gtk_text_buffer_get_iter_at_offset (textbuf, &iter, 0);
  gtk_text_buffer_get_iter_at_offset (textbuf, &iter2, len);
  gtk_text_buffer_delete (textbuf, &iter, &iter2);
#endif
}
Exemplo n.º 5
0
void
nh_message_putstr(const char *str)
{
    int i;
    int	len;
    char *buf;
    GtkText *t;
#ifdef FROZEN_INSERT
    static int	freeze_count=0;
#endif

    if (!message_text)
	return;

    t = GTK_TEXT(message_text);

    len = strlen(str);
    buf = (char *)alloc(len + 2);

    sprintf(buf, "\n%s", str);

#ifdef FROZEN_INSERT
    /* ALI: gimpwin 20001226 looks very bad if you update a text widget without
     * freezing it (the text is displayed half-scrolled, with lines overlapping
     * each other). This is not ideal (the text is redrawn each thaw), but it
     * is an improvement. Due to a bug in gimpwin we can't trim text if we've
     * frozen the widget, thus every so often we don't freeze but trim instead.
     */
    if (++freeze_count >= 50)	/* Trim text every 50 inserts */
	freeze_count = 0;
    else
	gtk_text_freeze(t);
#endif

    if (nh_status_in_trouble())
	i = CLR_RED;
    else
	i = MAP_BLACK;
    gtk_text_insert(t, NULL, &nh_color[i], &nh_color[MAP_WHITE], buf, len + 1);

    len = gtk_text_get_length(t);
#ifdef FROZEN_INSERT
    if (!freeze_count && len > NH_TEXT_REMEMBER) {
#else
    if (len > NH_TEXT_REMEMBER) {
#endif
	gtk_text_freeze(t);
	for(i = 0; i < len && len > NH_TEXT_REMEMBER; i++)
	    if (GTK_TEXT_INDEX(t, i) == '\n') {
		i++;
		gtk_text_set_point(t, i);
		gtk_text_backward_delete(t, i);
		len -= i;
	    }
	gtk_text_set_point(t, len);
	gtk_text_thaw(t);
    }
#ifdef FROZEN_INSERT
    /* ALI: t->vadj->upper would be more correct, but causes gimpwin to crash */
    if (freeze_count) {
	gtk_adjustment_set_value(t->vadj, t->vadj->upper - 1);
	gtk_text_thaw(t);
    }
#endif

    free(buf);
}

#endif	/* USE_TEXTVIEW */

int
GTK_doprev_message()
{
    return 0;
}

void
nh_message_destroy(void)
{
    message_text = NULL;
}