1 /* === S Y N F I G ========================================================= */
2 /*!	\file autorecover.h
3 **	\brief Template Header
4 **
5 **	$Id$
6 **
7 **	\legal
8 **	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
9 **	Copyright (c) 2008 Chris Moore
10 **
11 **	This package is free software; you can redistribute it and/or
12 **	modify it under the terms of the GNU General Public License as
13 **	published by the Free Software Foundation; either version 2 of
14 **	the License, or (at your option) any later version.
15 **
16 **	This package is distributed in the hope that it will be useful,
17 **	but WITHOUT ANY WARRANTY; without even the implied warranty of
18 **	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 **	General Public License for more details.
20 **	\endlegal
21 */
22 /* ========================================================================= */
23 
24 /* === S T A R T =========================================================== */
25 
26 #ifndef __SYNFIG_AUTORECOVER_H
27 #define __SYNFIG_AUTORECOVER_H
28 
29 /* === H E A D E R S ======================================================= */
30 
31 #include <synfig/string.h>
32 #include <synfig/canvas.h>
33 #include <sigc++/sigc++.h>
34 
35 /* === M A C R O S ========================================================= */
36 
37 /* === T Y P E D E F S ===================================================== */
38 
39 /* === C L A S S E S & S T R U C T S ======================================= */
40 
41 namespace studio {
42 
43 class AutoRecover
44 {
45 	bool enabled;
46 	int timeout_ms;
47 	sigc::connection connection;
48 
49 	void set_timer(bool enabled, int timeout_ms);
50 public:
51 	AutoRecover();
52 	~AutoRecover();
53 
get_enabled()54 	bool get_enabled() const
55 		{ return enabled; }
set_enabled(bool value)56 	void set_enabled(bool value)
57 		{ set_timer(value, get_timeout_ms()); }
58 
get_timeout_ms()59 	int get_timeout_ms() const
60 		{ return timeout_ms; }
set_timeout_ms(int value)61 	void set_timeout_ms(int value)
62 		{ set_timer(get_enabled(), value); }
63 
64 	void auto_backup();
65 
66 	bool recovery_needed()const;
67 	bool recover(int& number_recovered);
68 	bool clear_backups();
69 }; // END of class AutoRecover
70 
71 }; // END of namespace studio
72 
73 /* === E N D =============================================================== */
74 
75 #endif
76