|
|
1.1 root 1: #include "dirwrap.h"
2: #include "ini_file.h"
3:
4: #include "events.h"
5: #include "gtkuserlist.h"
6:
7: GladeXML *lxml;
8: scfg_t cfg;
9: uchar *arbuf=NULL;
10:
11: int main(int argc, char **argv)
12: {
13: GtkWidget *w;
14: int i;
15: char str[1025];
16: char flags[33];
17: GtkListStore *lstore = NULL;
18: GtkTreeSelection *lsel;
19: char glade_path[MAX_PATH+1];
20: char *p;
21:
22: gtk_init(&argc, &argv);
23: glade_init();
24:
25: /* Read .cfg files here */
26: memset(&cfg,0,sizeof(cfg));
27: p=getenv("SBBSCTRL");
28: if(p==NULL) {
29: display_message("Environment Error","SBBSCTRL not set","gtk-dialog-error");
30: return(-1);
31: }
32: SAFECOPY(cfg.ctrl_dir, p);
33: prep_dir("",cfg.ctrl_dir,sizeof(cfg.ctrl_dir));
34: if(!isdir(cfg.ctrl_dir)) {
35: display_message("Environment Error","SBBSCTRL does not point to a directory","gtk-dialog-error");
36: return(-1);
37: }
38: cfg.size=sizeof(cfg);
39:
40: if(!load_cfg(&cfg, NULL, TRUE, str)) {
41: fprintf(stderr,"Cannot load configuration data (%s)",str);
42: return;
43: }
44:
45: /* load the interface */
46: strcpy(glade_path, argv[0]);
47: strcpy(getfname(glade_path), "gtkuserlist.glade");
48:
49: lxml = glade_xml_new(glade_path, "UserListWindow", NULL);
50: if(lxml==NULL) {
51: fprintf(stderr,"Could not locate UserListWindow widget\n");
52: return;
53: }
54: /* connect the signals in the interface */
55: glade_xml_signal_autoconnect(lxml);
56:
57: /* Set up user list */
58: w=glade_xml_get_widget(lxml, "lUserList");
59: lstore = gtk_list_store_new(17
60: ,G_TYPE_INT
61: ,G_TYPE_STRING
62: ,G_TYPE_STRING
63: ,G_TYPE_INT
64: ,G_TYPE_INT
65: ,G_TYPE_STRING
66: ,G_TYPE_STRING
67: ,G_TYPE_STRING
68: ,G_TYPE_STRING
69: ,G_TYPE_STRING
70: ,G_TYPE_STRING
71: ,G_TYPE_STRING
72: ,G_TYPE_INT
73: ,G_TYPE_STRING
74: ,G_TYPE_STRING
75: ,G_TYPE_INT
76: ,G_TYPE_INT
77: );
78: gtk_tree_view_set_model(GTK_TREE_VIEW(w), GTK_TREE_MODEL(lstore));
79: gtk_tree_view_insert_column_with_attributes(
80: GTK_TREE_VIEW(w)
81: ,0
82: ,"Num"
83: ,gtk_cell_renderer_text_new()
84: ,"text"
85: ,0
86: ,NULL);
87: gtk_tree_view_column_set_sort_column_id(
88: gtk_tree_view_get_column(
89: GTK_TREE_VIEW(w), 0
90: )
91: ,0
92: );
93: gtk_tree_view_insert_column_with_attributes(
94: GTK_TREE_VIEW(w)
95: ,1
96: ,"Alias"
97: ,gtk_cell_renderer_text_new()
98: ,"text"
99: ,1
100: ,NULL);
101: gtk_tree_view_column_set_sort_column_id(
102: gtk_tree_view_get_column(
103: GTK_TREE_VIEW(w), 1
104: )
105: ,1
106: );
107: gtk_tree_view_insert_column_with_attributes(
108: GTK_TREE_VIEW(w)
109: ,2
110: ,"Name"
111: ,gtk_cell_renderer_text_new()
112: ,"text"
113: ,2
114: ,NULL);
115: gtk_tree_view_column_set_sort_column_id(
116: gtk_tree_view_get_column(
117: GTK_TREE_VIEW(w), 2
118: )
119: ,2
120: );
121: gtk_tree_view_insert_column_with_attributes(
122: GTK_TREE_VIEW(w)
123: ,3
124: ,"Lev"
125: ,gtk_cell_renderer_text_new()
126: ,"text"
127: ,3
128: ,NULL);
129: gtk_tree_view_column_set_sort_column_id(
130: gtk_tree_view_get_column(
131: GTK_TREE_VIEW(w), 3
132: )
133: ,3
134: );
135: gtk_tree_view_insert_column_with_attributes(
136: GTK_TREE_VIEW(w)
137: ,4
138: ,"Age"
139: ,gtk_cell_renderer_text_new()
140: ,"text"
141: ,4
142: ,NULL);
143: gtk_tree_view_column_set_sort_column_id(
144: gtk_tree_view_get_column(
145: GTK_TREE_VIEW(w), 4
146: )
147: ,4
148: );
149: gtk_tree_view_insert_column_with_attributes(
150: GTK_TREE_VIEW(w)
151: ,5
152: ,"Sex"
153: ,gtk_cell_renderer_text_new()
154: ,"text"
155: ,5
156: ,NULL);
157: gtk_tree_view_column_set_sort_column_id(
158: gtk_tree_view_get_column(
159: GTK_TREE_VIEW(w), 5
160: )
161: ,5
162: );
163: gtk_tree_view_insert_column_with_attributes(
164: GTK_TREE_VIEW(w)
165: ,6
166: ,"Location"
167: ,gtk_cell_renderer_text_new()
168: ,"text"
169: ,6
170: ,NULL);
171: gtk_tree_view_column_set_sort_column_id(
172: gtk_tree_view_get_column(
173: GTK_TREE_VIEW(w), 6
174: )
175: ,6
176: );
177: gtk_tree_view_insert_column_with_attributes(
178: GTK_TREE_VIEW(w)
179: ,7
180: ,"Protocol"
181: ,gtk_cell_renderer_text_new()
182: ,"text"
183: ,7
184: ,NULL);
185: gtk_tree_view_column_set_sort_column_id(
186: gtk_tree_view_get_column(
187: GTK_TREE_VIEW(w), 7
188: )
189: ,7
190: );
191: gtk_tree_view_insert_column_with_attributes(
192: GTK_TREE_VIEW(w)
193: ,8
194: ,"Address"
195: ,gtk_cell_renderer_text_new()
196: ,"text"
197: ,8
198: ,NULL);
199: gtk_tree_view_column_set_sort_column_id(
200: gtk_tree_view_get_column(
201: GTK_TREE_VIEW(w), 8
202: )
203: ,8
204: );
205: gtk_tree_view_insert_column_with_attributes(
206: GTK_TREE_VIEW(w)
207: ,9
208: ,"Host Name"
209: ,gtk_cell_renderer_text_new()
210: ,"text"
211: ,9
212: ,NULL);
213: gtk_tree_view_column_set_sort_column_id(
214: gtk_tree_view_get_column(
215: GTK_TREE_VIEW(w), 9
216: )
217: ,9
218: );
219: gtk_tree_view_insert_column_with_attributes(
220: GTK_TREE_VIEW(w)
221: ,10
222: ,"Phone"
223: ,gtk_cell_renderer_text_new()
224: ,"text"
225: ,10
226: ,NULL);
227: gtk_tree_view_column_set_sort_column_id(
228: gtk_tree_view_get_column(
229: GTK_TREE_VIEW(w), 10
230: )
231: ,10
232: );
233: gtk_tree_view_insert_column_with_attributes(
234: GTK_TREE_VIEW(w)
235: ,11
236: ,"Email"
237: ,gtk_cell_renderer_text_new()
238: ,"text"
239: ,11
240: ,NULL);
241: gtk_tree_view_column_set_sort_column_id(
242: gtk_tree_view_get_column(
243: GTK_TREE_VIEW(w), 11
244: )
245: ,11
246: );
247: gtk_tree_view_insert_column_with_attributes(
248: GTK_TREE_VIEW(w)
249: ,12
250: ,"Logons"
251: ,gtk_cell_renderer_text_new()
252: ,"text"
253: ,12
254: ,NULL);
255: gtk_tree_view_column_set_sort_column_id(
256: gtk_tree_view_get_column(
257: GTK_TREE_VIEW(w), 12
258: )
259: ,12
260: );
261: gtk_tree_view_insert_column_with_attributes(
262: GTK_TREE_VIEW(w)
263: ,13
264: ,"First On"
265: ,gtk_cell_renderer_text_new()
266: ,"text"
267: ,13
268: ,NULL);
269: gtk_tree_view_column_set_sort_column_id(
270: gtk_tree_view_get_column(
271: GTK_TREE_VIEW(w), 13
272: )
273: ,15
274: );
275: gtk_tree_view_insert_column_with_attributes(
276: GTK_TREE_VIEW(w)
277: ,14
278: ,"Last On"
279: ,gtk_cell_renderer_text_new()
280: ,"text"
281: ,14
282: ,NULL);
283: gtk_tree_view_column_set_sort_column_id(
284: gtk_tree_view_get_column(
285: GTK_TREE_VIEW(w), 14
286: )
287: ,16
288: );
289: lsel = gtk_tree_view_get_selection (GTK_TREE_VIEW (w));
290: gtk_tree_selection_set_mode (lsel, GTK_SELECTION_MULTIPLE);
291: g_signal_connect (G_OBJECT (lsel), "changed", G_CALLBACK (update_userlist_sensitive_callback), NULL);
292:
293: /* Set up users */
294: update_userlist_callback(GTK_WIDGET(w), NULL);
295: update_userlist_sensitive_callback(lsel, NULL);
296:
297: /* Set up quick validation values */
298: w=glade_xml_get_widget(lxml, "cQuickValidate");
299: gtk_combo_box_set_active(GTK_COMBO_BOX(w), 0);
300: for(i=0;i<10;i++) {
301: sprintf(str,"%d SL: %-2d F1: %s",i,cfg.val_level[i],ltoaf(cfg.val_flags1[i],flags));
302: gtk_combo_box_append_text(GTK_COMBO_BOX(w), str);
303: }
304:
305: /* Show 'er to the user */
306: gtk_window_present(GTK_WINDOW(glade_xml_get_widget(lxml, "UserListWindow")));
307: gtk_main();
308: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.