1 /*
2 ** TleenX2 (Tlen.pl Client)
3 ** Copyright (c) 2002-2003 Hubert Soko�owski <who_ami@tlen.pl>
4 ** Pawe� Bili�ski <rael@fr.pl>
5 **
6 ** This code is free software; you can redistribute it and/or
7 ** modify it under the terms of the GNU General Public License.
8 **
9 */
10
11
12
13
14 #include "main.h"
15 #include "interface.h"
16 #include "conffile.h"
17 #include "support.h"
18 #include "utils.h"
19 #include "users.h"
20 #include "search.h"
21 #include "messages.h"
22 #include "menu.h"
23 #include "windows.h"
24 #include "archive.h"
25 #include "callbacks.h"
26 #include "lista.h"
27 #include "chat.h"
28 #include "gg.h"
29 #include "jabber.h"
30 #include "jabby.h"
31 #include "xmms-info.h"
32 #include <gdk/gdkkeysyms.h>
33
34 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
35 g_object_set_data (G_OBJECT (component), name, widget)
36
37 GtkTooltips *status_tooltips; //tooltips list for status icons
38
39 static gchar *search_tc_columns[SEARCH_TC_COLUMNS] =
40 {
41 "Status", "ID", "Wiek", "P�e�", "Miasto", "Imi�", "Nazwisko", "Nick", "Email",
42 "Poszukuje", "Szko�a", "Zaw�d", "G�osowe", "Plany"
43 };//tytuly kolumn w treeview window_search
44
45
46
window_gg_talk()47 void window_gg_talk()
48 {
49 if(!jabber_registered_to_gg())
50 {
51 info("Musisz najpierw zarejestrowa� sw�j numer.");
52 return;
53 }
54 if(!get_talk(profile->ggserver))
55 {
56 my_create_window_chat(profile->ggserver);
57 }
58 }
59
window_gg_apply()60 void window_gg_apply()
61 {
62 GtkWidget *widget;
63 // gboolean fo, iv;
64
65 if(!jabber_registered_to_gg())
66 {
67 info("Musisz najpierw zarejestrowa� sw�j numer.");
68 return;
69 }
70 widget = lookup_widget(window_gg, "checkbutton_fo");
71 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
72 jabber_gg_agent("fo on");
73 else
74 jabber_gg_agent("fo off");
75 widget = lookup_widget(window_gg, "checkbutton_iv");
76 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
77 jabber_gg_agent("iv on");
78 else
79 jabber_gg_agent("iv off");
80 }
81
window_gg_register_sms()82 void window_gg_register_sms()
83 {
84 GtkWidget *widget;
85 gchar *number, *password;
86
87 widget = lookup_widget(window_gg, "entry_sms_id");
88 number = (gchar*)gtk_entry_get_text(GTK_ENTRY(widget));
89 if(!strlen(number))
90 {
91 info("Musisz poda� sw�j ID bramki w ustawieniach profilu.");
92 return;
93 }
94 widget = lookup_widget(window_gg, "entry_sms_password");
95 password = (gchar*)gtk_entry_get_text(GTK_ENTRY(widget));
96 if(!strlen(password))
97 {
98 info("Nie poda�e� has�a.");
99 return;
100 }
101 // if(jabber_registered_to_sms())
102 // {
103 // info("Wyrejestruj najpierw stary numer.");
104 // return;
105 // }
106 if(!profile->sms)
107 {
108 info("Serwer jabbera nie posiada bramki SMS.");
109 return;
110 }
111 jabber_register_sms();
112 }
113
window_gg_register()114 void window_gg_register()
115 {
116 GtkWidget *widget;
117 gchar *number, *password;
118
119 widget = lookup_widget(window_gg, "entry_username");
120 number = (gchar*)gtk_entry_get_text(GTK_ENTRY(widget));
121 if(!strlen(number))
122 {
123 info("Musisz poda� sw�j numer w ustawieniach profilu.");
124 return;
125 }
126 widget = lookup_widget(window_gg, "entry_password");
127 password = (gchar*)gtk_entry_get_text(GTK_ENTRY(widget));
128 if(!strlen(password))
129 {
130 info("Nie poda�e� has�a.");
131 return;
132 }
133 if(!(profile->ggserver))
134 {
135 info("Serwer jabbera nie posiada bramki GG.");
136 return;
137 }
138 g_free(profile->ggnumber);
139 profile->ggnumber = g_strdup(number);
140 g_free(profile->ggpassword);
141 profile->ggpassword = g_strdup(password);
142 if(jabber_registered_to_gg())
143 {
144 info("Wyrejestruj najpierw stary numer.");
145 return;
146 }
147 jabber_register_gg();
148 }
149
window_sms_send()150 void window_sms_send()
151 {
152 GtkWidget *widget;
153 gchar *number, *s, *body;
154
155 widget = lookup_widget(window_sms, "entry_number");
156 s = (gchar*) gtk_entry_get_text(GTK_ENTRY(widget));
157 if(strlen(s)<=3)
158 {
159 info("Wprowad� poprawny numer telefonu.");
160 return;
161 }
162 if(!jabber_logged())
163 {
164 info("Brak po��czenia z jabberem.");
165 return;
166 }
167 if(!jabber_registered_to_sms())
168 {
169 info("Musisz si� najpierw zarejestrowa�, sprawd� ustawienia SMS.");
170 return;
171 }
172 widget = lookup_widget(window_sms, "textview_sms");
173 body = (gchar *)textview_get_text(widget);
174 if(!body)
175 {
176 info("Wiadomo�� jest pusta.");
177 return;
178 }
179 number = g_strdup_printf("%s@%s", s, profile->sms);
180 jabber_message(number, body, JABBY_MESSAGE_CHAT);
181 g_free(number);
182 gtk_widget_destroy(window_sms);
183 window_sms=NULL;
184 }
185
create_window_pic(GtkWidget * window_chat)186 GtkWidget *create_window_pic(GtkWidget *window_chat)
187 {
188 GtkWidget *window;
189 GtkWidget *button1;
190 GtkWidget *emots_table;
191 gint max_x;
192 gint max_y;
193 gint i, x, y, stri;
194 GtkTooltips *tooltips;
195 gchar *s;
196
197
198 tooltips = gtk_tooltips_new ();
199 max_x = 5;
200 max_y = EMOTS_END/max_x;
201
202
203 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
204 gtk_window_set_title (GTK_WINDOW (window), "Wstaw obrazek");
205 g_signal_connect ((gpointer) window, "delete_event",
206 G_CALLBACK (on_window_pic_delete_event),
207 window);
208 gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_MOUSE);
209
210 emots_table = gtk_table_new(max_x, max_y, FALSE);
211 gtk_widget_show (emots_table);
212 gtk_container_add (GTK_CONTAINER (window), emots_table);
213 gtk_container_set_border_width (GTK_CONTAINER (emots_table), 4);
214 gtk_table_set_row_spacings (GTK_TABLE (emots_table), 2);
215 gtk_table_set_col_spacings (GTK_TABLE (emots_table), 4);
216
217 x = y = 0;
218 stri = 0;
219 for(i=0; i < EMOTS_END; i++)
220 {
221 button1 = gtk_button_new ();
222 gtk_widget_show (button1);
223 gtk_table_attach (GTK_TABLE (emots_table), button1, x, x+1, y, y+1,
224 (GtkAttachOptions) (GTK_FILL),
225 (GtkAttachOptions) (0), 0, 0);
226 GTK_WIDGET_UNSET_FLAGS (button1, GTK_CAN_FOCUS);
227 s = utf(emots_str[stri]);
228 gtk_tooltips_set_tip (tooltips, button1, s, NULL);
229 g_free(s);
230 gtk_button_set_relief (GTK_BUTTON (button1), GTK_RELIEF_NONE);
231 gtk_container_add(GTK_CONTAINER (button1), emots_pics[i]);
232
233
234 g_signal_connect ((gpointer) button1, "clicked",
235 G_CALLBACK (on_emots_button1_clicked),
236 emots_str[stri]);
237 GLADE_HOOKUP_OBJECT (window, button1, "button1");
238 if(++x >= max_x)
239 {
240 x = 0;
241 y++;
242 }
243 stri++;
244 while(emots_num[stri] == emots_num[stri-1])
245 {
246 stri++;
247 }
248 }
249
250 /* Store pointers to all widgets, for use by lookup_widget(). */
251 // GLADE_HOOKUP_OBJECT_NO_REF (window2, window2, "window2");
252 GLADE_HOOKUP_OBJECT (window, emots_table, "emots_table");
253 GLADE_HOOKUP_OBJECT_NO_REF (window, tooltips, "tooltips");
254
255 return window;
256 }
257
my_create_window_sms()258 void my_create_window_sms()
259 {
260 // GtkWidget *widget;
261
262 window_sms = create_window_sms();
263 gtk_widget_show(window_sms);
264 }
265
my_create_window_gg()266 void my_create_window_gg()
267 {
268 GtkWidget *widget;
269
270 window_gg = create_window_gg();
271 if((profile->ggnumber) && (profile->ggpassword))
272 {
273 widget = lookup_widget(window_gg, "entry_username");
274 gtk_entry_set_text(GTK_ENTRY(widget), profile->ggnumber);
275 widget = lookup_widget(window_gg, "entry_password");
276 gtk_entry_set_text(GTK_ENTRY(widget), profile->ggpassword);
277 }
278 if((profile->smsid) && (profile->smspassword))
279 {
280 widget = lookup_widget(window_gg, "entry_sms_id");
281 gtk_entry_set_text(GTK_ENTRY(widget), profile->smsid);
282 widget = lookup_widget(window_gg, "entry_sms_password");
283 gtk_entry_set_text(GTK_ENTRY(widget), profile->smspassword);
284 }
285 gtk_widget_show(window_gg);
286 }
287
288
my_create_window_desc()289 void my_create_window_desc()
290 {
291 GtkWidget *combo;
292 GList *l = NULL, *l2;
293
294 window_desc = create_window_desc();
295 combo = lookup_widget(window_desc, "combo_desc");
296 l2 = desc_list;
297 while(l2)
298 {
299 l = g_list_append(l, utf((gchar*) (l2->data)));
300 l2 = l2->next;
301 }
302 if(!desc)
303 l = g_list_prepend(l, NULL);
304 gtk_combo_set_popdown_strings (GTK_COMBO(combo), l);
305 g_list_foreach(l, frees, NULL);
306 g_list_free(l);
307 gtk_widget_show(window_desc);
308 }
309
window1_open()310 void window1_open()
311 {
312 my_create_window1();
313 gtk_window_set_icon(GTK_WINDOW(window1),
314 gtk_image_get_pixbuf(GTK_IMAGE(icons[TLEN_STATUS_UNAVAILABLE])));
315 profile = get_profile(pname);
316 //FIXME czytaj jabberid itp
317 // profiles_list_clear();
318 status=TLEN_STATUS_AVAILABLE;
319 read_preferences();
320 if(!datefg)
321 datefg = g_strdup("#808080");
322 if(!nickfg)
323 nickfg = g_strdup("#FF6600");
324 if(!textfg)
325 textfg = g_strdup("#000000");
326 if(!textbg)
327 textbg = g_strdup("#DCDAD5");
328 if(preferences & PREF_DEBUGON)
329 tlen_setdebug(1);
330 if(status != TLEN_STATUS_UNAVAILABLE)
331 work_online();
332 // else
333 // work_offline();
334 status_button_set(TLEN_STATUS_UNAVAILABLE);
335 status_gg_button_set(JABBY_PRESENCE_UNAVAILABLE);
336 status_jabber_button_set(JABBY_PRESENCE_UNAVAILABLE);
337 if((!width) && (!height))
338 {
339 width=150;
340 height=250;
341 }
342 gtk_window_set_default_size(GTK_WINDOW(window1),width,height);
343 if((posx>0) && (posy>0))
344 gtk_window_move(GTK_WINDOW(window1), posx, posy);
345 // gtk_widget_set_uposition(window1,posx,posy);
346
347 gtk_widget_show(window1);
348 }
349
my_create_window1()350 void my_create_window1()
351 {
352 GtkWidget *image, *widget;
353 GtkWidget *menuitem, *button;
354 gchar *s;
355 // GtkTreeView *treeview;
356 // GtkTreeModel *model;
357 //menuglowne
358 GtkWidget *tlen1_menu;
359 //menu statusow
360 GtkWidget *menu_status;
361 GtkWidget *wyszukiwanie1;
362 GtkWidget *wyslij_wiadomosc;
363 GtkWidget *wyslij_sms;
364 GtkWidget *wizytowka;
365 GtkWidget *kontakty;
366 GtkWidget *image29;
367 GtkWidget *dodaj_kontakt1;
368 GtkWidget *image30;
369 GtkWidget *separator1;
370 GtkWidget *archiwum1;
371 GtkWidget *image31;
372 GtkWidget *ustawienia1;
373 GtkWidget *ustawienia_gg;
374 GtkWidget *image32;
375 #ifndef DISABLE_DOCKLET
376 GtkWidget *menu_show_docklet;
377 #endif
378 GtkWidget *separator2;
379 GtkWidget *o_programie1;
380 GtkWidget *image33;
381 GtkWidget *separator3;
382 GtkWidget *wyloguj_profil1;
383 GtkWidget *image34;
384 GtkWidget *wyj__cie1;
385 GtkWidget *image35;
386 //menuglowne
387 GtkAccelGroup *accel_group;
388
389
390 accel_group = gtk_accel_group_new ();
391 window1 = create_window1();
392
393 menu_status=gtk_menu_new();
394 GLADE_HOOKUP_OBJECT(window1, menu_status, "menu_status");
395
396 status_tooltips = gtk_tooltips_new(); //init. tooltips list for status icons
397
398 //menu glowne
399 tlen1_menu = gtk_menu_new ();
400 GLADE_HOOKUP_OBJECT(window1, tlen1_menu, "menu_tlen");
401
402 s = utf("Wy�_lij wiadomo��...");
403 wyslij_wiadomosc = gtk_image_menu_item_new_with_mnemonic (s);
404 g_free(s);
405 gtk_widget_show (wyslij_wiadomosc);
406 gtk_container_add (GTK_CONTAINER (tlen1_menu), wyslij_wiadomosc);
407 image = create_pixmap (window1, "sendmsg.png");
408 gtk_widget_show (image);
409 GLADE_HOOKUP_OBJECT (window1, image, "sendmsg.png");
410 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(wyslij_wiadomosc), image);
411
412 s = utf("Wy�lij sms...");
413 wyslij_sms = gtk_image_menu_item_new_with_mnemonic (s);
414 g_free(s);
415 gtk_widget_show (wyslij_sms);
416 gtk_container_add (GTK_CONTAINER (tlen1_menu), wyslij_sms);
417 image = create_pixmap (window1, "sms.png");
418 gtk_widget_show (image);
419 GLADE_HOOKUP_OBJECT (window1, image, "sms.png");
420 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(wyslij_sms), image);
421
422 s = utf("Mo_ja wizyt�wka...");
423 wizytowka = gtk_image_menu_item_new_with_mnemonic (s);
424 g_free(s);
425 gtk_widget_show (wizytowka);
426 gtk_container_add (GTK_CONTAINER (tlen1_menu), wizytowka);
427 image = create_pixmap (window1, "wizytowka.png");
428 gtk_widget_show (image);
429 GLADE_HOOKUP_OBJECT (window1, image, "wizytowka.png");
430 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(wizytowka), image);
431
432 s = utf("Ko_ntakty...");
433 kontakty = gtk_image_menu_item_new_with_mnemonic (s);
434 g_free(s);
435 gtk_widget_show (kontakty);
436 gtk_container_add (GTK_CONTAINER (tlen1_menu), kontakty);
437 image = create_pixmap (window1, "book.png");
438 gtk_widget_show (image);
439 GLADE_HOOKUP_OBJECT (window1, image, "book.png");
440 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(kontakty), image);
441
442 wyszukiwanie1 = gtk_image_menu_item_new_with_mnemonic ("Wy_szukiwanie...");
443 gtk_widget_show (wyszukiwanie1);
444 gtk_container_add (GTK_CONTAINER (tlen1_menu), wyszukiwanie1);
445 gtk_widget_add_accelerator (wyszukiwanie1, "activate", accel_group,
446 GDK_S, GDK_CONTROL_MASK,
447 GTK_ACCEL_VISIBLE);
448
449 image29 = gtk_image_new_from_stock ("gtk-find", GTK_ICON_SIZE_MENU);
450 gtk_widget_show (image29);
451 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wyszukiwanie1), image29);
452
453 dodaj_kontakt1 = gtk_image_menu_item_new_with_mnemonic ("_Dodaj kontakt...");
454 gtk_widget_show (dodaj_kontakt1);
455 gtk_container_add (GTK_CONTAINER (tlen1_menu), dodaj_kontakt1);
456 gtk_widget_add_accelerator (dodaj_kontakt1, "activate", accel_group,
457 GDK_A, GDK_CONTROL_MASK,
458 GTK_ACCEL_VISIBLE);
459
460 image30 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
461 gtk_widget_show (image30);
462 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (dodaj_kontakt1), image30);
463
464 separator1 = gtk_menu_item_new ();
465 gtk_widget_show (separator1);
466 gtk_container_add (GTK_CONTAINER (tlen1_menu), separator1);
467 gtk_widget_set_sensitive (separator1, FALSE);
468
469 archiwum1 = gtk_image_menu_item_new_with_mnemonic ("_Archiwum...");
470 gtk_widget_show (archiwum1);
471 gtk_container_add (GTK_CONTAINER (tlen1_menu), archiwum1);
472 gtk_widget_add_accelerator (archiwum1, "activate", accel_group,
473 GDK_R, GDK_CONTROL_MASK,
474 GTK_ACCEL_VISIBLE);
475
476 image31 = gtk_image_new_from_stock ("gtk-index", GTK_ICON_SIZE_MENU);
477 gtk_widget_show (image31);
478 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (archiwum1), image31);
479
480 ustawienia1 = gtk_image_menu_item_new_with_mnemonic ("_Ustawienia...");
481 gtk_widget_show (ustawienia1);
482 gtk_container_add (GTK_CONTAINER (tlen1_menu), ustawienia1);
483 gtk_widget_add_accelerator (ustawienia1, "activate", accel_group,
484 GDK_P, GDK_CONTROL_MASK,
485 GTK_ACCEL_VISIBLE);
486
487 ustawienia_gg = gtk_image_menu_item_new_with_mnemonic
488 ("Ustawienia Gadu-Gadu/SMS...");
489 gtk_widget_show (ustawienia_gg);
490 gtk_container_add (GTK_CONTAINER (tlen1_menu), ustawienia_gg);
491 image = create_pixmap (window1, "gg_offline.png");
492 gtk_widget_show (image);
493 GLADE_HOOKUP_OBJECT (window1, image, "gg_offline.png");
494 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(ustawienia_gg), image);
495
496 image32 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU);
497 gtk_widget_show (image32);
498 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (ustawienia1), image32);
499
500 /*
501 #ifndef DISABLE_DOCKLET
502 menu_show_docklet = gtk_image_menu_item_new_with_mnemonic("Pokaz/ukryj docklet.");
503 gtk_widget_show(menu_show_docklet);
504 gtk_container_add(GTK_CONTAINER(tlen1_menu), menu_show_docklet);
505 image = create_pixmap(window1, "online.png");
506 gtk_widget_show(image);
507 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_show_docklet), image);
508 g_signal_connect(G_OBJECT(menu_show_docklet), "activate",
509 G_CALLBACK(on_menu_show_docklet_activate), NULL);
510 #endif
511 */
512 separator2 = gtk_menu_item_new ();
513 gtk_widget_show (separator2);
514 gtk_container_add (GTK_CONTAINER (tlen1_menu), separator2);
515 gtk_widget_set_sensitive (separator2, FALSE);
516
517 o_programie1 = gtk_image_menu_item_new_with_mnemonic ("_O programie...");
518 gtk_widget_show (o_programie1);
519 gtk_container_add (GTK_CONTAINER (tlen1_menu), o_programie1);
520
521 image33 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_MENU);
522 gtk_widget_show (image33);
523 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (o_programie1), image33);
524
525 separator3 = gtk_menu_item_new ();
526 gtk_widget_show (separator3);
527 gtk_container_add (GTK_CONTAINER (tlen1_menu), separator3);
528 gtk_widget_set_sensitive (separator3, FALSE);
529
530 wyloguj_profil1 = gtk_image_menu_item_new_with_mnemonic ("_Wyloguj profil...");
531 gtk_widget_show (wyloguj_profil1);
532 gtk_container_add (GTK_CONTAINER (tlen1_menu), wyloguj_profil1);
533 gtk_widget_add_accelerator (wyloguj_profil1, "activate", accel_group,
534 GDK_W, GDK_CONTROL_MASK,
535 GTK_ACCEL_VISIBLE);
536
537 image34 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
538 gtk_widget_show (image34);
539 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wyloguj_profil1), image34);
540
541 wyj__cie1 = gtk_image_menu_item_new_with_mnemonic ("W_yj�\233cie");
542 gtk_widget_show (wyj__cie1);
543 gtk_container_add (GTK_CONTAINER (tlen1_menu), wyj__cie1);
544 gtk_widget_add_accelerator (wyj__cie1, "activate", accel_group,
545 GDK_Q, GDK_CONTROL_MASK,
546 GTK_ACCEL_VISIBLE);
547
548 image35 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU);
549 gtk_widget_show (image35);
550 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wyj__cie1), image35);
551
552 //ikonki statusow gg i jabbera
553 image = create_pixmap (window1, "gg_online.png");
554 gtk_widget_show (image);
555 GLADE_HOOKUP_OBJECT (window1, image, "gg_online");
556
557 image = create_pixmap (window1, "gg_offline.png");
558 gtk_widget_show (image);
559 GLADE_HOOKUP_OBJECT (window1, image, "gg_offline");
560
561 image = create_pixmap (window1, "gg_away.png");
562 gtk_widget_show (image);
563 GLADE_HOOKUP_OBJECT (window1, image, "gg_away");
564
565 image = create_pixmap (window1, "gg_invisible.png");
566 gtk_widget_show (image);
567 GLADE_HOOKUP_OBJECT (window1, image, "gg_invisible");
568
569 image = create_pixmap (window1, "j_invisible.png");
570 gtk_widget_show (image);
571 GLADE_HOOKUP_OBJECT (window1, image, "j_invisible");
572
573 image = create_pixmap (window1, "j_away.png");
574 gtk_widget_show (image);
575 GLADE_HOOKUP_OBJECT (window1, image, "j_away");
576
577 image = create_pixmap (window1, "j_dnd.png");
578 gtk_widget_show (image);
579 GLADE_HOOKUP_OBJECT (window1, image, "j_dnd");
580
581 image = create_pixmap (window1, "j_na.png");
582 gtk_widget_show (image);
583 GLADE_HOOKUP_OBJECT (window1, image, "j_na");
584
585 image = create_pixmap (window1, "j_online.png");
586 gtk_widget_show (image);
587 GLADE_HOOKUP_OBJECT (window1, image, "j_online");
588
589 image = create_pixmap (window1, "j_offline.png");
590 gtk_widget_show (image);
591 GLADE_HOOKUP_OBJECT (window1, image, "j_offline");
592
593 image = create_pixmap (window1, "j_chatty.png");
594 gtk_widget_show (image);
595 GLADE_HOOKUP_OBJECT (window1, image, "j_chatty");
596
597 //menu statusu
598
599
600 image = create_pixmap (window1, "online.png");
601 s=utf("_Dost�pny");
602 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
603 g_free(s);
604 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
605 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
606 G_CALLBACK (menu_status_response),
607 "1");
608 gtk_widget_show (menuitem);
609 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
610 gtk_widget_show (image);
611 image = create_pixmap (window1, "online.png");
612 gtk_widget_show (image);
613 GLADE_HOOKUP_OBJECT (window1, image, "im_online");
614
615 image = create_pixmap (window1, "chat.png");
616 s=utf("_Porozmawiajmy");
617 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
618 g_free(s);
619 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
620 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
621 G_CALLBACK (menu_status_response),
622 "2");
623 gtk_widget_show (menuitem);
624 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
625 gtk_widget_show (image);
626 image = create_pixmap (window1, "chat.png");
627 gtk_widget_show (image);
628 GLADE_HOOKUP_OBJECT (window1, image, "im_chat");
629
630 image = create_pixmap (window1, "occupied.png");
631 s=utf("_Jestem zaj�ty");
632 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
633 g_free(s);
634 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
635 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
636 G_CALLBACK (menu_status_response),
637 "3");
638 gtk_widget_show (menuitem);
639 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
640 gtk_widget_show (image);
641 image = create_pixmap (window1, "occupied.png");
642 gtk_widget_show (image);
643 GLADE_HOOKUP_OBJECT (window1, image, "im_occupied");
644
645 image = create_pixmap (window1, "away.png");
646 s=utf("_Zaraz wracam");
647 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
648 g_free(s);
649 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
650 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
651 G_CALLBACK (menu_status_response),
652 "4");
653 gtk_widget_show (menuitem);
654 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
655 gtk_widget_show (image);
656 image = create_pixmap (window1, "away.png");
657 gtk_widget_show (image);
658 GLADE_HOOKUP_OBJECT (window1, image, "im_away");
659
660 image = create_pixmap (window1, "beback.png");
661 s=utf("_Wr�c� p�niej");
662 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
663 g_free(s);
664 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
665 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
666 G_CALLBACK (menu_status_response),
667 "5");
668 gtk_widget_show (menuitem);
669 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
670 gtk_widget_show (image);
671 image = create_pixmap (window1, "beback.png");
672 gtk_widget_show (image);
673 GLADE_HOOKUP_OBJECT (window1, image, "im_beback");
674
675 image = create_pixmap (window1, "invisible.png");
676 s=utf("N_iewidoczny");
677 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
678 g_free(s);
679 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
680 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
681 G_CALLBACK (menu_status_response),
682 "6");
683 gtk_widget_show (menuitem);
684 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
685 gtk_widget_show (image);
686 image = create_pixmap (window1, "invisible.png");
687 gtk_widget_show (image);
688 GLADE_HOOKUP_OBJECT (window1, image, "im_invisible");
689
690 image = create_pixmap (window1, "offline.png");
691 s=utf("_Niedost�pny");
692 menuitem=gtk_image_menu_item_new_with_mnemonic(s);
693 g_free(s);
694 gtk_menu_shell_append (GTK_MENU_SHELL (menu_status),menuitem);
695 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
696 G_CALLBACK (menu_status_response),
697 "7");
698 gtk_widget_show (menuitem);
699 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
700 gtk_widget_show (image);
701 image = create_pixmap (window1, "offline.png");
702 gtk_widget_show (image);
703 GLADE_HOOKUP_OBJECT (window1, image, "im_offline");
704
705 menuitem = gtk_menu_item_new ();
706 gtk_widget_show (menuitem);
707 gtk_container_add (GTK_CONTAINER (menu_status), menuitem);
708 gtk_widget_set_sensitive (menuitem, FALSE);
709 s=utf("W�asny opis...");
710 menuitem = gtk_image_menu_item_new_with_label (s);
711 g_free(s);
712 gtk_widget_show (menuitem);
713 gtk_container_add (GTK_CONTAINER (menu_status), menuitem);
714 g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
715 G_CALLBACK (menu_status_response),
716 "8");
717 image = create_pixmap (window1, "info.png");
718 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),image);
719 gtk_widget_show (image);
720
721 status_button_set(TLEN_STATUS_AVAILABLE);
722 button=lookup_widget(window1, "button_status");
723 g_signal_connect_swapped (G_OBJECT (button), "event",
724 G_CALLBACK (menu_show),
725 menu_status);
726 button=lookup_widget(window1, "button_tlenpl");
727 g_signal_connect_swapped (G_OBJECT (button), "event",
728 G_CALLBACK (menu_show),
729 tlen1_menu);
730 // button=lookup_widget(window1, "button1");
731 // g_signal_connect_swapped (G_OBJECT (button), "clicked",
732 // G_CALLBACK (my_create_dialog13),
733 // NULL);
734 g_signal_connect (G_OBJECT (wyszukiwanie1), "activate",
735 G_CALLBACK (on_wyszukiwanie1_activate),
736 NULL);
737 g_signal_connect (G_OBJECT (wyslij_wiadomosc), "activate",
738 G_CALLBACK (on_wyslij_wiadomosc_activate),
739 NULL);
740 g_signal_connect (G_OBJECT (wyslij_sms), "activate",
741 G_CALLBACK (on_wyslij_sms_activate),
742 NULL);
743 g_signal_connect (G_OBJECT (wizytowka), "activate",
744 G_CALLBACK (on_wizytowka_activate),
745 NULL);
746 g_signal_connect (G_OBJECT (kontakty), "activate",
747 G_CALLBACK (on_kontakty_activate),
748 NULL);
749 g_signal_connect (G_OBJECT (dodaj_kontakt1), "activate",
750 G_CALLBACK (on_dodaj_kontakt1_activate),
751 NULL);
752 g_signal_connect (G_OBJECT (archiwum1), "activate",
753 G_CALLBACK (on_archiwum1_activate),
754 NULL);
755 g_signal_connect (G_OBJECT (ustawienia1), "activate",
756 G_CALLBACK (on_ustawienia1_activate),
757 NULL);
758 g_signal_connect (G_OBJECT (ustawienia_gg), "activate",
759 G_CALLBACK (on_ustawienia_gg_activate),
760 NULL);
761 g_signal_connect (G_OBJECT (o_programie1), "activate",
762 G_CALLBACK (on_o_programie1_activate),
763 NULL);
764 g_signal_connect (G_OBJECT (wyloguj_profil1), "activate",
765 G_CALLBACK (on_wyloguj_profil1_activate),
766 NULL);
767 g_signal_connect (G_OBJECT (wyj__cie1), "activate",
768 G_CALLBACK (on_wyj__cie1_activate),
769 NULL);
770
771 gtk_window_add_accel_group (GTK_WINDOW (window1), accel_group);
772 widget=lookup_widget(window1,"label_info");
773 gtk_widget_hide(widget);
774 // gtk_widget_show (window1);
775 }
776
window_unauth_delete(GtkWidget * window)777 void window_unauth_delete(GtkWidget *window)
778 {
779 gtk_widget_destroy(window);
780 wyloguj();
781 my_create_window_login();
782 }
783
my_create_window_unauth()784 void my_create_window_unauth()
785 {
786 GtkWidget *window;
787
788 window = create_window_unauth();
789 gtk_widget_show(window);
790 }
791
my_create_window_authorize(const gchar * jid)792 void my_create_window_authorize(const gchar *jid)
793 {
794 GtkWidget *window, *button;
795
796 cant_stop=TRUE;
797 window=create_window_authorize();
798 g_signal_connect (G_OBJECT (window), "delete_event",
799 G_CALLBACK (on_window_authorize_delete_event),
800 (gpointer) jid);
801 button=lookup_widget(window,"label_jid");
802 gtk_label_set_text(GTK_LABEL(button),jid);
803 button=lookup_widget(window,"button_authorize_cancel");
804 g_signal_connect (G_OBJECT (button), "clicked",
805 G_CALLBACK (on_button_authorize_cancel_clicked),
806 (gpointer) window);
807 button=lookup_widget(window,"button_authorize_ok");
808 g_signal_connect (G_OBJECT (button), "clicked",
809 G_CALLBACK (on_button_authorize_ok_clicked),
810 (gpointer) window);
811 gtk_widget_show(window);
812 }
813
814
815
newmail(const gchar * from,const gchar * subject)816 void newmail(const gchar *from, const gchar *subject)
817 {
818 GtkWidget *window, *widget;
819 gchar *s;
820
821 window=create_window_newmail();
822 widget=lookup_widget(window,"label_from");
823 s=utf(from);
824 gtk_label_set_text(GTK_LABEL(widget),s);
825 g_free(s);
826 widget=lookup_widget(window,"label_subject");
827 if(subject)
828 {
829 s=utf(subject);
830 gtk_label_set_text(GTK_LABEL(widget),s);
831 g_free(s);
832 }
833 else
834 gtk_label_set_text(GTK_LABEL(widget),"<brak tematu>");
835 gtk_widget_show(window);
836 }
837
my_create_window_webmsg(gchar * from,gchar * email,gchar * site,gchar * message)838 void my_create_window_webmsg(gchar *from, gchar *email, gchar *site, gchar
839 *message)
840 {
841 GtkWidget *window, *widget;
842 gchar *s;
843
844 window = create_window_webmsg();
845
846 widget=lookup_widget(window,"label_from");
847 s=utf(from);
848 gtk_label_set_text(GTK_LABEL(widget),s);
849 g_free(s);
850 widget=lookup_widget(window,"label_email");
851 s=utf(email);
852 gtk_label_set_text(GTK_LABEL(widget),s);
853 g_free(s);
854 widget=lookup_widget(window,"label_site");
855 s=utf(site);
856 gtk_label_set_text(GTK_LABEL(widget),s);
857 g_free(s);
858 widget=lookup_widget(window,"textview");
859 s=utf(message);
860 textview_append(widget,s,0,NULL, NULL);
861 g_free(s);
862 gtk_widget_show(window);
863 }
864
865 static void
window_contacts_cell_edited(GtkCellRendererText * cell,const gchar * path_string,const gchar * new_text,gpointer data)866 window_contacts_cell_edited (GtkCellRendererText *cell,
867 const gchar *path_string,
868 const gchar *new_text,
869 gpointer data)
870 {
871 GtkTreeView *treeview = (GtkTreeView *)data;
872 GtkTreeModel *model = gtk_tree_view_get_model(treeview);
873 GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
874 GtkTreeIter iter;
875
876 gint *column;
877 gchar *jid;
878 gchar *old_text;
879 struct contact *contact;
880
881
882 column = g_object_get_data (G_OBJECT (cell), "column");
883
884 gtk_tree_model_get_iter (model, &iter, path);
885 gtk_tree_model_get (model, &iter, CTS_TC_ID, &jid, -1);
886 contact=get_contact(jid);
887 gtk_tree_model_get (model, &iter, column, &old_text, -1);
888 g_free (old_text);
889 gtk_tree_store_set (GTK_TREE_STORE (model), &iter, column,
890 new_text, -1);
891
892 if(contact)
893 switch (GPOINTER_TO_INT (column))
894 {
895 case CTS_TC_FIRSTNAME:
896 {
897 g_free(contact->firstname);
898 contact->firstname=fromutf(new_text);
899 break;
900 }
901 case CTS_TC_SURNAME:
902 {
903 g_free(contact->surname);
904 contact->surname=fromutf(new_text);
905 break;
906 }
907 case CTS_TC_PHONE:
908 {
909 g_free(contact->phone);
910 contact->phone=fromutf(new_text);
911 break;
912 }
913 case CTS_TC_ADDRESS:
914 {
915 g_free(contact->address);
916 contact->address=fromutf(new_text);
917 break;
918 }
919 case CTS_TC_EMAIL:
920 {
921 g_free(contact->email);
922 contact->email=fromutf(new_text);
923 break;
924 }
925 case CTS_TC_BIRTHDAY:
926 {
927 g_free(contact->birthday);
928 contact->birthday=fromutf(new_text);
929 break;
930 }
931 case CTS_TC_ABOUT:
932 {
933 g_free(contact->about);
934 contact->about=fromutf(new_text);
935 break;
936 }
937
938 }
939
940 gtk_tree_path_free (path);
941 }
942
my_create_window_contacts()943 void my_create_window_contacts()
944 {
945 GtkCellRenderer *renderer;
946 GtkTreeViewColumn *column;
947 gchar *s;
948 GtkTreeView *treeview;
949 GtkTreeStore *store;
950 GtkTreeIter iter;
951 GList *l;
952 struct user *user;
953 struct contact *contact;
954 gint i;
955
956 read_contacts();
957 window_contacts = create_window_contacts();
958 treeview = GTK_TREE_VIEW(lookup_widget(window_contacts, "treeview"));
959 renderer = gtk_cell_renderer_pixbuf_new();
960 column = gtk_tree_view_column_new();
961 gtk_tree_view_column_set_title(column,"ID");
962 gtk_tree_view_column_pack_start(column, renderer, FALSE);
963 gtk_tree_view_column_set_cell_data_func (column, renderer,
964 func_pixbuf, NULL, NULL);
965
966 renderer = gtk_cell_renderer_text_new ();
967 gtk_tree_view_column_pack_start(column, renderer, FALSE);
968 gtk_tree_view_column_set_cell_data_func (column, renderer,
969 func_text, NULL, NULL);
970 gtk_tree_view_append_column (treeview, column);
971
972 renderer = gtk_cell_renderer_text_new ();
973 g_signal_connect (G_OBJECT (renderer), "edited",
974 G_CALLBACK (window_contacts_cell_edited), treeview);
975 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_FIRSTNAME);
976 s=utf("Imi� ");
977 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
978 -1, s, renderer,
979 "text", CTS_TC_FIRSTNAME,
980 "editable", CTS_TC_EDITABLE,
981 NULL);
982 g_free(s);
983 renderer = gtk_cell_renderer_text_new ();
984 g_signal_connect (G_OBJECT (renderer), "edited",
985 G_CALLBACK (window_contacts_cell_edited), treeview);
986 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_SURNAME);
987 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
988 -1, "Nazwisko", renderer,
989 "text", CTS_TC_SURNAME,
990 "editable", CTS_TC_EDITABLE,
991 NULL);
992 renderer = gtk_cell_renderer_text_new ();
993 g_signal_connect (G_OBJECT (renderer), "edited",
994 G_CALLBACK (window_contacts_cell_edited), treeview);
995 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_PHONE);
996 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
997 -1, "Telefon", renderer,
998 "text", CTS_TC_PHONE,
999 "editable", CTS_TC_EDITABLE,
1000 NULL);
1001 renderer = gtk_cell_renderer_text_new ();
1002 g_signal_connect (G_OBJECT (renderer), "edited",
1003 G_CALLBACK (window_contacts_cell_edited), treeview);
1004 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_EMAIL);
1005 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
1006 -1, "Email ", renderer,
1007 "text", CTS_TC_EMAIL,
1008 "editable", CTS_TC_EDITABLE,
1009 NULL);
1010 renderer = gtk_cell_renderer_text_new ();
1011 g_signal_connect (G_OBJECT (renderer), "edited",
1012 G_CALLBACK (window_contacts_cell_edited), treeview);
1013 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_ADDRESS);
1014 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
1015 -1, "Adres ", renderer,
1016 "text", CTS_TC_ADDRESS,
1017 "editable", CTS_TC_EDITABLE,
1018 NULL);
1019 renderer = gtk_cell_renderer_text_new ();
1020 g_signal_connect (G_OBJECT (renderer), "edited",
1021 G_CALLBACK (window_contacts_cell_edited), treeview);
1022 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_BIRTHDAY);
1023 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
1024 -1, "Data urodzin ", renderer,
1025 "text", CTS_TC_BIRTHDAY,
1026 "editable", CTS_TC_EDITABLE,
1027 NULL);
1028 renderer = gtk_cell_renderer_text_new ();
1029 g_signal_connect (G_OBJECT (renderer), "edited",
1030 G_CALLBACK (window_contacts_cell_edited), treeview);
1031 g_object_set_data (G_OBJECT (renderer), "column", (gint *)CTS_TC_ABOUT);
1032 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
1033 -1, "Opis", renderer,
1034 "text", CTS_TC_ABOUT,
1035 "editable", CTS_TC_EDITABLE,
1036 NULL);
1037
1038 //create model
1039
1040 store = gtk_tree_store_new(CTS_TC_COLUMNS, G_TYPE_UINT, G_TYPE_STRING,
1041 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
1042 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
1043 G_TYPE_STRING, G_TYPE_BOOLEAN);
1044 for(l=contacts_list;l;l=l->next)
1045 {
1046 contact=(struct contact*) l->data;
1047 user=get_user(contact->jid);
1048 if(user)
1049 i=user->status;
1050 else
1051 i=TLEN_STATUS_UNAVAILABLE;
1052 gtk_tree_store_append (store, &iter,NULL);
1053 s=utf(contact->jid);
1054 gtk_tree_store_set (store, &iter,
1055 CTS_TC_EDITABLE, TRUE,
1056 -1);
1057 gtk_tree_store_set (store, &iter,
1058 CTS_TC_STATUS, i,
1059 CTS_TC_ID, s,
1060 -1);
1061 g_free(s);
1062 s=utf(contact->firstname);
1063 gtk_tree_store_set (store, &iter,
1064 CTS_TC_FIRSTNAME, s,
1065 -1);
1066 g_free(s);
1067 s=utf(contact->surname);
1068 gtk_tree_store_set (store, &iter,
1069 CTS_TC_SURNAME, s,
1070 -1);
1071 g_free(s);
1072 s=utf(contact->phone);
1073 gtk_tree_store_set (store, &iter,
1074 CTS_TC_PHONE, s,
1075 -1);
1076 g_free(s);
1077 s=utf(contact->address);
1078 gtk_tree_store_set (store, &iter,
1079 CTS_TC_ADDRESS, s,
1080 -1);
1081 g_free(s);
1082 s=utf(contact->email);
1083 gtk_tree_store_set (store, &iter,
1084 CTS_TC_EMAIL, s,
1085 -1);
1086 g_free(s);
1087 s=utf(contact->birthday);
1088 gtk_tree_store_set (store, &iter,
1089 CTS_TC_BIRTHDAY, s,
1090 -1);
1091 g_free(s);
1092 s=utf(contact->about);
1093 gtk_tree_store_set (store, &iter,
1094 CTS_TC_ABOUT, s,
1095 -1);
1096 g_free(s);
1097 }
1098
1099 gtk_tree_view_set_model(treeview, GTK_TREE_MODEL (store));
1100 g_object_unref (G_OBJECT (store));
1101
1102 gtk_widget_show(window_contacts);
1103 }
1104
window_card_gotdata(struct tlen_event * event)1105 void window_card_gotdata(struct tlen_event *event)
1106 {
1107 GtkWidget *widget;
1108 gchar *s;
1109
1110 widget = lookup_widget(window_card, "entry_name");
1111 s = event->pubdir->firstname;
1112 if(s)
1113 {
1114 s = utf(s);
1115 gtk_entry_set_text(GTK_ENTRY(widget), s);
1116 g_free(s);
1117 }
1118 widget = lookup_widget(window_card, "entry_surname");
1119 s = event->pubdir->lastname;
1120 if(s)
1121 {
1122 s = utf(s);
1123 gtk_entry_set_text(GTK_ENTRY(widget), s);
1124 g_free(s);
1125 }
1126 widget = lookup_widget(window_card, "entry_nick");
1127 s = event->pubdir->nick;
1128 if(s)
1129 {
1130 s = utf(s);
1131 gtk_entry_set_text(GTK_ENTRY(widget), s);
1132 g_free(s);
1133 }
1134 widget = lookup_widget(window_card, "entry_gender");
1135 switch(event->pubdir->gender)
1136 {
1137 case TLEN_PUBDIR_GENDER_NONE:
1138 s="";
1139 break;
1140 case TLEN_PUBDIR_GENDER_FEMALE:
1141 s="kobieta";
1142 break;
1143 case TLEN_PUBDIR_GENDER_MALE:
1144 s="m�czyzna";
1145 break;
1146 }
1147 if(s)
1148 {
1149 s=utf(s);
1150 gtk_entry_set_text(GTK_ENTRY(widget),s);
1151 g_free(s);
1152 }
1153 widget=lookup_widget(window_card, "entry_city");
1154 s=event->pubdir->city;
1155 if(s)
1156 {
1157 s=utf(s);
1158 gtk_entry_set_text(GTK_ENTRY(widget),s);
1159 g_free(s);
1160 }
1161 widget=lookup_widget(window_card, "entry_email");
1162 s=event->pubdir->email;
1163 if(s)
1164 {
1165 s=utf(s);
1166 gtk_entry_set_text(GTK_ENTRY(widget),s);
1167 g_free(s);
1168 }
1169 widget=lookup_widget(window_card, "spinbutton");
1170 if(event->pubdir->birthyear >= 1900)
1171 gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),
1172 event->pubdir->birthyear);
1173 widget=lookup_widget(window_card, "entry_status");
1174 if(event->pubdir->visible == TLEN_PUBDIR_VISIBLE_NO)
1175 gtk_entry_set_text(GTK_ENTRY(widget),"nie");
1176 else
1177 gtk_entry_set_text(GTK_ENTRY(widget),"tak");
1178 widget=lookup_widget(window_card, "entry_look");
1179 switch(event->pubdir->look_for)
1180 {
1181 case TLEN_PUBDIR_LOOK_NONE:
1182 s="";
1183 break;
1184 case TLEN_PUBDIR_LOOK_TALK:
1185 s="rozmowa";
1186 break;
1187 case TLEN_PUBDIR_LOOK_FRIEND:
1188 s="przyja�n";
1189 break;
1190 case TLEN_PUBDIR_LOOK_FLIRT:
1191 s="romans";
1192 break;
1193 case TLEN_PUBDIR_LOOK_LOVE:
1194 s="mi�o��";
1195 break;
1196 default:
1197 s="";
1198 }
1199 s=utf(s);
1200 gtk_entry_set_text(GTK_ENTRY(widget),s);
1201 g_free(s);
1202 widget=lookup_widget(window_card, "entry_school");
1203 s=event->pubdir->school;
1204 if(s)
1205 {
1206 s=utf(s);
1207 gtk_entry_set_text(GTK_ENTRY(widget),s);
1208 g_free(s);
1209 }
1210 widget=lookup_widget(window_card, "entry_job");
1211 switch(event->pubdir->job)
1212 {
1213 case TLEN_PUBDIR_JOB_NONE:
1214 s="";
1215 break;
1216 case TLEN_PUBDIR_JOB_UCZEN:
1217 s="ucze�";
1218 break;
1219 case TLEN_PUBDIR_JOB_STUDENT:
1220 s="student";
1221 break;
1222 case TLEN_PUBDIR_JOB_ROLNIK:
1223 s="rolnik";
1224 break;
1225 case TLEN_PUBDIR_JOB_MENEDZER:
1226 s="mened�er";
1227 break;
1228 case TLEN_PUBDIR_JOB_SPEC_WOL:
1229 s="specjalista";
1230 break;
1231 case TLEN_PUBDIR_JOB_UUA:
1232 s="urz�dnik";
1233 break;
1234 case TLEN_PUBDIR_JOB_BEZROBOTNY:
1235 s="bezrobotny";
1236 break;
1237 case TLEN_PUBDIR_JOB_EMERYT:
1238 s="emeryt,rencista";
1239 break;
1240 case TLEN_PUBDIR_JOB_GOSPODYNI:
1241 s="gospodyni";
1242 break;
1243 case TLEN_PUBDIR_JOB_NAUCZYCIEL:
1244 s="nauczyciel";
1245 break;
1246 case TLEN_PUBDIR_JOB_LEKARZ:
1247 s="lekarz";
1248 break;
1249 case TLEN_PUBDIR_JOB_INNY:
1250 s="inny";
1251 break;
1252 default:
1253 s="";
1254 }
1255 if(s)
1256 {
1257 s=utf(s);
1258 gtk_entry_set_text(GTK_ENTRY(widget),s);
1259 g_free(s);
1260 }
1261 widget=lookup_widget(window_card, "entry_voice");
1262 if(event->pubdir->voice == TLEN_PUBDIR_VOICE_DISABLED)
1263 gtk_entry_set_text(GTK_ENTRY(widget),"nie");
1264 else
1265 gtk_entry_set_text(GTK_ENTRY(widget),"tak");
1266 widget=lookup_widget(window_card, "entry_plans");
1267 switch(event->pubdir->plans)
1268 {
1269 case TLEN_PUBDIR_WANT_NONE:
1270 s="";
1271 break;
1272 case TLEN_PUBDIR_WANT_CINEMA:
1273 s="kino";
1274 break;
1275 default:
1276 s="";
1277 }
1278 if(s)
1279 {
1280 s=utf(s);
1281 gtk_entry_set_text(GTK_ENTRY(widget),s);
1282 g_free(s);
1283 }
1284
1285 }
1286
window_card_hide_thobber()1287 void window_card_hide_thobber()
1288 {
1289 GtkWidget *image;
1290
1291 image = lookup_widget(window_card, "thobber");
1292 gtk_widget_hide(image);
1293 }
1294
window_card_show_thobber()1295 void window_card_show_thobber()
1296 {
1297 GtkWidget *image;
1298
1299 image = lookup_widget(window_card, "thobber");
1300 gtk_widget_show(image);
1301 }
1302
window_card_export()1303 void window_card_export()
1304 {
1305 struct tlen_pubdir *pubdir;
1306 GtkWidget *widget;
1307 gchar *s;
1308
1309
1310 pubdir = tlen_new_pubdir ();
1311 widget = lookup_widget(window_card, "entry_name");
1312 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1313 if(strlen(s)>0)
1314 pubdir->firstname = strdup(s);
1315 g_free(s);
1316 widget = lookup_widget(window_card,"entry_surname");
1317 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1318 if(strlen(s)>0)
1319 pubdir->lastname = strdup(s);
1320 g_free(s);
1321 widget = lookup_widget(window_card, "entry_nick");
1322 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1323 if(strlen(s)>0)
1324 pubdir->nick = strdup(s);
1325 g_free(s);
1326 widget = lookup_widget(window_card, "entry_gender");
1327 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1328 if(!strcmp(s,"kobieta"))
1329 pubdir->gender = TLEN_PUBDIR_GENDER_FEMALE;
1330 else if(!strcmp(s,"m�czyzna"))
1331 pubdir->gender = TLEN_PUBDIR_GENDER_MALE;
1332 else
1333 pubdir->gender = TLEN_PUBDIR_GENDER_NONE;
1334 g_free(s);
1335 widget = lookup_widget(window_card, "entry_city");
1336 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1337 if(strlen(s)>0)
1338 pubdir->city = strdup(s);
1339 widget = lookup_widget(window_card, "entry_email");
1340 g_free(s);
1341 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1342 if(strlen(s)>0)
1343 pubdir->email = strdup(s);
1344 widget = lookup_widget(window_card, "spinbutton");
1345 pubdir->birthyear = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
1346 widget = lookup_widget(window_card,"entry_status");
1347 g_free(s);
1348 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1349 if(!strcmp(s,"nie"))
1350 pubdir->visible = TLEN_PUBDIR_VISIBLE_NO;
1351 else
1352 pubdir->visible = TLEN_PUBDIR_VISIBLE_YES;
1353 widget = lookup_widget(window_card, "entry_look");
1354 g_free(s);
1355 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1356 if(!strcmp(s,""))
1357 pubdir->look_for = TLEN_PUBDIR_LOOK_NONE;
1358 else if(!strcmp(s,"rozmowa"))
1359 pubdir->look_for = TLEN_PUBDIR_LOOK_TALK;
1360 else if(!strcmp(s,"przyja��"))
1361 pubdir->look_for = TLEN_PUBDIR_LOOK_FRIEND;
1362 else if(!strcmp(s,"romans"))
1363 pubdir->look_for = TLEN_PUBDIR_LOOK_FLIRT;
1364 else if(!strcmp(s,"mi�o��"))
1365 pubdir->look_for = TLEN_PUBDIR_LOOK_LOVE;
1366 widget = lookup_widget(window_card, "entry_school");
1367 g_free(s);
1368 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1369 if(strlen(s)>0)
1370 pubdir->school = strdup(s);
1371 widget = lookup_widget(window_card, "entry_job");
1372 g_free(s);
1373 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1374 if(!strcmp(s,""))
1375 pubdir->job = TLEN_PUBDIR_JOB_NONE;
1376 else if(!strcmp(s,"ucze�"))
1377 pubdir->job = TLEN_PUBDIR_JOB_UCZEN;
1378 else if(!strcmp(s,"student"))
1379 pubdir->job = TLEN_PUBDIR_JOB_STUDENT;
1380 else if(!strcmp(s,"rolnik"))
1381 pubdir->job = TLEN_PUBDIR_JOB_ROLNIK;
1382 else if(!strcmp(s,"mened�er"))
1383 pubdir->job = TLEN_PUBDIR_JOB_MENEDZER;
1384 else if(!strcmp(s,"specjalista"))
1385 pubdir->job = TLEN_PUBDIR_JOB_SPEC_WOL;
1386 else if(!strcmp(s,"urz�dnik"))
1387 pubdir->job = TLEN_PUBDIR_JOB_UUA;
1388 else if(!strcmp(s,"emeryt,rencista"))
1389 pubdir->job = TLEN_PUBDIR_JOB_EMERYT;
1390 else if(!strcmp(s,"gospodyni"))
1391 pubdir->job = TLEN_PUBDIR_JOB_GOSPODYNI;
1392 else if(!strcmp(s,"nauczyciel"))
1393 pubdir->job = TLEN_PUBDIR_JOB_NAUCZYCIEL;
1394 else if(!strcmp(s,"lekarz"))
1395 pubdir->job = TLEN_PUBDIR_JOB_LEKARZ;
1396 else if(!strcmp(s,"inny"))
1397 pubdir->job = TLEN_PUBDIR_JOB_INNY;
1398 else if(!strcmp(s,"bezrobotny"))
1399 pubdir->job = TLEN_PUBDIR_JOB_BEZROBOTNY;
1400 widget = lookup_widget(window_card, "entry_voice");
1401 g_free(s);
1402 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1403 if(!strcmp(s,"nie"))
1404 pubdir->voice = TLEN_PUBDIR_VOICE_DISABLED;
1405 else
1406 pubdir->voice = TLEN_PUBDIR_VOICE_ENABLED;
1407 widget = lookup_widget(window_card, "entry_plans");
1408 g_free(s);
1409 s = (gchar*) fromutf(gtk_entry_get_text(GTK_ENTRY(widget)));
1410 if(!strcmp(s,""))
1411 pubdir->plans = TLEN_PUBDIR_WANT_NONE;
1412 else if(!strcmp(s,"kino"))
1413 pubdir->plans = TLEN_PUBDIR_WANT_CINEMA;
1414 g_free(s);
1415
1416 tlen_change_pubdir(session, pubdir);
1417 tlen_free_pubdir(pubdir);
1418 window_card_show_thobber();
1419 }
1420
window_card_import()1421 void window_card_import()
1422 {
1423 tlen_get_pubdir(session);
1424 window_card_show_thobber();
1425 }
1426
my_create_window_card()1427 void my_create_window_card()
1428 {
1429 window_card = create_window_card();
1430 gtk_widget_show(window_card);
1431 }
1432
colorselection_getcolor(GtkWidget * entry)1433 void colorselection_getcolor(GtkWidget *entry)
1434 {
1435 GtkWidget *button;
1436
1437 colorselection = create_colorselection();
1438 button = lookup_widget(colorselection, "button_colorselection_ok");
1439 g_signal_connect_swapped (G_OBJECT (button), "clicked",
1440 G_CALLBACK (on_button_colorselection_ok_clicked),
1441 entry);
1442
1443 gtk_widget_show(colorselection);
1444 }
1445
fileselection_getfile(GtkWidget * entry)1446 void fileselection_getfile(GtkWidget *entry)
1447 {
1448 GtkWidget *button;
1449 static gulong handler_id = 0;
1450
1451 if(!fileselection)
1452 fileselection = create_fileselection();
1453 button = lookup_widget(fileselection, "button_fileselection_ok");
1454 if(handler_id)
1455 g_signal_handler_disconnect(G_OBJECT(button), handler_id);
1456 handler_id = g_signal_connect_swapped(G_OBJECT(button), "clicked",
1457 G_CALLBACK(on_button_fileselection_ok_clicked),
1458 entry);
1459 gtk_widget_show(fileselection);
1460 }
1461
window_prefs_apply()1462 void window_prefs_apply()
1463 {
1464 GtkWidget *entry, *button;
1465 gchar *s;
1466 struct talk *talk;
1467 GList *l=talks_list;
1468 GtkTextBuffer *buffer;
1469 GtkTextTag *tag;
1470 GtkTextTagTable *table;
1471
1472
1473 //ogolne
1474 preferences = 0;
1475 button = lookup_widget(window_prefs,"checkbutton_newmail");
1476 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1477 preferences |= PREF_NEWMAIL;
1478 button = lookup_widget(window_prefs,"checkbutton_savestat");
1479 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1480 preferences |= PREF_SAVESTAT;
1481 button = lookup_widget(window_prefs,"checkbutton_infomenu");
1482 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1483 preferences |= PREF_INFO_MENU;
1484 button = lookup_widget(window_prefs,"checkbutton_enteron");
1485 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1486 preferences |= PREF_ENTERON;
1487 button = lookup_widget(window_prefs,"checkbutton_debugon");
1488 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1489 {
1490 preferences |= PREF_DEBUGON;
1491 tlen_setdebug(1);
1492 }
1493 else
1494 tlen_setdebug(0);
1495 button = lookup_widget(window_prefs,"checkbutton_list_expanded");
1496 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1497 preferences |= PREF_LIST_EXPANDED;
1498 button = lookup_widget(window_prefs,"checkbutton_hide_invisible");
1499 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1500 preferences |= PREF_HIDE_INVISIBLE;
1501 button = lookup_widget(window_prefs,"checkbutton_lastlogin");
1502 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1503 preferences |= PREF_LASTLOGIN;
1504 button = lookup_widget(window_prefs,"checkbutton_status");
1505 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1506 {
1507 preferences |= PREF_AUTOAWAY;
1508 button = lookup_widget(window_prefs,"spinbutton_away_min");
1509 away_min = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(button));
1510 button = lookup_widget(window_prefs,"spinbutton_away_sec");
1511 away_sec = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(button));
1512 button = lookup_widget(window_prefs,"spinbutton_ext_away_min");
1513 ext_away_min = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(button));
1514 button = lookup_widget(window_prefs,"spinbutton_ext_away_sec");
1515 ext_away_sec = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(button));
1516 }
1517 button = lookup_widget(window_prefs,"checkbutton_xmms");
1518 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1519 {
1520 preferences |= PREF_XMMS_INFO;
1521 xmms_info_enable(TRUE, 0);
1522 }
1523 else
1524 xmms_info_enable(FALSE, 0);
1525 button = lookup_widget(window_prefs,"spinbutton_desc");
1526 desc_num = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(button));
1527 button = lookup_widget(window_prefs, "checkbutton_hide_offline");
1528 entry = lookup_widget(window1, "togglebutton_hide");
1529 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1530 {
1531 preferences |= PREF_HIDE_OFFLINE;
1532 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(entry),TRUE);
1533 }
1534 else
1535 {
1536 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(entry),FALSE);
1537 }
1538
1539 button = lookup_widget(window_prefs,"radiobutton_none");
1540 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1541 preferences |= PREF_GROUPS_NONE;
1542 else
1543 {
1544 button=lookup_widget(window_prefs,"radiobutton_tabs_up");
1545 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1546 preferences |= PREF_GROUPS_TABS_UP;
1547 else
1548 {
1549 button=lookup_widget(window_prefs,"radiobutton_tabs_left");
1550 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1551 preferences |= PREF_GROUPS_TABS_LEFT;
1552 else
1553 {
1554 button=lookup_widget(window_prefs,"radiobutton_list");
1555 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1556 preferences |= PREF_GROUPS_LIST;
1557 }
1558 }
1559 }
1560 refresh_gui();
1561
1562 //dzwieki
1563 button = lookup_widget(window_prefs,"checkbutton_beeponm");
1564 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1565 preferences |= PREF_BEEPONM;
1566 button = lookup_widget(window_prefs,"checkbutton_beepont");
1567 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1568 preferences |= PREF_BEEPONT;
1569 button = lookup_widget(window_prefs,"checkbutton_beepons");
1570 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1571 preferences |= PREF_BEEPONS;
1572 button = lookup_widget(window_prefs,"checkbutton_beepona");
1573 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1574 preferences |= PREF_BEEPONA;
1575 button = lookup_widget(window_prefs,"checkbutton_beeponn");
1576 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1577 preferences |= PREF_BEEPONN;
1578 button = lookup_widget(window_prefs,"checkbutton_beeponw");
1579 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
1580 preferences |= PREF_BEEPONW;
1581 entry = lookup_widget(window_prefs,"entry_beeponm");
1582 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1583 g_free(sounds[SOUNDM]);
1584 sounds[SOUNDM] = NULL;
1585 if(strlen(s))
1586 sounds[SOUNDM] = filenamefromutf(s);
1587 entry = lookup_widget(window_prefs,"entry_beepont");
1588 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1589 g_free(sounds[SOUNDT]);
1590 sounds[SOUNDT] = NULL;
1591 if(strlen(s))
1592 sounds[SOUNDT] = filenamefromutf(s);
1593 entry = lookup_widget(window_prefs,"entry_beepons");
1594 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1595 g_free(sounds[SOUNDS]);
1596 sounds[SOUNDS] = NULL;
1597 if(strlen(s))
1598 sounds[SOUNDS] = filenamefromutf(s);
1599 entry = lookup_widget(window_prefs,"entry_beepona");
1600 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1601 g_free(sounds[SOUNDA]);
1602 sounds[SOUNDA] = NULL;
1603 if(strlen(s))
1604 sounds[SOUNDA] = filenamefromutf(s);
1605 entry = lookup_widget(window_prefs,"entry_beeponn");
1606 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1607 g_free(sounds[SOUNDN]);
1608 sounds[SOUNDN] = NULL;
1609 if(strlen(s))
1610 sounds[SOUNDN] = filenamefromutf(s);
1611 entry = lookup_widget(window_prefs,"entry_beeponw");
1612 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1613 g_free(sounds[SOUNDW]);
1614 sounds[SOUNDW] = NULL;
1615 if(strlen(s))
1616 sounds[SOUNDW] = filenamefromutf(s);
1617 entry = lookup_widget(window_prefs,"entry_playpath");
1618 s = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
1619 g_free(playpath);
1620 playpath = NULL;
1621 if(strlen(s))
1622 playpath = filenamefromutf(s);
1623
1624 //kolory
1625 entry = lookup_widget(window_prefs,"entry_date");
1626 s = (gchar *)gtk_entry_get_text(GTK_ENTRY(entry));
1627 g_free(datefg);
1628 datefg = NULL;
1629 if(strlen(s)>0)
1630 datefg = g_strdup(s);
1631 entry = lookup_widget(window_prefs,"entry_nick");
1632 s = (gchar *)gtk_entry_get_text(GTK_ENTRY(entry));
1633 g_free(nickfg);
1634 nickfg = NULL;
1635 if(strlen(s)>0)
1636 nickfg = g_strdup(s);
1637 entry = lookup_widget(window_prefs,"entry_message");
1638 s = (gchar *)gtk_entry_get_text(GTK_ENTRY(entry));
1639 g_free(textfg);
1640 textfg = NULL;
1641 if(strlen(s)>0)
1642 textfg = g_strdup(s);
1643
1644 entry = lookup_widget(window_prefs,"entry_message_bg");
1645 s = (gchar *)gtk_entry_get_text(GTK_ENTRY(entry));
1646 g_free(textbg);
1647 textbg = NULL;
1648 if(strlen(s)>0)
1649 textbg = g_strdup(s);
1650
1651 while(l)
1652 {
1653 talk = (struct talk*)l->data;
1654 entry = lookup_widget(talk->window,"textview_top");
1655 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry));
1656 table = gtk_text_buffer_get_tag_table(buffer);
1657 if(datefg)
1658 {
1659 tag = gtk_text_tag_table_lookup(table, "datefg");
1660 g_object_set(tag,"foreground", datefg, NULL);
1661 }
1662 if(nickfg)
1663 {
1664 tag = gtk_text_tag_table_lookup(table, "nickfg");
1665 g_object_set(tag,"foreground", nickfg, NULL);
1666 }
1667 if(textfg)
1668 {
1669 tag=gtk_text_tag_table_lookup(table, "textfg");
1670 g_object_set(tag,
1671 "foreground", textfg,
1672 NULL);
1673 }
1674 if(textbg)
1675 {
1676 tag=gtk_text_tag_table_lookup(table, "textbg");
1677 g_object_set(tag,
1678 "background", textbg,
1679 "foreground", textfg,
1680 NULL);
1681 }
1682 l = l->next;
1683 }
1684 save_preferences();
1685
1686 }
1687
my_create_window_prefs()1688 void my_create_window_prefs()
1689 {
1690 GtkWidget *entry, *button;
1691 gchar *s;
1692
1693 window_prefs = create_window_prefs();
1694 button = lookup_widget(window_prefs,"checkbutton_newmail");
1695 if(preferences & PREF_NEWMAIL)
1696 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1697 button = lookup_widget(window_prefs,"checkbutton_savestat");
1698 if(preferences & PREF_SAVESTAT)
1699 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1700 button = lookup_widget(window_prefs,"checkbutton_infomenu");
1701 if(preferences & PREF_INFO_MENU)
1702 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1703 button = lookup_widget(window_prefs,"checkbutton_enteron");
1704 if(preferences & PREF_ENTERON)
1705 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1706 button = lookup_widget(window_prefs,"checkbutton_debugon");
1707 if(preferences & PREF_DEBUGON)
1708 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1709 button = lookup_widget(window_prefs,"checkbutton_list_expanded");
1710 if(preferences & PREF_LIST_EXPANDED)
1711 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1712 button = lookup_widget(window_prefs,"checkbutton_hide_offline");
1713 if(preferences & PREF_HIDE_OFFLINE)
1714 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1715 button = lookup_widget(window_prefs,"checkbutton_hide_invisible");
1716 if(preferences & PREF_HIDE_INVISIBLE)
1717 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1718 button = lookup_widget(window_prefs,"checkbutton_lastlogin");
1719 if(preferences & PREF_LASTLOGIN)
1720 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1721 button = lookup_widget(window_prefs,"checkbutton_status");
1722 if(preferences & PREF_AUTOAWAY)
1723 {
1724 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1725 button = lookup_widget(window_prefs,"spinbutton_away_min");
1726 gtk_spin_button_set_value(GTK_SPIN_BUTTON(button), away_min);
1727 button = lookup_widget(window_prefs,"spinbutton_away_sec");
1728 gtk_spin_button_set_value(GTK_SPIN_BUTTON(button), away_sec);
1729 button = lookup_widget(window_prefs,"spinbutton_ext_away_min");
1730 gtk_spin_button_set_value(GTK_SPIN_BUTTON(button), ext_away_min);
1731 button = lookup_widget(window_prefs,"spinbutton_ext_away_sec");
1732 gtk_spin_button_set_value(GTK_SPIN_BUTTON(button), ext_away_sec);
1733 }
1734 button = lookup_widget(window_prefs,"checkbutton_xmms");
1735 if(preferences & PREF_XMMS_INFO)
1736 {
1737 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1738 }
1739 button = lookup_widget(window_prefs,"spinbutton_desc");
1740 gtk_spin_button_set_value(GTK_SPIN_BUTTON(button), desc_num);
1741
1742 button = lookup_widget(window_prefs,"checkbutton_beeponm");
1743 if(preferences & PREF_BEEPONM)
1744 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1745 button = lookup_widget(window_prefs,"checkbutton_beepont");
1746 if(preferences & PREF_BEEPONT)
1747 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1748 button = lookup_widget(window_prefs,"checkbutton_beepons");
1749 if(preferences & PREF_BEEPONS)
1750 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1751 button = lookup_widget(window_prefs,"checkbutton_beepona");
1752 if(preferences & PREF_BEEPONA)
1753 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1754 button = lookup_widget(window_prefs,"checkbutton_beeponn");
1755 if(preferences & PREF_BEEPONN)
1756 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1757 button = lookup_widget(window_prefs,"checkbutton_beeponw");
1758 if(preferences & PREF_BEEPONW)
1759 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1760
1761 button = lookup_widget(window_prefs,"radiobutton_none");
1762 if(preferences & PREF_GROUPS_NONE)
1763 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1764 else
1765 {
1766 button = lookup_widget(window_prefs,"radiobutton_tabs_up");
1767 if(preferences & PREF_GROUPS_TABS_UP)
1768 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1769 else
1770 {
1771 button = lookup_widget(window_prefs,"radiobutton_tabs_left");
1772 if(preferences & PREF_GROUPS_TABS_LEFT)
1773 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1774 else
1775 {
1776 button = lookup_widget(window_prefs,"radiobutton_list");
1777 if(preferences & PREF_GROUPS_LIST)
1778 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),TRUE);
1779 }
1780 }
1781 }
1782
1783 entry = lookup_widget(window_prefs,"entry_date");
1784 if(datefg)
1785 gtk_entry_set_text(GTK_ENTRY(entry),datefg);
1786 entry = lookup_widget(window_prefs,"entry_nick");
1787 if(nickfg)
1788 gtk_entry_set_text(GTK_ENTRY(entry),nickfg);
1789 entry = lookup_widget(window_prefs,"entry_message");
1790 if(textfg)
1791 gtk_entry_set_text(GTK_ENTRY(entry),textfg);
1792
1793 entry = lookup_widget(window_prefs,"entry_message_bg");
1794 if(textbg)
1795 gtk_entry_set_text(GTK_ENTRY(entry),textbg);
1796
1797 entry = lookup_widget(window_prefs,"entry_beeponm");
1798 if(sounds[SOUNDM])
1799 {
1800 s = filenameutf(sounds[SOUNDM]);
1801 if(s)
1802 {
1803 gtk_entry_set_text(GTK_ENTRY(entry), s);
1804 g_free(s);
1805 }
1806 }
1807 entry = lookup_widget(window_prefs,"entry_beepons");
1808 if(sounds[SOUNDS])
1809 {
1810 s = filenameutf(sounds[SOUNDS]);
1811 if(s)
1812 {
1813 gtk_entry_set_text(GTK_ENTRY(entry), s);
1814 g_free(s);
1815 }
1816 }
1817 entry = lookup_widget(window_prefs,"entry_beepona");
1818 if(sounds[SOUNDA])
1819 {
1820 s = filenameutf(sounds[SOUNDA]);
1821 if(s)
1822 {
1823 gtk_entry_set_text(GTK_ENTRY(entry),s);
1824 g_free(s);
1825 }
1826 }
1827 entry = lookup_widget(window_prefs,"entry_beeponn");
1828 if(sounds[SOUNDN])
1829 {
1830 s = filenameutf(sounds[SOUNDN]);
1831 if(s)
1832 {
1833 gtk_entry_set_text(GTK_ENTRY(entry),s);
1834 g_free(s);
1835 }
1836 }
1837 entry = lookup_widget(window_prefs,"entry_beeponw");
1838 if(sounds[SOUNDW])
1839 {
1840 s = filenameutf(sounds[SOUNDW]);
1841 if(s)
1842 {
1843 gtk_entry_set_text(GTK_ENTRY(entry),s);
1844 g_free(s);
1845 }
1846 }
1847 entry = lookup_widget(window_prefs,"entry_beepont");
1848 if(sounds[SOUNDT])
1849 {
1850 s = filenameutf(sounds[SOUNDT]);
1851 if(s)
1852 {
1853 gtk_entry_set_text(GTK_ENTRY(entry),s);
1854 g_free(s);
1855 }
1856 }
1857 entry = lookup_widget(window_prefs,"entry_playpath");
1858 if(playpath)
1859 {
1860 s = filenameutf(playpath);
1861 gtk_entry_set_text(GTK_ENTRY(entry),s);
1862 g_free(s);
1863 }
1864
1865 gtk_widget_show(window_prefs);
1866 }
1867
window_archive_save()1868 void window_archive_save()
1869 {
1870 }
1871
window_archive_delete()1872 void window_archive_delete()
1873 {
1874 GtkWidget *widget;
1875 gint page;
1876 GtkTreeSelection *selection;
1877 GtkTreeModel *model;
1878 GtkTreeIter iter;
1879 gchar *jid, *date;
1880
1881 widget = lookup_widget(window_archive, "notebook");
1882 page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widget));
1883 switch(page)
1884 {
1885 case 0:
1886 widget = lookup_widget(window_archive, "treeview_sent");
1887 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
1888 if (gtk_tree_selection_get_selected (selection, &model, &iter))
1889 {
1890 gtk_tree_model_get (model, &iter,
1891 1, &jid,
1892 2, &date,
1893 -1);
1894 g_print("deleting %s %s \n", jid, date);
1895 mesgsent_delete(jid, date);
1896 mesgsent_sort_by_date();
1897 widget = lookup_widget(window_archive, "radiobutton_archive_date");
1898 treeview_sent_sort_by_name();
1899 treeview_sent_sort_by_date();
1900 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
1901 treeview_sent_sort_by_name();
1902 else
1903 {
1904 treeview_sent_sort_by_date();
1905 }
1906 }
1907 break;
1908 case 1:
1909 break;
1910 case 2:
1911 break;
1912 default:
1913 return;
1914 }
1915 }
1916
window_archive_cancel()1917 void window_archive_cancel()
1918 {
1919 gtk_widget_destroy(window_archive);
1920 window_archive = NULL;
1921 clean_archive();
1922 }
1923
my_create_window_archive()1924 void my_create_window_archive()
1925 {
1926 GtkCellRenderer *renderer;
1927 GtkTreeViewColumn *column;
1928 GtkWidget *treeview2;
1929 GtkTreeSelection *selection;
1930 GtkWidget *widget;
1931 GtkTextBuffer *buffer;
1932 gchar *s;
1933
1934 window_archive = create_window_archive();
1935 widget = lookup_widget(window_archive, "textview_chat");
1936 buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
1937 gtk_text_buffer_create_tag (buffer, "date","foreground",
1938 "blue",
1939 NULL);
1940 gtk_text_buffer_create_tag (buffer, "text","foreground",
1941 "#808080",
1942 NULL);
1943 treeview2 = lookup_widget(window_archive,"treeview_archives");
1944 renderer = gtk_cell_renderer_text_new ();
1945 column = gtk_tree_view_column_new_with_attributes ("Nazwa archiwum",
1946 renderer,
1947 "text",
1948 0,
1949 NULL);
1950 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
1951 renderer = gtk_cell_renderer_text_new ();
1952 column = gtk_tree_view_column_new_with_attributes ("Data ostatniego wpisu",
1953 renderer,
1954 "text",
1955 1,
1956 NULL);
1957 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
1958 treeview2 = lookup_widget(window_archive,"treeview_chat");
1959 renderer = gtk_cell_renderer_text_new ();
1960 column = gtk_tree_view_column_new_with_attributes (NULL,
1961 renderer,
1962 "text",
1963 0,
1964 NULL);
1965 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
1966 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview2));
1967 g_signal_connect (selection, "changed",
1968 G_CALLBACK (treeview_chat_selection_cb), NULL);
1969
1970 treeview2 = lookup_widget(window_archive,"treeview_sent");
1971 renderer = gtk_cell_renderer_text_new ();
1972 s = utf("Data wys�ania");
1973 column = gtk_tree_view_column_new_with_attributes (s,
1974 renderer,
1975 "text",
1976 2,
1977 NULL);
1978 g_free(s);
1979 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
1980 renderer = gtk_cell_renderer_text_new ();
1981 column = gtk_tree_view_column_new_with_attributes ("ID",
1982 renderer,
1983 "text",
1984 1,
1985 NULL);
1986 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
1987
1988 treeview2 = lookup_widget(window_archive,"treeview_received");
1989 renderer = gtk_cell_renderer_text_new ();
1990 s = utf("Data wys�ania");
1991 column = gtk_tree_view_column_new_with_attributes (s,
1992 renderer,
1993 "text",
1994 2,
1995 NULL);
1996 g_free(s);
1997 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
1998 renderer = gtk_cell_renderer_text_new ();
1999 column = gtk_tree_view_column_new_with_attributes ("ID",
2000 renderer,
2001 "text",
2002 1,
2003 NULL);
2004 gtk_tree_view_append_column (GTK_TREE_VIEW(treeview2), column);
2005
2006 arch_list_load();
2007 archive_read_mesgsent();
2008 treeview_sent_sort_by_name();
2009 treeview_received_sort_by_name();
2010 treeview_archives_refresh();
2011
2012 gtk_widget_show(window_archive);
2013 }
2014
window_message_update_count()2015 void window_message_update_count()
2016 {
2017 gint num = messages_count();
2018 GtkWidget *widget;
2019 gchar *s;
2020
2021 widget = lookup_widget(window_message, "label_all");
2022 s = g_strdup_printf("%d", num);
2023 gtk_label_set_text(GTK_LABEL(widget), s);
2024 g_free(s);
2025 widget = lookup_widget(window_message, "button_message_next");
2026 gtk_widget_set_sensitive(widget, TRUE);
2027 }
2028
2029 //num - numer wiadomosci do wyswietlenia w oknie
window_message_update(gint num)2030 void window_message_update(gint num)
2031 {
2032 GtkWidget *label, *textview, *button;
2033 struct message *m;
2034 gchar *s, *name;
2035
2036 m = message_next(num-1);
2037 label = lookup_widget(window_message, "label_id");
2038 gtk_label_set_text(GTK_LABEL(label), m->id);
2039 label = lookup_widget(window_message, "label_from");
2040 if(get_user(m->id))
2041 {
2042 name = get_user_name(m->id);
2043 if(strncmp(name, m->id, strlen(name)))
2044 {
2045 s = g_strdup_printf("(%s)", name);
2046 g_free(name);
2047 name = utf(s);
2048 g_free(s);
2049 gtk_label_set_text(GTK_LABEL(label), name);
2050 }
2051 else
2052 gtk_label_set_text(GTK_LABEL(label), "");
2053 g_free(name);
2054 }
2055 else
2056 gtk_label_set_text(GTK_LABEL(label), "");
2057 label = lookup_widget(window_message, "label_counter");
2058 s = g_strdup_printf("%d", num);
2059 gtk_label_set_text(GTK_LABEL(label), s);
2060 g_free(s);
2061 window_message_update_count();
2062 m->read = TRUE;
2063 label = lookup_widget(window_message, "label_ifhasstamp");
2064 gtk_label_set_text(GTK_LABEL(label), "");
2065 label = lookup_widget(window_message, "label_stamp");
2066 gtk_label_set_text(GTK_LABEL(label), "");
2067 if(m->stamp)
2068 {
2069 s = utf("Data wys�ania: ");
2070 label = lookup_widget(window_message, "label_ifhasstamp");
2071 gtk_label_set_text(GTK_LABEL(label), s);
2072 g_free(s);
2073 label = lookup_widget(window_message, "label_stamp");
2074 gtk_label_set_text(GTK_LABEL(label), m->stamp);
2075 }
2076 button = lookup_widget(window_message, "button_message_prev");
2077 if(message_prev(num))
2078 gtk_widget_set_sensitive(button, TRUE);
2079 else
2080 gtk_widget_set_sensitive(button, FALSE);
2081 button = lookup_widget(window_message, "button_message_next");
2082 if(message_next(num))
2083 gtk_widget_set_sensitive(button, TRUE);
2084 else
2085 gtk_widget_set_sensitive(button, FALSE);
2086 textview = lookup_widget(window_message, "textview");
2087 s = utf(m->message);
2088 textview_clear(textview);
2089 textview_append(textview, s, 0, NULL, NULL);
2090 g_free(s);
2091 }
2092
my_create_window_message()2093 void my_create_window_message()
2094 {
2095 window_message = create_window_message();
2096 window_message_update(1);
2097 gtk_widget_show(window_message);
2098 }
2099
message_send(gchar * id,gchar * message)2100 void message_send(gchar *id, gchar *message)
2101 {
2102 GtkWidget *window, *entry, *textview;
2103 GtkTextBuffer *buffer;
2104 GtkTextIter start;
2105 gchar *s;
2106
2107 window = create_window_message_send();
2108 if(id)
2109 {
2110 entry = lookup_widget(window,"entry_id");
2111 gtk_entry_set_text(GTK_ENTRY(entry), id);
2112 }
2113 textview = lookup_widget(window, "textview");
2114 if(message)
2115 {
2116 s = utf("\n\n\n---- Twoja wiadomo�� ----\n");
2117 textview_append(textview, s, 0, NULL, NULL);
2118 g_free(s);
2119 s = utf(message);
2120 textview_append(textview, s, 0, NULL, NULL);
2121 g_free(s);
2122 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
2123 gtk_text_buffer_get_start_iter(buffer, &start);
2124 gtk_text_buffer_place_cursor(buffer, &start);
2125 }
2126 gtk_widget_show(window);
2127
2128 }
2129
window_contact_add_type_changed(GtkWidget * window)2130 void window_contact_add_type_changed(GtkWidget *window)
2131 {
2132 // GtkWidget *widget;
2133 // const gchar *s;
2134
2135 // widget = lookup_widget(window, "combo_entry_type");
2136 // s = gtk_entry_get_text(GTK_ENTRY(widget));
2137 // widget = lookup_widget(window, "label_star2");
2138 // if(!strcmp(s, "Tlen"))
2139 // gtk_label_set_text(GTK_LABEL(widget), "");
2140 // if(!strcmp(s, "Jabber"))
2141 // gtk_label_set_text(GTK_LABEL(widget), "*");
2142
2143 }
2144
contact_add(gchar * jid,gint type)2145 void contact_add(gchar *jid, gint type)
2146 {
2147 GtkWidget *entry, *window;
2148 struct user *u = NULL;
2149 gchar *s;
2150
2151 window = create_window_contact_add();
2152 entry = lookup_widget(window, "entry_id");
2153 if(jid)
2154 {
2155 s = NULL;
2156 if(type == USER_GG)
2157 {
2158 if((s = strchr(jid, '@')))
2159 {
2160 *s = '\0';
2161 }
2162 }
2163 gtk_entry_set_text(GTK_ENTRY(entry), jid);
2164 if(s)
2165 *s = '@';
2166 u = get_user(jid);
2167 }
2168 entry = lookup_widget(window, "combo_entry_type");
2169 switch(type)
2170 {
2171 case USER_TLEN:
2172 break;
2173 case USER_JABBER:
2174 gtk_entry_set_text(GTK_ENTRY(entry), "Jabber");
2175 break;
2176 case USER_WP:
2177 gtk_entry_set_text(GTK_ENTRY(entry), "WPKontakt");
2178 break;
2179 case USER_GG:
2180 gtk_entry_set_text(GTK_ENTRY(entry), "GG");
2181 break;
2182 }
2183 if(u)
2184 {
2185 gtk_window_set_title(GTK_WINDOW(window),"Edycja danych");
2186 if(u->name)
2187 {
2188 entry = lookup_widget(window, "entry_name");
2189 s = utf(u->name);
2190 gtk_entry_set_text(GTK_ENTRY(entry), s);
2191 g_free(s);
2192 }
2193 if(u->group)
2194 {
2195 entry = lookup_widget(window, "entry_group");
2196 s = utf(u->group);
2197 gtk_entry_set_text(GTK_ENTRY(entry), s);
2198 g_free(s);
2199 }
2200 }
2201 gtk_widget_show(window);
2202 }
2203
2204 static
search_window_pixbuf(GtkTreeViewColumn * tree_column,GtkCellRenderer * cell,GtkTreeModel * model,GtkTreeIter * iter,gpointer data)2205 void search_window_pixbuf(GtkTreeViewColumn *tree_column,
2206 GtkCellRenderer *cell,
2207 GtkTreeModel *model,
2208 GtkTreeIter *iter,
2209 gpointer data)
2210 {
2211 guint status;
2212
2213 gtk_tree_model_get (model, iter,
2214 0, &status,
2215 -1);
2216 g_object_set (GTK_CELL_RENDERER (cell),
2217 "pixbuf", gtk_image_get_pixbuf(GTK_IMAGE(icons[status])),
2218 NULL);
2219 }
2220
2221 static
search_window_text(GtkTreeViewColumn * tree_column,GtkCellRenderer * cell,GtkTreeModel * model,GtkTreeIter * iter,gpointer data)2222 void search_window_text (GtkTreeViewColumn *tree_column,
2223 GtkCellRenderer *cell,
2224 GtkTreeModel *model,
2225 GtkTreeIter *iter,
2226 gpointer data)
2227 {
2228 gchar *jid;
2229
2230 gtk_tree_model_get (model, iter,
2231 1, &jid,
2232 -1);
2233 if(get_user(jid))
2234 g_object_set (GTK_CELL_RENDERER (cell),
2235 "font", "bold",
2236 NULL);
2237 else
2238 g_object_set (GTK_CELL_RENDERER (cell),
2239 "font", "normal",
2240 NULL);
2241 g_object_set (GTK_CELL_RENDERER (cell),
2242 "text", jid,
2243 NULL);
2244 }
2245
window_search_close()2246 void window_search_close()
2247 {
2248 pubdir_list_clear();
2249 gtk_widget_destroy(window_search);
2250 window_search = NULL;
2251 }
window_search_check(gchar * id)2252 void window_search_check(gchar *id)
2253 {
2254 GtkWidget *widget;
2255 struct tlen_pubdir *pubdir;
2256 gchar *s = NULL;
2257
2258 if((s = strchr(id, '@')))
2259 *s = '\0';
2260 widget = lookup_widget(window_search,"entry_name");
2261 gtk_entry_set_text(GTK_ENTRY(widget), "");
2262
2263 widget = lookup_widget(window_search,"entry_surname");
2264 gtk_entry_set_text(GTK_ENTRY(widget), "");
2265
2266 widget = lookup_widget(window_search,"entry_nick");
2267 gtk_entry_set_text(GTK_ENTRY(widget), "");
2268
2269 widget = lookup_widget(window_search,"entry_gender");
2270 gtk_entry_set_text(GTK_ENTRY(widget), "");
2271
2272 widget = lookup_widget(window_search,"entry_city");
2273 gtk_entry_set_text(GTK_ENTRY(widget), "");
2274
2275 widget = lookup_widget(window_search,"entry_email");
2276 gtk_entry_set_text(GTK_ENTRY(widget), "");
2277
2278 widget = lookup_widget(window_search,"spinbutton_agefrom");
2279 gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), 0);
2280 widget = lookup_widget(window_search,"spinbutton_ageto");
2281 gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), 0);
2282
2283 widget = lookup_widget(window_search,"entry_status");
2284 gtk_entry_set_text(GTK_ENTRY(widget), "");
2285
2286 widget = lookup_widget(window_search,"entry_look");
2287 gtk_entry_set_text(GTK_ENTRY(widget), "");
2288
2289 widget = lookup_widget(window_search,"entry_school");
2290 gtk_entry_set_text(GTK_ENTRY(widget), "");
2291
2292 widget = lookup_widget(window_search,"entry_job");
2293 gtk_entry_set_text(GTK_ENTRY(widget), "");
2294
2295 widget = lookup_widget(window_search,"entry_voice");
2296 gtk_entry_set_text(GTK_ENTRY(widget), "nie");
2297
2298 widget = lookup_widget(window_search,"entry_plans");
2299 gtk_entry_set_text(GTK_ENTRY(widget), "");
2300
2301 widget = lookup_widget(window_search,"entry_id");
2302 gtk_entry_set_text(GTK_ENTRY(widget), id);
2303 pubdir = tlen_new_pubdir();
2304 pubdir->id = g_strdup(id);
2305
2306 tlen_search(session,pubdir);
2307 tlen_free_pubdir(pubdir);
2308 if(s)
2309 *s = '@';
2310 widget = lookup_widget(window_search,"thobber");
2311 gtk_widget_show(widget);
2312 }
2313
my_create_window_search()2314 void my_create_window_search()
2315 {
2316 GtkTreeView *treeview;
2317 GtkCellRenderer *renderer;
2318 GtkTreeViewColumn *column;
2319 gchar *s;
2320 gint i;
2321 GtkWidget *image;
2322
2323 window_search = create_window_search();
2324 treeview = (GtkTreeView*) lookup_widget(window_search, "treeview");
2325
2326 renderer = gtk_cell_renderer_pixbuf_new();
2327 column = gtk_tree_view_column_new();
2328 gtk_tree_view_column_set_title(column,"ID");
2329 gtk_tree_view_column_pack_start(column, renderer, FALSE);
2330 gtk_tree_view_column_set_cell_data_func (column, renderer,
2331 search_window_pixbuf, NULL, NULL);
2332
2333 renderer = gtk_cell_renderer_text_new ();
2334 gtk_tree_view_column_pack_start(column, renderer, FALSE);
2335 gtk_tree_view_column_set_cell_data_func (column, renderer,
2336 search_window_text, NULL, NULL);
2337 gtk_tree_view_append_column (treeview, column);
2338
2339 for(i = SEARCH_TC_AGE; i < SEARCH_TC_COLUMNS; i++)
2340 {
2341 renderer = gtk_cell_renderer_text_new ();
2342 s = utf(search_tc_columns[i]);
2343 g_object_set_data (G_OBJECT (renderer), "column", (gint *)i);
2344 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
2345 -1, s, renderer,
2346 "text", i,
2347 NULL);
2348 g_free(s);
2349 }
2350
2351 image = lookup_widget(window_search,"thobber");
2352 gtk_widget_hide(image);
2353 search_update();
2354 gtk_widget_show(window_search);
2355 }
2356
my_create_window_chat(const gchar * jid)2357 void my_create_window_chat(const gchar *jid)
2358 {
2359 GtkWidget *window, *widget;
2360 struct talk *talk;
2361 struct user *user;
2362 gchar *status=NULL, *name, *s;
2363 GtkTextBuffer *buffer;
2364
2365 name = get_user_name(jid);
2366 window = create_window_chat();
2367 talk = (struct talk*) g_malloc(sizeof(struct talk));
2368 talk->jid = g_strdup(jid);
2369 talk->window = window;
2370 talks_list = g_list_append(talks_list,(gpointer)talk);
2371 widget=lookup_widget(window,"textview_bottom");
2372 // gtk_signal_connect (GTK_OBJECT (widget), "key_press_event",
2373 // GTK_SIGNAL_FUNC (on_textview_chat_bottom_key_press_event),
2374 // (gpointer)window);
2375 user = get_user(jid);
2376 if(user)
2377 {
2378 switch(user->type)
2379 {
2380 case USER_TLEN:
2381 status = statusy[user->status - 2];
2382 break;
2383 case USER_JABBER:
2384 case USER_WP:
2385 case USER_AGENT:
2386 case USER_GG:
2387 status = j_statusy[get_status(user)];
2388 break;
2389 }
2390 window_set_icon(window, user);
2391 }
2392 else
2393 {
2394 status = statusy[TLEN_STATUS_UNAVAILABLE - 2];
2395 window_set_icon(window, NULL);
2396 }
2397 widget = lookup_widget(window,"label_name");
2398 s = utf(name);
2399 gtk_label_set_text(GTK_LABEL(widget), s);
2400 g_free(s);
2401 widget = lookup_widget(window,"label_status");
2402 s = utf(status);
2403 gtk_label_set_text(GTK_LABEL(widget), s);
2404 g_free(s);
2405 g_free(name);
2406 widget=lookup_widget(window,"textview_top");
2407 buffer= gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
2408 gtk_text_buffer_create_tag (buffer, "fontbold","font",
2409 "bold", NULL);
2410 gtk_text_buffer_create_tag (buffer, "datefg","foreground",
2411 datefg, NULL);
2412 gtk_text_buffer_create_tag (buffer, "nickfg","foreground",
2413 nickfg, NULL);
2414 gtk_text_buffer_create_tag (buffer, "textfg",
2415 "foreground", textfg,
2416 NULL);
2417 gtk_text_buffer_create_tag (buffer, "textbg",
2418 "background", textbg,
2419 "foreground", textfg,
2420 // "background-full-height", TRUE,
2421 // "background-full-height-set", TRUE,
2422 // "font", "bold",
2423 NULL);
2424 widget=lookup_widget(window,"togglebutton_chat");
2425 if(preferences & PREF_ENTERON)
2426 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),TRUE);
2427 gtk_widget_show(window);
2428 }
2429
my_create_window_login()2430 void my_create_window_login()
2431 {
2432 window_login = create_window_login();
2433 load_profiles();
2434 load_combo();
2435 gtk_widget_show(window_login);
2436 }
2437
2438 static
add_columns(GtkTreeView * treeview)2439 void add_columns(GtkTreeView *treeview)
2440 {
2441 GtkCellRenderer *text;
2442 GtkTreeViewColumn *column;
2443
2444 text = gtk_cell_renderer_text_new();
2445 column = gtk_tree_view_column_new_with_attributes (NULL, text,
2446 "text",0,
2447 NULL);
2448 gtk_tree_view_append_column(treeview, column);
2449 }
2450
window_profiles_create_model()2451 GtkTreeModel *window_profiles_create_model()
2452 {
2453 GtkTreeStore *model;
2454 GtkTreeIter iter;
2455 GList *l = profiles_list;
2456 struct profile *p;
2457 gchar *s;
2458
2459 model = gtk_tree_store_new(1, G_TYPE_STRING);
2460 for(;l;l=l->next)
2461 {
2462 p = (struct profile*) l->data;
2463 gtk_tree_store_append(model, &iter, NULL);
2464 s = utf(p->pname);
2465 gtk_tree_store_set(model, &iter,
2466 0, s,
2467 -1);
2468 g_free(s);
2469 }
2470 return GTK_TREE_MODEL(model);
2471 }
2472
my_create_window_profiles()2473 void my_create_window_profiles()
2474 {
2475 GtkWidget *treeview;
2476 GtkTreeModel *model;
2477
2478 window_profiles = create_window_profiles();
2479 treeview = lookup_widget(window_profiles,"treeview");
2480 add_columns(GTK_TREE_VIEW(treeview));
2481 model = window_profiles_create_model();
2482 gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), model);
2483 g_object_unref (G_OBJECT (model));
2484 }
2485
window_profile_read_gg()2486 void window_profile_read_gg()
2487 {
2488 gchar *s;
2489 GtkWidget *entry;
2490
2491 entry = lookup_widget(window_profile, "entry_gg_number");
2492 s = gg_read_conf(GG_CONF_NUMBER);
2493 if(s)
2494 {
2495 gtk_entry_set_text(GTK_ENTRY(entry), s);
2496 g_free(s);
2497 }
2498 entry = lookup_widget(window_profile, "entry_gg_password");
2499 s = gg_read_conf(GG_CONF_PASSWORD);
2500 if(s)
2501 {
2502 gtk_entry_set_text(GTK_ENTRY(entry), s);
2503 g_free(s);
2504 }
2505 }
2506
my_create_window_profile(gchar * pname)2507 void my_create_window_profile(gchar *pname)
2508 {
2509 GtkWidget *entry;
2510 gchar *s;
2511 struct profile *p;
2512
2513 window_profile = create_window_profile();
2514 if(pname)
2515 {
2516 entry = lookup_widget(window_profile,"entry_name");
2517 s = utf(pname);
2518 gtk_entry_set_text(GTK_ENTRY(entry),s);
2519 g_free(s);
2520 p = get_profile(pname);
2521 if(p)
2522 {
2523 entry = lookup_widget(window_profile,"entry_tlen_login");
2524 gtk_entry_set_text(GTK_ENTRY(entry),p->login);
2525 entry = lookup_widget(window_profile,"entry_tlen_password");
2526 gtk_entry_set_text(GTK_ENTRY(entry),p->password);
2527 if(p->smsid)
2528 {
2529 entry = lookup_widget(window_profile,"entry_sms_id");
2530 gtk_entry_set_text(GTK_ENTRY(entry),p->smsid);
2531 }
2532 if(p->smspassword)
2533 {
2534 entry = lookup_widget(window_profile,"entry_sms_password");
2535 gtk_entry_set_text(GTK_ENTRY(entry),p->smspassword);
2536 }
2537 if(p->ggnumber)
2538 {
2539 entry = lookup_widget(window_profile,"entry_gg_number");
2540 gtk_entry_set_text(GTK_ENTRY(entry),p->ggnumber);
2541 }
2542 if(p->ggpassword)
2543 {
2544 entry = lookup_widget(window_profile,"entry_gg_password");
2545 gtk_entry_set_text(GTK_ENTRY(entry),p->ggpassword);
2546 }
2547 if(p->jserver)
2548 {
2549 entry = lookup_widget(window_profile,"entry_jabber_server");
2550 gtk_entry_set_text(GTK_ENTRY(entry),p->jserver);
2551 }
2552 if(p->jlogin)
2553 {
2554 entry = lookup_widget(window_profile,"entry_jabber_jid");
2555 gtk_entry_set_text(GTK_ENTRY(entry),p->jlogin);
2556 }
2557 if(p->jpassword)
2558 {
2559 entry = lookup_widget(window_profile,"entry_jabber_password");
2560 gtk_entry_set_text(GTK_ENTRY(entry),p->jpassword);
2561 }
2562 if(p->jresource)
2563 {
2564 entry = lookup_widget(window_profile,"entry_jabber_resource");
2565 gtk_entry_set_text(GTK_ENTRY(entry),p->jresource);
2566 }
2567 }
2568 }
2569 }
2570
my_create_window_about()2571 void my_create_window_about()
2572 {
2573 GtkWidget *window, *label;
2574
2575 window = create_window_about();
2576 label = lookup_widget(window, "label");
2577 gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);
2578 gtk_widget_show(window);
2579 }
2580