annotate mcabber/src/screen.h @ 994:eb416c9633b5

Chatstates: decrease the composing timeout
author Mikael Berthe <mikael@lilotux.net>
date Wed, 01 Nov 2006 21:48:01 +0100
parents 0759f4c7da68
children 6eb1efea75d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
1 #ifndef __SCREEN_H__
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
2 #define __SCREEN_H__ 1
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
3
173
09e24917059d [/trunk] Changeset 185 by mikael
mikael
parents: 151
diff changeset
4 #include <glib.h>
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
5
935
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
6 #if HAVE_NCURSESW_NCURSES_H
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
7 # include <ncursesw/ncurses.h>
936
3e592fb33aab Fix ncurses panel #include too
Mikael Berthe <mikael@lilotux.net>
parents: 935
diff changeset
8 # include <ncursesw/panel.h>
935
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
9 #elif HAVE_NCURSES_NCURSES_H
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
10 # include <ncurses/ncurses.h>
936
3e592fb33aab Fix ncurses panel #include too
Mikael Berthe <mikael@lilotux.net>
parents: 935
diff changeset
11 # include <ncurses/panel.h>
3e592fb33aab Fix ncurses panel #include too
Mikael Berthe <mikael@lilotux.net>
parents: 935
diff changeset
12 #else
935
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
13 # include <ncurses.h>
936
3e592fb33aab Fix ncurses panel #include too
Mikael Berthe <mikael@lilotux.net>
parents: 935
diff changeset
14 # include <panel.h>
935
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
15 #endif
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
16
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 370
diff changeset
17 #include "logprint.h"
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 370
diff changeset
18
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
19 // Length of the timestamp & flag prefix in the chat buffer window
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
20 #define PREFIX_WIDTH 17
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
21
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
22 #define INPUTLINE_LENGTH 1024
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
23
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
24 // Only used in screen.c; this is the maximum line number
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
25 // in a multi-line message. Should be < 1000
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
26 // Note: message length is limited by the HBB_BLOCKSIZE size too
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
27 #define MULTILINE_MAX_LINE_NUMBER 299
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
28
991
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
29 // When chatstates are enabled, timeout (in seconds) before "composing"
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
30 // becomes "paused" because of user inactivity.
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
31 // Warning: setting this very low will cause more network traffic.
994
eb416c9633b5 Chatstates: decrease the composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 993
diff changeset
32 #define COMPOSING_TIMEOUT 6L
991
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
33
739
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
34 enum colors {
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
35 COLOR_GENERAL = 3,
785
7e0562e3bc83 Replace color_highlight with color_msgout
Mikael Berthe <mikael@lilotux.net>
parents: 779
diff changeset
36 COLOR_MSGOUT,
739
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
37 COLOR_STATUS,
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
38 COLOR_ROSTER,
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
39 COLOR_ROSTERSEL,
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
40 COLOR_ROSTERSELNMSG,
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
41 COLOR_ROSTERNMSG,
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
42 COLOR_max
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
43 };
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
44
0d5fb1d9077c Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents: 730
diff changeset
45 int COLOR_ATTRIB[COLOR_max];
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
46
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
47 extern int update_roster;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
48
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
49 typedef struct {
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
50 int value;
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents: 891
diff changeset
51 int utf8;
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
52 enum {
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
53 MKEY_META = 1,
763
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
54 MKEY_EQUIV,
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
55 MKEY_CTRL_PGUP,
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
56 MKEY_CTRL_PGDOWN,
765
72626e9d60bd Create init_keycodes(), add 2 screen escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 763
diff changeset
57 MKEY_SHIFT_PGUP,
72626e9d60bd Create init_keycodes(), add 2 screen escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 763
diff changeset
58 MKEY_SHIFT_PGDOWN,
763
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
59 MKEY_CTRL_SHIFT_PGUP,
794
32d5298f9f8d Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents: 785
diff changeset
60 MKEY_CTRL_SHIFT_PGDOWN,
32d5298f9f8d Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents: 785
diff changeset
61 MKEY_CTRL_HOME,
32d5298f9f8d Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents: 785
diff changeset
62 MKEY_CTRL_END,
32d5298f9f8d Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents: 785
diff changeset
63 MKEY_CTRL_INS,
826
3a3c7a017904 Add Ctrl-Shift-{Home,End} key code sequences
Mikael Berthe <mikael@lilotux.net>
parents: 807
diff changeset
64 MKEY_CTRL_DEL,
3a3c7a017904 Add Ctrl-Shift-{Home,End} key code sequences
Mikael Berthe <mikael@lilotux.net>
parents: 807
diff changeset
65 MKEY_CTRL_SHIFT_HOME,
3a3c7a017904 Add Ctrl-Shift-{Home,End} key code sequences
Mikael Berthe <mikael@lilotux.net>
parents: 807
diff changeset
66 MKEY_CTRL_SHIFT_END
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
67 } mcode;
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
68 } keycode;
276
627925d885de Limit the number of lines in multi-line messages
Mikael Berthe <mikael@lilotux.net>
parents: 267
diff changeset
69
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
70 void scr_Getch(keycode *kcode);
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
71 int process_key(keycode kcode);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
72
939
12fa2ae6445d Get rid of "busy-waiting" (Christof Meerwald)
Mikael Berthe <mikael@lilotux.net>
parents: 936
diff changeset
73 inline void scr_DoUpdate(void);
12fa2ae6445d Get rid of "busy-waiting" (Christof Meerwald)
Mikael Berthe <mikael@lilotux.net>
parents: 936
diff changeset
74
779
057ffe7c43dc Initialize locale charset earlier
Mikael Berthe <mikael@lilotux.net>
parents: 765
diff changeset
75 void scr_InitLocaleCharSet(void);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
76 void scr_InitCurses(void);
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 370
diff changeset
77 void scr_TerminateCurses(void);
151
b69c0b7a23e3 [/trunk] Changeset 163 by mikael
mikael
parents: 139
diff changeset
78 void scr_DrawMainWindow(unsigned int fullinit);
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 74
diff changeset
79 void scr_DrawRoster(void);
724
264375fe7159 Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents: 723
diff changeset
80 void scr_UpdateMainStatus(int forceupdate);
721
9cf31c9b1dc4 Use room topic as a description in the chat status line
Mikael Berthe <mikael@lilotux.net>
parents: 713
diff changeset
81 void scr_UpdateChatStatus(int forceupdate);
707
b26a0bde4cdb Add /roster hide|show|toggle
Mikael Berthe <mikael@lilotux.net>
parents: 701
diff changeset
82 void scr_RosterVisibility(int status);
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 173
diff changeset
83 void scr_WriteIncomingMessage(const char *jidfrom, const char *text,
190
9c2023d60986 [/trunk] Changeset 202 by mikael
mikael
parents: 187
diff changeset
84 time_t timestamp, guint prefix);
50
5425ee13dce6 [/trunk] Changeset 66 by mikael
mikael
parents: 47
diff changeset
85 void scr_WriteOutgoingMessage(const char *jidto, const char *text);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
86 void scr_ShowBuddyWindow(void);
935
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
87 int scr_BuddyBufferExists(const char *jid);
865
cee8d6be04e1 Improve changeset a3db3ee8b99e, do not enable chatmode when refreshing
Mikael Berthe <mikael@lilotux.net>
parents: 826
diff changeset
88 inline void scr_UpdateBuddyWindow(void);
129
03be1cc94560 [/trunk] Changeset 142 by mikael
mikael
parents: 108
diff changeset
89 inline void scr_set_chatmode(int enable);
807
f6cda389db48 Allow messages with a subject (/msay)
Mikael Berthe <mikael@lilotux.net>
parents: 794
diff changeset
90 inline void scr_set_multimode(int enable, char *subject);
724
264375fe7159 Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents: 723
diff changeset
91 inline int scr_get_multimode(void);
891
78f4971578dd Add a "special" parameter to scr_setmsgflag_if_needed()
Mikael Berthe <mikael@lilotux.net>
parents: 873
diff changeset
92 void scr_setmsgflag_if_needed(const char *jid, int special);
238
8e30b2bb380e [/trunk] Changeset 251 by mikael
mikael
parents: 236
diff changeset
93 void scr_append_multiline(const char *line);
724
264375fe7159 Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents: 723
diff changeset
94 inline const char *scr_get_multiline(void);
807
f6cda389db48 Allow messages with a subject (/msay)
Mikael Berthe <mikael@lilotux.net>
parents: 794
diff changeset
95 inline const char *scr_get_multimode_subj(void);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
96
675
ae7016aae014 New "beep_on_message" option
Mikael Berthe <mikael@lilotux.net>
parents: 654
diff changeset
97 inline void scr_Beep(void);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
98
991
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
99 long int scr_GetAutoAwayTimeout(time_t now);
935
97e6a6da2b2c Fix ncurses #include (again)
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
100 void scr_CheckAutoAway(int activity);
322
da138cdebf04 Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents: 314
diff changeset
101
991
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
102 #if defined JEP0022 || defined JEP0085
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
103 long int scr_GetChatStatesTimeout(time_t now);
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
104 #endif
993
0759f4c7da68 Add option 'disable_chatstates'
Mikael Berthe <mikael@lilotux.net>
parents: 991
diff changeset
105 int chatstates_disabled;
991
ef10906691bb Chatstates: add composing timeout
Mikael Berthe <mikael@lilotux.net>
parents: 940
diff changeset
106
104
fe7257d251ac [/trunk] Changeset 118 by mikael
mikael
parents: 81
diff changeset
107 // For commands...
108
7fb72bc13732 [/trunk] Changeset 122 by mikael
mikael
parents: 104
diff changeset
108 void scr_RosterTop(void);
7fb72bc13732 [/trunk] Changeset 122 by mikael
mikael
parents: 104
diff changeset
109 void scr_RosterBottom(void);
377
00809e3e327e Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents: 374
diff changeset
110 void scr_RosterUp(void);
00809e3e327e Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents: 374
diff changeset
111 void scr_RosterDown(void);
265
49e9e02dd6d0 Add "/roster search" command
mikael@frmp8452
parents: 238
diff changeset
112 void scr_RosterSearch(char *);
480
882e1acae422 Add /say_to command
Mikael Berthe <mikael@lilotux.net>
parents: 464
diff changeset
113 void scr_RosterJumpJid(char *);
361
51ff319947c3 Code cleanup/optimization
Mikael Berthe <mikael@lilotux.net>
parents: 336
diff changeset
114 void scr_BufferTopBottom(int topbottom);
369
499170ed71c9 Rename some buffer commands, for homogeneity
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
115 void scr_BufferClear(void);
873
ee39f6d94d43 Add /buffer {scroll_lock|scroll_unlock|toggle_scroll}
Mikael Berthe <mikael@lilotux.net>
parents: 866
diff changeset
116 void scr_BufferScrollLock(int lock);
866
b30df2ab457f Add "/buffer purge"
Mikael Berthe <mikael@lilotux.net>
parents: 865
diff changeset
117 void scr_BufferPurge(void);
370
dd9e2eb52916 Add /buffer search_{backward,forward}
Mikael Berthe <mikael@lilotux.net>
parents: 369
diff changeset
118 void scr_BufferSearch(int direction, const char *text);
462
d580e87c11ed Add "/buffer %n"
Mikael Berthe <mikael@lilotux.net>
parents: 389
diff changeset
119 void scr_BufferPercent(int pc);
464
e4840b288be0 Add "/buffer date"
Mikael Berthe <mikael@lilotux.net>
parents: 462
diff changeset
120 void scr_BufferDate(time_t t);
236
72fd1273f2b7 [/trunk] Changeset 249 by mikael
mikael
parents: 190
diff changeset
121 void scr_RosterUnreadMessage(int);
330
a9013124ede6 Add "/roster alternate"
Mikael Berthe <mikael@lilotux.net>
parents: 322
diff changeset
122 void scr_RosterJumpAlternate(void);
508
5a2132ba2220 Add "/buffer up" and "/buffer down"
Mikael Berthe <mikael@lilotux.net>
parents: 480
diff changeset
123 void scr_BufferScrollUpDown(int updown, unsigned int nblines);
104
fe7257d251ac [/trunk] Changeset 118 by mikael
mikael
parents: 81
diff changeset
124
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
125 #endif
576
8b3db0b555a1 Add Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 515
diff changeset
126
580
fed6d1e4d7a9 Fix modelines
Mikael Berthe <mikael@lilotux.net>
parents: 576
diff changeset
127 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */