author | Mikael Berthe <mikael@lilotux.net> |
Sun, 02 Apr 2006 23:11:55 +0200 | |
changeset 785 | 7e0562e3bc83 |
parent 779 | 057ffe7c43dc |
child 794 | 32d5298f9f8d |
permissions | -rw-r--r-- |
24 | 1 |
#ifndef __SCREEN_H__ |
2 |
#define __SCREEN_H__ 1 |
|
3 |
||
4 |
#include <ncurses.h> |
|
173 | 5 |
#include <glib.h> |
24 | 6 |
|
374
bd5638c21834
Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents:
370
diff
changeset
|
7 |
#include "logprint.h" |
bd5638c21834
Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents:
370
diff
changeset
|
8 |
|
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
9 |
// 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
|
10 |
#define PREFIX_WIDTH 17 |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
11 |
|
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
12 |
#define INPUTLINE_LENGTH 1024 |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
13 |
|
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
14 |
// 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
|
15 |
// in a multi-line message. Should be < 1000 |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
16 |
// 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
|
17 |
#define MULTILINE_MAX_LINE_NUMBER 299 |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
18 |
|
739
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
19 |
enum colors { |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
20 |
COLOR_GENERAL = 3, |
785
7e0562e3bc83
Replace color_highlight with color_msgout
Mikael Berthe <mikael@lilotux.net>
parents:
779
diff
changeset
|
21 |
COLOR_MSGOUT, |
739
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
22 |
COLOR_STATUS, |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
23 |
COLOR_ROSTER, |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
24 |
COLOR_ROSTERSEL, |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
25 |
COLOR_ROSTERSELNMSG, |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
26 |
COLOR_ROSTERNMSG, |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
27 |
COLOR_max |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
28 |
}; |
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
29 |
|
0d5fb1d9077c
Allow "bright" text colors
Mikael Berthe <mikael@lilotux.net>
parents:
730
diff
changeset
|
30 |
int COLOR_ATTRIB[COLOR_max]; |
24 | 31 |
|
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
32 |
extern int update_roster; |
24 | 33 |
|
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
34 |
typedef struct { |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
35 |
int value; |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
36 |
enum { |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
37 |
MKEY_META = 1, |
763 | 38 |
MKEY_EQUIV, |
39 |
MKEY_CTRL_PGUP, |
|
40 |
MKEY_CTRL_PGDOWN, |
|
765
72626e9d60bd
Create init_keycodes(), add 2 screen escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
763
diff
changeset
|
41 |
MKEY_SHIFT_PGUP, |
72626e9d60bd
Create init_keycodes(), add 2 screen escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
763
diff
changeset
|
42 |
MKEY_SHIFT_PGDOWN, |
763 | 43 |
MKEY_CTRL_SHIFT_PGUP, |
44 |
MKEY_CTRL_SHIFT_PGDOWN |
|
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
45 |
} mcode; |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
46 |
} keycode; |
276
627925d885de
Limit the number of lines in multi-line messages
Mikael Berthe <mikael@lilotux.net>
parents:
267
diff
changeset
|
47 |
|
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
48 |
void scr_Getch(keycode *kcode); |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
49 |
int process_key(keycode kcode); |
24 | 50 |
|
779
057ffe7c43dc
Initialize locale charset earlier
Mikael Berthe <mikael@lilotux.net>
parents:
765
diff
changeset
|
51 |
void scr_InitLocaleCharSet(void); |
24 | 52 |
void scr_InitCurses(void); |
374
bd5638c21834
Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents:
370
diff
changeset
|
53 |
void scr_TerminateCurses(void); |
151 | 54 |
void scr_DrawMainWindow(unsigned int fullinit); |
81 | 55 |
void scr_DrawRoster(void); |
724
264375fe7159
Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents:
723
diff
changeset
|
56 |
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
|
57 |
void scr_UpdateChatStatus(int forceupdate); |
707
b26a0bde4cdb
Add /roster hide|show|toggle
Mikael Berthe <mikael@lilotux.net>
parents:
701
diff
changeset
|
58 |
void scr_RosterVisibility(int status); |
184 | 59 |
void scr_WriteIncomingMessage(const char *jidfrom, const char *text, |
190 | 60 |
time_t timestamp, guint prefix); |
50 | 61 |
void scr_WriteOutgoingMessage(const char *jidto, const char *text); |
24 | 62 |
void scr_ShowBuddyWindow(void); |
514
979eb0fe2969
Show status changes in buddy window, if it is open
Mikael Berthe <mikael@lilotux.net>
parents:
508
diff
changeset
|
63 |
bool scr_BuddyBufferExists(const char *jid); |
129 | 64 |
inline void scr_set_chatmode(int enable); |
238 | 65 |
inline void scr_set_multimode(int enable); |
724
264375fe7159
Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents:
723
diff
changeset
|
66 |
inline int scr_get_multimode(void); |
654
d7fe7b88e4fc
MUC: Set the new_message flag when joining a room
Mikael Berthe <mikael@lilotux.net>
parents:
580
diff
changeset
|
67 |
void scr_setmsgflag_if_needed(const char *jid); |
238 | 68 |
void scr_append_multiline(const char *line); |
724
264375fe7159
Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents:
723
diff
changeset
|
69 |
inline const char *scr_get_multiline(void); |
24 | 70 |
|
675
ae7016aae014
New "beep_on_message" option
Mikael Berthe <mikael@lilotux.net>
parents:
654
diff
changeset
|
71 |
inline void scr_Beep(void); |
24 | 72 |
|
322
da138cdebf04
Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents:
314
diff
changeset
|
73 |
void scr_CheckAutoAway(bool activity); |
da138cdebf04
Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents:
314
diff
changeset
|
74 |
|
104 | 75 |
// For commands... |
108 | 76 |
void scr_RosterTop(void); |
77 |
void scr_RosterBottom(void); |
|
377
00809e3e327e
Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents:
374
diff
changeset
|
78 |
void scr_RosterUp(void); |
00809e3e327e
Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents:
374
diff
changeset
|
79 |
void scr_RosterDown(void); |
265 | 80 |
void scr_RosterSearch(char *); |
480 | 81 |
void scr_RosterJumpJid(char *); |
361
51ff319947c3
Code cleanup/optimization
Mikael Berthe <mikael@lilotux.net>
parents:
336
diff
changeset
|
82 |
void scr_BufferTopBottom(int topbottom); |
369
499170ed71c9
Rename some buffer commands, for homogeneity
Mikael Berthe <mikael@lilotux.net>
parents:
364
diff
changeset
|
83 |
void scr_BufferClear(void); |
370
dd9e2eb52916
Add /buffer search_{backward,forward}
Mikael Berthe <mikael@lilotux.net>
parents:
369
diff
changeset
|
84 |
void scr_BufferSearch(int direction, const char *text); |
462 | 85 |
void scr_BufferPercent(int pc); |
464 | 86 |
void scr_BufferDate(time_t t); |
236 | 87 |
void scr_RosterUnreadMessage(int); |
330 | 88 |
void scr_RosterJumpAlternate(void); |
508
5a2132ba2220
Add "/buffer up" and "/buffer down"
Mikael Berthe <mikael@lilotux.net>
parents:
480
diff
changeset
|
89 |
void scr_BufferScrollUpDown(int updown, unsigned int nblines); |
104 | 90 |
|
24 | 91 |
#endif |
576 | 92 |
|
580 | 93 |
/* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |