File: folderlist.h

package info (click to toggle)
prayer 1.3.5-dfsg1-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,596 kB
  • sloc: ansic: 43,163; makefile: 817; sh: 445; perl: 166
file content (64 lines) | stat: -rw-r--r-- 2,230 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* $Cambridge: hermes/src/prayer/session/folderlist.h,v 1.4 2009/08/28 15:13:11 dpc22 Exp $ */

/* folderlist is a combination data structure:
 *   Simple linear list of the \Select item
 *   Tree structure including stubs for \Noselect items, which can be
 *   expanded selectively
 */

struct folderitem {
    struct  folderitem *next; 
    struct  folderitem *child;
    char *name;
    BOOL noselect;
    BOOL noinferiors;
    BOOL haschildren;   /* True unless NoInferiors or HasNoChildren */
    BOOL expanded;
    unsigned long size;  /* Size in bytes, for sizes screen */
};

struct folderlist {
    struct pool *pool;
    struct folderitem *tree;
    BOOL need_update;
    char hiersep;
};

#define FOLDERLIST_PREFERRED_POOL_SIZE (1024)

struct folderlist *
folderlist_create(char *hiersep);
void folderlist_free(struct folderlist *fl);
struct folderlist *folderlist_fetch(struct session *session);

BOOL folderlist_update_sizes(struct folderlist *fl, struct session *session);

void
folderlist_expand(struct session *session, struct folderitem *fi);

void folderlist_invalidate(struct folderlist *fl);
void folderlist_add(struct folderlist *fl, char *name,
                    BOOL noselect, BOOL noinferiors);
void folderlist_delete(struct folderlist *fl, char *name);
void folderlist_rename(struct folderlist *fl, char *oldname, char *newname);

struct folderitem *folderlist_lookup(struct folderlist *fl, char *name);

int
folderlist_count_visible_folders(struct folderlist *fl, BOOL suppress_dotfiles);

void
folderlist_showdirs_select(struct folderlist *fl, BOOL suppress_dotfiles,
                           struct pool *pool, struct buffer *b, char *selected);

void
folderlist_showfolders_select(struct folderlist *fl, BOOL suppress_dotfiles,
                              struct pool *pool, struct buffer *b,
                              char *selected);
void
folderlist_template_vals_tree(struct folderlist *fl, BOOL suppress_dotfiles,
                              struct template_vals *tvals, char *array);
void
folderlist_template_vals_list(struct folderlist *fl, BOOL suppress_dotfiles,
                              struct template_vals *tvals,
                              BOOL showdirs, char *array);