[r5083]: tags / V3_12 / RUEList.h Maximize Restore History

Download this file

RUEList.h    93 lines (76 with data), 2.7 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
* Copyright (c) 2003-2008 Rony Shapiro <ronys@users.sourceforge.net>.
* All rights reserved. Use of the code is allowed under the
* Artistic License 2.0 terms, as specified in the LICENSE file
* distributed with this code, or available from
* http://www.opensource.org/licenses/artistic-license-2.0.php
*/
#pragma once
// RUEList.h
//-----------------------------------------------------------------------------
#include <deque>
#include <vector>
#include "corelib/ItemData.h"
#include "corelib/MyString.h"
#include "corelib/PWScore.h"
#include "corelib/UUIDGen.h"
//-----------------------------------------------------------------------------
/*
* CRUEList is a class that contains the recently used entries
*/
// Following is Most Recent Entry field separator for dynamic menu:
#define MRE_FS _T("\xbb")
// Recent Entry structure for m_RUEList
struct RUEntry {
RUEntry() {}
RUEntry(const uuid_array_t &RUEuuid);
bool operator() (const RUEntry &); // for find_if
uuid_array_t RUEuuid;
};
struct RUEntryStringImage {
CMyString string;
int image;
};
// identifies menu owner-draw data as mine
const LONG RUEMENUITEMID = MAKELONG(MAKEWORD('R', 'U'),MAKEWORD('E', 'M'));
// private struct: one of these for each owner-draw menu item
struct CRUEItemData {
long magicNum; // magic number identifying me
int nImage; // index of button image in image list
CRUEItemData() { magicNum = RUEMENUITEMID; }
BOOL IsRUEID() { return magicNum == RUEMENUITEMID; }
};
typedef std::deque<RUEntry> RUEList;
typedef RUEList::iterator RUEListIter;
typedef RUEList::const_iterator RUEListConstIter;
class DboxMain;
class CRUEList
{
public:
// Construction/Destruction/operators
CRUEList();
~CRUEList() {}
CRUEList& operator=(const CRUEList& second);
// Data retrieval
size_t GetCount() const {return m_RUEList.size();}
size_t GetMax() const {return m_maxentries;}
bool GetAllMenuItemStrings(std::vector<RUEntryStringImage> &) const;
bool GetMenuItemString(size_t, CMyString &) const;
bool GetMenuItemString(const uuid_array_t &, CMyString &) const;
bool GetPWEntry(size_t, CItemData &); // NOT const!
// Data setting
void SetMax(size_t);
void ClearEntries() {m_RUEList.clear();}
bool AddRUEntry(const uuid_array_t &);
bool DeleteRUEntry(size_t);
bool DeleteRUEntry(const uuid_array_t &);
private:
PWScore &m_core; // Dboxmain's m_core (which = app.m_core!)
size_t m_maxentries;
RUEList m_RUEList; // Recently Used Entry History List
DboxMain *m_pDbx;
};
//-----------------------------------------------------------------------------
// Local variables:
// mode: c++
// End: