[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Ayttm-commits] CVS: ayttm/src about.c,1.9,1.10 add_contact_window.c,1.
From: |
Colin Leroy <address@hidden> |
Subject: |
[Ayttm-commits] CVS: ayttm/src about.c,1.9,1.10 add_contact_window.c,1.7,1.8 away_window.c,1.6,1.7 chat_room.c,1.11,1.12 chat_room.h,1.3,1.4 chat_window.c,1.12,1.13 dialog.c,1.6,1.7 edit_group_window.c,1.5,1.6 editcontacts.c,1.11,1.12 |
Date: |
Fri, 10 Jan 2003 07:25:34 -0500 |
Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv5865/src
Modified Files:
about.c add_contact_window.c away_window.c chat_room.c
chat_room.h chat_window.c dialog.c edit_group_window.c
editcontacts.c
Log Message:
Multiline edit in chat room, forgotten commits
Index: about.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/about.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- about.c 9 Jan 2003 09:20:21 -0000 1.9
+++ about.c 10 Jan 2003 12:25:32 -0000 1.10
@@ -208,7 +208,7 @@
gtk_container_add(GTK_CONTAINER(sAboutWindow), GTK_WIDGET(vbox));
gtk_widget_show(sAboutWindow);
- gtk_window_set_focus(GTK_WINDOW(sAboutWindow), ok);
+ gtk_widget_grab_focus(ok);
}
Index: add_contact_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/add_contact_window.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- add_contact_window.c 6 Jan 2003 14:11:50 -0000 1.7
+++ add_contact_window.c 10 Jan 2003 12:25:32 -0000 1.8
@@ -471,7 +471,7 @@
gtk_widget_show(table);
gtk_window_set_title(GTK_WINDOW(add_contact_window), _("Yattm -
Add Contact"));
- gtk_window_set_focus(GTK_WINDOW(add_contact_window),
account_name);
+ gtk_widget_grab_focus(account_name);
eb_icon(add_contact_window->window);
gtk_widget_show(add_contact_window);
Index: away_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/away_window.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- away_window.c 9 Jan 2003 09:20:22 -0000 1.6
+++ away_window.c 10 Jan 2003 12:25:32 -0000 1.7
@@ -389,7 +389,7 @@
gtk_window_set_policy(GTK_WINDOW(away_window), FALSE, FALSE,
TRUE);
gtk_widget_show(away_window);
- gtk_window_set_focus(GTK_WINDOW(away_window), title);
+ gtk_widget_grab_focus(title);
}
Index: chat_room.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/chat_room.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- chat_room.c 9 Jan 2003 09:20:22 -0000 1.11
+++ chat_room.c 10 Jan 2003 12:25:32 -0000 1.12
@@ -4,6 +4,7 @@
#include <string.h>
#include "globals.h"
+#include <gdk/gdkkeysyms.h>
#include "intl.h"
#include "gtk_eb_html.h"
#include "util.h"
@@ -24,13 +25,127 @@
static void send_cr_message( GtkWidget * widget, gpointer data )
{
eb_chat_room * ecr = (eb_chat_room *)data;
+ char *text = gtk_editable_get_chars(GTK_EDITABLE(ecr->entry), 0, -1);
+
+ if (!text || strlen(text) == 0)
+ return;
+ RUN_SERVICE(ecr->chat_room_account)->send_chat_room_message(ecr,text);
+
+ if(ecr->this_msg_in_history)
+ {
+ GList * node=NULL;
+ GList * node2=NULL;
- RUN_SERVICE(ecr->chat_room_account)->send_chat_room_message(ecr,
-
gtk_entry_get_text(GTK_ENTRY(ecr->entry)));
+ for(node=ecr->history; node!=NULL ; node=node->next)
+ {
+ node2=node;
+ }
+ free(node2->data);
+ node2->data=strdup(text);
+ ecr->this_msg_in_history=0;
+ } else {
+ ecr->history=g_list_append(ecr->history, strdup(text));
+ ecr->hist_pos=NULL;
+ }
+
+ g_free(text);
if(ecr->sound_enabled && ecr->send_enabled)
play_sound(SEND);
- gtk_entry_set_text(GTK_ENTRY(ecr->entry), "");
+ gtk_editable_delete_text(GTK_EDITABLE (ecr->entry), 0, -1);
+}
+
+static gboolean cr_key_press(GtkWidget *widget, GdkEventKey *event, gpointer
data)
+{
+ eb_chat_room *cr = (eb_chat_room *)data;
+ GdkModifierType modifiers = event->state & (GDK_SHIFT_MASK |
GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_MOD4_MASK);
+
+ if (event->keyval == GDK_Return)
+ {
+ /* Just print a newline on Shift-Return */
+ if (event->state & GDK_SHIFT_MASK)
+ {
+ event->state = 0;
+ }
+ else if (do_enter_send)
+ {
+ /*Prevents a newline from being printed*/
+ gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event");
+
+ send_cr_message(NULL, cr);
+ return gtk_true();
+ }
+ }
+ else if (event->keyval == GDK_Up)
+ {
+ gint p=0;
+
+ if(cr->history==NULL) { return gtk_true(); }
+
+ if(cr->hist_pos==NULL)
+ {
+ char * s;
+ GList * node;
+
+ s= gtk_editable_get_chars(GTK_EDITABLE (cr->entry), 0, -1);
+
+ for(node=cr->history; node!=NULL ; node=node->next)
+ {
+ cr->hist_pos=node;
+ }
+
+ if(strlen(s)>0)
+ {
+ cr->history=g_list_append(cr->history, strdup(s));
+ //cr->hist_pos=cr->history->next;
+ g_free(s); // that strdup() followed by g_free() looks stupid, but
it isn't
+ // - strdup() uses vanilla malloc(), and the destroy
code uses
+ // vanilla free(), so we can't use something that
needs to be
+ // g_free()ed (apparently glib uses an incompatible
allocation
+ //system
+ cr->this_msg_in_history=1;
+ }
+
+ } else {
+ cr->hist_pos=cr->hist_pos->prev;
+ if(cr->hist_pos==NULL)
+ {
+ GList * node;
+ eb_debug(DBG_CORE,"history Wrapped!\n");
+ for(node=cr->history; node!=NULL ; node=node->next)
+ {
+ cr->hist_pos=node;
+ }
+ }
+ }
+
+ gtk_editable_delete_text(GTK_EDITABLE (cr->entry), 0, -1);
+ gtk_editable_insert_text(GTK_EDITABLE (cr->entry), cr->hist_pos->data,
strlen(cr->hist_pos->data), &p);
+ }
+ else if (event->keyval == GDK_Down)
+ {
+ gint p=0;
+
+ if(cr->history==NULL || cr->hist_pos==NULL) { return gtk_true(); }
+ cr->hist_pos=cr->hist_pos->next;
+ if(cr->hist_pos==NULL)
+ {
+ gtk_editable_delete_text(GTK_EDITABLE (cr->entry), 0, -1);
+ } else {
+ gtk_editable_delete_text(GTK_EDITABLE (cr->entry), 0, -1);
+ gtk_editable_insert_text(GTK_EDITABLE (cr->entry), cr->hist_pos->data,
strlen(cr->hist_pos->data), &p);
+ }
+ }
+
+ if(modifiers)
+ { return gtk_false(); }
+
+ if(!modifiers)
+ {
+ // send_typing_status(cr);
+ }
+
+ return gtk_false();
}
static void set_sound_on_toggle(GtkWidget * sound_button, gpointer userdata)
@@ -323,7 +438,7 @@
gtk_widget_show(join_chat_window);
- gtk_window_set_focus(GTK_WINDOW(join_chat_window), chat_room_name);
+ gtk_widget_grab_focus(chat_room_name);
gtk_signal_connect( GTK_OBJECT(join_chat_window), "destroy",
GTK_SIGNAL_FUNC(join_chat_destroy), NULL );
@@ -443,7 +558,7 @@
}
void eb_chat_room_show_message( eb_chat_room * chat_room,
- gchar * user,
gchar * message )
+ gchar * user, gchar * message )
{
gchar buff[2048];
gchar *temp_message, *link_message;
@@ -521,7 +636,7 @@
GtkWidget * sound_button;
GtkWidget * close_button;
GtkWidget * separator;
-
+ GtkWidget * entry_box;
/*if we are already here, just leave*/
if(chat_room->connected)
return;
@@ -545,16 +660,49 @@
GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
/*make ourselves something to type into*/
- chat_room->entry = gtk_entry_new();
+ entry_box = gtk_vbox_new(FALSE,0);
+ if(do_multi_line) {
+ GtkWidget *scrollwindow2 = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
(scrollwindow2),
+ GTK_POLICY_NEVER,
GTK_POLICY_AUTOMATIC);
+
+ chat_room->entry = gtk_text_new(NULL, NULL);
+
+ gtk_widget_set_usize(chat_room->entry, -1, 50);
+
+ gtk_text_set_editable(GTK_TEXT(chat_room->entry), TRUE);
+ gtk_text_set_word_wrap(GTK_TEXT(chat_room->entry), TRUE);
+ gtk_text_set_line_wrap(GTK_TEXT(chat_room->entry), TRUE);
- gtk_signal_connect(GTK_OBJECT(chat_room->entry), "activate",
+ #ifdef HAVE_ISPELL
+ if(do_spell_checking)
+ {
+ if(!gtkspell_running())
+ {
+ gchar *ispell_cmd[] = { "ispell", "-a", NULL };
+ gtkspell_start(NULL, ispell_cmd);
+ }
+ gtkspell_attach(GTK_TEXT(chat_room->entry));
+ }
+ #endif
+
+ gtk_signal_connect(GTK_OBJECT(chat_room->entry),
"key_press_event",
+ GTK_SIGNAL_FUNC(cr_key_press),
+ chat_room);
+
+
gtk_container_add(GTK_CONTAINER(scrollwindow2),chat_room->entry);
+ gtk_widget_show(scrollwindow2);
+ gtk_box_pack_start(GTK_BOX(entry_box), scrollwindow2, TRUE,
TRUE, 3);
+ } else {
+ chat_room->entry = gtk_entry_new();
+
+ gtk_signal_connect(GTK_OBJECT(chat_room->entry), "activate",
GTK_SIGNAL_FUNC(send_cr_message), chat_room );
+ gtk_box_pack_start(GTK_BOX(entry_box), chat_room->entry, TRUE,
TRUE, 3);
+ }
+
- /*
- gtk_box_pack_start(GTK_BOX(hbox), scrollwindow, TRUE, TRUE, 3);
- gtk_box_pack_start(GTK_BOX(hbox), chat_room->online, FALSE, FALSE, 3);
- */
gtk_paned_add1(GTK_PANED(hbox), scrollwindow);
gtk_widget_show(scrollwindow);
@@ -587,8 +735,9 @@
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwindow),GTK_POLICY_NEVER,
GTK_POLICY_ALWAYS);
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE,TRUE, 3);
- gtk_box_pack_start(GTK_BOX(vbox), chat_room->entry, FALSE, FALSE, 1);
+ gtk_box_pack_start(GTK_BOX(vbox), entry_box, FALSE, FALSE, 1);
gtk_widget_show(hbox);
+ gtk_widget_show(entry_box);
gtk_widget_show(chat_room->entry);
gtk_widget_realize(chat_room->window);
@@ -731,7 +880,7 @@
}
RUN_SERVICE(chat_room->chat_room_account)->join_chat_room(chat_room);
- gtk_window_set_focus(GTK_WINDOW(chat_room->window), chat_room->entry);
+ gtk_widget_grab_focus(chat_room->entry);
}
Index: chat_room.h
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/chat_room.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- chat_room.h 8 Jan 2003 20:50:09 -0000 1.3
+++ chat_room.h 10 Jan 2003 12:25:32 -0000 1.4
@@ -43,7 +43,9 @@
GtkWidget * online; // CList of online folks
GtkWidget *smiley_button;
GtkWidget *smiley_window;
-
+ GList * history;
+ GList * hist_pos;
+ int this_msg_in_history;
GList * fellows; //who is in the chat room
eb_local_account * chat_room_account; //who are we talking as?
void *protocol_local_chat_room_data; // For protocol-specific storage
Index: chat_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/chat_window.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- chat_window.c 9 Jan 2003 11:52:45 -0000 1.12
+++ chat_window.c 10 Jan 2003 12:25:32 -0000 1.13
@@ -1031,7 +1031,7 @@
if(cw->hist_pos==NULL)
{
GList * node;
- printf("Wrapped!\n");
+ eb_debug(DBG_CORE,"history Wrapped!\n");
for(node=cw->history; node!=NULL ; node=node->next)
{
cw->hist_pos=node;
@@ -1893,8 +1893,7 @@
} else {
gdk_window_raise(remote_contact->chatwindow->window->window);
- gtk_window_set_focus(GTK_WINDOW(remote_contact->chatwindow->window),
- remote_contact->chatwindow->entry);
+ gtk_widget_grab_focus(remote_contact->chatwindow->entry);
}
eb_update_window_title(remote_contact->chatwindow, TRUE);
@@ -2018,16 +2017,12 @@
eb_restore_last_conv (buff, remote_contact->chatwindow);
}
gdk_window_raise(remote_contact->chatwindow->window->window);
- gtk_window_set_focus (GTK_WINDOW
- (remote_contact->chatwindow->window),
- remote_contact->chatwindow->entry);
+ gtk_widget_grab_focus(remote_contact->chatwindow->entry);
}
} else {
gdk_window_raise(remote_contact->chatwindow->window->window);
- gtk_window_set_focus (GTK_WINDOW
- (remote_contact->chatwindow->window),
- remote_contact->chatwindow->entry);
+ gtk_widget_grab_focus(remote_contact->chatwindow->entry);
}
@@ -2072,9 +2067,7 @@
eb_restore_last_conv(buff,remote_contact->chatwindow);
}
gdk_window_raise(remote_contact->chatwindow->window->window);
- gtk_window_set_focus (GTK_WINDOW
- (remote_contact->chatwindow->window),
- remote_contact->chatwindow->entry);
+ gtk_widget_grab_focus(remote_contact->chatwindow->entry);
}
else /* Did they get denied because they're in the Unknown group? */
return;
@@ -2082,9 +2075,7 @@
else if (remote_contact->chatwindow && remote_contact->chatwindow->window)
{
gdk_window_raise(remote_contact->chatwindow->window->window);
- gtk_window_set_focus (GTK_WINDOW
- (remote_contact->chatwindow->window),
- remote_contact->chatwindow->entry);
+ gtk_widget_grab_focus(remote_contact->chatwindow->entry);
}
eb_update_window_title(remote_contact->chatwindow, FALSE);
@@ -2102,8 +2093,7 @@
} else {
gdk_window_raise(remote_contact->chatwindow->window->window);
- gtk_window_set_focus(GTK_WINDOW(remote_contact->chatwindow->window),
- remote_contact->chatwindow->entry);
+ gtk_widget_grab_focus(remote_contact->chatwindow->entry);
}
remote_contact->chatwindow->perfered = remote_account;
Index: dialog.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/dialog.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dialog.c 9 Jan 2003 09:20:22 -0000 1.6
+++ dialog.c 10 Jan 2003 12:25:32 -0000 1.7
@@ -361,7 +361,7 @@
gtk_signal_connect_object(GTK_OBJECT(close), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(d));
gtk_window_set_modal(GTK_WINDOW(d), TRUE);
gtk_widget_show(d);
- gtk_window_set_focus(GTK_WINDOW(d), close);
+ gtk_widget_grab_focus(close);
return d;
}
Index: edit_group_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/edit_group_window.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- edit_group_window.c 9 Jan 2003 09:20:22 -0000 1.5
+++ edit_group_window.c 10 Jan 2003 12:25:32 -0000 1.6
@@ -132,7 +132,7 @@
current_group = g;
window_open = 1;
- gtk_window_set_focus(GTK_WINDOW(edit_group_window), group_name);
+ gtk_widget_grab_focus(group_name);
}
Index: editcontacts.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/editcontacts.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- editcontacts.c 9 Jan 2003 09:20:22 -0000 1.11
+++ editcontacts.c 10 Jan 2003 12:25:32 -0000 1.12
@@ -524,6 +524,6 @@
gtk_signal_connect(GTK_OBJECT(account_window), "destroy",
GTK_SIGNAL_FUNC(destroy), NULL );
gtk_widget_show(account_window);
- gtk_window_set_focus(GTK_WINDOW(account_window), username);
+ gtk_widget_grab_focus(username);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Ayttm-commits] CVS: ayttm/src about.c,1.9,1.10 add_contact_window.c,1.7,1.8 away_window.c,1.6,1.7 chat_room.c,1.11,1.12 chat_room.h,1.3,1.4 chat_window.c,1.12,1.13 dialog.c,1.6,1.7 edit_group_window.c,1.5,1.6 editcontacts.c,1.11,1.12,
Colin Leroy <address@hidden> <=
- Prev by Date:
[Ayttm-commits] CVS: ayttm ChangeLog,1.69,1.70 config.h.in,1.4,1.5 configure.in,1.68,1.69
- Next by Date:
[Ayttm-commits] CVS: ayttm/src chat_room.c,1.12,1.13 chat_window.c,1.13,1.14 globals.h,1.3,1.4 prefs.c,1.8,1.9
- Previous by thread:
[Ayttm-commits] CVS: ayttm ChangeLog,1.69,1.70 config.h.in,1.4,1.5 configure.in,1.68,1.69
- Next by thread:
[Ayttm-commits] CVS: ayttm/src chat_room.c,1.12,1.13 chat_window.c,1.13,1.14 globals.h,1.3,1.4 prefs.c,1.8,1.9
- Index(es):