author | Mikael Berthe <mikael@lilotux.net> |
Wed, 01 Nov 2006 21:48:01 +0100 | |
changeset 994 | eb416c9633b5 |
parent 993 | 0759f4c7da68 |
child 1055 | 6eb1efea75d0 |
permissions | -rw-r--r-- |
24 | 1 |
#ifndef __SCREEN_H__ |
2 |
#define __SCREEN_H__ 1 |
|
3 |
||
173 | 4 |
#include <glib.h> |
24 | 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 | 46 |
|
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
47 |
extern int update_roster; |
24 | 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 | 54 |
MKEY_EQUIV, |
55 |
MKEY_CTRL_PGUP, |
|
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 | 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 | 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 | 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 | 78 |
void scr_DrawMainWindow(unsigned int fullinit); |
81 | 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 | 83 |
void scr_WriteIncomingMessage(const char *jidfrom, const char *text, |
190 | 84 |
time_t timestamp, guint prefix); |
50 | 85 |
void scr_WriteOutgoingMessage(const char *jidto, const char *text); |
24 | 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 | 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 | 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 | 96 |
|
675
ae7016aae014
New "beep_on_message" option
Mikael Berthe <mikael@lilotux.net>
parents:
654
diff
changeset
|
97 |
inline void scr_Beep(void); |
24 | 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 | 107 |
// For commands... |
108 | 108 |
void scr_RosterTop(void); |
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 | 112 |
void scr_RosterSearch(char *); |
480 | 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 | 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 | 119 |
void scr_BufferPercent(int pc); |
464 | 120 |
void scr_BufferDate(time_t t); |
236 | 121 |
void scr_RosterUnreadMessage(int); |
330 | 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 | 124 |
|
24 | 125 |
#endif |
576 | 126 |
|
580 | 127 |
/* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |