source: trunk/src/Halite.hpp @ 727

Revision 727, 3.1 KB checked in by Eoin, 11 years ago (diff)

Basic Dialog button functions reimplemented. Some warnings corrected.

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