Mercurial > hg
annotate mcabber/src/screen.h @ 798:bbaab5692b0e
hgignore: Ignore hgcset.h
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 09 Apr 2006 10:15:44 +0200 |
parents | 32d5298f9f8d |
children | f6cda389db48 |
rev | line source |
---|---|
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, |
794
32d5298f9f8d
Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents:
785
diff
changeset
|
44 MKEY_CTRL_SHIFT_PGDOWN, |
32d5298f9f8d
Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents:
785
diff
changeset
|
45 MKEY_CTRL_HOME, |
32d5298f9f8d
Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents:
785
diff
changeset
|
46 MKEY_CTRL_END, |
32d5298f9f8d
Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents:
785
diff
changeset
|
47 MKEY_CTRL_INS, |
32d5298f9f8d
Add a few keycode sequences
Mikael Berthe <mikael@lilotux.net>
parents:
785
diff
changeset
|
48 MKEY_CTRL_DEL |
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
49 } mcode; |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
50 } keycode; |
276
627925d885de
Limit the number of lines in multi-line messages
Mikael Berthe <mikael@lilotux.net>
parents:
267
diff
changeset
|
51 |
761
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
52 void scr_Getch(keycode *kcode); |
4532a9fe0e8c
Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents:
739
diff
changeset
|
53 int process_key(keycode kcode); |
24 | 54 |
779
057ffe7c43dc
Initialize locale charset earlier
Mikael Berthe <mikael@lilotux.net>
parents:
765
diff
changeset
|
55 void scr_InitLocaleCharSet(void); |
24 | 56 void scr_InitCurses(void); |
374
bd5638c21834
Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents:
370
diff
changeset
|
57 void scr_TerminateCurses(void); |
151 | 58 void scr_DrawMainWindow(unsigned int fullinit); |
81 | 59 void scr_DrawRoster(void); |
724
264375fe7159
Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents:
723
diff
changeset
|
60 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
|
61 void scr_UpdateChatStatus(int forceupdate); |
707
b26a0bde4cdb
Add /roster hide|show|toggle
Mikael Berthe <mikael@lilotux.net>
parents:
701
diff
changeset
|
62 void scr_RosterVisibility(int status); |
184 | 63 void scr_WriteIncomingMessage(const char *jidfrom, const char *text, |
190 | 64 time_t timestamp, guint prefix); |
50 | 65 void scr_WriteOutgoingMessage(const char *jidto, const char *text); |
24 | 66 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
|
67 bool scr_BuddyBufferExists(const char *jid); |
129 | 68 inline void scr_set_chatmode(int enable); |
238 | 69 inline void scr_set_multimode(int enable); |
724
264375fe7159
Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents:
723
diff
changeset
|
70 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
|
71 void scr_setmsgflag_if_needed(const char *jid); |
238 | 72 void scr_append_multiline(const char *line); |
724
264375fe7159
Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents:
723
diff
changeset
|
73 inline const char *scr_get_multiline(void); |
24 | 74 |
675
ae7016aae014
New "beep_on_message" option
Mikael Berthe <mikael@lilotux.net>
parents:
654
diff
changeset
|
75 inline void scr_Beep(void); |
24 | 76 |
322
da138cdebf04
Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents:
314
diff
changeset
|
77 void scr_CheckAutoAway(bool activity); |
da138cdebf04
Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents:
314
diff
changeset
|
78 |
104 | 79 // For commands... |
108 | 80 void scr_RosterTop(void); |
81 void scr_RosterBottom(void); | |
377
00809e3e327e
Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents:
374
diff
changeset
|
82 void scr_RosterUp(void); |
00809e3e327e
Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents:
374
diff
changeset
|
83 void scr_RosterDown(void); |
265 | 84 void scr_RosterSearch(char *); |
480 | 85 void scr_RosterJumpJid(char *); |
361
51ff319947c3
Code cleanup/optimization
Mikael Berthe <mikael@lilotux.net>
parents:
336
diff
changeset
|
86 void scr_BufferTopBottom(int topbottom); |
369
499170ed71c9
Rename some buffer commands, for homogeneity
Mikael Berthe <mikael@lilotux.net>
parents:
364
diff
changeset
|
87 void scr_BufferClear(void); |
370
dd9e2eb52916
Add /buffer search_{backward,forward}
Mikael Berthe <mikael@lilotux.net>
parents:
369
diff
changeset
|
88 void scr_BufferSearch(int direction, const char *text); |
462 | 89 void scr_BufferPercent(int pc); |
464 | 90 void scr_BufferDate(time_t t); |
236 | 91 void scr_RosterUnreadMessage(int); |
330 | 92 void scr_RosterJumpAlternate(void); |
508
5a2132ba2220
Add "/buffer up" and "/buffer down"
Mikael Berthe <mikael@lilotux.net>
parents:
480
diff
changeset
|
93 void scr_BufferScrollUpDown(int updown, unsigned int nblines); |
104 | 94 |
24 | 95 #endif |
576 | 96 |
580 | 97 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |