changed: removed musicdatabase from precompiled headers, removed more unnecessary...
[xbmc:xbmc-antiquated.git] / guilib / GUIListItem.cpp
1 #include "stdafx.h"
2 #include "GUIListItem.h"
3 #include "GUIImage.h"
4
5 CGUIListItem::CGUIListItem(const CGUIListItem& item)
6 {
7   *this = item;
8 }
9
10 CGUIListItem::CGUIListItem(void)
11 {
12   m_bIsFolder = false;
13   m_strLabel2 = "";
14   m_strLabel = "";
15   m_pThumbnailImage = NULL;
16   m_pIconImage = NULL;
17   m_bSelected = false;
18   m_strIcon = "";
19   m_strThumbnailImage = "";
20 }
21
22 CGUIListItem::CGUIListItem(const CStdString& strLabel)
23 {
24   m_bIsFolder = false;
25   m_strLabel2 = "";
26   m_strLabel = strLabel;
27   m_pThumbnailImage = NULL;
28   m_pIconImage = NULL;
29   m_bSelected = false;
30   m_strIcon = "";
31   m_strThumbnailImage = "";
32 }
33
34 CGUIListItem::~CGUIListItem(void)
35 {
36   FreeMemory();
37 }
38
39 void CGUIListItem::SetLabel(const CStdString& strLabel)
40 {
41   m_strLabel = strLabel;
42 }
43
44 const CStdString& CGUIListItem::GetLabel() const
45 {
46   return m_strLabel;
47 }
48
49
50 void CGUIListItem::SetLabel2(const CStdString& strLabel2)
51 {
52   m_strLabel2 = strLabel2;
53 }
54
55 const CStdString& CGUIListItem::GetLabel2() const
56 {
57   return m_strLabel2;
58 }
59
60 void CGUIListItem::SetThumbnailImage(const CStdString& strThumbnail)
61 {
62   m_strThumbnailImage = strThumbnail;
63 }
64
65 const CStdString& CGUIListItem::GetThumbnailImage() const
66 {
67   return m_strThumbnailImage;
68 }
69
70 void CGUIListItem::SetIconImage(const CStdString& strIcon)
71 {
72   m_strIcon = strIcon;
73 }
74
75 const CStdString& CGUIListItem::GetIconImage() const
76 {
77   return m_strIcon;
78 }
79
80
81 void CGUIListItem::Select(bool bOnOff)
82 {
83   m_bSelected = bOnOff;
84 }
85
86 bool CGUIListItem::HasIcon() const
87 {
88   return (m_strIcon.size() != 0);
89 }
90
91
92 bool CGUIListItem::HasThumbnail() const
93 {
94   return (m_strThumbnailImage.size() != 0);
95 }
96
97 bool CGUIListItem::IsSelected() const
98 {
99   return m_bSelected;
100 }
101
102 CGUIImage* CGUIListItem::GetThumbnail()
103 {
104   return m_pThumbnailImage;
105 }
106
107 CGUIImage* CGUIListItem::GetIcon()
108 {
109   return m_pIconImage;
110 }
111
112
113 void CGUIListItem::SetThumbnail(CGUIImage* pImage)
114 {
115   if (m_pThumbnailImage)
116   {
117     m_pThumbnailImage->FreeResources();
118     delete m_pThumbnailImage;
119   }
120   m_pThumbnailImage = pImage;
121 }
122
123
124 void CGUIListItem::SetIcon(CGUIImage* pImage)
125 {
126   if (m_pIconImage)
127   {
128     m_pIconImage->FreeResources();
129     delete m_pIconImage;
130   }
131   m_pIconImage = pImage;
132 }
133
134
135 const CGUIListItem& CGUIListItem::operator =(const CGUIListItem& item)
136 {
137   if (&item == this) return * this;
138   m_strLabel2 = item.m_strLabel2;
139   m_strLabel = item.m_strLabel;
140   m_pThumbnailImage = NULL;
141   m_pIconImage = NULL;
142   m_bSelected = item.m_bSelected;
143   m_strIcon = item.m_strIcon;
144   m_strThumbnailImage = item.m_strThumbnailImage;
145   m_bIsFolder = item.m_bIsFolder;
146   return *this;
147 }
148
149 void CGUIListItem::FreeIcons()
150 {
151   FreeMemory();
152   m_strThumbnailImage = "";
153   m_strIcon = "";
154 }
155
156 void CGUIListItem::FreeMemory()
157 {
158   if (m_pThumbnailImage)
159   {
160     m_pThumbnailImage->FreeResources();
161     delete m_pThumbnailImage;
162     m_pThumbnailImage = NULL;
163   }
164   if (m_pIconImage)
165   {
166     m_pIconImage->FreeResources();
167     delete m_pIconImage;
168     m_pIconImage = NULL;
169   }
170 }