annotate mcabber/src/hbuf.h @ 880:ea983a945eba

/buffer scroll_unlock: Don't always jump to the end of the buffer If there is no pending message, do not jump to the bottom of the buffer. For special buffers (e.g. for the status buffer) pending flag is currently disabled so we jump unconditionally.
author Mikael Berthe <mikael@lilotux.net>
date Sat, 27 May 2006 15:59:05 +0200
parents d0781ca2dd08
children 527d6f234924
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
1 #ifndef __HBUF_H__
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
2 #define __HBUF_H__ 1
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
3
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
4 #include <time.h>
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
5 #include <glib.h>
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
6
106
9a31028e8095 [/trunk] Changeset 120 by mikael
mikael
parents: 75
diff changeset
7 // With current implementation a message must fit in a hbuf block,
9a31028e8095 [/trunk] Changeset 120 by mikael
mikael
parents: 75
diff changeset
8 // so we shouldn't choose a too small size.
795
b16acadd7d53 Improve support for long messages
Mikael Berthe <mikael@lilotux.net>
parents: 728
diff changeset
9 #define HBB_BLOCKSIZE 8192 // > 20 please
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
10
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
11 // Flags:
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
12 // - ALLOC: the ptr data has been allocated, it can be freed
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
13 // - PERSISTENT: this is a new history line
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
14 #define HBB_FLAG_ALLOC 1
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
15 #define HBB_FLAG_PERSISTENT 2
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
16
847
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
17 #define HBB_PREFIX_IN 1
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
18 #define HBB_PREFIX_OUT 2
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
19 #define HBB_PREFIX_STATUS 4
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
20 #define HBB_PREFIX_AUTH 8
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
21 #define HBB_PREFIX_INFO 16
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
22 #define HBB_PREFIX_ERR 32
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
23 #define HBB_PREFIX_NOFLAG 64
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
24 #define HBB_PREFIX_HLIGHT 128
e1b7f71b0b1c Improve readability for some commands
Mikael Berthe <mikael@lilotux.net>
parents: 795
diff changeset
25 #define HBB_PREFIX_NONE 256
850
d0781ca2dd08 Use new status buffer window
Mikael Berthe <mikael@lilotux.net>
parents: 847
diff changeset
26 #define HBB_PREFIX_SPECIAL 512
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
27
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
28 typedef struct {
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
29 time_t timestamp;
850
d0781ca2dd08 Use new status buffer window
Mikael Berthe <mikael@lilotux.net>
parents: 847
diff changeset
30 guint flags;
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
31 char *text;
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
32 } hbb_line;
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
33
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
34 void hbuf_add_line(GList **p_hbuf, const char *text, time_t timestamp,
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
35 guint prefix_flags, guint width);
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
36 void hbuf_free(GList **p_hbuf);
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
37 void hbuf_rebuild(GList **p_hbuf, unsigned int width);
189
4f3975f1b852 [/trunk] Changeset 201 by mikael
mikael
parents: 186
diff changeset
38 GList *hbuf_previous_persistent(GList *l_line);
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
39
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
40 hbb_line **hbuf_get_lines(GList *hbuf, unsigned int n);
370
dd9e2eb52916 Add /buffer search_{backward,forward}
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
41 GList *hbuf_search(GList *hbuf, int direction, const char *string);
464
e4840b288be0 Add "/buffer date"
Mikael Berthe <mikael@lilotux.net>
parents: 462
diff changeset
42 GList *hbuf_jump_date(GList *hbuf, time_t t);
462
d580e87c11ed Add "/buffer %n"
Mikael Berthe <mikael@lilotux.net>
parents: 370
diff changeset
43 GList *hbuf_jump_percent(GList *hbuf, int pc);
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
44
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
45 #endif /* __HBUF_H__ */
576
8b3db0b555a1 Add Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 513
diff changeset
46
580
fed6d1e4d7a9 Fix modelines
Mikael Berthe <mikael@lilotux.net>
parents: 576
diff changeset
47 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */