mcabber/src/screen.h
author Mikael Berthe <mikael@lilotux.net>
Fri, 26 May 2006 22:51:19 +0200
changeset 873 ee39f6d94d43
parent 866 b30df2ab457f
child 891 78f4971578dd
permissions -rw-r--r--
Add /buffer {scroll_lock|scroll_unlock|toggle_scroll}
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
     4
#include <ncurses.h>
173
09e24917059d [/trunk] Changeset 185 by mikael
mikael
parents: 151
diff changeset
     5
#include <glib.h>
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
     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
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    31
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
    32
extern int update_roster;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    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
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
    38
    MKEY_EQUIV,
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
    39
    MKEY_CTRL_PGUP,
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
    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
6866ee749225 More keycodes
Mikael Berthe <mikael@lilotux.net>
parents: 761
diff changeset
    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,
826
3a3c7a017904 Add Ctrl-Shift-{Home,End} key code sequences
Mikael Berthe <mikael@lilotux.net>
parents: 807
diff changeset
    48
    MKEY_CTRL_DEL,
3a3c7a017904 Add Ctrl-Shift-{Home,End} key code sequences
Mikael Berthe <mikael@lilotux.net>
parents: 807
diff changeset
    49
    MKEY_CTRL_SHIFT_HOME,
3a3c7a017904 Add Ctrl-Shift-{Home,End} key code sequences
Mikael Berthe <mikael@lilotux.net>
parents: 807
diff changeset
    50
    MKEY_CTRL_SHIFT_END
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
    51
  } mcode;
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
    52
} keycode;
276
627925d885de Limit the number of lines in multi-line messages
Mikael Berthe <mikael@lilotux.net>
parents: 267
diff changeset
    53
761
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
    54
void scr_Getch(keycode *kcode);
4532a9fe0e8c Handle some keyboard escape sequences
Mikael Berthe <mikael@lilotux.net>
parents: 739
diff changeset
    55
int process_key(keycode kcode);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    56
779
057ffe7c43dc Initialize locale charset earlier
Mikael Berthe <mikael@lilotux.net>
parents: 765
diff changeset
    57
void scr_InitLocaleCharSet(void);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    58
void scr_InitCurses(void);
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 370
diff changeset
    59
void scr_TerminateCurses(void);
151
b69c0b7a23e3 [/trunk] Changeset 163 by mikael
mikael
parents: 139
diff changeset
    60
void scr_DrawMainWindow(unsigned int fullinit);
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 74
diff changeset
    61
void scr_DrawRoster(void);
724
264375fe7159 Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents: 723
diff changeset
    62
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
    63
void scr_UpdateChatStatus(int forceupdate);
707
b26a0bde4cdb Add /roster hide|show|toggle
Mikael Berthe <mikael@lilotux.net>
parents: 701
diff changeset
    64
void scr_RosterVisibility(int status);
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 173
diff changeset
    65
void scr_WriteIncomingMessage(const char *jidfrom, const char *text,
190
9c2023d60986 [/trunk] Changeset 202 by mikael
mikael
parents: 187
diff changeset
    66
        time_t timestamp, guint prefix);
50
5425ee13dce6 [/trunk] Changeset 66 by mikael
mikael
parents: 47
diff changeset
    67
void scr_WriteOutgoingMessage(const char *jidto,   const char *text);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    68
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
    69
bool 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
    70
inline void scr_UpdateBuddyWindow(void);
129
03be1cc94560 [/trunk] Changeset 142 by mikael
mikael
parents: 108
diff changeset
    71
inline void scr_set_chatmode(int enable);
807
f6cda389db48 Allow messages with a subject (/msay)
Mikael Berthe <mikael@lilotux.net>
parents: 794
diff changeset
    72
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
    73
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
    74
void scr_setmsgflag_if_needed(const char *jid);
238
8e30b2bb380e [/trunk] Changeset 251 by mikael
mikael
parents: 236
diff changeset
    75
void scr_append_multiline(const char *line);
724
264375fe7159 Fix a roster refresh issue
Mikael Berthe <mikael@lilotux.net>
parents: 723
diff changeset
    76
inline const char *scr_get_multiline(void);
807
f6cda389db48 Allow messages with a subject (/msay)
Mikael Berthe <mikael@lilotux.net>
parents: 794
diff changeset
    77
inline const char *scr_get_multimode_subj(void);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    78
675
ae7016aae014 New "beep_on_message" option
Mikael Berthe <mikael@lilotux.net>
parents: 654
diff changeset
    79
inline void scr_Beep(void);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
    80
322
da138cdebf04 Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents: 314
diff changeset
    81
void scr_CheckAutoAway(bool activity);
da138cdebf04 Implement auto-away mode
Mikael Berthe <mikael@lilotux.net>
parents: 314
diff changeset
    82
104
fe7257d251ac [/trunk] Changeset 118 by mikael
mikael
parents: 81
diff changeset
    83
// For commands...
108
7fb72bc13732 [/trunk] Changeset 122 by mikael
mikael
parents: 104
diff changeset
    84
void scr_RosterTop(void);
7fb72bc13732 [/trunk] Changeset 122 by mikael
mikael
parents: 104
diff changeset
    85
void scr_RosterBottom(void);
377
00809e3e327e Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents: 374
diff changeset
    86
void scr_RosterUp(void);
00809e3e327e Add "/roster up" and "/roster down"
Mikael Berthe <mikael@lilotux.net>
parents: 374
diff changeset
    87
void scr_RosterDown(void);
265
49e9e02dd6d0 Add "/roster search" command
mikael@frmp8452
parents: 238
diff changeset
    88
void scr_RosterSearch(char *);
480
882e1acae422 Add /say_to command
Mikael Berthe <mikael@lilotux.net>
parents: 464
diff changeset
    89
void scr_RosterJumpJid(char *);
361
51ff319947c3 Code cleanup/optimization
Mikael Berthe <mikael@lilotux.net>
parents: 336
diff changeset
    90
void scr_BufferTopBottom(int topbottom);
369
499170ed71c9 Rename some buffer commands, for homogeneity
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
    91
void scr_BufferClear(void);
873
ee39f6d94d43 Add /buffer {scroll_lock|scroll_unlock|toggle_scroll}
Mikael Berthe <mikael@lilotux.net>
parents: 866
diff changeset
    92
void scr_BufferScrollLock(int lock);
866
b30df2ab457f Add "/buffer purge"
Mikael Berthe <mikael@lilotux.net>
parents: 865
diff changeset
    93
void scr_BufferPurge(void);
370
dd9e2eb52916 Add /buffer search_{backward,forward}
Mikael Berthe <mikael@lilotux.net>
parents: 369
diff changeset
    94
void scr_BufferSearch(int direction, const char *text);
462
d580e87c11ed Add "/buffer %n"
Mikael Berthe <mikael@lilotux.net>
parents: 389
diff changeset
    95
void scr_BufferPercent(int pc);
464
e4840b288be0 Add "/buffer date"
Mikael Berthe <mikael@lilotux.net>
parents: 462
diff changeset
    96
void scr_BufferDate(time_t t);
236
72fd1273f2b7 [/trunk] Changeset 249 by mikael
mikael
parents: 190
diff changeset
    97
void scr_RosterUnreadMessage(int);
330
a9013124ede6 Add "/roster alternate"
Mikael Berthe <mikael@lilotux.net>
parents: 322
diff changeset
    98
void scr_RosterJumpAlternate(void);
508
5a2132ba2220 Add "/buffer up" and "/buffer down"
Mikael Berthe <mikael@lilotux.net>
parents: 480
diff changeset
    99
void scr_BufferScrollUpDown(int updown, unsigned int nblines);
104
fe7257d251ac [/trunk] Changeset 118 by mikael
mikael
parents: 81
diff changeset
   100
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
   101
#endif
576
8b3db0b555a1 Add Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 515
diff changeset
   102
580
fed6d1e4d7a9 Fix modelines
Mikael Berthe <mikael@lilotux.net>
parents: 576
diff changeset
   103
/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */