source: trunk/src/Halite.hpp @ 557

Revision 557, 3.0 KB checked in by Eoin, 12 years ago (diff)

Adding check in registry for install directory.

Line 
1
2//         Copyright Eóin O'Callaghan 2006 - 2008.
3// Distributed under the Boost Software License, Version 1.0.
4//    (See accompanying file LICENSE_1_0.txt or copy at
5//          http://www.boost.org/LICENSE_1_0.txt)
6
7#pragma once
8
9using std::string;
10using std::wstring;
11
12using boost::lexical_cast;
13using boost::array;
14using boost::bind;
15using boost::thread;
16using boost::shared_ptr;
17using boost::scoped_ptr;
18using boost::filesystem::path;
19using boost::filesystem::wpath;
20using boost::noncopyable;
21
22template<class Archive>
23void serialize(Archive& ar, WTL::CRect& rect, const unsigned int version)
24{
25        ar & BOOST_SERIALIZATION_NVP(rect.top);
26        ar & BOOST_SERIALIZATION_NVP(rect.bottom);
27        ar & BOOST_SERIALIZATION_NVP(rect.left);
28        ar & BOOST_SERIALIZATION_NVP(rect.right);
29}
30
31namespace hal
32{       
33        namespace fs = boost::filesystem;
34        namespace pt = boost::posix_time;
35        namespace xp = boost::xpressive;
36        namespace sl = boost::serialization;
37
38        using std::pair;
39        using std::make_pair;
40       
41        using boost::tuple;
42
43        typedef boost::int64_t size_type;
44}
45
46#define foreach BOOST_FOREACH
47
48#include "global/wtl_app.hpp"
49#include "global/string_conv.hpp"
50
51#include "halIni.hpp"
52#include "halEvent.hpp"
53#include "halTorrent.hpp"
54
55template<class T>
56class RedrawLock
57{
58public:
59        RedrawLock(T& window) :
60                window_(window)
61        {
62                window_.SetRedraw(false);
63        }
64       
65        ~RedrawLock()
66        {
67                unlock();
68        }
69       
70        void unlock()
71        {
72                window_.SetRedraw(true);
73                window_.InvalidateRect(NULL, true);
74        }
75       
76private:
77        T& window_;
78};
79       
80class Halite :
81        public hal::IniBase<Halite>,
82        private boost::noncopyable
83{
84public:
85        Halite();
86       
87        friend class boost::serialization::access;
88        template<class Archive>
89        void serialize(Archive& ar, const unsigned int version)
90        {       
91                using boost::serialization::make_nvp;
92
93                switch (version)
94                {
95                case 4:
96                ar      & make_nvp("one_inst", oneInst)
97                        & make_nvp("show_message", showMessage_)
98                        & make_nvp("log_debug", logDebug_)
99                        & make_nvp("log_list_length", logListLen_)
100                        & make_nvp("log_to_file", logToFile_)
101                        & make_nvp("lang_dll", dll_);
102                break;
103
104                case 3:
105                case 2:
106                ar      & make_nvp("dll_", dll_);
107                case 1:
108                ar      & make_nvp("logListLen_", logListLen_);
109                case 0:
110                ar      & make_nvp("oneInst", oneInst)
111                        & make_nvp("logDebug_", logDebug_)
112                        & make_nvp("showMessage", showMessage_)
113                        & make_nvp("logToFile_", logToFile_);
114                }
115        }       
116       
117        bool logToFile() { return logToFile_; }
118        bool logDebug() { return logDebug_; }
119        const std::wstring& dll() { return dll_; }
120        const int logListLen() { return logListLen_; }
121        bool showMessage() { return showMessage_; }
122       
123        friend class GeneralOptions;
124        friend class GlobalOptions;
125        friend class PortOptions;
126        friend class SplashDialog;
127        friend class AdvDebugDialog;
128        friend int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
129       
130private:
131        std::wstring dll_;
132        bool oneInst;
133        bool logDebug_;
134        bool showMessage_;
135        bool logToFile_;
136        size_t logListLen_;
137};
138
139Halite& halite();
140
141BOOST_CLASS_VERSION(Halite, 4)
Note: See TracBrowser for help on using the repository browser.