The R Project SVN R-packages

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
679 ripley 1
 
2
#include <gnome.h>
3
#include <glade/glade.h>
4
 
5
#include "command-grep.h"
6
#include "terminal.h"
7
#include "terminal-functions.h"
8
 
9
void commands_grep_cb(GtkWidget *widget, gpointer data)
10
{
11
    GladeXML *grep_xml;
12
    GtkWidget *grep_dialog, *grep_pattern_entry, *grep_object_entry;
13
    GtkWidget *grep_case_cb, *grep_extended_cb, *grep_value_cb;
14
    gint button;
15
    gchar *pattern, *object;
16
 
17
    grep_xml = glade_xml_new(glade_interface_file, "grep_dialog");
18
 
19
    grep_dialog = glade_xml_get_widget(grep_xml, "grep_dialog");
20
    grep_pattern_entry = glade_xml_get_widget(grep_xml, "grep_pattern_entry");
21
    grep_object_entry = glade_xml_get_widget(grep_xml, "grep_object_entry");
22
    grep_case_cb = glade_xml_get_widget(grep_xml, "grep_case_cb");
23
    grep_extended_cb = glade_xml_get_widget(grep_xml, "grep_extended_cb");
24
    grep_value_cb = glade_xml_get_widget(grep_xml, "grep_value_cb");
25
 
26
    gtk_object_unref(GTK_OBJECT(grep_xml));
27
 
28
    gnome_dialog_set_default(GNOME_DIALOG(grep_dialog), 0);
29
 
30
    gnome_dialog_editable_enters(GNOME_DIALOG(grep_dialog), GTK_EDITABLE(grep_pattern_entry));
31
    gnome_dialog_editable_enters(GNOME_DIALOG(grep_dialog), GTK_EDITABLE(grep_object_entry));
32
 
33
    button = gnome_dialog_run(GNOME_DIALOG(grep_dialog));
34
 
35
    switch(button) {
36
	    case 0:
37
                    pattern = gtk_editable_get_chars(GTK_EDITABLE(grep_pattern_entry), 0, -1);
38
		    object = gtk_editable_get_chars(GTK_EDITABLE(grep_object_entry), 0, -1);
39
 
40
		    R_gtk_terminal_run_initial();
41
		    R_gtk_terminal_run_partial("grep(\"");
42
 
43
		    R_gtk_terminal_run_partial(pattern);
44
 
45
		    R_gtk_terminal_run_partial("\", ");
46
 
47
		    R_gtk_terminal_run_partial(object);
48
 
49
		    R_gtk_terminal_run_partial(", ignore.case=");
50
		    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(grep_case_cb)))
51
			R_gtk_terminal_run_partial("TRUE");
52
		    else
53
			R_gtk_terminal_run_partial("FALSE");
54
 
55
		    R_gtk_terminal_run_partial(", extended=");
56
		    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(grep_extended_cb)))
57
			R_gtk_terminal_run_partial("TRUE");
58
		    else
59
			R_gtk_terminal_run_partial("FALSE");
60
 
61
		    R_gtk_terminal_run_partial(", value=");
62
		    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(grep_value_cb)))
63
			R_gtk_terminal_run_partial("TRUE");
64
		    else
65
			R_gtk_terminal_run_partial("FALSE");
66
		    R_gtk_terminal_run_final(")\n");
67
 
68
		    g_free(pattern);
69
		    g_free(object);
70
		    break;
71
 
72
	    default:
73
		    break;
74
    }
75
 
76
    gtk_widget_destroy(GTK_WIDGET(grep_dialog));
77
}
78
 
79
 
80