Just a little correction at the it.po file.
[midnight-commander.git] / src / treestore.h
blobcbfda07fe8a0ec8f504ddc4d025ccfac2a9d2858
1 #ifndef __TREE_STORE_H
2 #define __TREE_STORE_H
4 /* Default filenames for the tree */
6 #ifdef NATIVE_WIN32
7 # define MC_TREE "mcn.tre"
8 # define MC_TREE_TMP "mcn.tr~"
9 #else
10 # define MC_TREE ".mc/Tree"
11 # define MC_TREE_TMP ".mc/Tree.tmp"
12 #endif
14 typedef struct tree_entry {
15 char *name; /* The full path of directory */
16 int sublevel; /* Number of parent directories (slashes) */
17 long submask; /* Bitmask of existing sublevels after this entry */
18 char *subname; /* The last part of name (the actual name) */
19 unsigned int mark:1; /* Flag: Is this entry marked (e. g. for delete)? */
20 unsigned int scanned:1; /* Flag: childs scanned or not */
21 struct tree_entry *next; /* Next item in the list */
22 struct tree_entry *prev; /* Previous item in the list */
23 } tree_entry;
25 typedef struct {
26 struct tree_entry *base;
27 struct tree_entry *current;
28 int base_dir_len;
29 int sublevel;
30 } tree_scan;
32 typedef struct {
33 tree_entry *tree_first; /* First entry in the list */
34 tree_entry *tree_last; /* Last entry in the list */
35 tree_entry *check_start; /* Start of checked subdirectories */
36 char *check_name;
37 GList *add_queue; /* List of strings of added directories */
38 unsigned int loaded : 1;
39 unsigned int dirty : 1;
40 } TreeStore;
42 TreeStore *tree_store_get (void);
43 int tree_store_load (void);
44 int tree_store_save (void);
45 tree_entry *tree_store_add_entry (char *name);
46 void tree_store_remove_entry (char *name);
47 tree_entry *tree_store_start_check (char *path);
48 tree_entry *tree_store_start_check_cwd (void);
49 void tree_store_mark_checked (const char *subname);
50 void tree_store_end_check (void);
51 tree_entry *tree_store_whereis (char *name);
52 tree_entry *tree_store_rescan (char *dir);
55 * Register/unregister notification functions for "entry_remove"
57 typedef void (*tree_store_remove_fn)(tree_entry *tree, void *data);
58 void tree_store_add_entry_remove_hook (tree_store_remove_fn callback, void *data);
59 void tree_store_remove_entry_remove_hook (tree_store_remove_fn callback);
61 #endif /* !__TREE_STORE_H */