Statistics
| Revision:

root / src / inc.h @ 1623

History | View | Annotate | Download (2.3 kB)

1
/*
2
 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3
 * Copyright (C) 1999-2007 Hiroyuki Yamamoto
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
 */
19
20
#ifndef __INC_H__
21
#define __INC_H__
22
23
#ifdef HAVE_CONFIG_H
24
#  include "config.h"
25
#endif
26
27
#include <glib.h>
28
29
#include "mainwindow.h"
30
#include "progressdialog.h"
31
#include "prefs_account.h"
32
#include "session.h"
33
#include "pop.h"
34
35
typedef struct _IncProgressDialog        IncProgressDialog;
36
typedef struct _IncSession                IncSession;
37
38
typedef enum
39
{
40
        INC_SUCCESS,
41
        INC_CONNECT_ERROR,
42
        INC_AUTH_FAILED,
43
        INC_LOCKED,
44
        INC_ERROR,
45
        INC_NO_SPACE,
46
        INC_IO_ERROR,
47
        INC_SOCKET_ERROR,
48
        INC_EOF,
49
        INC_TIMEOUT,
50
        INC_CANCEL
51
} IncState;
52
53
struct _IncProgressDialog
54
{
55
        ProgressDialog *dialog;
56
57
        MainWindow *mainwin;
58
59
        gboolean show_dialog;
60
61
        GTimeVal progress_tv;
62
        GTimeVal folder_tv;
63
64
        GList *queue_list;        /* list of IncSession */
65
        gint cur_row;
66
};
67
68
struct _IncSession
69
{
70
        Session *session;
71
        IncState inc_state;
72
73
        GHashTable *folder_table;        /* table of destination folders */
74
        GHashTable *tmp_folder_table;        /* for progressive update */
75
76
        gint64 cur_total_bytes;
77
        gint new_msgs;
78
79
        gpointer data;
80
};
81
82
#define TIMEOUT_ITV        200
83
84
void inc_mail                        (MainWindow        *mainwin);
85
gint inc_account_mail                (MainWindow        *mainwin,
86
                                 PrefsAccount        *account);
87
void inc_all_account_mail        (MainWindow        *mainwin,
88
                                 gboolean         autocheck);
89
90
gint inc_pop_before_smtp        (PrefsAccount        *account);
91
92
gboolean inc_is_active                (void);
93
94
void inc_cancel_all                (void);
95
96
void inc_lock                        (void);
97
void inc_unlock                        (void);
98
99
void inc_autocheck_timer_init        (MainWindow        *mainwin);
100
void inc_autocheck_timer_set        (void);
101
void inc_autocheck_timer_remove        (void);
102
103
#endif /* __INC_H__ */