1 /*****
2 * Xnee's Not an Event Emulator
3 *
4 * Xnee enables recording and replaying of X protocol data
5 *
6 * Copyright (C) 2002, 2003, 2004, 2005, 2007, 2011, 2013
7 * Henrik Sandklef
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 3
12 * of the License, or any later version.
13 *
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Boston,
23 * MA 02110-1301, USA.
24 ****/
25
26 /*
27 * Initial main.c file generated by Glade. Edit as required.
28 * Glade will not overwrite this file.
29 */
30
31 #ifdef HAVE_CONFIG_H
32 # include "config.h"
33 #endif
34
35 #include <gtk/gtk.h>
36
37 #include "interface.h"
38 #include "support.h"
39 #include "recordables.h"
40
41 #include <libxnee/xnee.h>
42 #include <libxnee/xnee_alloc.h>
43 #include <libxnee/xnee_session.h>
44 #include <gnee_xnee.h>
45
46 #define GNEE "gnee"
47
48 xnee_data *ext_xd;
49 gnee_xnee *ext_gx;
50 GtkWidget *ext_gnee_window;
51
52 const char *version_string = "--version" ;
53
54 int
main(int argc,char * argv[])55 main (int argc, char *argv[])
56 {
57 GtkWidget *gnee_window;
58
59 GtkWidget *exclude_list;
60 GtkTreeStore *exclude_store;
61 /* GtkTreeIter exclude_iterator; */
62 GtkCellRenderer *exclude_list_renderer;
63 GtkTreeViewColumn *exclude_list_column;
64
65 GtkWidget *include_list;
66 GtkTreeStore *include_store;
67 /* GtkTreeIter include_iterator; */
68 GtkCellRenderer *include_list_renderer;
69 GtkTreeViewColumn *include_list_column;
70
71 GList *combo_list = NULL;
72 GtkWidget *event_group_combo;
73 char *default_tmp_file;
74 int i ;
75
76 xnee_data *xd;
77 gnee_xnee gx;
78
79 ext_gx = &gx;
80 gx_init_gx(ext_gx);
81
82
83 #ifdef ENABLE_NLS
84 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
85 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
86 textdomain (GETTEXT_PACKAGE);
87 #endif
88
89 gtk_set_locale ();
90 gtk_init (&argc, &argv);
91
92
93 /* printf("Adding: %s\n", PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); */
94 add_pixmap_directory (PACKAGE_DATA_DIR "/pixmaps");
95 add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
96
97 /*
98 * The following code was added by Glade to create one of each component
99 * (except popup menus), just so that you see something after building
100 * the project. Delete any components that you don't want shown initially.
101 */
102 gnee_window = create_gnee_window ();
103 ext_gnee_window = gnee_window;
104
105 /* gnee_settings = gnee_settings_new(); */
106
107 gnee_recordables_create(gnee_window);
108
109
110 exclude_list = lookup_widget(gnee_window, "exclude_list");
111 /* exclude_store = gnee_settings->record_settings->events->exclude_store; */
112 exclude_store = gtk_tree_store_new(1, G_TYPE_STRING);
113
114 exclude_list_renderer = gtk_cell_renderer_text_new ();
115 exclude_list_column = gtk_tree_view_column_new_with_attributes
116 ("Exclude when recording",
117 exclude_list_renderer,
118 "text",
119 0,
120 NULL);
121
122 gtk_tree_view_append_column(GTK_TREE_VIEW (exclude_list),
123 exclude_list_column);
124
125 gtk_tree_view_set_model(GTK_TREE_VIEW(exclude_list),
126 GTK_TREE_MODEL(exclude_store));
127
128
129 include_list = lookup_widget(gnee_window, "include_list");
130 /* include_store = gnee_settings->record_settings->events->exclude_store; */
131 include_store = gtk_tree_store_new(1, G_TYPE_STRING);
132
133 include_list_renderer = gtk_cell_renderer_text_new ();
134 include_list_column = gtk_tree_view_column_new_with_attributes
135 ("Include when recording",
136 include_list_renderer,
137 "text",
138 0,
139 NULL);
140
141 gtk_tree_view_append_column(GTK_TREE_VIEW(include_list),
142 include_list_column);
143
144 gtk_tree_view_set_model(GTK_TREE_VIEW(include_list),
145 GTK_TREE_MODEL(include_store));
146
147 combo_list = g_list_append(combo_list, _("Predefined"));
148 combo_list = g_list_append(combo_list, _("Events"));
149 combo_list = g_list_append(combo_list, _("Replies"));
150 combo_list = g_list_append(combo_list, _("Requests"));
151 combo_list = g_list_append(combo_list, _("Errors"));
152
153 event_group_combo = lookup_widget(gnee_window, "event_group_combo");
154 gtk_combo_set_popdown_strings(GTK_COMBO(event_group_combo),
155 combo_list);
156
157 gtk_widget_show (gnee_window);
158
159
160
161 xd = xnee_new_xnee_data();
162 ext_xd = xd;
163
164 /* Set the program name */
165 xnee_set_program_name (xd, XNEE_GUI);
166
167 /* Set the cli parameters */
168 xnee_set_application_parameters (xd, argv);
169
170 /* scan through the args .... */
171 for (i=0;i<argc;i++)
172 {
173 if (strncmp(argv[i],version_string, strlen(version_string))==0)
174 {
175 fprintf (stderr, "%s %s, part of project ",
176 GNEE,
177 VERSION);
178 xnee_version(xd);
179 exit(XNEE_OK);
180 }
181 }
182
183 /* Set the signal handler the libxnee's built in */
184 (void) signal (SIGINT, signal_handler);
185
186 /* Set the error handler the libxnee's built in */
187 (void) XSetErrorHandler (handle_xerr);
188
189 /* set gnee default settings */
190 gx_set_events_max (xd, 100);
191 gnee_set_events_max (100);
192
193 gx_set_data_max (xd, -1);
194 gnee_set_data_max (-1);
195
196 gx_set_time_max (xd, -1);
197 gnee_set_time_max (-1);
198
199 gnee_set_sync();
200
201 gx_set_xosd_feedback();
202 gnee_set_xosd_feedback();
203
204 gx_set_max_threshold(xd, 20) ;
205 gx_set_min_threshold(xd, -20) ;
206 gx_set_tot_threshold(xd, 20) ;
207
208 xnee_set_forced_core_device_events (xd) ;
209
210 default_tmp_file=gx_get_default_filename();
211 gnee_set_rec_file (default_tmp_file);
212 gnee_set_rep_file (default_tmp_file);
213 free (default_tmp_file);
214
215 g_object_set_data(G_OBJECT(gnee_window), "xd", xd);
216
217 gx_create_km_lists();
218
219 gtk_main();
220
221 return 0;
222 }
223