]> git.vomp.tv Git - vompclient.git/blob - tbboxx.cc
Message queue fix for VVideoRec
[vompclient.git] / tbboxx.cc
1 /*
2     Copyright 2007 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #include "tbboxx.h"
22
23 TBBoxx::TBBoxx()
24 {
25   titleBarOn = 0;
26   borderOn = 0;
27   titleText = NULL;
28   titleBarTextWidth = 0;
29   icon = NULL;
30 }
31
32 TBBoxx::~TBBoxx()
33 {
34   if (titleText) delete[] titleText;
35   if (icon) delete icon;
36 }
37
38 void TBBoxx::setTitleText(const char* takeText, int width)
39 {
40   int length = strlen(takeText);
41   titleText = new char[length + 1];
42   strcpy(titleText, takeText);
43   titleBarTextWidth = width;
44 }
45
46 void TBBoxx::draw()
47 {
48   //Log::getInstance()->log("TBBoxx", Log::DEBUG, "Draw: %d",this);
49
50   fillColour(DrawStyle::VIEWBACKGROUND);
51
52   if (borderOn)
53   {
54     rectangle(0, 0, area.w, area.h, titleBarColour);
55     rectangle(5, 5, area.w-10, area.h-10, DrawStyle::VIEWBACKGROUND);
56   }
57
58   if (titleBarOn)
59   {
60     rectangle(0, 0, area.w, 30, titleBarColour);
61     int xpos = 5;
62 #ifdef GRADIENT_DRAWING
63     if (icon) {
64         drawTVMedia(*icon, static_cast<float>(xpos), 0,30,30,TopLeftLimited);
65         xpos+=5+30;
66     }
67 #endif
68     if (titleText)
69     {
70       if (titleBarTextWidth) drawText(titleText, xpos, 5, titleBarTextWidth+5-xpos, DrawStyle::LIGHTTEXT);
71       else drawText(titleText, xpos, 5, DrawStyle::LIGHTTEXT);
72     }
73   }
74
75   Boxx::draw();  
76 }
77
78 void TBBoxx::setTitleBarColour(const DrawStyle& Tcolour)
79 {
80   titleBarColour = Tcolour;
81 }
82
83 void TBBoxx::setTitleBarIcon(TVMediaInfo * ticon)
84 {
85         if (icon) delete icon;
86         icon = ticon;
87 }
88
89 void TBBoxx::setTitleBarOn(UCHAR on)
90 {
91   titleBarOn = on;
92 }
93
94 void TBBoxx::setBorderOn(UCHAR on)
95 {
96   borderOn = on;
97 }