Mercurial > pidgin
comparison src/conversation.c @ 3159:fce1883cc608
[gaim-migrate @ 3175]
new shortcuts:
Ctrl-- Decrease Font Size
Ctrl-= Increase Font Size
Ctrl-0 Normal Font Size
Ctrl-F Select Font
Ctrl-C Text Color
Ctrl-W Close IM/Chat Window (or Tab, if using tabbed conversations)
Ctrl-N New IM/Chat Tab (if using tabbed conversations)
Ctrl-Z Minimize (Iconify) IM/Chat Window
-As suggested by Shreedeep K Bhachech
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sat, 20 Apr 2002 08:10:13 +0000 |
parents | 6006cc902d62 |
children | 255155a1b190 |
comparison
equal
deleted
inserted
replaced
3158:ea6f8d8d74e5 | 3159:fce1883cc608 |
---|---|
29 #include <unistd.h> | 29 #include <unistd.h> |
30 #include <stdio.h> | 30 #include <stdio.h> |
31 #include <stdlib.h> | 31 #include <stdlib.h> |
32 #include <errno.h> | 32 #include <errno.h> |
33 #include <ctype.h> | 33 #include <ctype.h> |
34 #include <gdk/gdkx.h> | |
35 #include <X11/Xlib.h> | |
34 #include <gtk/gtk.h> | 36 #include <gtk/gtk.h> |
35 #include "gtkimhtml.h" | 37 #include "gtkimhtml.h" |
36 #include <gdk/gdkkeysyms.h> | 38 #include <gdk/gdkkeysyms.h> |
37 #include "convo.h" | 39 #include "convo.h" |
38 #include "gtkspell.h" | 40 #include "gtkspell.h" |
850 gtk_editable_set_position(GTK_EDITABLE(entry), pos + 1); | 852 gtk_editable_set_position(GTK_EDITABLE(entry), pos + 1); |
851 } else if (event->state & GDK_CONTROL_MASK) { | 853 } else if (event->state & GDK_CONTROL_MASK) { |
852 int pos = 0; | 854 int pos = 0; |
853 switch (event->keyval) { | 855 switch (event->keyval) { |
854 case GDK_Up: | 856 case GDK_Up: |
855 debug_printf("YOU HIT UP!\n"); | |
856 if (!c->send_history) | 857 if (!c->send_history) |
857 break; | 858 break; |
858 debug_printf("history exists\n"); | |
859 if (!c->send_history->prev) { | 859 if (!c->send_history->prev) { |
860 debug_printf("at curent\n"); | |
861 if (c->send_history->data) | 860 if (c->send_history->data) |
862 g_free(c->send_history->data); | 861 g_free(c->send_history->data); |
863 c->send_history->data = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1); | 862 c->send_history->data = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1); |
864 } | 863 } |
865 if (c->send_history->next && c->send_history->next->data) { | 864 if (c->send_history->next && c->send_history->next->data) { |
866 debug_printf("going to ->next\n"); | |
867 c->send_history = c->send_history->next; | 865 c->send_history = c->send_history->next; |
868 gtk_editable_delete_text (GTK_EDITABLE(entry),0,-1); | 866 gtk_editable_delete_text (GTK_EDITABLE(entry),0,-1); |
869 gtk_editable_insert_text(GTK_EDITABLE(entry), | 867 gtk_editable_insert_text(GTK_EDITABLE(entry), |
870 c->send_history->data, | 868 c->send_history->data, |
871 strlen(c->send_history->data), | 869 strlen(c->send_history->data), |
914 case 's': | 912 case 's': |
915 case 'S': | 913 case 'S': |
916 quiet_set(c->strike, | 914 quiet_set(c->strike, |
917 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->strike))); | 915 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->strike))); |
918 do_strike(c->strike, c->entry); | 916 do_strike(c->strike, c->entry); |
917 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
918 break; | |
919 | |
920 case '-': | |
921 do_small(NULL, c->entry); | |
922 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
923 break; | |
924 case '=': | |
925 case '+': | |
926 do_big(NULL, c->entry); | |
927 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
928 break; | |
929 case '0': | |
930 do_normal(NULL, c->entry); | |
931 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
932 break; | |
933 case 'f': | |
934 case 'F': | |
935 quiet_set(c->font, | |
936 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->font))); | |
937 toggle_font(c->font, c); | |
938 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
939 break; | |
940 case 'c': | |
941 case 'C': | |
942 quiet_set(c->fgcolorbtn, | |
943 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->fgcolorbtn))); | |
944 toggle_fg_color(c->fgcolorbtn, c); | |
919 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | 945 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
920 break; | 946 break; |
921 } | 947 } |
922 } | 948 } |
923 if (convo_options & OPT_CONVO_CTL_SMILEYS) { | 949 if (convo_options & OPT_CONVO_CTL_SMILEYS) { |
988 } | 1014 } |
989 if (event->keyval == 'l') { | 1015 if (event->keyval == 'l') { |
990 gtk_imhtml_clear(GTK_IMHTML(c->text)); | 1016 gtk_imhtml_clear(GTK_IMHTML(c->text)); |
991 g_string_free(c->history, TRUE); | 1017 g_string_free(c->history, TRUE); |
992 c->history = g_string_new(""); | 1018 c->history = g_string_new(""); |
993 } | 1019 } else if (event->keyval == 'w') { |
1020 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
1021 close_callback(c->close, c); | |
1022 c = NULL; | |
1023 return TRUE; | |
1024 } else if (event->keyval == 'n') { | |
1025 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
1026 show_im_dialog(); | |
1027 } else if (event->keyval == 'z') { | |
1028 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
1029 XIconifyWindow(GDK_DISPLAY(), | |
1030 GDK_WINDOW_XWINDOW(c->window->window), | |
1031 ((_XPrivDisplay)GDK_DISPLAY())->default_screen); | |
1032 } | |
1033 | |
1034 | |
994 if ((!c->is_chat && (im_options & OPT_IM_ONE_WINDOW)) || | 1035 if ((!c->is_chat && (im_options & OPT_IM_ONE_WINDOW)) || |
995 (c->is_chat && (chat_options & OPT_CHAT_ONE_WINDOW))) { | 1036 (c->is_chat && (chat_options & OPT_CHAT_ONE_WINDOW))) { |
996 GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook); | 1037 GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook); |
997 if (event->keyval == '[') { | 1038 if (event->keyval == '[') { |
998 gtk_notebook_prev_page(GTK_NOTEBOOK(notebook)); | 1039 gtk_notebook_prev_page(GTK_NOTEBOOK(notebook)); |
1162 int imflags = 0; | 1203 int imflags = 0; |
1163 if (c->check && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->check))) | 1204 if (c->check && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->check))) |
1164 imflags = IM_FLAG_CHECKBOX; | 1205 imflags = IM_FLAG_CHECKBOX; |
1165 | 1206 |
1166 if (c->images) { | 1207 if (c->images) { |
1167 int id, offset; | 1208 int id = 0, offset = 0; |
1168 char *bigbuf; | 1209 char *bigbuf = NULL; |
1169 GSList *tmplist = c->images; | 1210 GSList *tmplist = c->images; |
1170 id = 1; | 1211 id = 1; |
1171 | 1212 |
1172 while (tmplist) { | 1213 while (tmplist) { |
1173 FILE *imgfile; | 1214 FILE *imgfile; |