Yattm - unified GTK instant-messaging client | |
[Generated for version 0.2-17 - Mon Jan 6 19:01:23 GMT+1 2003] |
#include <string.h>
#include "globals.h"
#include "intl.h"
#include "gtk_eb_html.h"
#include "util.h"
#include "sound.h"
#include "dialog.h"
#include "smileys.h"
#include "pixmaps/tb_mail_send.xpm"
#include "pixmaps/cancel.xpm"
#include "pixmaps/ok.xpm"
#include "pixmaps/tb_volume.xpm"
Include dependency graph for chat_room.c:
Go to the source code of this file.
Functions | |
GList * | get_contacts (eb_chat_room *room) |
void | send_message (GtkWidget *widget, gpointer data) |
void | set_sound_on_toggle (GtkWidget *sound_button, gpointer userdata) |
GList * | chat_service_list () |
void | invite_callback (GtkWidget *widget, gpointer data) |
void | destroy_invite (GtkWidget *widget, gpointer data) |
void | do_invite_window (eb_chat_room *room) |
void | join_chat_callback (GtkWidget *widget, gpointer data) |
void | join_chat_destroy (GtkWidget *widget, gpointer data) |
void | open_join_chat_window () |
void | destroy (GtkWidget *widget, gpointer data) |
GList * | find_chat_room_buddy (eb_chat_room *room, gchar *user) |
void | eb_chat_room_refresh_list (eb_chat_room *room) |
gboolean | eb_chat_room_buddy_connected (eb_chat_room *room, gchar *user) |
void | eb_chat_room_buddy_arrive (eb_chat_room *room, gchar *alias, gchar *handle) |
void | eb_chat_room_buddy_leave (eb_chat_room *room, gchar *handle) |
void | eb_start_chat_room (gint service, gchar *name) |
void | eb_chat_room_show_3rdperson (eb_chat_room *chat_room, gchar *message) |
void | eb_chat_room_show_message (eb_chat_room *chat_room, gchar *user, gchar *message) |
void | invite_button_callback (GtkWidget *widget, gpointer data) |
void | destroy_chat_window (GtkWidget *widget, gpointer data) |
void | eb_join_chat_room (eb_chat_room *chat_room) |
GList * | get_group_contacts (gchar *group, eb_chat_room *room) |
Variables | |
GList * | chat_rooms = NULL |
gboolean | join_service_is_open = 0 |
GtkWidget * | chat_room_name |
GtkWidget * | chat_room_type |
GtkWidget * | join_chat_window |
|
Definition at line 46 of file chat_room.c. Referenced by open_join_chat_window().
00047 { 00048 GList * list = NULL; 00049 int i; 00050 for(i = 0; i < NUM_SERVICES; i++ ) 00051 { 00052 if(eb_services[i].group_chat) 00053 { 00054 list = g_list_append(list, eb_services[i].name); 00055 } 00056 } 00057 return list; 00058 } |
|
Definition at line 328 of file chat_room.c. References chat_rooms, and RUN_SERVICE. Referenced by eb_join_chat_room().
00329 { 00330 eb_chat_room * ecr = data; 00331 RUN_SERVICE(ecr->chat_room_account)->leave_chat_room(ecr); 00332 chat_rooms = g_list_remove(chat_rooms, data); 00333 g_free(ecr); 00334 } |
|
Definition at line 482 of file chat_room.c. Referenced by eb_join_chat_room().
00483 { 00484 eb_chat_room * ecr = data; 00485 gtk_widget_destroy(ecr->window); 00486 } |
|
Definition at line 71 of file chat_room.c. Referenced by do_invite_window().
00072 { 00073 eb_chat_room * ecr = data; 00074 ecr->invite_window_is_open = 0; 00075 } |
|
Definition at line 77 of file chat_room.c. References _, destroy_invite(), get_contacts(), and invite_callback(). Referenced by invite_button_callback().
00078 { 00079 GtkWidget * box; 00080 GtkWidget * box2; 00081 GtkWidget * label; 00082 GList * list; 00083 00084 if( !room || room->invite_window_is_open ) 00085 { 00086 return; 00087 } 00088 00089 room->invite_window = gtk_window_new(GTK_WINDOW_DIALOG); 00090 gtk_window_set_position(GTK_WINDOW(room->invite_window), GTK_WIN_POS_MOUSE); 00091 box = gtk_vbox_new(FALSE, 3); 00092 box2 = gtk_hbox_new(FALSE, 3); 00093 00094 label = gtk_label_new(_("Handle:")); 00095 gtk_container_add(GTK_CONTAINER(box2), label); 00096 gtk_widget_show(label); 00097 00098 room->invite_buddy = gtk_combo_new(); 00099 list = get_contacts(room); 00100 gtk_combo_set_popdown_strings(GTK_COMBO(room->invite_buddy), list); 00101 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(room->invite_buddy)->entry), ""); 00102 gtk_container_add(GTK_CONTAINER(box2), room->invite_buddy); 00103 gtk_widget_show(room->invite_buddy); 00104 00105 gtk_container_add(GTK_CONTAINER(box), box2); 00106 gtk_widget_show(box2); 00107 00108 box2 = gtk_hbox_new(FALSE,3); 00109 label = gtk_label_new(_("Message:")); 00110 gtk_container_add(GTK_CONTAINER(box2), label); 00111 gtk_widget_show(label); 00112 00113 room->invite_message = gtk_entry_new(); 00114 gtk_container_add(GTK_CONTAINER(box2), room->invite_message ); 00115 gtk_widget_show(room->invite_message ); 00116 00117 gtk_container_add(GTK_CONTAINER(box), box2); 00118 gtk_widget_show(box2); 00119 00120 label = gtk_button_new_with_label(_("Invite")); 00121 gtk_container_add(GTK_CONTAINER(box), label); 00122 gtk_widget_show(label); 00123 00124 00125 gtk_signal_connect(GTK_OBJECT(label), "clicked", invite_callback, room); 00126 00127 gtk_container_add(GTK_CONTAINER(room->invite_window), box); 00128 gtk_widget_show(box); 00129 00130 gtk_widget_show(room->invite_window); 00131 00132 00133 gtk_signal_connect( GTK_OBJECT(room->invite_window), "destroy", 00134 GTK_SIGNAL_FUNC(destroy_invite), room); 00135 00136 } |
|
Definition at line 368 of file chat_room.c. References _, eb_chat_room_refresh_list(), and eb_chat_room_show_3rdperson().
00369 { 00370 eb_chat_room_buddy * ecrb = g_new0(eb_chat_room_buddy, 1 ); 00371 00372 gchar buff[2048]; 00373 g_snprintf(buff, 2048, _("<i>%s has joined the chat</i>"), handle); 00374 eb_chat_room_show_3rdperson(room, buff); 00375 00376 00377 strcpy( ecrb->alias, alias); 00378 strcpy( ecrb->handle, handle ); 00379 00380 room->fellows = g_list_append(room->fellows, ecrb); 00381 00382 eb_chat_room_refresh_list(room); 00383 } |
|
Definition at line 363 of file chat_room.c. References find_chat_room_buddy().
00364 { 00365 return find_chat_room_buddy(room, user) != NULL; 00366 } |
|
Definition at line 385 of file chat_room.c. References _, eb_chat_room_refresh_list(), eb_chat_room_show_3rdperson(), and find_chat_room_buddy().
00386 { 00387 GList * node = find_chat_room_buddy(room, handle); 00388 00389 gchar buff[2048]; 00390 g_snprintf(buff, 2048, _("<i>%s has left the chat</i>"), handle); 00391 eb_chat_room_show_3rdperson(room, buff); 00392 00393 if(node) 00394 { 00395 eb_chat_room_buddy * ecrb = node->data; 00396 room->fellows = g_list_remove_link(room->fellows, node); 00397 g_free(ecrb); 00398 } 00399 eb_chat_room_refresh_list(room); 00400 } |
|
Definition at line 350 of file chat_room.c. Referenced by eb_chat_room_buddy_arrive(), and eb_chat_room_buddy_leave().
00351 {
00352 GList * node;
00353 gtk_clist_clear(GTK_CLIST(room->online));
00354
00355 for( node = room->fellows; node; node = node->next )
00356 {
00357 eb_chat_room_buddy * ecrb = node->data;
00358 gchar * list[1] = {ecrb->alias};
00359 gtk_clist_append(GTK_CLIST(room->online), list);
00360 }
00361 }
|
|
Definition at line 424 of file chat_room.c. References EXT_GTK_TEXT, and gtk_eb_html_add(). Referenced by eb_chat_room_buddy_arrive(), and eb_chat_room_buddy_leave().
00425 { 00426 gtk_eb_html_add(EXT_GTK_TEXT(chat_room->conversation), message,0,0,0 ); 00427 gtk_eb_html_add(EXT_GTK_TEXT(chat_room->conversation), "\n",0,0,0 ); 00428 } |
|
Definition at line 430 of file chat_room.c. References eb_smilify(), EXT_GTK_TEXT, FIRSTMSG, gtk_eb_html_add(), linkify(), play_sound(), RECEIVE, and RUN_SERVICE.
00432 { 00433 gchar buff[2048]; 00434 gchar *temp_message, *link_message; 00435 if(!strcmp(chat_room->chat_room_account->handle, user)) 00436 { 00437 g_snprintf(buff, 2048, "<FONT COLOR=\"#0000FF\"><B>%s: </B></FONT>", 00438 chat_room->chat_room_account->alias); 00439 } 00440 else 00441 { 00442 00443 g_snprintf(buff, 2048, "<FONT COLOR=\"#FF0000\"><B>%s: </B></FONT>", 00444 user); 00445 } 00446 temp_message = eb_smilify(g_strdup(message), RUN_SERVICE(chat_room->chat_room_account)->get_smileys()); 00447 link_message = linkify(temp_message); 00448 00449 gtk_eb_html_add(EXT_GTK_TEXT(chat_room->conversation), buff,0,0,0 ); 00450 gtk_eb_html_add(EXT_GTK_TEXT(chat_room->conversation), link_message,do_ignore_back,do_ignore_fore,do_ignore_font ); 00451 gtk_eb_html_add(EXT_GTK_TEXT(chat_room->conversation), "\n",0,0,0 ); 00452 00453 g_free(temp_message); 00454 00455 if(chat_room->sound_enabled 00456 && strcmp(chat_room->chat_room_account->handle, user)) 00457 { 00458 if (chat_room->first_message) 00459 { 00460 if (chat_room->first_enabled) 00461 { 00462 play_sound(FIRSTMSG); 00463 chat_room->first_message = FALSE; 00464 } 00465 else 00466 { 00467 play_sound(RECEIVE); 00468 chat_room->first_message = FALSE; 00469 } 00470 } 00471 else if (chat_room->receive_enabled) 00472 play_sound(RECEIVE); 00473 } 00474 00475 } |
|
Definition at line 488 of file chat_room.c. References _, destroy(), destroy_chat_window(), eb_icon(), EXT_GTK_TEXT, ext_gtk_text_new(), gtk_eb_html_init(), invite_button_callback(), RUN_SERVICE, send_message(), and set_sound_on_toggle().
00489 { 00490 GtkWidget * vbox; 00491 GtkWidget * vbox2; 00492 GtkWidget * hbox; 00493 GtkWidget * hbox2; 00494 GtkWidget * label; 00495 GtkWidget * scrollwindow = gtk_scrolled_window_new(NULL, NULL); 00496 GtkWidget * toolbar; 00497 GdkPixmap * icon; 00498 GdkBitmap * mask; 00499 GtkWidget * iconwid; 00500 GtkWidget * send_button; 00501 GtkWidget * sound_button; 00502 GtkWidget * close_button; 00503 GtkWidget * separator; 00504 00505 /*if we are already here, just leave*/ 00506 if(chat_room->connected) 00507 return; 00508 00509 /*otherwise we are going to make ourselves a gui right here*/ 00510 00511 vbox = gtk_vbox_new(FALSE, 1); 00512 hbox = gtk_hpaned_new(); 00513 00514 gtk_paned_set_gutter_size(GTK_PANED(hbox), 20); 00515 00516 chat_room->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 00517 chat_room->online = gtk_clist_new(1); 00518 gtk_clist_set_column_title(GTK_CLIST(chat_room->online), 0, _("Online")); 00519 gtk_widget_set_usize(chat_room->online, 100, 20 ); 00520 chat_room->conversation = ext_gtk_text_new(NULL, NULL); 00521 gtk_widget_set_usize(chat_room->conversation, 400, 200); 00522 gtk_eb_html_init(EXT_GTK_TEXT(chat_room->conversation)); 00523 gtk_container_add(GTK_CONTAINER(scrollwindow), chat_room->conversation); 00524 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwindow), 00525 GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); 00526 00527 /*make ourselves something to type into*/ 00528 chat_room->entry = gtk_entry_new(); 00529 00530 gtk_signal_connect(GTK_OBJECT(chat_room->entry), "activate", 00531 GTK_SIGNAL_FUNC(send_message), chat_room ); 00532 00533 00534 /* 00535 gtk_box_pack_start(GTK_BOX(hbox), scrollwindow, TRUE, TRUE, 3); 00536 gtk_box_pack_start(GTK_BOX(hbox), chat_room->online, FALSE, FALSE, 3); 00537 */ 00538 gtk_paned_add1(GTK_PANED(hbox), scrollwindow); 00539 gtk_widget_show(scrollwindow); 00540 00541 vbox2 = gtk_vbox_new(FALSE, 5); 00542 00543 scrollwindow = gtk_scrolled_window_new(NULL, NULL); 00544 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwindow), 00545 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); 00546 00547 gtk_container_add(GTK_CONTAINER(scrollwindow), chat_room->online ); 00548 gtk_widget_show(chat_room->online); 00549 00550 00551 gtk_box_pack_start(GTK_BOX(vbox2), scrollwindow, TRUE, TRUE, 3 ); 00552 gtk_widget_show(scrollwindow); 00553 00554 label = gtk_button_new_with_label(_("Invite User")); 00555 gtk_signal_connect(GTK_OBJECT(label), "clicked", invite_button_callback, 00556 chat_room); 00557 00558 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 3); 00559 gtk_widget_show(label); 00560 00561 gtk_paned_add2(GTK_PANED(hbox), vbox2); 00562 gtk_widget_show(vbox2); 00563 00564 00565 gtk_paned_add2(GTK_PANED(hbox), chat_room->online); 00566 gtk_widget_show(chat_room->conversation); 00567 00568 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwindow),GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); 00569 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE,TRUE, 3); 00570 gtk_box_pack_start(GTK_BOX(vbox), chat_room->entry, FALSE, FALSE, 1); 00571 gtk_widget_show(hbox); 00572 gtk_widget_show(chat_room->entry); 00573 00574 gtk_widget_realize(chat_room->window); 00575 gtk_window_set_title(GTK_WINDOW(chat_room->window), chat_room->room_name); 00576 eb_icon(chat_room->window->window); 00577 gtk_signal_connect(GTK_OBJECT(chat_room->window), "destroy", 00578 GTK_SIGNAL_FUNC(destroy), chat_room ); 00579 00580 00581 /* start a toolbar here */ 00582 00583 hbox2 = gtk_hbox_new(FALSE, 0); 00584 gtk_widget_set_usize(hbox2, 200, 25); 00585 00586 toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); 00587 gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolbar), GTK_RELIEF_NONE); 00588 gtk_container_set_border_width(GTK_CONTAINER(toolbar), 0); 00589 gtk_toolbar_set_space_size(GTK_TOOLBAR(toolbar), 5); 00590 00591 icon = gdk_pixmap_create_from_xpm_d(chat_room->window->window, &mask, NULL, tb_volume_xpm); 00592 iconwid = gtk_pixmap_new(icon, mask); 00593 gtk_widget_show(iconwid); 00594 00595 sound_button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), 00596 GTK_TOOLBAR_CHILD_TOGGLEBUTTON, 00597 NULL, 00598 _("Sound"), 00599 _("Enable Sounds CTRL+S"), 00600 _("Sound"), 00601 iconwid, 00602 GTK_SIGNAL_FUNC(set_sound_on_toggle), 00603 chat_room); 00604 /*Toggle the sound button based on preferences*/ 00605 00606 if (do_play_send) 00607 chat_room->send_enabled=TRUE; 00608 00609 if (do_play_receive) 00610 chat_room->receive_enabled = TRUE; 00611 00612 if (do_play_first) 00613 chat_room->first_enabled = TRUE; 00614 00615 if (do_play_send + do_play_receive + do_play_first > 0) 00616 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(sound_button), TRUE); 00617 else 00618 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(sound_button), FALSE); 00619 00620 icon = gdk_pixmap_create_from_xpm_d(chat_room->window->window, &mask, NULL, tb_mail_send_xpm); 00621 iconwid = gtk_pixmap_new(icon, mask); 00622 gtk_widget_show(iconwid); 00623 00624 gtk_toolbar_append_space(GTK_TOOLBAR(toolbar)); 00625 separator = gtk_vseparator_new(); 00626 gtk_widget_set_usize(GTK_WIDGET(separator), 0, 20); 00627 gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), separator, NULL, NULL); 00628 gtk_widget_show(separator); 00629 gtk_toolbar_append_space(GTK_TOOLBAR(toolbar)); 00630 00631 00632 00633 send_button = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), 00634 "send", 00635 _("Send Message"), 00636 "send", 00637 iconwid, 00638 GTK_SIGNAL_FUNC(send_message), 00639 chat_room); 00640 00641 icon = gdk_pixmap_create_from_xpm_d(chat_room->window->window, &mask, NULL, cancel_xpm); 00642 iconwid = gtk_pixmap_new(icon, mask); 00643 gtk_widget_show(iconwid); 00644 00645 close_button = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), 00646 "close", 00647 _("Close"), 00648 "close", 00649 iconwid, 00650 GTK_SIGNAL_FUNC(destroy_chat_window), 00651 chat_room); 00652 00653 gtk_box_pack_end(GTK_BOX(hbox2), toolbar, FALSE, FALSE, 0); 00654 gtk_widget_show(toolbar); 00655 00656 gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 5); 00657 gtk_widget_show(hbox2); 00658 00659 gtk_container_add(GTK_CONTAINER(chat_room->window), vbox); 00660 gtk_widget_show(vbox); 00661 00662 gtk_container_set_border_width(GTK_CONTAINER(chat_room->window), 5); 00663 00664 gtk_widget_show(chat_room->window); 00665 00666 /*then mark the fact that we have joined that room*/ 00667 chat_room->connected = 1; 00668 00669 /* actually call the callback :P .... */ 00670 RUN_SERVICE(chat_room->chat_room_account)->join_chat_room(chat_room); 00671 00672 } |
|
Definition at line 404 of file chat_room.c. References chat_rooms, find_suitable_local_account(), and RUN_SERVICE. Referenced by join_chat_callback().
00405 { 00406 eb_local_account * ela = find_suitable_local_account(NULL, service); 00407 eb_chat_room * ecb = NULL; 00408 00409 /* if we don't have a working account just bail right now */ 00410 00411 if( !ela ) 00412 return; 00413 00414 ecb = RUN_SERVICE(ela)->make_chat_room(name, ela); 00415 ecb->service_id = service; 00416 00417 if( ecb ) 00418 { 00419 chat_rooms = g_list_append(chat_rooms, ecb); 00420 } 00421 } |
|
Definition at line 336 of file chat_room.c. Referenced by eb_chat_room_buddy_connected(), and eb_chat_room_buddy_leave().
00337 { 00338 GList * node; 00339 for( node = room->fellows; node; node = node->next) 00340 { 00341 eb_chat_room_buddy * ecrb = node->data; 00342 if( !strcmp(user, ecrb->handle) ) 00343 { 00344 return node; 00345 } 00346 } 00347 return NULL; 00348 } |
|
Definition at line 701 of file chat_room.c. References get_group_contacts().
00702 { 00703 GList *node = groups; 00704 GList *newlist = NULL; 00705 while(node) 00706 { 00707 GList * g = get_group_contacts(node->data, room); 00708 newlist = g_list_concat(newlist, g); 00709 node = node->next; 00710 } 00711 return newlist; 00712 } |
|
Definition at line 674 of file chat_room.c. References contact::accounts, find_grouplist_by_name(), _grouplist::members, and account::service_id. Referenced by get_contacts().
00675 { 00676 GList *node = NULL, *newlist = NULL, *accounts = NULL; 00677 grouplist *g; 00678 00679 g = find_grouplist_by_name(group); 00680 00681 if(g) 00682 node = g->members; 00683 00684 while(node) 00685 { 00686 struct contact * contact = (struct contact *)node->data; 00687 accounts = contact->accounts; 00688 while (accounts) { 00689 if( ((struct account *)accounts->data)->service_id == room->service_id 00690 && ((struct account *)accounts->data)->online) { 00691 newlist = g_list_append(newlist, ((struct account *)accounts->data)->handle); 00692 } 00693 accounts = accounts->next; 00694 } 00695 node = node->next; 00696 } 00697 00698 return newlist; 00699 } |
|
Definition at line 477 of file chat_room.c. References do_invite_window(). Referenced by eb_join_chat_room().
00478 { 00479 do_invite_window(data); 00480 } |
|
Definition at line 60 of file chat_room.c. References RUN_SERVICE. Referenced by do_invite_window().
00061 { 00062 eb_chat_room * ecr = data; 00063 RUN_SERVICE(ecr->chat_room_account)->send_invite( 00064 ecr->chat_room_account, ecr, 00065 gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ecr->invite_buddy)->entry)), 00066 gtk_entry_get_text(GTK_ENTRY(ecr->invite_message))); 00067 00068 gtk_widget_destroy(ecr->invite_window); 00069 } |
|
Definition at line 146 of file chat_room.c. References chat_room_name, chat_room_type, eb_start_chat_room(), get_service_id(), and join_chat_window. Referenced by open_join_chat_window().
00147 { 00148 int id = get_service_id(gtk_entry_get_text( 00149 GTK_ENTRY(GTK_COMBO(chat_room_type)->entry))); 00150 00151 00152 eb_start_chat_room(id, gtk_entry_get_text(GTK_ENTRY(chat_room_name))); 00153 gtk_widget_destroy(join_chat_window); 00154 } |
|
Definition at line 156 of file chat_room.c. References join_service_is_open. Referenced by open_join_chat_window().
00157 { 00158 join_service_is_open = 0; 00159 } |
|
Definition at line 166 of file chat_room.c. References _, chat_room_name, chat_room_type, chat_service_list(), join_chat_callback(), join_chat_destroy(), join_chat_window, and join_service_is_open. Referenced by launch_group_chat().
00167 { 00168 GtkWidget * label; 00169 GtkWidget * frame; 00170 GtkWidget * table; 00171 GtkWidget * vbox; 00172 GtkWidget * hbox; 00173 GtkWidget * hbox2; 00174 GtkWidget * button; 00175 GtkWidget * iconwid; 00176 GtkWidget * separator; 00177 GdkPixmap * icon; 00178 GdkBitmap * mask; 00179 GList * list; 00180 00181 if(join_service_is_open) 00182 { 00183 return; 00184 } 00185 join_service_is_open = 1; 00186 00187 join_chat_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 00188 00189 gtk_widget_realize(join_chat_window); 00190 00191 vbox = gtk_vbox_new(FALSE, 5); 00192 00193 gtk_container_add(GTK_CONTAINER(join_chat_window), vbox); 00194 00195 table = gtk_table_new(2, 2, FALSE); 00196 00197 label = gtk_label_new(_("Chat Room Name:")); 00198 gtk_table_attach_defaults (GTK_TABLE(table), label, 0, 1, 0, 1); 00199 gtk_widget_show(label); 00200 00201 chat_room_name = gtk_entry_new(); 00202 gtk_table_attach_defaults (GTK_TABLE(table), chat_room_name, 1, 2, 0, 1); 00203 gtk_widget_show(chat_room_name); 00204 00205 label = gtk_label_new(_("Service Type:")); 00206 gtk_table_attach_defaults (GTK_TABLE(table), label, 0, 1, 1, 2); 00207 gtk_widget_show(label); 00208 00209 chat_room_type = gtk_combo_new(); 00210 list = chat_service_list(); 00211 gtk_combo_set_popdown_strings(GTK_COMBO(chat_room_type), list); 00212 g_list_free(list); 00213 gtk_table_attach_defaults (GTK_TABLE(table), chat_room_type, 1, 2, 1, 2); 00214 gtk_widget_show(chat_room_type); 00215 00216 /* set up a frame (hopefully) */ 00217 00218 frame = gtk_frame_new(NULL); 00219 gtk_frame_set_label(GTK_FRAME(frame), _("Join a Chat Room")); 00220 00221 gtk_container_add(GTK_CONTAINER(frame), table); 00222 gtk_widget_show(table); 00223 00224 gtk_table_set_row_spacings (GTK_TABLE(table), 5); 00225 gtk_table_set_col_spacings (GTK_TABLE(table), 5); 00226 00227 /* This is a test to see if I can make some padding action happen */ 00228 00229 gtk_container_set_border_width(GTK_CONTAINER(join_chat_window), 5); 00230 gtk_container_set_border_width(GTK_CONTAINER(table), 5); 00231 00232 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5); 00233 00234 /* Window resize BAD, Same size GOOD */ 00235 00236 gtk_window_set_policy (GTK_WINDOW(join_chat_window), FALSE, FALSE, TRUE); 00237 00238 /* Show the frame and window */ 00239 00240 gtk_widget_show(frame); 00241 00242 /* add in that nice separator */ 00243 00244 separator = gtk_hseparator_new(); 00245 gtk_box_pack_start(GTK_BOX(vbox), separator, FALSE, FALSE, 5); 00246 gtk_widget_show(separator); 00247 00248 /* Add in the pretty buttons with pixmaps on them */ 00249 00250 hbox = gtk_hbox_new(FALSE, 5); 00251 hbox2 = gtk_hbox_new(TRUE, 5); 00252 00253 gtk_widget_set_usize(hbox2, 200, 25); 00254 00255 /* stuff for the join button */ 00256 00257 icon = gdk_pixmap_create_from_xpm_d(join_chat_window->window, &mask, NULL, ok_xpm); 00258 iconwid = gtk_pixmap_new(icon, mask); 00259 label = gtk_label_new(_("Join")); 00260 00261 gtk_box_pack_start(GTK_BOX(hbox), iconwid, FALSE, FALSE, 2); 00262 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); 00263 00264 gtk_widget_show(iconwid); 00265 gtk_widget_show(label); 00266 00267 button = gtk_button_new(); 00268 00269 gtk_signal_connect(GTK_OBJECT(button), "clicked", 00270 GTK_SIGNAL_FUNC(join_chat_callback), 00271 NULL); 00272 gtk_widget_show(hbox); 00273 00274 gtk_container_add(GTK_CONTAINER(button), hbox); 00275 gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0); 00276 gtk_widget_show(button); 00277 00278 00279 /* stuff for the cancel button */ 00280 00281 hbox = gtk_hbox_new(FALSE, 5); 00282 00283 icon = gdk_pixmap_create_from_xpm_d(join_chat_window->window, &mask, NULL, cancel_xpm); 00284 iconwid = gtk_pixmap_new(icon, mask); 00285 label = gtk_label_new(_("Cancel")); 00286 00287 gtk_box_pack_start(GTK_BOX(hbox), iconwid, FALSE, FALSE, 2); 00288 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); 00289 00290 gtk_widget_show(iconwid); 00291 gtk_widget_show(label); 00292 00293 button = gtk_button_new(); 00294 00295 gtk_signal_connect_object(GTK_OBJECT(button), "clicked", 00296 GTK_SIGNAL_FUNC(gtk_widget_destroy), 00297 GTK_OBJECT(join_chat_window)); 00298 gtk_widget_show(hbox); 00299 00300 gtk_container_add(GTK_CONTAINER(button), hbox); 00301 00302 gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0); 00303 gtk_widget_show(button); 00304 00305 /* now put the hbox with all the buttons into the vbox? */ 00306 00307 hbox = gtk_hbox_new(FALSE, 0); 00308 00309 gtk_box_pack_end(GTK_BOX(hbox), hbox2, FALSE, FALSE, 0); 00310 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 00311 00312 gtk_widget_show(hbox); 00313 gtk_widget_show(hbox2); 00314 gtk_widget_show(vbox); 00315 00316 /* show the window */ 00317 00318 gtk_widget_show(join_chat_window); 00319 00320 gtk_signal_connect( GTK_OBJECT(join_chat_window), "destroy", 00321 GTK_SIGNAL_FUNC(join_chat_destroy), NULL ); 00322 } |
|
Definition at line 22 of file chat_room.c. References play_sound(), RUN_SERVICE, and SEND. Referenced by eb_join_chat_room().
00023 { 00024 eb_chat_room * ecr = (eb_chat_room *)data; 00025 00026 RUN_SERVICE(ecr->chat_room_account)->send_chat_room_message(ecr, 00027 gtk_entry_get_text(GTK_ENTRY(ecr->entry))); 00028 00029 if(ecr->sound_enabled && ecr->send_enabled) 00030 play_sound(SEND); 00031 gtk_entry_set_text(GTK_ENTRY(ecr->entry), ""); 00032 } |
|
Definition at line 34 of file chat_room.c. Referenced by eb_join_chat_room().
00035 { 00036 eb_chat_room * cr = (eb_chat_room *)userdata; 00037 00038 /*Set the sound_enable variable depending on the toggle button*/ 00039 00040 if (GTK_TOGGLE_BUTTON (sound_button)->active) 00041 cr->sound_enabled = TRUE; 00042 else 00043 cr->sound_enabled = FALSE; 00044 } |
|
Definition at line 142 of file chat_room.c. Referenced by join_chat_callback(), and open_join_chat_window(). |
|
Definition at line 143 of file chat_room.c. Referenced by join_chat_callback(), and open_join_chat_window(). |
|
Definition at line 19 of file chat_room.c. Referenced by destroy(), and eb_start_chat_room(). |
|
Definition at line 144 of file chat_room.c. Referenced by join_chat_callback(), and open_join_chat_window(). |
|
Definition at line 140 of file chat_room.c. Referenced by join_chat_destroy(), and open_join_chat_window(). |