source: trunk/src/NewTorrentPeersLV.hpp @ 507

Revision 507, 2.6 KB checked in by Eoin, 12 years ago (diff)

Added ListViewIterators?.hpp.

Major find and replace of TorrentDetails? and associated classes to torrent_details.

Line 
1
2//         Copyright Eóin O'Callaghan 2006 - 2007.
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
9#define ID_NTPLVM_BEGIN         19000
10#define ID_NTPLVM_NEW           ID_NTPLVM_BEGIN + 1
11#define ID_NTPLVM_EDIT          ID_NTPLVM_BEGIN + 2
12#define ID_NTPLVM_DELETE        ID_NTPLVM_BEGIN + 3
13#define HAL_NTPLVM_NAMES        ID_NTPLVM_BEGIN + 4
14
15#ifndef RC_INVOKED
16
17#include <boost/signals.hpp>
18#include <boost/function.hpp>
19
20#include "stdAfx.hpp"
21#include "global/string_conv.hpp"
22#include "halIni.hpp"
23#include "HaliteSortListViewCtrl.hpp"
24
25#include "GenericAddListView.hpp"
26
27class NewTorrent_PeersListViewCtrl :
28        public CHaliteSortListViewCtrl<NewTorrent_PeersListViewCtrl>,
29        public hal::IniBase<NewTorrent_PeersListViewCtrl>,
30        public WTLx::GenericAddListView<NewTorrent_PeersListViewCtrl, true>,
31        private boost::noncopyable
32{
33        typedef NewTorrent_PeersListViewCtrl thisClass;
34        typedef hal::IniBase<thisClass> iniClass;
35        typedef CHaliteSortListViewCtrl<thisClass> listClass;
36        typedef WTLx::GenericAddListView<thisClass, true> genericAddlistClass;
37
38        friend class listClass;
39       
40public:
41        enum { 
42                LISTVIEW_ID_MENU = HAL_GENERIC_ADD_LV_MENU,
43                LISTVIEW_ID_COLUMNNAMES = HAL_NTPLVM_NAMES,
44                LISTVIEW_ID_COLUMNWIDTHS = HAL_TRACKER_LISTVIEW_DEFAULTS
45        };
46       
47        NewTorrent_PeersListViewCtrl() :
48                iniClass("listviews/NewTorrentPeers", "NewPeersListView")
49        {
50                std::vector<wstring> names;     
51                wstring column_names = hal::app().res_wstr(LISTVIEW_ID_COLUMNNAMES);
52
53                // "Tracker;Tier"
54                boost::split(names, column_names, boost::is_any_of(L";"));
55               
56                array<int, 3> widths = {287,50,50};
57                array<int, 3> order = {0,1,2};
58                array<bool, 3> visible = {true,true,true};
59               
60                SetDefaults(names, widths, order, visible, true);
61                load_from_ini();
62        }
63
64        BEGIN_MSG_MAP_EX(thisClass)
65                MSG_WM_DESTROY(OnDestroy)
66
67                CHAIN_MSG_MAP(genericAddlistClass)
68                CHAIN_MSG_MAP(listClass)
69                DEFAULT_REFLECTION_HANDLER()
70        END_MSG_MAP()
71
72        void uiUpdate(const hal::torrent_details_ptr pT);
73        void saveSettings();
74
75    friend class boost::serialization::access;
76    template<class Archive>
77    void serialize(Archive& ar, const unsigned int version)
78    {
79                ar & boost::serialization::make_nvp("listview", boost::serialization::base_object<listClass>(*this));
80    }
81
82        void newItem();
83        void editItem(int);
84        void deleteItem(int);
85
86private:
87        void OnAttach();
88        void OnDestroy();
89};
90
91typedef NewTorrent_PeersListViewCtrl::SelectionManager NewTorrent_PeersListViewManager;
92
93#endif // RC_INVOKED
Note: See TracBrowser for help on using the repository browser.